Skip to content

fix(server): end the MCP write wait before common client timeouts - #999

Merged
ragnorc merged 1 commit into
ModernRelay:mainfrom
ragnorc:mcp-write-wait
Oct 16, 2026
Merged

ragnorc merged 1 commit into
ModernRelay:mainfrom
ragnorc:mcp-write-wait

Conversation

@ragnorc

@ragnorc ragnorc commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #994 from the review of the RFC 0003 amendment (#992, issue #991).

  • Write wait 60 s → 30 s, the same as a read. The MCP TypeScript SDK's default request timeout is 60 s, and the client's timer starts before the server's. With a 60 s server wait, a client on that default usually gave up first and never saw the outcome_unknown envelope. The write itself still runs to completion under the owned-write boundary. A unit test pins WRITE_DEADLINE below that client default.
  • Lost responses. The server instructions, the outcome_unknown message and the MCP guide now say that a missing response (client timeout, cancellation, dropped connection) is also an unknown outcome. They name the reconcile step: read the target and compare graph_commit_id, or commits_list, then replay a mutate with if_graph_commit, so a write that did land fails with 412.
  • graphs with a non-identity credential. The instructions and guide say this needs a graph_list permit, which a server without a cluster policy refuses (403), and that the other tools still work with a graph id the user supplies.
  • A changelog.d changed note.

No route, OpenAPI or policy change.

Checks (local, CARGO_INCREMENTAL=0, RUST_MIN_STACK=16777216)

  • cargo test -p omnigraph-server --locked: lib 204 passed (2 ignored); boot_settings 40 passed (1 ignored); integration 263 passed; multi_graph 8 passed.
  • cargo clippy -p omnigraph-server --all-targets --locked -- -D warnings -W clippy::dbg_macro: clean. cargo fmt --all --check: clean.
  • check-docs.py, typos: clean.

@ragnorc
ragnorc requested a review from aaltshuler as a code owner October 14, 2026 18:30
@ragnorc
ragnorc merged commit 0f1746a into ModernRelay:main Oct 16, 2026
33 checks passed
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