Skip to content

Reject undeclared editor RPC request fields - #1860

Merged
Noisemaker111 merged 2 commits into
agentsfrom
claude/reject-undeclared-rpc-fields-k4w9p2
Sep 27, 2026
Merged

Noisemaker111 merged 2 commits into
agentsfrom
claude/reject-undeclared-rpc-fields-k4w9p2

Conversation

@Noisemaker111

@Noisemaker111 Noisemaker111 commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Recovered from the stranded quest worktrees reject-undeclared-fields-on-every-editor-rpc-verb-s7vbgb, verify-real-rpc-behavior-and-local-gates-ndfcd8 and prepare-issue-closing-pr-l996el (all held commit 3fbe0bc, never pushed).

  • decodeEditorBridgeRequest rejects any top-level field outside the method's field spec, for every method, with unknown field "<name>" for method "<verb>".
  • Declared object payloads (patch, values) stay open.
  • Test: every method rejects an undeclared field; the existing lockstep test covers every verb having a field spec.

Root cause: the decoder only type-checked declared fields and ignored the rest, so a misspelt or unsupported field returned ok: true and saved nothing.
Limitation: the MCP stdio path builds requests per tool in toolToBridge, which still drops unknown tool arguments before the decoder sees them.

Closes #1838

Verification

  • bun --cwd=packages/editor run test: 256 pass, 0 fail
  • bun --cwd=packages/editor run check-types: pass
  • bun run ship:preflight: ok
  • bun run check-changelog (release note changes/reject-undeclared-rpc-fields-k4w9p2.md): ok
  • bun run check-skill-api after gen:skill-api: ok
  • CI: all jobs green (one rerun of a 5 s timeout in cli.test.ts bulk import; passes locally and on the first run)
  • CLI on tower-guard: --rpc '{"method":"set_marker","id":"x","catalogId":"raider","bogus":1}' → ok:false, $.bogus unknown field "bogus" for method "set_marker"; scene_summary with extra → rejected; plain scene_summary → ok

🤖 Generated with Claude Code

set_marker {"catalogId":"raider"} returned ok and saved nothing because the
verb ignored a field it did not declare. The decoder now rejects any
top-level field outside the method's field spec, for every method.

Recovered from the stranded quest worktrees
reject-undeclared-fields-on-every-editor-rpc-verb-s7vbgb (commit 3fbe0bc).

Closes #1838

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Noisemaker111
Noisemaker111 merged commit 55a2f41 into agents Sep 27, 2026
10 of 12 checks passed
@Noisemaker111
Noisemaker111 deleted the claude/reject-undeclared-rpc-fields-k4w9p2 branch September 29, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Editor RPC: reject unknown request fields instead of returning ok

1 participant