Skip to content

docs(studio): add control-oRPC seam doc, thin LiveControlPort adapter design, and re-baseline server-contract audit + target architecture for live-read surface#1605

Merged
mateicanavra merged 1 commit into
mainfrom
design/control-seam
Jun 12, 2026
Merged

docs(studio): add control-oRPC seam doc, thin LiveControlPort adapter design, and re-baseline server-contract audit + target architecture for live-read surface#1605
mateicanavra merged 1 commit into
mainfrom
design/control-seam

Conversation

@mateicanavra

Copy link
Copy Markdown
Owner

This PR introduces the studio ↔ control-oRPC seam design for the mapgen studio redesign. It is a docs-only change — no app source or build artifacts are modified.

What this establishes:

The studio must consume live game state (world.*, readiness.*, attention.*) through the @civ7/control-orpc contract and Civ7IntelligenceBridge ingress, not by reading FireTuner or re-implementing live reads. Because @civ7/control-orpc is absent from main (empty placeholder on this branch) and lives at the tip of the live-control codex/* stack mid-consolidation, the studio cannot block on that landing. This change captures the target contract surface from the observed stack tip (codex/live-control-hotseat-source-route-adoption, 7ea1cbd5) and documents the thin adapter seam the studio binds through, so P2 client data layer and P5 studio-server work can proceed in parallel.

New doc — architecture/12-control-seam.md:

Specifies the full target seam: the Civ7ControlOrpcContract procedure corpus (twelve domain modules, procedure keys, risk/proofBoundary metadata as the authoritative read-vs-mutation classifier), the Civ7IntelligenceBridge request/response envelope and invoke boundary, the studio-side LiveControlPort interface with a bound RPCLink implementation and a legacy direct-control-backed fallback behind the same port, data flow boundaries, and the bind-time checklist. The blast radius of any breaking change in @civ7/control-orpc is confined to src/lib/control/*. The live-runtime poll's staleness/backoff gating and per-field error envelope behavior are explicitly preserved as hard core — the seam moves the read source, it does not rewrite poll semantics.

Re-baselines:

Falsifier: If the package that lands on main diverges structurally from the captured contract namespaces, procedure keys, or output shapes, the FRAME §3 falsifier fires — work stops and the seam is re-baselined rather than papered over.

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown

Railway preview (MapGen Studio): not provisioned for this PR.

Policy (Graphite stacks): previews are created only for the top-of-stack PR by default.

  • To force a preview for this PR: add label railway-preview
  • To suppress a preview: add label no-railway-preview

Debug: {"isClosed":true,"isFork":false,"suppress":false,"force":false,"isTopOfStack":true,"hasToken":true,"draft":false}

mateicanavra commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

This was referenced Jun 12, 2026

mateicanavra commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

Merge activity

  • Jun 12, 8:50 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jun 12, 8:52 PM UTC: Graphite rebased this pull request as part of a merge.
  • Jun 12, 8:52 PM UTC: @mateicanavra merged this pull request with Graphite.

@mateicanavra
mateicanavra changed the base branch from design/ds-foundation to graphite-base/1605 June 12, 2026 20:50
@mateicanavra
mateicanavra changed the base branch from graphite-base/1605 to main June 12, 2026 20:51
…top)

Capture the target studio<->control-oRPC contract surface from the live-control
stack tip (codex/live-control-hotseat-source-route-adoption, 7ea1cbd5) and
specify the thin LiveControlPort adapter seam. Re-baseline audit/05 and
architecture/10 section 1 as studio-server surface only; live reads bind through
the control seam, not yet on main. No FireTuner reads; never re-implement live
reads. Docs-only.

OpenSpec: mapgen-studio-control-seam (validate --strict passes).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mateicanavra
mateicanavra force-pushed the design/control-seam branch from 1e93069 to 7d8ab20 Compare June 12, 2026 20:51
@mateicanavra
mateicanavra merged commit daf78df into main Jun 12, 2026
0 of 3 checks passed
This was referenced Jun 12, 2026
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