Skip to content

feat(s061): complete slice 061 (MCP server) - #56

Merged
HackTuah merged 17 commits into
mainfrom
slice/061-mcp-server
Sep 22, 2026
Merged

HackTuah merged 17 commits into
mainfrom
slice/061-mcp-server

Conversation

@HackTuah

Copy link
Copy Markdown
Member

Slice 061: Trinity as an MCP server above beam_mcp 0.9.0's core through the :server seam that release shipped. Trinity.MCP.Server implements BeamMCP.Server: tools/call through the permission gate and the membrane in an origin: mcp session with a persona of its own, everything else the core's. The exported tools are a configured, sorted list (the read-only set by default; catalog refused). A held call answers input_required with a requestState sealed under a key in the data directory, so an exchange completes on any instance of the same data directory; replay defence is a partition-local nonce table plus the gate's consumed once and the membrane's idempotency key. A static bearer before the body (062's seam), the plug in the endpoint ahead of the parsers, a dual-era stdio entry, the headless release with its bind and port, and a container recipe built and run here.

AC1 to AC7 by test; AC6's container log and AC4's screenshots in proof/; AC8 (Claude Code connected) is the owner's manual step with the exact command in docs/mcp-server.md. Deviations: the 2025-11-25 client over stdio (the core's HTTP transport serves 2026-07-28 alone); Tasks out (059 finding 4). One defect in 030 found by the container probe and fixed here (fix(s030): the default SOUL path baked at compile time). beam_mcp pinned at ~> 0.9. Gate green, 488 passed; coverage 80.05 (from 80.32).

Signed-off-by: Ayla Croft aylacroft@proton.me

… 061 in progress

The lock's package checksum is the one beam_mcp's release record names; the 060 client suite
passes unchanged on 0.9.0.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
… under 059's finding 4

Signed-off-by: Ayla Croft <aylacroft@proton.me>
… catalog, the MCP session, the sealed requestState, the bearer; AC1 to AC5 green

The plug sits in the endpoint ahead of the parsers so the core's transport reads the raw
body; the MCP session has a persona of its own so an external caller inherits none of the
default persona's allowances; a retry whose approval is still pending is held again without
re-entering the gate.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
… another; replay, tamper, expiry and binding refused

Signed-off-by: Ayla Croft <aylacroft@proton.me>
… and task, the container recipe

Signed-off-by: Ayla Croft <aylacroft@proton.me>
… at compile time

A module attribute baked the build tree's priv path into the release; the headless release's
first page answered 500 on a fresh data directory (061 AC6's probe). The Burrito binary hid
it because its payload keeps the build tree's layout.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
…re, the headless profile), docs 01, 05, 07, 08; the AC6 container log

Signed-off-by: Ayla Croft <aylacroft@proton.me>
…eenshots; AC6 rerun on the fixed image; the README

Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
…vergence)

Signed-off-by: Ayla Croft <aylacroft@proton.me>
…over count

Signed-off-by: Ayla Croft <aylacroft@proton.me>
…and the catalog's atom

Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
… endpoint's listener as inbound

Slice 061's suite connects Trinity's own client to Trinity's own /mcp and the client's pool
keeps the connection alive past its test; one ordering of the postgres job (run 35676874669)
read the Bandit handler's socket as an outbound peer. The census asks about connections this
application opened.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
@HackTuah
HackTuah merged commit 65cda72 into main Sep 22, 2026
8 checks passed
@HackTuah
HackTuah deleted the slice/061-mcp-server branch September 22, 2026 08:58
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