Repository navigation
docs(plugin-chatbot): name the authored key as requestBody, not body - #6193
Merged
Merged
Conversation
The Properties table's `body` row read "Additional body params for API requests". The node key carrying those params is `requestBody`; the renderer passes it to the chat runtime as that runtime's `body` option (packages/plugin-chatbot/src/renderer.tsx:87). A `body` key written on the node is `BaseSchema.body` — the children container — so an author following the row got no error and no unknown-key warning, just API params quietly reaching a different feature. The `## Schema API` block above the table carried the identical false key and is corrected the same way. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019b5UBNMtTzKbVtZZGvFuxe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #6169 — the dispatchable half only. The card's other half (the unnamed inline intersection at
packages/plugin-chatbot/src/renderer.tsx:62) is escalated as a contract decision and is untouched here, so the card must stay open: no closing keyword is used in this body.The defect
content/docs/plugins/plugin-chatbot.mdx's Properties table carried abodyrow reading "Additional body params for API requests". That is false as authoring guidance, and it fails silently:requestBody. The renderer maps it to the chat runtime's own option namedbody(packages/plugin-chatbot/src/renderer.tsx:87), sobodywas the name of the prop it becomes, never the key an author writes.bodyan author would actually hit on the node isBaseSchema.body— the children container (packages/types/src/base.ts:121, documented there as "Child components or content").So
bodyexists on the node. Authoring it produces no error and no unknown-key warning; the API params just reach the children container instead. A row naming a key that did not exist would at least have failed loudly.No source change:
renderer.tsx:87is correct as written, and the table is what was wrong.What changed
Two lines in one file, both the same false key:
requestBody, described as the authored key rather than the prop it becomes, and says what happens ifbodyis written instead.## Schema APIblock above the table (line 110) declared the identical falsebodykey for the same authored node. It is the same defect, in the same file, pinned by the same evidence, so leaving it would have shipped a PR that fixes the row while the identical false statement survives one screen above it — and the Schema API block is what a reader meets first. Only that one key was touched in the block; nothing else in it was renamed, added, or removed.Verification, before and after
The card's claim is a collision between two real keys, so a single grep proves nothing. All five readings, at the claim base
670f57320:renderer.tsxstill doesbody: schema.requestBody— present at lines 87, 305 and 438.ChatbotSchemadeclaresrequestBody(packages/types/src/complex.ts), documented as "Additional body parameters to include with each API request."BaseSchemadeclaresbodyas the children container (packages/types/src/base.ts:121).ChatbotSchemadeclares nobodyof its own with the documented meaning — a grep for abodykey inside the interface block matches zero times.bodyoccurrences are: the table cell that names it to warn against it, and line 432'sfetch()call option inside anonSendexample, which is the Fetch API's ownbodyand correct as written.Gate union at
37e63ecba(the commit this PR points at)Every exit code captured by redirect before any pipe, each quoting the gate's own verdict line. Gate list derived from
package.jsonand.github/workflows/, not from the dispatch order.check:doc-fences— exit 0 — "every TypeScript block in 223 document(s) is fenced ts/tsx/typescript, except 83 declared file(s) carrying 105 block(s) ... No unknown fence spelling hides one."check:doc-types— exit 0 — "Every documented component type is registered."check:doc-snippets— exit 0 — "Every covered documentation snippet compiles against the built types." Run against the builtdist, its resolution control reporting@object-ui/typesresolved topackages/types/dist/index.d.ts.docs:check-links— exit 0 — "Links are valid across 15 scan roots."check:control-bytes— exit 0 — "OK (scanned 5110 tracked text file(s); skipped 85 binary)."Changeset: none owed, per the presence gate's own verdict — "No source of a released package changed in this range, so no changeset is owed." (objectui has no
skip-changesetlabel mechanism, so that verdict is the declaration form.)Each gate's inclusion was measured from its own configuration rather than asserted: the three doc gates scan
DOCS_ROOT = 'content/docs'across both.mdand.mdx, which includes this file; the snippet gate additionally lists this page among its 44UNGATED_DOCSand collects onlyts/tsx/typescriptfences, while the edited block at line 110 sits inside aplaintextfence — two independent reasons its 21 known parse diagnostics cannot move.Deliberately out of scope
renderer.tsx:62). Escalated as a contract decision; not ruled on, not implemented, not proposed in this diff.autoResponse/autoResponseText/autoResponseDelayare read by a live consumer atpackages/app-shell/src/console/ai/AiChatPage.tsx:1599-1601.Generated by Claude Code
Generated by Claude Code