Skip to content

docs: add ADR 0006 for shared operations across RPC and MCP - #4412

Merged
lsm merged 3 commits into
devfrom
claude/rpc-mcp-unification-68d25b
Sep 12, 2026
Merged

lsm merged 3 commits into
devfrom
claude/rpc-mcp-unification-68d25b

Conversation

@lsm

@lsm lsm commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Adds docs/adr/0006-shared-operations.md, the normative record for the RPC/MCP unification stream (epic #4164).

It records the implemented seam (operation contract, shared invoker, thin adapters, runtime discovery, instance-owned catalogs, durable acknowledgements, async invariants) and fixes two things the stream had left implicit:

  • Caller policy design. One pre-invocation pipeline per transport produces a trusted OperationCaller principal; shared stages (authenticate, resolve target scope, require same Space, audit) are composed by either pipeline. Execution-ownership admission stays inside the operation; principal admission lives outside it. Today's resolveCaller callbacks are named as the seam.
  • Layering against ADR 0005. Operations are the domain layer; the MCP pre-invocation pipeline and dispatchAction are policy layers that share stages rather than rules, and call_action entries delegate to operations.

A Current state table names what is not wired yet: source is the only caller differentiation, zero web callers of operation.invoke, no call_action delegation, and outcome jobs that park after a daemon restart until the guardian ledger (#4367) lands.

Merge contract: documentation only, no code changes.

Records the implemented operation seam (registry, invoker, RPC/MCP adapters,
discovery, instance-owned catalogs, durable acknowledgements), the per-transport
pre-invocation pipeline design it grows into, and its layering against the
ADR 0005 action dispatcher: operations own domain rules and execution-ownership
admission; transport pipelines and shared stages own caller policy.

States current boundaries explicitly: source is the only caller
differentiation, no web callers of operation.invoke, no call_action delegation
yet, and outcome jobs that park after a daemon restart until the guardian
ledger lands.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@hyperneo-ai-test

hyperneo-ai-test Bot commented Sep 12, 2026

Copy link
Copy Markdown

Review status

Started 2026-09-12T03:53:20Z
Finished 2026-09-12T04:01:45Z
Head b51917d
Engine claude (glm-5.3-flash)
Verdict no issues found

@hyperneo-ai-test hyperneo-ai-test 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.

Requires changes.

Engine claude (glm-5.3-flash) · Reviewed commit 019bc68 · Trigger: open

Comment thread docs/adr/0006-shared-operations.md Outdated
Comment thread docs/adr/0006-shared-operations.md Outdated
Comment thread docs/adr/0006-shared-operations.md Outdated
… ADR

- Count of caller.source === 'mcp' branches was three, actually five
  (task.cancel, task.resolvePendingCompletion, task.update,
  task.dependencies.set, task.submitForReview) — fixed in decision 3,
  the Current state table, and Open items, and described what each
  branch actually checks instead of a blanket claim.
- Decision 4's invoke-tool bullet claimed the hyperneo-operations
  catalog is filtered to execution-ownership operations; it is not
  (the Space registry provider wires the full catalog unfiltered) —
  reworded to state the true current state and keep the filter as the
  intended rule for new operations.
- Dropped the invented `agentActions` identifier from the Context
  section; no such symbol exists in the repo history.

@hyperneo-ai-test hyperneo-ai-test 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.

Requires changes.

Engine claude (glm-5.3-flash) · Reviewed commit fe1935d · Trigger: push

Comment thread docs/adr/0006-shared-operations.md Outdated
Decision 3, the Current state table, and Open items said five
operations branch on caller.source; message.send also branches on it
(rejecting MCP callers claiming human provenance) so the true count is
six. Reworded each site to separate the five migration targets
(missing Space-membership/worker-binding facts on the principal) from
message.send's provenance check, which stays a policy check destined
for the MCP pre-invocation pipeline rather than a principal field.

@hyperneo-ai-test hyperneo-ai-test 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.

Approved.

Engine claude (glm-5.3-flash) · Reviewed commit b51917d · Trigger: push

@lsm
lsm merged commit 16ea9d3 into dev Sep 12, 2026
12 checks passed
@lsm
lsm deleted the claude/rpc-mcp-unification-68d25b branch September 12, 2026 04:04
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