Skip to content

docs(mcpx): level-2 interface pages A — interfaces, CLI, binary, scripts (#2108) - #2458

Merged
dezren39 merged 3 commits into
mainfrom
queue/3063-2108-mcpx-docs-interfaces-a
Oct 30, 2026
Merged

dezren39 merged 3 commits into
mainfrom
queue/3063-2108-mcpx-docs-interfaces-a

Conversation

@dezren39

@dezren39 dezren39 commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Part A of the #1851 split (#2108): the prose level-2 pages for interfaces, the CLI, the binary, and scripts, at the anchors in the #1848 page map (interfaces#abstract-interfaces, interfaces#client-interfaces, cli#cli, cli#cli-arguments, cli#cli-commands, binary#binary, scripts#script). Split B (#2109, MCP + /v1 pages) is untouched.

Pages

  • pkgs/mcpx/docs/interfaces.md — one ops table behind every surface (with the honest note that routes are hand-registered and test-held, not generated), the parity claim quoted from the generated docs/parity.md with its current test enforcement, and every client interface with a runnable snippet (generated TS client, CLI / mcpx call, DaemonClient + connect(), any MCP client, raw /v1).
  • pkgs/mcpx/docs/cli.md — the loop, --json, bare/runnable first arguments, exit codes (incl. 75 EX_TEMPFAIL for elicitation waits); cli-arguments as the two flag kinds (hand-parsed globals in cmd/mcpx/main.go vs registry flags bound per command), plus duplicate-spelling errors and derived flag names; cli-commands as overview prose over the six help groups — the command table itself is generated and linked (docs/parity.md), not hand-copied.
  • pkgs/mcpx/docs/binary.md — what is shipped per go.mod: seven direct requirements (incl. jsonschema/v6 and wazero; docs/dependencies.md and package.nix still say five — noted on the page, go.mod wins), no MCP SDK, the Nix build's CGO_ENABLED=0 static binary vs the Containerfile's default CGO_ENABLED=1, external programs, and the Nix wrapper's PATH suffix. Container detail is linked (docs/container.md), not restated.
  • pkgs/mcpx/docs/scripts.md — the script contract (stdout/stderr, default export, --export, emit(), --json envelope, unwrapped results / .raw / ToolError), named scripts and shadowing, runtimes (deno → bun → node; node is erasable-TypeScript only; typecheck is Deno-only), authority, exec.where, mcpx diagnose + preflight, and recipes (// @param).

Verification

Every factual claim was re-verified against current main (5a34fa70) at claim time; several facts in #1851 had moved and the pages state the current ones: operations are 81 (per the generated parity table), mcpx openapi is now generated from the ops table (one OpenAPI document, not three), dispatch parity is held by TestEveryDispatchedCommandIsDeclared, the Nix package builds CGO_ENABLED=0, and daemon.leaseTTL derives --daemon-lease-ttl. No generated tables are hand-copied: configuration, environment and parity content is linked, per the triage notes. All relative links and backticked repo paths in the new pages were checked against the tree (the same rule TestEveryDocumentationLinkResolves enforces); docs CI on this PR is the authority.

Queue task 3063 · Part of #1851 · Page map: #1848


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@dezren39
dezren39 requested a review from a team as a code owner October 29, 2026 23:24
@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 49 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ac098bb8-08a5-40bb-b821-effe3bf1e6b3
Commits

Reviewing files that changed from the base of the PR and between 5a34fa7 and 0384763.

Files selected for processing: 4
  • pkgs/mcpx/docs/binary.md
  • pkgs/mcpx/docs/cli.md
  • pkgs/mcpx/docs/interfaces.md
  • pkgs/mcpx/docs/scripts.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T23:35:50.487554Z 0384763 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a5c03fa920

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pkgs/mcpx/docs/cli.md Outdated
| 0 | success |
| 1 | the command failed; the error is on stderr |
| 2 | an unknown command, an unknown global flag, or a settings conflict — including a contradiction in a config file, which is reported once, before dispatch |
| 75 | `EX_TEMPFAIL`: a call is waiting on an elicitation — a question a server has asked its client. Not a failure: answer it (`mcpx elicit`) and retry |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Collect the pending call's result instead of retrying it

When a tool call exits with 75, answering its elicitation resumes the original call rather than cancelling it. handleCallReporting in internal/daemon/input_required.go keeps that call running as a task, and the elicitation command's declared help in internal/cli/manual.go explicitly directs users to collect it with mcpx task result. Following the retry instruction starts a second call, potentially repeating a state-changing operation. Replace the retry advice with instructions to collect the existing task's result.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0384763 — verified against internal/cli/manual.go (the elicit entry) and internal/daemon/input_required.go: the call continues as a task, so the page now says to answer with mcpx elicit answer … and collect the original result with mcpx task result <id>, and explicitly warns that retrying starts a second call. Thank you — the retry wording came from the source issue and was wrong.

Comment thread pkgs/mcpx/docs/scripts.md Outdated
Comment on lines +83 to +87
- **Node runs only erasable TypeScript.** Node is invoked with
type transformation, not full compilation: syntax TypeScript
would erase (annotations, interfaces) is fine, and syntax it
would have to generate code for — an `enum` is the classic
case — fails. Write erasable TypeScript if the script must

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Describe Node's supported TypeScript transformations

For scripts targeting Node, this documents a restriction the runner deliberately removed: internal/runner/runtimes.go passes --experimental-transform-types, and TestNodeRunsNonErasableTypeScript guards successful enum execution. The installed Node's --help describes that flag as enabling transformation of TypeScript-only syntax into JavaScript, and an enum executed successfully with the runner's flags. Correct this limitation so authors are not instructed to rewrite supported constructs or unnecessarily avoid Node.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0384763 — verified against internal/runner/runtimes.go (the --experimental-transform-types rationale comment) and TestNodeRunsNonErasableTypeScript: the bullet now states Node transforms rather than strips, and that non-erasable syntax (enum, value namespaces, parameter properties) runs. The erasable-only claim was carried over from the source issue (#1851) and no longer holds.

@dezren39
dezren39 added this pull request to the merge queue Oct 29, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to Branch Protection failures Oct 29, 2026
You're not authorized to push to this branch. Visit "About protected branches" for more information.
@dezren39
dezren39 added this pull request to the merge queue Oct 30, 2026
Merged via the queue into main with commit f97e95c Oct 30, 2026
8 checks passed
@dezren39
dezren39 deleted the queue/3063-2108-mcpx-docs-interfaces-a branch October 30, 2026 01:08
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.

1 participant