diff --git a/AGENTS.md b/AGENTS.md index 76c674f..df1b546 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,13 +38,13 @@ gh project item-list 2 --owner traverse-framework --format json --limit 300 \ | `retire-registry-ref-materialize` | **Done** (#267) | Phase A gate; host cutover → Future `retire-registry-ref-materialize-hosts` | | `retire-registry-ref-materialize-hosts` | **Future** | Full materialize delete after BundleEmbedder + Spec 107 | | `meeting-notes-remaining-natives` | **Done** (#236) | Shipped via `meeting-notes-wave2-os-ports` | -| `llm-mcp-embedded-host` | **Future** | Scaffold Done (#268); Mode B host CLI on Traverse [#1242](https://github.com/traverse-framework/Traverse/issues/1242) — not active until Mode A unlock progresses | +| `llm-mcp-embedded-host` | **Future** | Scaffold Done (#268); Mode B host CLI on Traverse Project 1 ticket `implement-mode-b-embedded-mcp-host` (issue #1242) — not active until Mode A unlock progresses | | `two-app-reuse-contract` | **Done** (#285) | Pin `meeting-notes.process` 1.3.2 for meeting-notes + loop | | `two-app-reuse-execute` | **Done** (#286) | Align pins + wasmtime evidence | | `two-app-reuse-execute-ci` | **Done** (#287) | Fixture-only evidence (no Traverse core examples) | | `pin-ci-traverse-0-10` | **Done** (#292) | CI / embedder / runtime.wasm → Traverse v0.10.0 | | `llm-mcp-0-10-live-cutover` | **Done** (absorbed) | Mode A → `llm-mcp-traverse-starter-catalog`; Mode B → `llm-mcp-embedded-host` Future; pin already #292 | -| `two-app-reuse-host-execute` | **Blocked** | Traverse [#1240](https://github.com/traverse-framework/traverse/issues/1240) — BundleEmbedder still fails WASI `proc_exit(0)` on 1.3.2 | +| `two-app-reuse-host-execute` | **Blocked** | Traverse Project 1 ticket `bundle-embedder-wasi-proc-exit-success` (issue #1240) — BundleEmbedder still fails WASI `proc_exit(0)` on 1.3.2 | | `two-app-reuse-lifecycle` | **Done** (#283) | Fixture pin-flip + documented deprecation for meeting-notes + loop (not BundleEmbedder; not production release-train) | Full gap table + wave notes: [`docs/production-reference-plan.md`](docs/production-reference-plan.md). diff --git a/apps/llm-mcp-reference/README.md b/apps/llm-mcp-reference/README.md index 537d679..f68fd8b 100644 --- a/apps/llm-mcp-reference/README.md +++ b/apps/llm-mcp-reference/README.md @@ -53,7 +53,7 @@ Stronger isolation path: prepare registry deps into a **host-owned verified cach See [`mode-b/README.md`](mode-b/README.md), [`mode-b/mcp.json.example`](mode-b/mcp.json.example), and fail-closed [`mode-b/serve.sh`](mode-b/serve.sh). -**Honest status:** Spec 520 library APIs shipped in Traverse (#860). The Mode B MCP host CLI is **not** shipped (Traverse [#1242](https://github.com/traverse-framework/Traverse/issues/1242)). App-Refs ticket `llm-mcp-embedded-host` is **Future**. Mode A is the runnable Spec 119 LLM path; Mode B launcher exits non-zero until that host exists. +**Honest status:** Spec 520 library APIs shipped in Traverse (#860). The Mode B MCP host CLI is **not** shipped (Traverse Project 1 ticket-id `implement-mode-b-embedded-mcp-host`, issue [#1242](https://github.com/traverse-framework/Traverse/issues/1242)). App-Refs ticket `llm-mcp-embedded-host` is **Future**. Mode A is the runnable Spec 119 LLM path; Mode B launcher exits non-zero until that host exists. Optional bearer token (execution commands): diff --git a/docs/llm-reference-apps-plan.md b/docs/llm-reference-apps-plan.md index 920dd95..0c81737 100644 --- a/docs/llm-reference-apps-plan.md +++ b/docs/llm-reference-apps-plan.md @@ -76,7 +76,7 @@ Shared: | Mode | When | Notes | |---|---|---| | **A. MCP stdio → local Traverse** (v1 default) | Developer laptop / agent IDE | Spec 119 Mode A **live** under `apps/llm-mcp-reference/mode-a/` (`TRAVERSE_MCP_REGISTRY_CACHE` + `serve.sh`). Host shipped on Traverse main ([#1241](https://github.com/traverse-framework/Traverse/issues/1241)/[#1252](https://github.com/traverse-framework/Traverse/pull/1252)); tagged **v0.10.0** is still expedition-only without that merge. Bare `traverse-mcp stdio` without the cache env remains expedition bootstrap only. | -| **B. MCP → embedded host in a sidecar process** | Stronger product isolation | **Scaffolded** under `apps/llm-mcp-reference/mode-b/` (Spec 520 prepare/cache docs + fail-closed launcher). Mode B host CLI **not shipped** — Traverse [#1242](https://github.com/traverse-framework/Traverse/issues/1242). App-Refs ticket `llm-mcp-embedded-host` is **Future** | +| **B. MCP → embedded host in a sidecar process** | Stronger product isolation | **Scaffolded** under `apps/llm-mcp-reference/mode-b/` (Spec 520 prepare/cache docs + fail-closed launcher). Mode B host CLI **not shipped** — Traverse Project 1 ticket-id `implement-mode-b-embedded-mcp-host` (issue [#1242](https://github.com/traverse-framework/Traverse/issues/1242)). App-Refs ticket `llm-mcp-embedded-host` is **Future** | | **C. Remote MCP gateway** | Multi-tenant SaaS | Future; needs auth/tenancy — not this slice | v1 documents **Mode A** only. Do not revive HTTP `traverse-cli serve` as the production architecture for primary OS shells; MCP stdio is a **separate agent façade**, not a replacement for embedded Web/iOS/Android clients. @@ -93,7 +93,7 @@ v1 documents **Mode A** only. Do not revive HTTP `traverse-cli serve` as the pro | `llm-mcp-grok-adapter` | Grok tool-calling mapping | Future / Ready when API stable | | `llm-mcp-mode-a-spec119-scaffold` | Spec 119 Mode A consumer (fail-closed serve + prepare + MCP example) | Done (#271) | | `llm-mcp-traverse-starter-catalog` | Discover/execute kit capabilities via Mode A public registry discovery | **Done** — Mode A host on Traverse main (#1241/#1252); App-Refs prepare/serve wired; live evidence for `core.normalize-participants` (Loop WF1). FR-007: no kit content groups. Additional pins (`meeting-notes.process`, `traverse-starter.process`) join when hosts prepare those digests into the same cache. | -| `llm-mcp-embedded-host` | Mode B embedded prepare/cache for MCP host | Scaffold Done (#268); **Future** until Traverse [#1242](https://github.com/traverse-framework/Traverse/issues/1242) (Spec 520 host CLI). Absorbed Mode B slice of cancelled umbrella `llm-mcp-0-10-live-cutover` | +| `llm-mcp-embedded-host` | Mode B embedded prepare/cache for MCP host | Scaffold Done (#268); **Future** until Traverse Project 1 ticket-id `implement-mode-b-embedded-mcp-host` (issue [#1242](https://github.com/traverse-framework/Traverse/issues/1242), Spec 520 host CLI). Absorbed Mode B slice of cancelled umbrella `llm-mcp-0-10-live-cutover` | | `llm-mcp-0-10-live-cutover` | Re-verify Mode A kit execute + Mode B host after Traverse v0.10.0 pin | **Done (absorbed)** — Mode A live proof stays on `llm-mcp-traverse-starter-catalog` (#1241); Mode B on `llm-mcp-embedded-host` Future (#1242); pin Done (#292) | ## Success criteria (plan slice) diff --git a/docs/two-app-reuse-contract.md b/docs/two-app-reuse-contract.md index 6bdf086..81cd227 100644 --- a/docs/two-app-reuse-contract.md +++ b/docs/two-app-reuse-contract.md @@ -91,7 +91,7 @@ bash scripts/ci/two_app_reuse_execute.sh `two_app_reuse_execute.sh` prepares both dest trees from the published 1.3.2 fixture only (no `$TRAVERSE_REPO` example trees — CI pins Traverse v0.10.0; evidence stays fixture-only). It then executes those bytes with wasmtime. -Host CLI execute via public `BundleEmbedder` (`meeting-notes-cli` / `loop-cli`) is ticket `two-app-reuse-host-execute`. Verified against Traverse **v0.10.0**: wasmtime succeeds on the same 1.3.2 bytes, but BundleEmbedder still returns `registered artifact execution failed` for this WASI `proc_exit(0)` agent — tracked upstream as [Traverse #1240](https://github.com/traverse-framework/traverse/issues/1240). Do not wrap the agent or invent substitute WASM in App-Refs. +Host CLI execute via public `BundleEmbedder` (`meeting-notes-cli` / `loop-cli`) is ticket `two-app-reuse-host-execute`. Verified against Traverse **v0.10.0**: wasmtime succeeds on the same 1.3.2 bytes, but BundleEmbedder still returns `registered artifact execution failed` for this WASI `proc_exit(0)` agent — tracked upstream as Traverse Project 1 ticket-id `bundle-embedder-wasi-proc-exit-success` (issue [#1240](https://github.com/traverse-framework/traverse/issues/1240) on [Project 1](https://github.com/orgs/traverse-framework/projects/1)). Do not wrap the agent or invent substitute WASM in App-Refs. ## Downstream @@ -99,7 +99,7 @@ Host CLI execute via public `BundleEmbedder` (`meeting-notes-cli` / `loop-cli`) |---|---| | `#286` `two-app-reuse-execute` | Align meeting-notes pin; execute both apps; publish digest-equal evidence (Done) | | `#287` `two-app-reuse-execute-ci` | Fixture-only CI evidence (Done) | -| `two-app-reuse-host-execute` | Public BundleEmbedder CLI execute — Blocked on Traverse #1240 | +| `two-app-reuse-host-execute` | Public BundleEmbedder CLI execute — Blocked on Traverse Project 1 ticket-id `bundle-embedder-wasi-proc-exit-success` | | `#283` `two-app-reuse-lifecycle` | Fixture pin-flip + documented deprecation for the same pair (Done — fixture-only; **not** production release-train; **not** BundleEmbedder). See below and `docs/decision-log.md` 2026-09-05 | ## Lifecycle (fixture-only) — `two-app-reuse-lifecycle` @@ -109,7 +109,7 @@ Host CLI execute via public `BundleEmbedder` (`meeting-notes-cli` / `loop-cli`) **Non-claims (mandatory):** - This is **not** a production registry release-train proof (no new public `meeting-notes.process` publish required). -- This is **not** a BundleEmbedder / `meeting-notes-cli` / `loop-cli` host proof (`two-app-reuse-host-execute` / Traverse #1240). +- This is **not** a BundleEmbedder / `meeting-notes-cli` / `loop-cli` host proof (`two-app-reuse-host-execute` / Traverse ticket-id `bundle-embedder-wasi-proc-exit-success`). - App-References does **not** author WASM or invent registry deprecation policy. ### Fixture procedure diff --git a/scripts/ci/fixtures/two-app-reuse/lifecycle/catalog.json b/scripts/ci/fixtures/two-app-reuse/lifecycle/catalog.json index 9df65d7..c244c25 100644 --- a/scripts/ci/fixtures/two-app-reuse/lifecycle/catalog.json +++ b/scripts/ci/fixtures/two-app-reuse/lifecycle/catalog.json @@ -4,7 +4,7 @@ "scope": "fixture-only", "non_claims": [ "Not a production registry release-train proof.", - "Not a BundleEmbedder / host-CLI execute proof (see two-app-reuse-host-execute / Traverse #1240).", + "Not a BundleEmbedder / host-CLI execute proof (see two-app-reuse-host-execute / Traverse ticket-id bundle-embedder-wasi-proc-exit-success).", "App-References does not author meeting-notes.process WASM or invent registry deprecation policy." ], "releases": { diff --git a/scripts/ci/fixtures/two-app-reuse/lifecycle/evidence.json b/scripts/ci/fixtures/two-app-reuse/lifecycle/evidence.json index c31eec0..6ae1bd3 100644 --- a/scripts/ci/fixtures/two-app-reuse/lifecycle/evidence.json +++ b/scripts/ci/fixtures/two-app-reuse/lifecycle/evidence.json @@ -4,7 +4,7 @@ "scope": "fixture-only", "non_claims": [ "Not a production registry release-train proof.", - "Not a BundleEmbedder / host-CLI execute proof (see two-app-reuse-host-execute / Traverse #1240).", + "Not a BundleEmbedder / host-CLI execute proof (see two-app-reuse-host-execute / Traverse ticket-id bundle-embedder-wasi-proc-exit-success).", "App-References does not author meeting-notes.process WASM or invent registry deprecation policy." ], "shared_capability_id": "meeting-notes.process",