release: sync SDK + MCP to omnigraph-server v0.9.0 - #17
Merged
Merged
Conversation
Scripted pipeline sync (sync-spec -> generate -> check-versions): the v0.8.1 openapi delta is version-metadata only — no route or schema changes, so no generated-type churn. Package versions and the MCP health assertion follow the engine version. Engine release notes: https://github.com/ModernRelay/omnigraph/releases/tag/v0.8.1 (note: this engine release is binaries-only; crates.io publication resumes at 0.9.0 — irrelevant to this SDK, which consumes the tagged openapi.json).
Pins omnigraph.serverVersion and both package versions to 0.9.0, regenerates spec/openapi.json and the generated types from the v0.9.0 tag, and binds the one new endpoint: POST /load/ndjson (strict bounded graph-level NDJSON batch) via loadNdjson(), with raw-body support added to the transport (verbatim payload + explicit Content-Type, bypassing the JSON/case pipeline). Version-pin assertions in the MCP tests move to 0.9.0. Coverage: 18/18 spec operations bound (3 intentionally unbound); full SDK + MCP suites green.
This was referenced Aug 9, 2026
Comment on lines
+741
to
+749
| /** | ||
| * Merge row, byte, or recovery-chain ceiling exceeded before effects | ||
| */ | ||
| 413: ErrorOutput; | ||
| /** | ||
| * Per-actor admission cap exceeded; honor `Retry-After` header | ||
| */ | ||
| 429: ErrorOutput; | ||
| /** |
There was a problem hiding this comment.
Actionable errors become internal failures
When v0.9.0 returns a 413 resource-limit response or a 503 recovery-required response, fromResponse() has no mapping for either status and produces InternalServerError, preventing callers from distinguishing a request that must be split or a recovery operation that must be resolved from a generic server failure.
The e2e case is the load-bearing one: CI's e2e workflow boots the pinned real server (now 0.9.0), so this is the only place the raw x-ndjson request meets the actual endpoint rather than our own mock. The unit case pins that absent branch/from/mode produce a bare URL.
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.
Syncs the SDK and MCP server to the released omnigraph-server v0.9.0, building on the v0.8.1 sync commit (this branch contains it, so merging this supersedes #14, #15, and #16).
What's in it
omnigraph.serverVersion+ both package versions pinned to 0.9.0;spec/openapi.jsonand generated types regenerated from the v0.9.0 tag via the scripted pipeline (no hand-patching)loadNdjson()for the one new 0.9.0 endpoint,POST /load/ndjson(strict bounded graph-level NDJSON batch,application/x-ndjson). The transport gains arawBodyoption — verbatim payload with explicit Content-Type, bypassing the JSON + case-conversion pipeline — with a test pinning that the NDJSON body and user-schema keys pass through untouchedVerification
check-drift: spec matches upstream at v0.9.0check-versions: all packages target 0.9.0check-coverage: 18/18 spec operations bound (3 intentionally unbound), query params validatedNotably, 0.9.0's wire surface is otherwise additive over the 0.8.1 sync — no existing binding changed shape. The 0.9.0 behavior changes (newest-first commit listings, strict
append, keyed-write 413 bounds, 503recovery_required) are server-side semantics the SDK already models via the error taxonomy.Greptile Summary
This release synchronizes the SDK and MCP packages with omnigraph-server v0.9.0.
loadNdjsonwith verbatimapplication/x-ndjsontransport support.Confidence Score: 4/5
The PR is not yet safe to merge because v0.9.0 resource-limit and recovery-required responses remain indistinguishable from generic internal failures.
The generated contract now declares HTTP 413 and 503 responses, but the shared runtime error dispatcher has no mappings or public error classes for either condition and therefore converts both into InternalServerError.
Files Needing Attention: packages/sdk/src/errors.ts, packages/sdk/src/index.ts
Important Files Changed
Sequence Diagram
sequenceDiagram participant Caller participant SDK as Omnigraph SDK participant Transport participant Server as omnigraph-server v0.9.0 Caller->>SDK: loadNdjson(input) SDK->>Transport: POST /load/ndjson + query options Transport->>Server: application/x-ndjson body (verbatim) Server-->>Transport: GraphBatchLoad response Transport-->>SDK: camel-cased result SDK-->>Caller: GraphBatchLoadReviews (2): Last reviewed commit: "test: exercise loadNdjson end-to-end and..." | Re-trigger Greptile