Skip to content

feat: align SDK and MCP with Omnigraph v0.10 - #19

Merged
aaltshuler merged 2 commits into
mainfrom
codex/align-v0.10
Aug 31, 2026
Merged

aaltshuler merged 2 commits into
mainfrom
codex/align-v0.10

Conversation

@aaltshuler

@aaltshuler aaltshuler commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Align the TypeScript SDK and MCP packages with the released Omnigraph v0.10 HTTP contract, including the new functionality rather than only regenerating types.

  • Update the bundled OpenAPI specification, generated types, public camelCase DTOs, package versions, and migration documentation.
  • Add conditional ad-hoc and stored mutations using the dedicated capability routes. Preserve exact write receipts and successful no-op commit: null; never downgrade or automatically retry a conditional write.
  • Add Blob GET/HEAD bindings with raw streaming responses, ranges, validators, and manual external-redirect handling.
  • Add first-parent commit diffs, bounded change-feed polling, and streaming baseline/reset handshakes. Preserve user property keys and expose the baseline resume cursor only after successful stream completion.
  • Preserve structured v0.10 failures, including stale-write preconditions, retention gaps, resource limits, recovery requirements, and full-text index rebuild refusals. Specific HTTP status takes precedence over older broad error codes.
  • Expose conditional mutations, commit diffs, and feed polling through MCP, with structured request errors and corrected write/retry guidance. Blob delivery and full streaming baselines remain SDK-only.

Release dependency

This PR targets Omnigraph v0.10.0 at a625748c8bf41e21654c48321fa31d295add7621.

Spec sync, drift checks, bundled MCP references, and live CI resolve the same released version. CI downloads the checksum-verified Linux release archive; package publication remains gated on an exact SDK tag after this PR merges and its main-branch checks pass.

Scope boundaries

  • Diffs compare a commit with its first parent, not arbitrary branch pairs.
  • CDC is caller-driven, at-least-once polling. Consumer storage, deduplication, and durable cursor installation remain application responsibilities.
  • Blob writes use ordinary mutate/load; no unsupported upload or index-maintenance HTTP endpoint is invented.
  • The stale upstream remote-ops MCP reference is explicitly excluded until its retry/receipt guidance is refreshed.
  • Most of the diff is the checked-in upstream specification and generated types.

Validation

  • pnpm install --frozen-lockfile, release/drift/generation/coverage checks, build, typecheck, and actionlint pass.
  • Against the checksum-verified macOS v0.10.0 release archive: 151 SDK tests including all 24 live E2E tests, 22 MCP tests, and 4 tooling tests pass with no live skips.
  • A separate MCP stdio smoke passed 15 real tool calls: resources, reads, conditional node/edge mutation, exact receipt, stale refusal, no-op receipt, commit diff/feed, and independent HTTP verification.
  • The API inventory has 25 supported operations bound; three deprecated aliases are explicitly excluded.
  • Generated files and the bundled OpenAPI spec are byte-identical to the tagged engine source.

No live AWS resources or production graph data were accessed.

Greptile Summary

The PR aligns the TypeScript SDK and MCP adapter with the forthcoming Omnigraph v0.10 contract.

  • Adds conditional mutations, commit diffs, change-feed polling, baseline/reset streaming, and Blob retrieval.
  • Expands structured HTTP-error handling and preserves write receipts and caller-owned property keys.
  • Pins specification generation, cookbook synchronization, and end-to-end testing to an immutable server source revision while preventing source-pinned publication.
  • Extends MCP tools and operational guidance for the new write and change-feed behavior.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains within the eligible follow-up-review scope.

No blocking failure remains.

Important Files Changed

Filename Overview
packages/sdk/src/client.ts Extends the root SDK surface with v0.10 operations while retaining shared graph scoping and transport behavior.
packages/sdk/src/transport.ts Adds raw-response and query-array handling required by Blob and change-stream APIs.
packages/sdk/src/errors.ts Adds status-specific v0.10 error classes and preserves structured response details.
packages/sdk/src/resources/blobs.ts Implements Blob GET and HEAD operations with ranges, validators, streaming bodies, and explicit redirect handling.
packages/sdk/src/resources/changes.ts Implements bounded feed polling and streamed baseline/reset handshakes with terminal cursor exposure.
packages/sdk/src/resources/commits.ts Adds paginated first-parent commit-change retrieval.
packages/sdk/src/resources/queries.ts Adds stored conditional mutation support while preserving caller-controlled parameters and receipts.
packages/mcp/src/server.ts Exposes conditional mutations, commit changes, and feed polling with structured SDK-error serialization.
scripts/server-pin.ts Centralizes validation and resolution of release tags versus immutable development source pins.
.github/workflows/e2e.yml Builds and tests against the exact source-pinned server candidate when no release binary exists.

Sequence Diagram

sequenceDiagram
  participant Consumer
  participant SDK
  participant MCP
  participant Server as Omnigraph v0.10
  Consumer->>SDK: Query or mutation
  SDK->>Server: Graph-scoped HTTP request
  Server-->>SDK: Typed result or structured refusal
  SDK-->>Consumer: Camel-case DTO or typed error
  Consumer->>MCP: Tool request
  MCP->>SDK: Invoke SDK capability
  SDK->>Server: Conditional write, diff, or feed poll
  Server-->>SDK: Receipt, bounded page, or refusal
  SDK-->>MCP: Preserved result/error details
  MCP-->>Consumer: Structured MCP content
Loading

Reviews (2): Last reviewed commit: "release: pin SDK to v0.10.0 server tag" | Re-trigger Greptile

Context used (5)

@aaltshuler
aaltshuler merged commit 2c83a5d into main Aug 31, 2026
3 checks passed
@aaltshuler
aaltshuler deleted the codex/align-v0.10 branch August 31, 2026 21:33
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