From e95ef982036d3f4786ceb0a15b68dfb50a82f99c Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 20:50:32 -0500 Subject: [PATCH 01/61] docs(tess): sync M1 ledger to merged state; M1-V Mos-owned All 10 TESS-M1 tasks merged to main (SEC-001..006 + M1-001/002/003 + OBS-001); mark each done with PR/head/ROR evidence. TESS-M1-V set to in-progress and owned by Mos (Mos runs the M1->M2 gate review directly via its own independent non-author reviewer; orchestrator does not dispatch a competing lane). Record the Mos-locked base=main convention. Refs #707 --- docs/tess/TASKS.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index b536e96..e744332 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -3,22 +3,23 @@ > Mission: `tess-20260712` · Issue: #706 · PRD requirements: `TESS-*` > Orchestrator is sole writer. Workers must not modify this file. > `repo` contains one or more comma-separated repository-relative roots; every listed root must exist before dispatch. +> **BASE CONVENTION (Mos-locked 2026-07-12):** EVERY M1 dispatch targets `base=main` and branches from fresh `origin/main`. Do NOT base on `feat/tess-interaction-agent` — that is the STALE planning branch (merged via #712); basing on it yields `mergeable=False` + intervening-commit noise (cf. #723/SEC-005 re-base). Every dispatch brief must state base=main + branch-from-origin/main. | id | status | description | issue | agent | repo | branch | depends_on | estimate | notes | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | TESS-PLAN-001 | done | Finalize PRD, architecture, authority boundary, threat model, migration inventory, and verification matrix | #706 | sonnet | docs, packages/types, apps/gateway | feat/tess-interaction-agent | — | 22K | Independent gate PASS after two remediation rounds; completion effective when planning PR merges | -| TESS-M1-SEC-001 | not-started | Enforce command scopes/roles and durable exact-action approval for privileged/destructive commands | #707 | codex | apps/gateway | fix/tess-command-authz | TESS-PLAN-001 | 25K | TESS-SEC-002; security TDD | -| TESS-M1-SEC-002 | not-started | Enforce owner/tenant binding on session list/read/attach/send/terminate across REST and WS | #707 | codex | apps/gateway | fix/tess-session-ownership | TESS-PLAN-001 | 30K | TESS-SEC-003; security TDD | -| TESS-M1-SEC-003 | not-started | Bind MCP actor/tenant to authenticated context and add per-tool scopes | #707 | codex | apps/gateway | fix/tess-mcp-identity | TESS-PLAN-001 | 22K | TESS-SEC-004; security TDD | -| TESS-M1-SEC-004 | not-started | Add authenticated Discord service ingress, allowlists, correlation and replay protection | #707 | codex | plugins/discord, apps/gateway | fix/tess-discord-ingress | TESS-PLAN-001 | 28K | TESS-SEC-005; security TDD | -| TESS-M1-SEC-005 | not-started | Redact/classify secret and PII before persistence/egress; harden provider login flow | #707 | codex | apps/gateway, packages/log | fix/tess-redaction | TESS-PLAN-001 | 28K | TESS-SEC-006; seeded canary tests | -| TESS-M1-SEC-006 | not-started | Scope session GC/retention or separate authorized global retention job | #707 | codex | apps/gateway, packages/log | fix/tess-session-gc-scope | TESS-PLAN-001 | 18K | TESS-SEC-009; isolation TDD | -| TESS-M1-001 | not-started | Define AgentRuntimeProvider, capabilities, session tree, normalized stream events/errors, attach semantics | #707 | codex | packages/types, packages/agent | feat/tess-runtime-contract | TESS-PLAN-001 | 25K | TESS-ARP-001, TESS-TRN-001; contract TDD | -| TESS-M1-002 | not-started | Implement provider registry/service with immutable actor scope, approval, audit and correlation boundaries | #707 | codex | apps/gateway, packages/agent | feat/tess-provider-registry | TESS-M1-001,TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003 | 30K | TESS-SEC-001..004,007; security TDD | -| TESS-M1-003 | not-started | Implement tmux/fleet runtime provider and safe attach/message/terminate capability policy | #707 | codex | packages/mosaic, packages/agent | feat/tess-fleet-provider | TESS-M1-002 | 30K | TESS-FLT-001; exact target/identity tests | -| TESS-M1-OBS-001 | not-started | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability | TESS-M1-002 | 24K | TESS-OBS-001; no credential material | -| TESS-M1-V | not-started | Independent architecture/security review and complete contract/abuse-suite verification | #707 | sonnet | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 | -| TESS-M2-001 | not-started | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | codex | packages/mosaic/framework | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test | +| TESS-M1-SEC-001 | done | Enforce command scopes/roles and durable exact-action approval for privileged/destructive commands | #707 | codex | apps/gateway | fix/tess-command-authz | TESS-PLAN-001 | 25K | TESS-SEC-002; diskhygiene-terra; PR #718 head e3d98d73 MERGED (ROR 16829) | +| TESS-M1-SEC-002 | done | Enforce owner/tenant binding on session list/read/attach/send/terminate across REST and WS | #707 | codex | apps/gateway | fix/tess-session-ownership | TESS-PLAN-001 | 30K | TESS-SEC-003; coder0; PR #715 head 43ffbe7b MERGED (ROR 16808) | +| TESS-M1-SEC-003 | done | Bind MCP actor/tenant to authenticated context and add per-tool scopes | #707 | codex | apps/gateway | fix/tess-mcp-identity | TESS-PLAN-001 | 22K | TESS-SEC-004; coder1; PR #717 head 9ab776f9 MERGED (ROR 16819) | +| TESS-M1-SEC-004 | done | Add authenticated Discord service ingress, allowlists, correlation and replay protection | #707 | codex | plugins/discord, apps/gateway | fix/tess-discord-ingress | TESS-PLAN-001 | 28K | TESS-SEC-005; coder4; PR #716 head 55ae77b6 MERGED (ROR 16830) | +| TESS-M1-SEC-005 | done | Redact/classify secret and PII before persistence/egress; harden provider login flow | #707 | codex | apps/gateway, packages/log | fix/tess-redaction | TESS-PLAN-001 | 28K | TESS-SEC-006; coder1 (Mos-routed from blocked wrapfix-terra); mis-based #723 CLOSED superseded. MERGED to main: PR #725 head 726f7ab7 (ROR 16880). Verified chat persistence + egress redaction hooks; canary tests split-secret/private-key/overflow/persistence classification; provider login no auth URL/raw token in chat output | +| TESS-M1-SEC-006 | done | Scope session GC/retention or separate authorized global retention job | #707 | codex | apps/gateway, packages/log | fix/tess-session-gc-scope | TESS-PLAN-001 | 18K | TESS-SEC-009; coder4; PR #720 base=main. MERGED to main: head 37be090e (ROR 16861). Both blockers fixed: glob metachar sessionIds escaped+regression; durable approval survives GC pass (create→GC→key remains→authz succeeds); /gc disabled, per-session log demotion, no fullCollect/sweepOrphans entry, legacy repeatable GC schedule removed | +| TESS-M1-001 | done | Define AgentRuntimeProvider, capabilities, session tree, normalized stream events/errors, attach semantics | #707 | codex | packages/types, packages/agent | feat/tess-runtime-contract | TESS-PLAN-001 | 25K | TESS-ARP-001, TESS-TRN-001; wrapfix-terra; PR #719 head 5c42e67f MERGED (ROR 16813) | +| TESS-M1-002 | done | Implement provider registry/service with immutable actor scope, approval, audit and correlation boundaries | #707 | codex | apps/gateway, packages/agent | feat/tess-provider-registry | TESS-M1-001,TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003 | 30K | TESS-SEC-001..004,007; coder0; PR #722 head c529022d MERGED (ROR 16849) | +| TESS-M1-003 | done | Implement tmux/fleet runtime provider and safe attach/message/terminate capability policy | #707 | codex | packages/mosaic, packages/agent | feat/tess-fleet-provider | TESS-M1-002 | 30K | TESS-FLT-001; coder0; PR #724 base=main. MERGED to main: head 355d814f (ROR 16868). HARD BOUNDARY verified: writes/control default-deny before tmux probing unless write authority permits; final exact-target authz after roster/socket/runtime verification; exact target/prefix/runtime-drift tests; read-only attach with immutable scope handles; empty-msg/default-deny/unverified-target tests; no credential material | +| TESS-M1-OBS-001 | done | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability-terra | TESS-M1-002 | 24K | TESS-OBS-001; SOLE owner=diskhygiene-terra. MERGED to main at REBASED head: PR #726 head 53f5414 (re-ROR comment 16886, prior 16881@adfa5c06 discarded after head move), CI 1723 green. Both @mosaicstack/log barrel exports coexist (redaction + runtime-audit), metadata-only/SHA-256 audit intact, fail-closed audit-before-side-effects intact, safe status/effective-policy/readiness | +| TESS-M1-V | in-progress | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2. ALL deps done+merged to main (2026-07-12). OWNED BY MOS (Mos-directed 2026-07-12): Mos is running the M1→M2 gate review directly via its own independent non-author reviewer — orchestrator does NOT dispatch a competing M1-V lane; prior reviewer-lane dispatch RECALLED. Scope: re-run FULL merged M1 surface as integrated whole (runtime contracts + all 6 security controls + fleet-provider authority boundary + observability) + confirm no cross-PR regression, esp. packages/log barrel union from #725/#726 serialization. PASS unlocks M2 (#708); on Mos PASS signal, orchestrator fans out TESS-M2-001 then TESS-M2-002 | +| TESS-M2-001 | not-started | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | codex | packages/mosaic/framework | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change. Carry this AC into the M2 dispatch brief. | | TESS-M2-002 | not-started | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | codex | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | -- 2.49.1 From 5119f5f3e585817dd43285fd4c0ab1a46ae647d3 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 20:54:32 -0500 Subject: [PATCH 02/61] docs(tess): M1-V PASS/done; M2-001 in-progress (coder0); add FUP-001 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TESS-M1-V gate PASS (Mos-owned independent reviewer; 5 priority seams verified live, 60+ tests green) -> done. TESS-M2-001 in-progress, Mos-dispatched directly to coder0 (feat/tess-pi-service, name-as-config invariant, Nova distinct-name exit gate). TESS-M2-002 stays blocked on M2-001. Add non-gating TESS-M1-FUP-001: RuntimeProviderService.execute() mis-classifies provider-thrown authz errors as failed/provider_error instead of denied/policy_denied — land before/with TESS-M3-001. Refs #707 #708 --- docs/tess/TASKS.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index e744332..24b47b2 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -18,8 +18,9 @@ | TESS-M1-002 | done | Implement provider registry/service with immutable actor scope, approval, audit and correlation boundaries | #707 | codex | apps/gateway, packages/agent | feat/tess-provider-registry | TESS-M1-001,TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003 | 30K | TESS-SEC-001..004,007; coder0; PR #722 head c529022d MERGED (ROR 16849) | | TESS-M1-003 | done | Implement tmux/fleet runtime provider and safe attach/message/terminate capability policy | #707 | codex | packages/mosaic, packages/agent | feat/tess-fleet-provider | TESS-M1-002 | 30K | TESS-FLT-001; coder0; PR #724 base=main. MERGED to main: head 355d814f (ROR 16868). HARD BOUNDARY verified: writes/control default-deny before tmux probing unless write authority permits; final exact-target authz after roster/socket/runtime verification; exact target/prefix/runtime-drift tests; read-only attach with immutable scope handles; empty-msg/default-deny/unverified-target tests; no credential material | | TESS-M1-OBS-001 | done | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability-terra | TESS-M1-002 | 24K | TESS-OBS-001; SOLE owner=diskhygiene-terra. MERGED to main at REBASED head: PR #726 head 53f5414 (re-ROR comment 16886, prior 16881@adfa5c06 discarded after head move), CI 1723 green. Both @mosaicstack/log barrel exports coexist (redaction + runtime-audit), metadata-only/SHA-256 audit intact, fail-closed audit-before-side-effects intact, safe status/effective-policy/readiness | -| TESS-M1-V | in-progress | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2. ALL deps done+merged to main (2026-07-12). OWNED BY MOS (Mos-directed 2026-07-12): Mos is running the M1→M2 gate review directly via its own independent non-author reviewer — orchestrator does NOT dispatch a competing M1-V lane; prior reviewer-lane dispatch RECALLED. Scope: re-run FULL merged M1 surface as integrated whole (runtime contracts + all 6 security controls + fleet-provider authority boundary + observability) + confirm no cross-PR regression, esp. packages/log barrel union from #725/#726 serialization. PASS unlocks M2 (#708); on Mos PASS signal, orchestrator fans out TESS-M2-001 then TESS-M2-002 | -| TESS-M2-001 | not-started | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | codex | packages/mosaic/framework | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change. Carry this AC into the M2 dispatch brief. | +| TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | +| TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | +| TESS-M2-001 | in-progress | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. Mos-dispatched DIRECTLY to coder0 (2026-07-12) — orchestrator tracks, does NOT dispatch a competing lane. Branch feat/tess-pi-service from fresh origin/main 86a50138; first TDD packages/mosaic/src/fleet/tess-service-profile.test.ts. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change (coder0 enforcing via a 'Nova' provisioning case). base=main, PR-open-STOP, independent non-author ROR then Mos merges. | | TESS-M2-002 | not-started | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | codex | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | -- 2.49.1 From 2bc6ed816561e83b63a0746d7557e8dcbc0ac126 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 21:39:58 -0500 Subject: [PATCH 03/61] docs(tess): TESS-M2-001 PR #728 open; ROR routed to reviewer Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 24b47b2..d1e5b90 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -20,7 +20,7 @@ | TESS-M1-OBS-001 | done | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability-terra | TESS-M1-002 | 24K | TESS-OBS-001; SOLE owner=diskhygiene-terra. MERGED to main at REBASED head: PR #726 head 53f5414 (re-ROR comment 16886, prior 16881@adfa5c06 discarded after head move), CI 1723 green. Both @mosaicstack/log barrel exports coexist (redaction + runtime-audit), metadata-only/SHA-256 audit intact, fail-closed audit-before-side-effects intact, safe status/effective-policy/readiness | | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | -| TESS-M2-001 | in-progress | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. Mos-dispatched DIRECTLY to coder0 (2026-07-12) — orchestrator tracks, does NOT dispatch a competing lane. Branch feat/tess-pi-service from fresh origin/main 86a50138; first TDD packages/mosaic/src/fleet/tess-service-profile.test.ts. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change (coder0 enforcing via a 'Nova' provisioning case). base=main, PR-open-STOP, independent non-author ROR then Mos merges. | +| TESS-M2-001 | in-progress | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. Mos-dispatched DIRECTLY to coder0 (2026-07-12) — orchestrator tracks, does NOT dispatch a competing lane. Branch feat/tess-pi-service from fresh origin/main 86a50138; first TDD packages/mosaic/src/fleet/tess-service-profile.test.ts. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change (coder0 enforcing via a 'Nova' provisioning case). base=main, PR-open-STOP, independent non-author ROR then Mos merges. PR #728 OPEN (base=main, mergeable=true, head c58e86e2); coder0 root typecheck/lint/format/test + fleet-shell suites green + Codex code/security approved; ROR routed to reviewer lane (non-author) at exact head c58e86e2 — awaiting VERIFIED APPROVE + CI, then Mos merges. | | TESS-M2-002 | not-started | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | codex | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | -- 2.49.1 From c596ec7b8918f50806cd866ae667ecf8b8b4c90a Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 21:45:47 -0500 Subject: [PATCH 04/61] =?UTF-8?q?docs(tess):=20TESS-M2-001=20#728=20mergea?= =?UTF-8?q?ble=20=E2=80=94=20ROR=20APPROVE=2016905,=20CI=201728=20green?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index d1e5b90..5333281 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -20,7 +20,7 @@ | TESS-M1-OBS-001 | done | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability-terra | TESS-M1-002 | 24K | TESS-OBS-001; SOLE owner=diskhygiene-terra. MERGED to main at REBASED head: PR #726 head 53f5414 (re-ROR comment 16886, prior 16881@adfa5c06 discarded after head move), CI 1723 green. Both @mosaicstack/log barrel exports coexist (redaction + runtime-audit), metadata-only/SHA-256 audit intact, fail-closed audit-before-side-effects intact, safe status/effective-policy/readiness | | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | -| TESS-M2-001 | in-progress | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. Mos-dispatched DIRECTLY to coder0 (2026-07-12) — orchestrator tracks, does NOT dispatch a competing lane. Branch feat/tess-pi-service from fresh origin/main 86a50138; first TDD packages/mosaic/src/fleet/tess-service-profile.test.ts. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change (coder0 enforcing via a 'Nova' provisioning case). base=main, PR-open-STOP, independent non-author ROR then Mos merges. PR #728 OPEN (base=main, mergeable=true, head c58e86e2); coder0 root typecheck/lint/format/test + fleet-shell suites green + Codex code/security approved; ROR routed to reviewer lane (non-author) at exact head c58e86e2 — awaiting VERIFIED APPROVE + CI, then Mos merges. | +| TESS-M2-001 | in-progress | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. Mos-dispatched DIRECTLY to coder0 (2026-07-12) — orchestrator tracks, does NOT dispatch a competing lane. Branch feat/tess-pi-service from fresh origin/main 86a50138; first TDD packages/mosaic/src/fleet/tess-service-profile.test.ts. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change (coder0 enforcing via a 'Nova' provisioning case). base=main, PR-open-STOP, independent non-author ROR then Mos merges. PR #728 OPEN (base=main, mergeable=true, head c58e86e2); coder0 root typecheck/lint/format/test + fleet-shell suites green + Codex code/security approved; ROR routed to reviewer lane (non-author) at exact head c58e86e2. MERGEABLE: VERIFIED APPROVE reviewer-of-record head c58e86e2 (comment 16905), CI pipeline 1728 green — reviewer verified name-as-config (MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool), Nova zero-code-change provisioning test, GPT-5.6 Sol high fail-fast policy, credential-safe effective-policy output, no live credential material. Awaiting Mos merge (completion = merged). | | TESS-M2-002 | not-started | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | codex | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | -- 2.49.1 From b3d8912b4de1552da10259475ddbc155a38db448 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 22:01:02 -0500 Subject: [PATCH 05/61] docs(tess): M2-001 done (merged #728); M2-002 in-progress (coder0) Refs #708 --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 5333281..741147c 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -20,8 +20,8 @@ | TESS-M1-OBS-001 | done | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability-terra | TESS-M1-002 | 24K | TESS-OBS-001; SOLE owner=diskhygiene-terra. MERGED to main at REBASED head: PR #726 head 53f5414 (re-ROR comment 16886, prior 16881@adfa5c06 discarded after head move), CI 1723 green. Both @mosaicstack/log barrel exports coexist (redaction + runtime-audit), metadata-only/SHA-256 audit intact, fail-closed audit-before-side-effects intact, safe status/effective-policy/readiness | | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | -| TESS-M2-001 | in-progress | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; explicit AC-TESS-03 test. Mos-dispatched DIRECTLY to coder0 (2026-07-12) — orchestrator tracks, does NOT dispatch a competing lane. Branch feat/tess-pi-service from fresh origin/main 86a50138; first TDD packages/mosaic/src/fleet/tess-service-profile.test.ts. NAME-AS-CONFIG INVARIANT (MISSION-MANIFEST #6, b01fdf11): agent name = config parameter (default example only), NO hardcoded key/identifier/default; profile carries name as DATA; M2 exit gate must prove a DISTINCT name provisions cleanly with ZERO code change (coder0 enforcing via a 'Nova' provisioning case). base=main, PR-open-STOP, independent non-author ROR then Mos merges. PR #728 OPEN (base=main, mergeable=true, head c58e86e2); coder0 root typecheck/lint/format/test + fleet-shell suites green + Codex code/security approved; ROR routed to reviewer lane (non-author) at exact head c58e86e2. MERGEABLE: VERIFIED APPROVE reviewer-of-record head c58e86e2 (comment 16905), CI pipeline 1728 green — reviewer verified name-as-config (MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool), Nova zero-code-change provisioning test, GPT-5.6 Sol high fail-fast policy, credential-safe effective-policy output, no live credential material. Awaiting Mos merge (completion = merged). | -| TESS-M2-002 | not-started | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | codex | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD | +| TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review) | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 7dc9d3362d0d7582eee9b7bf72643ae5e5652bf7 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 23:12:06 -0500 Subject: [PATCH 06/61] docs(tess): TESS-M2-002 PR #729 open; ROR routed to reviewer Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 741147c..791e9c7 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review) | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60 — awaiting VERIFIED APPROVE + CI, then Mos merges. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 74ae91947dcf4bc8482e9dc906595b4a606d4260 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 23:23:32 -0500 Subject: [PATCH 07/61] =?UTF-8?q?docs(tess):=20TESS-M2-002=20#729=20CHANGE?= =?UTF-8?q?S=20REQUESTED=20=E2=80=94=203=20blockers=20to=20coder0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 791e9c7..fef7d18 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60 — awaiting VERIFIED APPROVE + CI, then Mos merges. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From ce4735bf892ae4e6febeea2613de610ca9df8a93 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 23:38:12 -0500 Subject: [PATCH 08/61] docs(tess): TESS-M2-002 #729 remediated (head 444988d2); CI 1731 running Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index fef7d18..8a1df6c 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 RUNNING on new head — re-ROR to reviewer once 1731 green. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 44caa3c44bdd02d9710baa2a0111b963a7cc4be9 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 23:43:06 -0500 Subject: [PATCH 09/61] docs(tess): TESS-M2-002 #729 CI 1731 green; re-ROR routed at 444988d2 Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 8a1df6c..d6dd2bf 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 RUNNING on new head — re-ROR to reviewer once 1731 green. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. Awaiting fresh VERIFIED APPROVE, then Mos merges. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 6f9ed7b67e21e001b5d44e03341a8954fd90c766 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sun, 12 Jul 2026 23:46:09 -0500 Subject: [PATCH 10/61] =?UTF-8?q?docs(tess):=20TESS-M2-002=20#729=20re-ROR?= =?UTF-8?q?=20CHANGES=20(16925)=20=E2=80=94=202=20digest=20blockers=20to?= =?UTF-8?q?=20coder0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index d6dd2bf..6627fc4 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. Awaiting fresh VERIFIED APPROVE, then Mos merges. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 2c9662a9774e53fb4be17592950ba4ffc2972933 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:01:22 -0500 Subject: [PATCH 11/61] docs(tess): TESS-M2-002 #729 round-2 remediated (head cbdc38af); CI 1732 running Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 6627fc4..495b078 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 RUNNING on cbdc38af — re-ROR only after terminal green. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 0ffa9040767dba779c718899f433ebeef72cacea Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:08:35 -0500 Subject: [PATCH 12/61] docs(tess): TESS-M2-002 #729 CI 1732 green on cbdc38af; re-ROR routed Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 495b078..7ff9d12 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 RUNNING on cbdc38af — re-ROR only after terminal green. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. Head confirmed unchanged at green SHA + PR mergeable=true; re-ROR routed to reviewer (non-author) at exact head cbdc38af — prior REQUEST CHANGES 16925 void at old head 444988d2. Awaiting round-2 reviewer verdict. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From c77cc3f5a513552c85f8a14b180a281e07125cf2 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:10:57 -0500 Subject: [PATCH 13/61] docs(tess): TESS-M2-002 #729 ROR APPROVE @cbdc38af (comment 16933); mergeable, awaiting Mos merge Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 7ff9d12..fd121d3 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. Head confirmed unchanged at green SHA + PR mergeable=true; re-ROR routed to reviewer (non-author) at exact head cbdc38af — prior REQUEST CHANGES 16925 void at old head 444988d2. Awaiting round-2 reviewer verdict. | +| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head cbdc38af954d49016b5fdc4a6dab0497317b6a1c (visible Gitea comment 16933). Head confirmed unchanged at ROR target + PR mergeable=true. Reviewer verified checkpoint HMAC digest + collision regressions, recovery no-duplicate-side-effect, sealed/redacted at-rest payloads, scoped dispatch, agent-bound generic namespace; CI 1732 steps ci-postgres/install/sanitization/typecheck/lint/format/test all green; no merge by reviewer (pr-review wrapper self-approve blocked → recorded as verified PR comment). ROR-APPROVED + MERGEABLE — awaiting Mos merge (Mos owns all merges). On merge → TESS-M2-002 done, TESS-M2-V (M2→M3) becomes next gate. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From 8cbb70cccb6abe4679418b21f2339442b5335cc7 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:15:34 -0500 Subject: [PATCH 14/61] =?UTF-8?q?docs(tess):=20TESS-M2-002=20done=20?= =?UTF-8?q?=E2=80=94=20#729=20MERGED=20(99a2d0fc);=20M2=20converged,=20M2-?= =?UTF-8?q?V=20Mos-owned?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #708 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index fd121d3..9543d16 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -21,7 +21,7 @@ | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | -| TESS-M2-002 | in-progress | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head cbdc38af954d49016b5fdc4a6dab0497317b6a1c (visible Gitea comment 16933). Head confirmed unchanged at ROR target + PR mergeable=true. Reviewer verified checkpoint HMAC digest + collision regressions, recovery no-duplicate-side-effect, sealed/redacted at-rest payloads, scoped dispatch, agent-bound generic namespace; CI 1732 steps ci-postgres/install/sanitization/typecheck/lint/format/test all green; no merge by reviewer (pr-review wrapper self-approve blocked → recorded as verified PR comment). ROR-APPROVED + MERGEABLE — awaiting Mos merge (Mos owns all merges). On merge → TESS-M2-002 done, TESS-M2-V (M2→M3) becomes next gate. | +| TESS-M2-002 | done | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head cbdc38af954d49016b5fdc4a6dab0497317b6a1c (visible Gitea comment 16933). Head confirmed unchanged at ROR target + PR mergeable=true. Reviewer verified checkpoint HMAC digest + collision regressions, recovery no-duplicate-side-effect, sealed/redacted at-rest payloads, scoped dispatch, agent-bound generic namespace; CI 1732 steps ci-postgres/install/sanitization/typecheck/lint/format/test all green; no merge by reviewer (pr-review wrapper self-approve blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 99a2d0fc, final APPROVE at head cbdc38af (3-round reviewer loop 16917→16925→16933). M2 build phase CONVERGED (M2-001 #728 + M2-002 #729). TESS-M2-V (M2→M3 gate, AC-TESS-03/06) now running as Mos-owned independent Sonnet reviewer (same arrangement as M1-V) — orchestrator does NOT launch a competing review lane; Mos reports verdict. On M2-V PASS, M3 (#709) tasks TESS-M3-001/002 unblock. | | TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | | TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | | TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | -- 2.49.1 From d8fae0d1ce9bfe650390db9871ec75de259f2af8 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:26:01 -0500 Subject: [PATCH 15/61] docs(tess): TESS-M2-V PASS (done); M3-001/002 in-progress (Mos-dispatched); +M2-FUP-001/002/003 Refs #708 #709 --- docs/tess/TASKS.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 9543d16..18a6f26 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -22,9 +22,12 @@ | TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | | TESS-M2-002 | done | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head cbdc38af954d49016b5fdc4a6dab0497317b6a1c (visible Gitea comment 16933). Head confirmed unchanged at ROR target + PR mergeable=true. Reviewer verified checkpoint HMAC digest + collision regressions, recovery no-duplicate-side-effect, sealed/redacted at-rest payloads, scoped dispatch, agent-bound generic namespace; CI 1732 steps ci-postgres/install/sanitization/typecheck/lint/format/test all green; no merge by reviewer (pr-review wrapper self-approve blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 99a2d0fc, final APPROVE at head cbdc38af (3-round reviewer loop 16917→16925→16933). M2 build phase CONVERGED (M2-001 #728 + M2-002 #729). TESS-M2-V (M2→M3 gate, AC-TESS-03/06) now running as Mos-owned independent Sonnet reviewer (same arrangement as M1-V) — orchestrator does NOT launch a competing review lane; Mos reports verdict. On M2-V PASS, M3 (#709) tasks TESS-M3-001/002 unblock. | -| TESS-M2-V | not-started | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | sonnet | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3; AC-TESS-03/06 | -| TESS-M3-001 | not-started | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | codex | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001 | -| TESS-M3-002 | not-started | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | codex | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001 | +| TESS-M2-V | done | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | mos-reviewer | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3 = PASS (Mos-owned independent Sonnet reviewer at merged main 99a2d0fc, 2026-07-13). All 5 criteria verified with live test runs: model/policy fail-fast + credential-safe; restart recovery exactly-once; keyed-HMAC pre-redaction idempotency; compaction/handoff survival; name-as-config (interaction_* everywhere, Nova tests). Orchestrator did NOT run a competing lane (same as M1-V). M3 (#709) UNBLOCKED. Non-gating follow-ups from this review captured as TESS-M2-FUP-001/002/003 below. | +| TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | +| TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | +| TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. | +| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From 170ceca1c0f84483605e13b4a0f1693fc3b932d6 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:44:57 -0500 Subject: [PATCH 16/61] docs(tess): TESS-M3-002 PR #731 open (head de74e46a); CI 1735 running, ROR routed Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 18a6f26..a633fdc 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -27,7 +27,7 @@ | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | | TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. | -| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. | +| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 RUNNING on de74e46a; ROR routed to reviewer (non-author) at exact head — post only at terminal green. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From 3468babbc96fa03c20fbc7a1b993784c5ad65020 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:47:29 -0500 Subject: [PATCH 17/61] docs(tess): TESS-M3-001 PR #730 open (head 25ed3676); ROR REQUEST CHANGES 16951, 2 blockers routed Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index a633fdc..e55fcc8 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. | | TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 RUNNING on de74e46a; ROR routed to reviewer (non-author) at exact head — post only at terminal green. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 4ed98c26e9fc5bd1feb1740677829b1c6e01c07f Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:50:11 -0500 Subject: [PATCH 18/61] docs(tess): TESS-M3-002 #731 CI 1735 green on de74e46a; reviewer notified to finalize ROR Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index e55fcc8..57a32df 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -27,7 +27,7 @@ | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | | TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. | -| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 RUNNING on de74e46a; ROR routed to reviewer (non-author) at exact head — post only at terminal green. | +| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a; head confirmed unchanged + mergeable=true; reviewer notified CI-gate satisfied to finalize ROR at exact head. Awaiting #731 reviewer verdict. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From cd571f6b6680073f05ca5ead5a52f1b82ae0dfd7 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:52:55 -0500 Subject: [PATCH 19/61] docs(tess): TESS-M3-002 #731 ROR APPROVE @de74e46a (comment 16959); mergeable, awaiting Mos merge Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 57a32df..fa6b72b 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -27,7 +27,7 @@ | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | | TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. | -| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a; head confirmed unchanged + mergeable=true; reviewer notified CI-gate satisfied to finalize ROR at exact head. Awaiting #731 reviewer verdict. | +| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). ROR-APPROVED + MERGEABLE — awaiting Mos merge (Mos owns all merges). On merge → TESS-M3-002 done. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From 72b3bda85f61609db1d76db9d5677d4f30d12d6e Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 00:53:43 -0500 Subject: [PATCH 20/61] =?UTF-8?q?docs(tess):=20TESS-M3-002=20done=20?= =?UTF-8?q?=E2=80=94=20#731=20MERGED=20(8246ee01);=20M3-V=20pends=20M3-001?= =?UTF-8?q?=20#730=20merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index fa6b72b..4e5b2cc 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -27,7 +27,7 @@ | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | | TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. | -| TESS-M3-002 | in-progress | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). ROR-APPROVED + MERGEABLE — awaiting Mos merge (Mos owns all merges). On merge → TESS-M3-002 done. | +| TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From 15d958955ba2ba335da08504bbd30861480acda8 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 01:01:33 -0500 Subject: [PATCH 21/61] docs(tess): TESS-M3-001 #730 round-1 re-ROR REQUEST CHANGES 16968 (head 689d5b68); 2 residuals routed Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 4e5b2cc..7d8145e 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 33cdb738b7d0b251b9895ac2b6c22e44d7ddcd46 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 01:17:02 -0500 Subject: [PATCH 22/61] docs(tess): TESS-M3-001 #730 round-3 re-ROR REQUEST CHANGES 16973 (head 34b82bd2); cross-surface approval-key blocker routed Refs #709 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 7d8145e..46020be 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 4537ae8ba65f8309bf6141923cdc936957a388f5 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 01:36:42 -0500 Subject: [PATCH 23/61] docs(tess): M3-001 #730 round-4 REQUEST CHANGES + round-5 frozen-contract routing --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 46020be..da2c9da 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 1972970de92a92e19c69f2b1db76ca6ea7a71b17 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 03:23:17 -0500 Subject: [PATCH 24/61] docs(tess): M3-001 #730 round-5 (coder0 re-route) head 6af68e76 CI green, ROR routed --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index da2c9da..432e9ae 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. Awaiting reviewer verdict + coder4 stand-down confirmation. HARD STOP at ROR — Mos merges. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 4fbd1e7d5995770157c3821db206a0edb603476a Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 03:25:01 -0500 Subject: [PATCH 25/61] =?UTF-8?q?docs(tess):=20M3-001=20#730=20round-5=20R?= =?UTF-8?q?EQUEST=20CHANGES=20(actor-identity=20seam)=20=E2=86=92=20round-?= =?UTF-8?q?6=20to=20coder0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 432e9ae..2630588 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. Awaiting reviewer verdict + coder4 stand-down confirmation. HARD STOP at ROR — Mos merges. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. HARD STOP at ROR — Mos merges. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 8c4d3fb1a597bb5903e623bef04d979bbb4f96e7 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 03:55:00 -0500 Subject: [PATCH 26/61] docs(tess): M3-001 #730 round-6 head 533e9702 CI 1743 green, ROR routed --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 2630588..6fdf5d9 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. HARD STOP at ROR — Mos merges. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. Awaiting reviewer verdict. HARD STOP at ROR — Mos merges. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 661759fbaa863020b79acf9f5d698e4b20ab6a81 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 03:58:34 -0500 Subject: [PATCH 27/61] =?UTF-8?q?docs(tess):=20M3-001=20#730=20ROUND-6=20A?= =?UTF-8?q?PPROVE=20@533e9702=20(16991)=20=E2=80=94=20mergeable,=20seam=20?= =?UTF-8?q?closed,=20HARD=20STOP=20for=20Mos=20merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 6fdf5d9..212574e 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,7 +26,7 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. Awaiting reviewer verdict. HARD STOP at ROR — Mos merges. | +| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. On merge: mark TESS-M3-001 done; TESS-M3-V (M3→M4 gate) advances (Mos-owned reviewer). | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -- 2.49.1 From 43f68ced4ff6eaf7d6cd3f3a5e83adce2520f78d Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 04:04:20 -0500 Subject: [PATCH 28/61] docs(tess): M3-001 #730 MERGED (squash 84d884b9) = done; M3-V ready (Mos dispatching); M3 converged --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 212574e..f6678d4 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -26,9 +26,9 @@ | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | | TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | -| TESS-M3-001 | in-progress | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. On merge: mark TESS-M3-001 done; TESS-M3-V (M3→M4 gate) advances (Mos-owned reviewer). | +| TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-V | not-started | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4 | +| TESS-M3-V | ready | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4. Dependencies satisfied: M3-001 #730 (squash 84d884b9) + M3-002 #731 (squash 8246ee01) both MERGED. Mos DISPATCHING M3-V now as Mos-owned independent Sonnet checkpoint against merged main (same arrangement as M1-V/M2-V) — orchestrator TRACKS only, does NOT launch a competing review lane. Scope: Discord+CLI same-session E2E, attach, approvals, denial/audit. On PASS → M4 (#710) unblocks. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001 | -- 2.49.1 From 7673e3036c47c6d786186b22d4029a94a5087e00 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 04:15:23 -0500 Subject: [PATCH 29/61] docs(tess): M3-V=FAIL (integration unwired); add TESS-M3-003 (coder0, C1 blocked on Mos ruling); fold M1-FUP-001; log M2-FUP-004 --- docs/tess/TASKS.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index f6678d4..4b23165 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -19,16 +19,18 @@ | TESS-M1-003 | done | Implement tmux/fleet runtime provider and safe attach/message/terminate capability policy | #707 | codex | packages/mosaic, packages/agent | feat/tess-fleet-provider | TESS-M1-002 | 30K | TESS-FLT-001; coder0; PR #724 base=main. MERGED to main: head 355d814f (ROR 16868). HARD BOUNDARY verified: writes/control default-deny before tmux probing unless write authority permits; final exact-target authz after roster/socket/runtime verification; exact target/prefix/runtime-drift tests; read-only attach with immutable scope handles; empty-msg/default-deny/unverified-target tests; no credential material | | TESS-M1-OBS-001 | done | Implement correlation propagation, structured runtime/provider/tool audit, health/readiness and safe effective-policy status | #707 | codex | apps/gateway, packages/agent, packages/log | feat/tess-observability-terra | TESS-M1-002 | 24K | TESS-OBS-001; SOLE owner=diskhygiene-terra. MERGED to main at REBASED head: PR #726 head 53f5414 (re-ROR comment 16886, prior 16881@adfa5c06 discarded after head move), CI 1723 green. Both @mosaicstack/log barrel exports coexist (redaction + runtime-audit), metadata-only/SHA-256 audit intact, fail-closed audit-before-side-effects intact, safe status/effective-policy/readiness | | TESS-M1-V | done | Independent architecture/security review and complete contract/abuse-suite verification | #707 | mos-reviewer | apps/gateway, packages/agent, packages/log, plugins/discord | review/tess-m1 | TESS-M1-SEC-001,TESS-M1-SEC-002,TESS-M1-SEC-003,TESS-M1-SEC-004,TESS-M1-SEC-005,TESS-M1-SEC-006,TESS-M1-003,TESS-M1-OBS-001 | 20K | Gate M2 = PASS (Mos-owned independent non-author reviewer, 2026-07-12): all 5 priority seams verified live, 60+ tests green. M2 (#708) OPEN. Orchestrator did NOT run a competing lane (prior reviewer-lane dispatch recalled). Non-gating follow-up from this review captured as TESS-M1-FUP-001 (execute() authz-error mis-classification), scheduled to land before/with TESS-M3-001 — not now | -| TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now | +| TESS-M1-FUP-001 | not-started | RuntimeProviderService.execute() records provider-thrown authorization errors as failed/provider_error instead of denied/policy_denied | #707 | — | apps/gateway, packages/agent | — | — | 6K | NON-GATING follow-up from M1-V review (2026-07-12). Provider-thrown authz errors (e.g. FleetRuntimeProviderError 'forbidden' from M1-003 write-authority) mis-classify as outcome:'failed'/'provider_error' rather than 'denied'/'policy_denied'. Low-priority. Land BEFORE/WITH TESS-M3-001 fleet-provider registry wiring (#709), NOT now. UPDATE 2026-07-13: did NOT ride in #730; Mos FOLDED this into TESS-M3-003 C4 (authz-error classification + RuntimeApprovalDeniedError→403 filter) — tracked there, land with M3-003. | | TESS-M2-001 | done | Add Tess roster/profile/service pinned to GPT-5.6 Sol high with fail-fast config and observable effective policy | #708 | coder0 | packages/mosaic | feat/tess-pi-service | TESS-M1-V | 22K | TESS-PI-001; AC-TESS-03. Mos-dispatched directly to coder0. MERGED to main by Mos (2026-07-12): PR #728 head c58e86e2, ROR comment 16905, CI 1728 green. NAME-AS-CONFIG invariant VERIFIED — identity via MOSAIC_AGENT_NAME/%i/roster data, no hardcoded tess identity in impl/service/schema/tool, Tess example-only; Nova distinct-name zero-code-change provisioning test; GPT-5.6 Sol high fail-fast; credential-safe effective-policy output; no live credential material | | TESS-M2-002 | done | Implement durable session identity, inbox/outbox, approval, checkpoint, handoff, compaction and restart recovery | #708 | coder0 | apps/gateway, packages/agent, packages/db | feat/tess-durable-state | TESS-M2-001 | 38K | TESS-STA-001, TESS-SEC-007..008; recovery TDD. Mos-dispatched directly to coder0 (2026-07-12) — orchestrator tracks, no competing lane. Branch feat/tess-durable-state from fresh origin/main e3b5113b; first recovery TDD packages/agent/src/tess-durable-session.test.ts; reuses existing provider registry + durable approval store. base=main, PR-open-STOP, independent non-author ROR then Mos merges. Next gate after merge = TESS-M2-V (M2→M3 review). PR #729 OPEN (feat(tess): persist durable session state; base=main, mergeable=true, head 102a7b606bd492201e3d731a86397a9cfe4eb998); coder0 pnpm turbo typecheck/lint/test --force 88/88 cold-cache + format green + Codex code/security remediated; scope = durable identity/inbox-outbox idempotency/immutable checkpoints/portable handoffs/PGlite close-reopen recovery/exact one-time approvals/sealed-redacted payloads/scoped dispatch. ROR routed to reviewer lane (non-author) at exact head 102a7b60. CHANGES REQUESTED (reviewer comment 16917 @102a7b60, CI pipeline 1730 RED) — 3 blockers routed to coder0: (1) CI red: gateway PGlite close/reopen durable recovery test TIMEOUT; (2) idempotency compares REDACTED payloads so distinct secrets collapse/collide — key must be over pre-redaction canonical identity; (3) durable schema/approval NAMESPACE hardcoded to tess, violates name-as-config — must derive from configured agent name (Nova zero-code-change). coder0 remediating; head will move → re-ROR required at new exact head. REMEDIATED + re-pushed: new head 444988d23bada28d3cc9ce7e588e18e052f058ff — (1) recovery suite uses one shared PGlite fixture, close/reopen AC completes ~0.5s (was 30s timeout); (2) pre-redaction SHA-256 payload digest added to idempotency conflict checks (distinct secrets no longer collapse); (3) hardcoded tess durable DB objects/approval prefix replaced with generic interaction naming + agent-bound approval namespace. push-hook typecheck/lint/format green; CI pipeline 1731 GREEN on new head 444988d2. Head confirmed unchanged at green SHA; re-ROR routed to reviewer (non-author) at exact head 444988d2 — prior REQUEST CHANGES 16917 void at old head. RE-ROR = REQUEST CHANGES (reviewer comment 16925 @444988d2; CI 1731 green + recovery test passes 1515ms not skipped). 2 residual payload-digest blockers routed to coder0: (1) CHECKPOINT idempotency still collapses — pre-redaction digest fix reached inbox/outbox but NOT checkpoint path; distinct sensitive checkpoint payloads under same sessionId+checkpointId collapse; needs pre-redaction digest column on checkpoint conflict check; (2) digest is UNKEYED plaintext SHA-256 over sensitive payloads → allows offline plaintext confirmation; switch to KEYED HMAC-SHA256 with config-sourced fail-fast secret (never hardcoded/logged), applied to inbox/outbox + checkpoint. coder0 remediating; head will move → re-ROR at new exact head. ROUND-2 REMEDIATED + pushed: new head cbdc38af954d49016b5fdc4a6dab0497317b6a1c — checkpoint now persists pre-redaction HMAC digest; inbox/outbox switched to VERSIONED HMAC; distinct-secret + delimiter-collision regressions added; migration safe for pre-existing checkpoint rows and legacy checkpoints FAIL CLOSED (cannot prove original payload); Codex security review no findings; format/diff green, PGlite recovery executes 1.765s. CI pipeline 1732 TERMINAL GREEN (success) on cbdc38af. RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head cbdc38af954d49016b5fdc4a6dab0497317b6a1c (visible Gitea comment 16933). Head confirmed unchanged at ROR target + PR mergeable=true. Reviewer verified checkpoint HMAC digest + collision regressions, recovery no-duplicate-side-effect, sealed/redacted at-rest payloads, scoped dispatch, agent-bound generic namespace; CI 1732 steps ci-postgres/install/sanitization/typecheck/lint/format/test all green; no merge by reviewer (pr-review wrapper self-approve blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 99a2d0fc, final APPROVE at head cbdc38af (3-round reviewer loop 16917→16925→16933). M2 build phase CONVERGED (M2-001 #728 + M2-002 #729). TESS-M2-V (M2→M3 gate, AC-TESS-03/06) now running as Mos-owned independent Sonnet reviewer (same arrangement as M1-V) — orchestrator does NOT launch a competing review lane; Mos reports verdict. On M2-V PASS, M3 (#709) tasks TESS-M3-001/002 unblock. | | TESS-M2-V | done | Clean-host Pi launch plus model/policy status and restart/compaction/duplicate-side-effect verification | #708 | mos-reviewer | apps/gateway/src/__tests__/integration, packages/mosaic/src | review/tess-m2 | TESS-M2-002 | 18K | Gate M3 = PASS (Mos-owned independent Sonnet reviewer at merged main 99a2d0fc, 2026-07-13). All 5 criteria verified with live test runs: model/policy fail-fast + credential-safe; restart recovery exactly-once; keyed-HMAC pre-redaction idempotency; compaction/handoff survival; name-as-config (interaction_* everywhere, Nova tests). Orchestrator did NOT run a competing lane (same as M1-V). M3 (#709) UNBLOCKED. Non-gating follow-ups from this review captured as TESS-M2-FUP-001/002/003 below. | | TESS-M2-FUP-001 | not-started | Delete dead unkeyed-sha256 OR-branch in tess-durable-session.repository.ts matchesContentDigest (:417-422) to match strict matchesCheckpointDigest | #708 | — | apps/gateway | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Dead OR-branch NOT exploitable (all writers hmac:v1:-prefixed, content_digest NOT NULL from migration 0012) but weakens exactness guarantee. Low-priority. SCHEDULE TO LAND WITH M3 work. | | TESS-M2-FUP-002 | not-started | Add literal approval+compaction combined integration test | #708 | — | apps/gateway/src/__tests__/integration | — | — | 4K | NON-GATING follow-up from M2-V review (2026-07-13). Subsystems currently tested separately; what matters IS covered. OPTIONAL, low-priority. | -| TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work. Related pre-existing: sourceLabel??'tess' default @packages/agent/src/tmux-fleet-runtime-provider.ts:142 (from #722/#724, OUT OF SCOPE — not a Tess-mission row). | +| TESS-M2-FUP-003 | not-started | Cosmetic rename pass: 'Tess' in class/file/log names (TessDurableSessionRepository etc.) so Nova deployment logs don't say Tess | #708 | — | apps/gateway, packages/agent | — | — | 5K | NON-GATING follow-up from M2-V review (2026-07-13). Cosmetic only — functional name-as-config already correct (interaction_* data path). Low-priority. SCHEDULE TO LAND WITH M3 work (now M3-003 window). Related cosmetic logged separately as TESS-M2-FUP-004. | +| TESS-M2-FUP-004 | not-started | Cosmetic: sourceLabel ?? 'tess' default literal @packages/agent/src/tmux-fleet-runtime-provider.ts:142 | #708 | — | packages/agent | — | — | 2K | NON-GATING cosmetic follow-up (pre-existing from #722/#724), logged per Mos 2026-07-13. Same class as TESS-M2-FUP-003 (name-as-config cosmetic; functional data path already generic). Low-priority — fold into a cosmetic-rename pass alongside M2-FUP-003. | | TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-V | ready | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002 | 20K | Gate M4. Dependencies satisfied: M3-001 #730 (squash 84d884b9) + M3-002 #731 (squash 8246ee01) both MERGED. Mos DISPATCHING M3-V now as Mos-owned independent Sonnet checkpoint against merged main (same arrangement as M1-V/M2-V) — orchestrator TRACKS only, does NOT launch a competing review lane. Scope: Discord+CLI same-session E2E, attach, approvals, denial/audit. On PASS → M4 (#710) unblocks. | +| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. BLOCKING C1 design question raised by coder0 + escalated to Mos (2026-07-13): origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession (LLM conversation via ChatController/WebSocket, not a RuntimeProvider session with providerId/runtimeSessionId); InteractionController only lists/attaches/sends/stops existing durable IDs. Which lifecycle is authoritative for durable enrollment: (A) enroll the Chat AgentService conversation as provider/model + conversationId, or (B) add/identify a runtime-provider enrollment/start boundary for providerId/runtimeSessionId? coder0 will NOT invent the mapping — awaiting Mos ruling before C1 implementation. | +| TESS-M3-V | fail | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. M3 NOT complete (do not mark). Remediation = new build item TESS-M3-003 (coder0). M3-V RE-GATES after M3-003 lands. M4 (#710)/M5 remain BLOCKED behind M3-V PASS. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001 | -- 2.49.1 From a9e181bbbff114b28baa21b449585778d796a99f Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 04:16:47 -0500 Subject: [PATCH 30/61] docs(tess): M3-003 C1 resolved (Mos synthesis: conversationId=durable handle, enroll at runtime); coder0 in-flight C1/C2/C4 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 4b23165..5dc2e6f 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -29,7 +29,7 @@ | TESS-M2-FUP-004 | not-started | Cosmetic: sourceLabel ?? 'tess' default literal @packages/agent/src/tmux-fleet-runtime-provider.ts:142 | #708 | — | packages/agent | — | — | 2K | NON-GATING cosmetic follow-up (pre-existing from #722/#724), logged per Mos 2026-07-13. Same class as TESS-M2-FUP-003 (name-as-config cosmetic; functional data path already generic). Low-priority — fold into a cosmetic-rename pass alongside M2-FUP-003. | | TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. BLOCKING C1 design question raised by coder0 + escalated to Mos (2026-07-13): origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession (LLM conversation via ChatController/WebSocket, not a RuntimeProvider session with providerId/runtimeSessionId); InteractionController only lists/attaches/sends/stops existing durable IDs. Which lifecycle is authoritative for durable enrollment: (A) enroll the Chat AgentService conversation as provider/model + conversationId, or (B) add/identify a runtime-provider enrollment/start boundary for providerId/runtimeSessionId? coder0 will NOT invent the mapping — awaiting Mos ruling before C1 implementation. | +| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. | | TESS-M3-V | fail | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. M3 NOT complete (do not mark). Remediation = new build item TESS-M3-003 (coder0). M3-V RE-GATES after M3-003 lands. M4 (#710)/M5 remain BLOCKED behind M3-V PASS. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From 3b631e291afc3c8ef7554d6917dcb912f6f0f234 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 04:51:50 -0500 Subject: [PATCH 31/61] docs(tess): M3-003 PR #732 open (head 451f7e04, base main); CI 1745 serializing, ROR pending green --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 5dc2e6f..10ee0aa 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -29,7 +29,7 @@ | TESS-M2-FUP-004 | not-started | Cosmetic: sourceLabel ?? 'tess' default literal @packages/agent/src/tmux-fleet-runtime-provider.ts:142 | #708 | — | packages/agent | — | — | 2K | NON-GATING cosmetic follow-up (pre-existing from #722/#724), logged per Mos 2026-07-13. Same class as TESS-M2-FUP-003 (name-as-config cosmetic; functional data path already generic). Low-priority — fold into a cosmetic-rename pass alongside M2-FUP-003. | | TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. | +| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. | | TESS-M3-V | fail | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. M3 NOT complete (do not mark). Remediation = new build item TESS-M3-003 (coder0). M3-V RE-GATES after M3-003 lands. M4 (#710)/M5 remain BLOCKED behind M3-V PASS. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From 1b5ef1901c3be3c0b1ecb0ec898f20dfee8527ff Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 04:55:25 -0500 Subject: [PATCH 32/61] docs(tess): M3-003 #732 CI green (pipeline 1745, exact head 451f7e04); non-author ROR routed to reviewer --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 10ee0aa..62a94a8 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -29,7 +29,7 @@ | TESS-M2-FUP-004 | not-started | Cosmetic: sourceLabel ?? 'tess' default literal @packages/agent/src/tmux-fleet-runtime-provider.ts:142 | #708 | — | packages/agent | — | — | 2K | NON-GATING cosmetic follow-up (pre-existing from #722/#724), logged per Mos 2026-07-13. Same class as TESS-M2-FUP-003 (name-as-config cosmetic; functional data path already generic). Low-priority — fold into a cosmetic-rename pass alongside M2-FUP-003. | | TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. | +| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. | | TESS-M3-V | fail | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. M3 NOT complete (do not mark). Remediation = new build item TESS-M3-003 (coder0). M3-V RE-GATES after M3-003 lands. M4 (#710)/M5 remain BLOCKED behind M3-V PASS. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From e89d1d47aee3a6bf8d022b1737d588f0fad37f70 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 05:02:12 -0500 Subject: [PATCH 33/61] docs(tess): M3-003 #732 ROR round-1 REQUEST CHANGES @451f7e04 (Discord approve path unreachable); root-cause routed to coder0 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 62a94a8..5f739d3 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -29,7 +29,7 @@ | TESS-M2-FUP-004 | not-started | Cosmetic: sourceLabel ?? 'tess' default literal @packages/agent/src/tmux-fleet-runtime-provider.ts:142 | #708 | — | packages/agent | — | — | 2K | NON-GATING cosmetic follow-up (pre-existing from #722/#724), logged per Mos 2026-07-13. Same class as TESS-M2-FUP-003 (name-as-config cosmetic; functional data path already generic). Low-priority — fold into a cosmetic-rename pass alongside M2-FUP-003. | | TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. | +| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. | | TESS-M3-V | fail | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. M3 NOT complete (do not mark). Remediation = new build item TESS-M3-003 (coder0). M3-V RE-GATES after M3-003 lands. M4 (#710)/M5 remain BLOCKED behind M3-V PASS. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -- 2.49.1 From ef4acfd652eaac1ab07142f1de49f5517b8f1d3d Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 05:11:52 -0500 Subject: [PATCH 34/61] docs(tess): M3 COMPLETE (M3-003 merged 0b621660, M3-V PASS 17009); log verified-live Discord routing defect TESS-M3-FUP-005; M4 dispatch (M4-001 coder0, M4-002 coder3, M4-003 held) --- docs/tess/TASKS.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 5f739d3..87aa705 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -29,11 +29,12 @@ | TESS-M2-FUP-004 | not-started | Cosmetic: sourceLabel ?? 'tess' default literal @packages/agent/src/tmux-fleet-runtime-provider.ts:142 | #708 | — | packages/agent | — | — | 2K | NON-GATING cosmetic follow-up (pre-existing from #722/#724), logged per Mos 2026-07-13. Same class as TESS-M2-FUP-003 (name-as-config cosmetic; functional data path already generic). Low-priority — fold into a cosmetic-rename pass alongside M2-FUP-003. | | TESS-M3-001 | done | Bind dedicated Tess Discord channel with streaming, threads, attachments, pairing/RBAC and approvals | #709 | coder4 | plugins/discord, apps/gateway | feat/tess-discord | TESS-M2-V,TESS-M1-SEC-004 | 35K | TESS-DSC-001. Mos DIRECT-DISPATCHED to coder4 on feat/tess-discord (base=main, 2026-07-13) — orchestrator is DYOR-loaded so Mos dispatched to avoid double-dispatch; orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Land TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 with this M3 work. PR #730 OPEN (feat(#709): add configured Discord interaction binding; base=main, mergeable=true, head 25ed3676550649d805737ddd97cec08d49873662; config-owned Discord bindings w/ pairing/RBAC, thread metadata, attachments, streaming correlation, authenticated ingress reuse). NOTE: coder4 did not report PR-open to orchestrator; picked up from reviewer ROR. CI pipeline 1734 GREEN on head. ROR = REQUEST CHANGES (reviewer comment 16951 @25ed3676) — 2 functional blockers routed to coder4: (1) THREAD/SUB-SESSION ROUTING: allowedChannelIds check tests the THREAD id before parent-channel binding resolution → thread messages in a bound channel are wrongly rejected; must resolve parent-channel binding FIRST then evaluate allowlist against bound parent + add bound-channel-thread test; (2) APPROVAL NOT WIRED TO M2 DURABLE STORE: Discord approval op defined but no path invokes the durable M2 exact-action approval store (only send wired) — must route Discord approval through the #729 durable exact-action approval surface (one-time/exact-action consume, no replay) + denial + exact-action approval tests. Root-cause fixes only (no allowlist-loosen, no approval stub). coder4 remediating; head will move → re-ROR required at new exact head after CI terminal green. ROUND-1 REMEDIATED + pushed: new head 689d5b68706fd5f5b190b0e4d988efc59fb51acb, CI pipeline 1736 GREEN. RE-ROR = REQUEST CHANGES (reviewer comment 16968 @689d5b68) — 2 residuals routed to coder4: (1) thread allowlist directionally fixed but REQUESTED regression test absent — add explicit 'message in thread of bound channel is ACCEPTED' test; (2) CORE BLOCKER: discord:approve still calls commandExecutor.createApproval (generic slash-command approval), NOT the M2 durable exact-action store — must call createRuntimeTerminationApproval writing agent::command-approval exact-action key (durable one-time consume, no replay), plus Discord one-shot tests: approval consumes exact action once + second attempt rejected, and denial-path rejection. Root-cause only (no aliasing generic path). coder4 remediating; head will move → re-ROR at new exact head after CI terminal green. ROUND-2 REMEDIATED + pushed: head moved (via 34b82bd2), CI green — but ROUND-3 RE-ROR = REQUEST CHANGES (reviewer comment 16973 @34b82bd257154ece2f51d29df698b01150cb9a2b, CI pipeline 1738 green). Progress: discord:approve now CALLS createRuntimeTerminationApproval — but STILL WRONG: it binds the approval to DISCORD_SERVICE_USER_ID + approval-message correlation/channel, making a Discord-SILO record NOT consumable by the CLI/runtime stop exact-action path. CORE M3 AC = ONE durable exact-action approval consumable cross-surface (Discord OR CLI OR runtime); exact-action KEY must be agent::command-approval for the specific pending command/termination action (same key CLI 'mosaic tess stop'/runtime-stop consumes); Discord actor + message correlation belong in METADATA, not the key. Routed to coder4 (round-3): re-key to agent+action; add tests (a) discord:approve happy consumes exact action, (b) SAME approval consumable cross-surface by CLI/runtime stop, (c) one-shot replay rejected, (d) denial rejects, (e) thread-under-parent accept. THIRD round on the same durable-approval seam (16951→16968→16973); reviewer holding cross-surface exact-action boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-3 REMEDIATED + pushed: head a4c70c5a71a4a73f24f04060a301703ba5ac7530, CI pipeline 1739 GREEN — but ROUND-4 RE-ROR = REQUEST CHANGES (reviewer comment 16978 @a4c70c5a). coder4 OVER-CORRECTED: removed actor/tenant/channel/correlation from runtimeActionDigest/consume (WEAKENS command-authorization exactness — the merged M2 contract digests all 7 fields), still NO Discord-origin consume/terminate path for the minted approval, required Discord-path tests still absent (approve happy+denial, one-shot replay, thread-under-parent accept). ROUND-5 ROUTED to coder4 with the FROZEN merged contract extracted from origin/main:apps/gateway/src/commands/command-authorization.service.ts: runtimeActionDigest is sha256 over EXACTLY {providerId,sessionId,actorId,tenantId,channelId,correlationId,agentName} — do NOT modify/strip (revert round-4 change); consume also re-checks actorId+tenantId, requires approver role=admin, one-shot redis.del; store key interaction:command-approval::. Cross-surface = Discord mint and CLI/runtime stop present the SAME 7 fields of the TARGET pending termination (NOT the Discord message's own channel/correlation, NOT DISCORD_SERVICE_USER_ID); actorId = approving admin's resolved user id. Add the missing Discord-origin consume/terminate invocation (via runtime-approval-verifier.ts adapter) + 5 tests. FOURTH round same seam (16951→16968→16973→16978); reviewer holding boundary firm. coder4 remediating; re-ROR at new exact head after CI terminal green. ROUND-5: writer RE-ROUTED coder4→coder0 (Mos-dispatched follow-up; coder0 is original author of the M2 durable approval store, so the ideal lane to wire the Discord path to it — orchestrator did not have this re-route tracked, flagged to Mos for confirmation, single-writer stand-down requested from coder4). coder0 pushed head 6af68e76de3657d837875b1c9d0f5c9678429e59 (branch tip confirmed), CI Woodpecker pipeline 1742 = SUCCESS (terminal green). Scope: approve-gated stop command (provider/session/approval args), one-shot durable approval consumption, explicit stop authorization (Discord-origin consume/terminate path now present), 4 security regressions; command-authorization.service.ts UNCHANGED (frozen 7-field runtimeActionDigest preserved — round-4 field-stripping reverted). ROUND-5 ROR routed to reviewer (non-author) at exact head 6af68e76; prior round-4 REQUEST CHANGES 16978 void at old head. ROUND-5 RE-ROR = REQUEST CHANGES (reviewer comment 16986 @6af68e76, CI 1742 green). PROGRESS: 7-field digest preserved, thread routing + tests present, no live creds. RESIDUAL (actor-identity seam) routed to coder0 (round-6): (1) approval/stop still binds actorId = DISCORD_SERVICE_USER_ID (bot) — must be the RESOLVED APPROVING ADMIN's mosaic user id at both mint and consume (consume requires approval.actorId===action.actorId AND resolveRole(actorId)==='admin'; bot is not the approver); (2) stop consumes as service actor — must present the same approving-admin actorId bound at mint; (3) approve→stop tests share one fixture correlation, masking production separate-message flow — must model approval message + stop command as separate correlations resolving to the SAME target action 7-field identity (admin A approves T → stop consumes T once as A → replay rejected). Root-cause only (do not make the bot admin). FIFTH round on the seam (16951→16968→16973→16978→16986); reviewer holding actor boundary firm. coder0 remediating; re-ROR at new exact head after CI terminal green. ROUND-6 REMEDIATED + pushed: head 533e9702591436810160dfb1cf8a42a222cfb7c7 (branch tip confirmed), CI Woodpecker pipeline 1743 = SUCCESS (terminal green). Scope: stable target correlation + real RuntimeProviderService consume coverage; approval agent binding matches MOSAIC_AGENT_NAME with explicit mismatch denial; command-authorization.service.ts unchanged. ROUND-6 ROR routed to reviewer (non-author) at exact head 533e9702; prior round-5 REQUEST CHANGES 16986 void at old head. ROUND-6 RE-ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 533e9702591436810160dfb1cf8a42a222cfb7c7 (visible Gitea comment 16991, CI 1743 success). Reviewer verified: actorId mint+stop consume uses RESOLVED mosaic admin (not DISCORD_SERVICE_USER_ID, not bot-made-admin); RuntimeProviderService consumes via verifier adapter; separate ingress correlations map to stable target action + one-shot replay rejected; 7-field digest intact; thread-under-parent test present; no live creds. pr-review wrapper self-approve blocked → recorded as verified PR comment. Head confirmed UNCHANGED at ROR target 533e9702 + PR mergeable=true, base=main. SIX-round durable cross-surface exact-action approval seam CLOSED (16951→16968→16973→16978→16986→16991); writer re-routed coder4→coder0 (Mos-dispatched) mid-flight. #730 MERGEABLE (independent non-author ROR + green CI at exact head). HARD STOP — Mos owns merge. MERGED to main by Mos — squash commit 84d884b9, approved head 533e9702, branch feat/tess-discord deleted, independent Sonnet ROR APPROVE (16991). M3 BUILD PHASE CONVERGED (M3-001 #730 + M3-002 #731 both merged). Writer re-routed coder4→coder0 mid-flight (Mos-dispatched); coder0 confirmed stand-down cleanup (dropped superseded WIP stash), on clean main 84d884b9, idle. NOTE: M3-001 #730 scope was Discord binding + durable approval; TESS-M1-FUP-001 (execute() authz-error mapping) + TESS-M2-FUP-001/003 did NOT ride in this PR — they remain not-started follow-ups to schedule (flagged to Mos). TESS-M3-V (M3→M4 gate) now READY — Mos dispatching as Mos-owned independent Sonnet checkpoint against merged main; orchestrator tracks, no competing lane. | | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | -| TESS-M3-003 | in-progress | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. | -| TESS-M3-V | fail | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. M3 NOT complete (do not mark). Remediation = new build item TESS-M3-003 (coder0). M3-V RE-GATES after M3-003 lands. M4 (#710)/M5 remain BLOCKED behind M3-V PASS. | -| TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | codex | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001 | -| TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | codex | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts | -| TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001 | +| TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | +| TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | +| TESS-M3-FUP-005 | not-started | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | (fresh off main 0b621660) | TESS-M3-003 | 8K | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | +| TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | +| TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. | +| TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | | TESS-M5-002 | not-started | Complete migration inventory, cutover, rollback, retention and deprecation evidence | #711 | sonnet | docs/tess | feat/tess-migration-docs | TESS-M4-V | 18K | TESS-MIG-001 | -- 2.49.1 From 0e594129bb7beb23bffef6879e245694f06372c1 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 05:14:04 -0500 Subject: [PATCH 35/61] docs(tess): FUP-005 PR #733 open (head ed1d985c, clean 2-file diff); CI 1748 serializing, ROR pending green --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 87aa705..4ce119d 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -31,7 +31,7 @@ | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | -| TESS-M3-FUP-005 | not-started | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | (fresh off main 0b621660) | TESS-M3-003 | 8K | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | +| TESS-M3-FUP-005 | in-progress | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head) running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer (must verify the REAL handleDiscordMessage path fires, not a bypass); HARD STOP for Mos merge. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | -- 2.49.1 From 5499c56b129e1d7ea4c3960e943a7618298c010c Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 05:22:18 -0500 Subject: [PATCH 36/61] =?UTF-8?q?chore(tess):=20FUP-005=20PR=20#733=20merg?= =?UTF-8?q?eable=20=E2=80=94=20CI=201748=20green=20+=20non-author=20ROR=20?= =?UTF-8?q?at=20ed1d985c=20(Mos=20merges)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 4ce119d..9f7d69f 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -31,7 +31,7 @@ | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | -| TESS-M3-FUP-005 | in-progress | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head) running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer (must verify the REAL handleDiscordMessage path fires, not a bypass); HARD STOP for Mos merge. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | +| TESS-M3-FUP-005 | in-progress | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | | TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | -- 2.49.1 From 9957bf068b918f41182b66cd6b1f67893258edb9 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 05:48:40 -0500 Subject: [PATCH 37/61] =?UTF-8?q?chore(tess):=20M4-002=20coder3=20active?= =?UTF-8?q?=20=E2=80=94=20AC-TESS-05=20capability-contract=20design=20ques?= =?UTF-8?q?tion=20surfaced=20to=20Mos=20(held=20design-only)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 9f7d69f..07cfb76 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -33,7 +33,7 @@ | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | in-progress | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | -| TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. | +| TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. Awaiting Mos ruling. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From b855e4dd57ec987a48df046f27f2ee5306055a04 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 06:21:51 -0500 Subject: [PATCH 38/61] chore(tess): FUP-005 MERGED (f1c6b37b) done; M4-002 PR #734 open+CI serializing (impl=(a), merge gated on Mos a/b ruling) --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 07cfb76..b3ec9e0 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -31,9 +31,9 @@ | TESS-M3-002 | done | Implement `mosaic tess` chat/status/sessions/tree/attach/send/stop/health/recover CLI | #709 | diskhygiene-terra | packages/mosaic | feat/tess-cli | TESS-M2-V | 30K | TESS-CLI-001. Mos DIRECT-DISPATCHED to diskhygiene-terra on feat/tess-cli (base=main, 2026-07-13) — orchestrator TRACKS only, no competing lane. PR-open-STOP, independent non-author ROR then Mos merges. Intake initially blocked on wrapper (issue-view.sh bare positional → 'Unknown option: 709'); orchestrator relayed -i flag fix. PR #731 OPEN (feat(tess): add generic interaction CLI; base=main, mergeable=true, head de74e46a0640c44c6b7294c24669496980761c92, fresh origin/main base 99a2d0fc). Scope: generic mosaic interaction command chat/status/sessions/tree/attach/send/stop/health/recover (NO instance-specific literal); --agent/MOSAIC_AGENT_NAME + Nova name-as-config test; authenticated gateway durable/provider boundary — server-derived actor scope, required non-simple correlation header, identity binding, durable recovery, registry routing, exact-action approval stop; status/health safe. Terra: full cold-cache pnpm turbo typecheck/lint/test --force + gates green, Codex security clean after remediation. CI pipeline 1735 TERMINAL GREEN (success) on de74e46a. ROR = APPROVE — canonical VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head de74e46a0640c44c6b7294c24669496980761c92 (visible Gitea comment 16959). Head confirmed unchanged at ROR target + mergeable=true. Reviewer verified generic mosaic interaction CLI verbs, --agent/MOSAIC_AGENT_NAME name-as-config, server-derived actor scope + required correlation, durable identity/recovery path, registry routing, exact-action approval stop, no live creds; no merge by reviewer (self-approve wrapper blocked → recorded as verified PR comment). MERGED to main by Mos — merge_commit 8246ee01 (independent Sonnet ROR 16959, all criteria + name-as-config Nova test verified). TESS-M3-002 DONE. TESS-M3-V (M3→M4 gate) advances once M3-001 #730 also merges — Mos-owned reviewer, no competing lane from orchestrator. | | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | -| TESS-M3-FUP-005 | in-progress | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | +| TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | -| TESS-M4-002 | not-started | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. Awaiting Mos ruling. | +| TESS-M4-002 | in-progress | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head) running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer. ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From 5fb738506e3abef717f6b1a4c952c8f472697ff1 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 06:26:55 -0500 Subject: [PATCH 39/61] =?UTF-8?q?chore(tess):=20M4-002=20#734=20CI=201751?= =?UTF-8?q?=20green=20at=2047b8a145=20=E2=80=94=20non-author=20ROR=20route?= =?UTF-8?q?d=20to=20reviewer=20(merge=20Mos-gated=20on=20a/b)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index b3ec9e0..255b675 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -33,7 +33,7 @@ | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | -| TESS-M4-002 | in-progress | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head) running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer. ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | +| TESS-M4-002 | in-progress | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR ROUTED to reviewer at exact head 47b8a145 (author coder3) — focus: no-legacy-core-contract (core types unchanged, no legacy field leak), unsupported caps explicit+fail-closed, packages/agent boundary, no live creds. Awaiting ROR verdict. ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From 97ce0695486f709ba791048afd48831de12d0103 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 06:28:58 -0500 Subject: [PATCH 40/61] =?UTF-8?q?chore(tess):=20M4-002=20#734=20MERGEABLE?= =?UTF-8?q?=20=E2=80=94=20CI=201751=20green=20+=20non-author=20ROR=20APPRO?= =?UTF-8?q?VE=2017027=20at=2047b8a145=20(Mos=20merges,=20gated=20on=20a-ac?= =?UTF-8?q?cept)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 255b675..dd932c0 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -33,7 +33,7 @@ | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | -| TESS-M4-002 | in-progress | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR ROUTED to reviewer at exact head 47b8a145 (author coder3) — focus: no-legacy-core-contract (core types unchanged, no legacy field leak), unsupported caps explicit+fail-closed, packages/agent boundary, no live creds. Awaiting ROR verdict. ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | +| TESS-M4-002 | in-progress | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From 6c47ea9a3ac94d793fd7dfe6c82aa4d166975b2d Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 06:33:18 -0500 Subject: [PATCH 41/61] =?UTF-8?q?chore(tess):=20M4-002=20MERGED=20(9e5b918?= =?UTF-8?q?8,=20opt-a=20accepted)=20done;=20M4-001=20#735=20MERGEABLE=20?= =?UTF-8?q?=E2=80=94=20CI=201752=20green=20+=20non-author=20ROR=2017032=20?= =?UTF-8?q?at=207936e15d=20(native=20in-process,=20Mos=20merges)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index dd932c0..1120350 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -32,8 +32,8 @@ | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | -| TESS-M4-001 | not-started | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → orchestrator serializes CI + routes independent non-author ROR at exact head → Mos merges. ⚠️ LANE NOTE: coder0 currently holds the uncommitted TESS-M3-FUP-005 Discord-routing fix in its worktree — flagged to Mos to sequence (FUP-005 fast-follow PR off main 0b621660 vs start M4-001 first); coder0 cannot cleanly branch M4-001 on a dirty tree. Awaiting Mos routing. | -| TESS-M4-002 | in-progress | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | +| TESS-M4-001 | in-progress | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral, so a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | +| TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From c3a0aab2708709b86eebeff096b8298cb213815f Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 06:44:34 -0500 Subject: [PATCH 42/61] =?UTF-8?q?chore(tess):=20M4-001=20#735=20head=20mov?= =?UTF-8?q?ed=207936e15d->5022911f=20(doc-only)=20=E2=80=94=20ROR=2017032?= =?UTF-8?q?=20invalidated,=20CI=201754=20green,=20re-ROR=20routed;=20NOT?= =?UTF-8?q?=20mergeable=20until=20fresh=20ROR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 1120350..bee68ac 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -32,7 +32,7 @@ | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | -| TESS-M4-001 | in-progress | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral, so a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | +| TESS-M4-001 | in-progress | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR ROUTED to reviewer at exact head 5022911f. **NOT mergeable until fresh ROR at 5022911f** — Mos must NOT merge on stale 17032. HARD STOP. MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | -- 2.49.1 From b7788e21aac81a11054eb927fe4bfb09f2a45f6c Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 06:46:15 -0500 Subject: [PATCH 43/61] =?UTF-8?q?chore(tess):=20M4-001=20#735=20RE-MERGEAB?= =?UTF-8?q?LE=20=E2=80=94=20fresh=20non-author=20ROR=2017036=20at=20502291?= =?UTF-8?q?1f=20+=20CI=201754=20green=20(Mos=20merges,=20native=20in-proce?= =?UTF-8?q?ss)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index bee68ac..e097078 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -32,7 +32,7 @@ | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | -| TESS-M4-001 | in-progress | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR ROUTED to reviewer at exact head 5022911f. **NOT mergeable until fresh ROR at 5022911f** — Mos must NOT merge on stale 17032. HARD STOP. MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | +| TESS-M4-001 | in-progress | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | -- 2.49.1 From b63261ee738d4df5867c4119a91e729211dfb92d Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 07:41:59 -0500 Subject: [PATCH 44/61] docs(tess): M4-001 merged (76325ca3); M4-003 #736 open, CI 1756 green, ROR routed --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index e097078..85b4b64 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -32,9 +32,9 @@ | TESS-M3-003 | done | Cross-surface durable session integration + functional attach + denial/audit parity | #709 | coder0 | apps/gateway, plugins/discord, packages/mosaic, packages/agent | feat/tess-m3-integration | TESS-M3-001,TESS-M3-002 | 30K | Mos-DISPATCHED to coder0 (base=main, 2026-07-13) after M3-V gate = FAIL (integration unwired). Scope: C1 wire DurableSessionCoordinator.create into session-start + Discord resolves via durable snapshot + cross-surface E2E (AC-TESS-01); C2 expose streamSession over HTTP+CLI for functional attach + success test; C4 CLI denial spec + Discord mint-side durable audit + FOLD TESS-M1-FUP-001 (execute() authz-error classification) + RuntimeApprovalDeniedError→403 filter. PR-open-STOP, independent non-author ROR then Mos merges. M3-V RE-GATES after this lands. C1 design question raised by coder0 (origin/main has NO runtime-provider session-start/create op — only AgentService/Pi chat createSession, an LLM conversation, not a RuntimeProvider session carrying providerId/runtimeSessionId) — RESOLVED by Mos synthesis ruling (2026-07-13): conversationId is the durable handle; DurableSessionCoordinator.create happens at RUNTIME ENROLLMENT once providerId/runtimeSessionId are known; BOTH surfaces (Discord + CLI) snapshot it. coder0 PROCEEDING: C2/C4 in parallel now + implementing the C1 enrollment boundary per the ruling. PR-open-STOP; orchestrator serializes CI + routes independent non-author ROR at exact head; Mos merges. UPDATE 2026-07-13: **PR #732 OPEN** (base=main), head 451f7e04ec6c45adb12007dd7131da6a2b199962. coder0 stopped at PR creation, holding (no force-push). Local forced validation green (typecheck/lint/format:check/test: gateway 590 pass/11 skip, mosaic 640 pass), Codex code+security clean, command-authorization.service.ts byte-identical to origin/main. CI pipeline 1745 running — orchestrator serializing; on green-at-exact-head, independent non-author ROR routes to reviewer; HARD STOP for Mos merge. UPDATE 2026-07-13 (CI-GREEN): pipeline 1745 (event=pull_request, refs/pull/732/head, exact head 451f7e04) = SUCCESS; PR mergeable=true, head unmoved. Independent non-author ROR ROUTED to reviewer at exact head 451f7e04 (author coder0). Awaiting ROR verdict; HARD STOP for Mos merge; M3-V re-gates on merge. UPDATE 2026-07-13 (ROR round 1 = REQUEST CHANGES @ 451f7e04, Gitea comment 17007, CI 1745 green): ONE real blocker — Discord approve path UNREACHABLE in production. ChatGateway.handleDiscordApproval accepts only bare '/approve' (^/approve\\s*$), but plugins/discord/src/index.ts routes to discord:approve only on startsWith('/approve ') — so bare /approve → normal message (dead), '/approve x' → gateway-rejected; AC-TESS-01 mint/cross-surface flow can't fire; tests bypass DiscordPlugin.handleDiscordMessage so they mask it (same integration-unwired class M3-V flagged). Positives HELD: command-authz byte-identical (hash a9f829e7), 7-field digest intact, actor=resolved admin (not DISCORD_SERVICE_USER_ID), durable/stream/denial/audit coverage present, no live creds. Root-cause routed to coder0: reconcile plugin-routing predicate ↔ gateway accept-grammar + add end-to-end test through real handleDiscordMessage (no bypass). Fix push MOVES head → invalidates ROR, re-serialize CI + re-ROR at new exact head. UPDATE 2026-07-13 (RESOLUTION — MERGED by Mos): before coder0's fix was pushed, Mos ran a combined M3-V re-review at the SAME head 451f7e04 ([W-jarvis:reviewer-sonnet], Gitea comment 17009 = VERIFIED APPROVE + M3-V GATE PASS) and MERGED #732 → main squash commit **0b621660** ("feat(tess): wire durable interaction surfaces"). Mos milestone signal: M3-001/002/003 done, M3-V PASS, M3 COMPLETE, advancing to M4. ⚠️ ORCHESTRATOR RECONCILIATION: the two independent ROR reads at 451f7e04 CONFLICT on one concrete mechanism — my reviewer (17007) flagged the Discord approve path unreachable; Mos's re-review (17009) validated the gateway handler + integration test but that test bypasses DiscordPlugin.handleDiscordMessage. Orchestrator VERIFIED against merged main 0b621660 (read-only git show/grep): the plugin-routing defect is STILL LIVE — see TESS-M3-FUP-005. Surfaced to Mos as a fast-follow; coder0's uncommitted fix held pending Mos disposition. | | TESS-M3-V | pass | Discord+CLI same-session E2E, denial/approval tests, and operator-flow review | #709 | mos-sonnet | apps/gateway/src/__tests__/integration, plugins/discord, packages/mosaic/src | review/tess-m3 | TESS-M3-001,TESS-M3-002,TESS-M3-003 | 20K | Gate M4. FIRST RUN = FAIL (Mos-owned independent Sonnet checkpoint against merged main 84d884b9, 2026-07-13): integration UNWIRED — Discord/CLI not cross-surface functional against durable sessions; attach/denial/audit parity incomplete. Remediation = TESS-M3-003 (coder0). SECOND RUN = **PASS** (Mos-owned combined re-review+re-gate at head 451f7e04, [W-jarvis:reviewer-sonnet] Gitea comment 17009, 2026-07-13): C1 cross-surface durable session, C2 functional attach, C4 denial/audit parity all closed; hard constraint (command-authz byte-identical, 7-field digest untouched) intact; C3/C5 no regression. Mos MERGED #732 → main 0b621660 and declared M3 milestone COMPLETE, advancing to M4. ⚠️ CAVEAT (orchestrator-verified live defect, NON-GATING per Mos): the M3-V integration test does not exercise DiscordPlugin.handleDiscordMessage, so the production Discord approve-path routing defect survived the gate — logged as TESS-M3-FUP-005 (fast-follow, surfaced to Mos). M4 (#710) UNBLOCKED (dep TESS-M3-V met). | | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | -| TESS-M4-001 | in-progress | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | +| TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | -| TESS-M4-003 | not-started | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | codex | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane; not yet dispatched. | +| TESS-M4-003 | in-progress | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR ROUTED to reviewer at exact head a1d63ca8 (author coder0) — focus: leaf-only (no gateway/catalog/inbox/command-authz), scope runtime-validated server-derived, redaction-before-persist, boundary tests real. Awaiting ROR verdict; HARD STOP for Mos merge. NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | | TESS-M5-002 | not-started | Complete migration inventory, cutover, rollback, retention and deprecation evidence | #711 | sonnet | docs/tess | feat/tess-migration-docs | TESS-M4-V | 18K | TESS-MIG-001 | -- 2.49.1 From 75299bbb53d77542c2ab0cdc6807f9a2d9bc364c Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 07:43:05 -0500 Subject: [PATCH 45/61] docs(tess): M4-003 #736 ROR complete (17044), head unmoved, MERGEABLE --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 85b4b64..4341b2c 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -34,7 +34,7 @@ | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | -| TESS-M4-003 | in-progress | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR ROUTED to reviewer at exact head a1d63ca8 (author coder0) — focus: leaf-only (no gateway/catalog/inbox/command-authz), scope runtime-validated server-derived, redaction-before-persist, boundary tests real. Awaiting ROR verdict; HARD STOP for Mos merge. NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | +| TESS-M4-003 | in-progress | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | | TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | | TESS-M5-002 | not-started | Complete migration inventory, cutover, rollback, retention and deprecation evidence | #711 | sonnet | docs/tess | feat/tess-migration-docs | TESS-M4-V | 18K | TESS-MIG-001 | -- 2.49.1 From 246a75cd7d02c29dce8aabc884d157de5b5eb387 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 07:56:32 -0500 Subject: [PATCH 46/61] docs(tess): M4-003 merged (2363f155); M4-V FAILED (not E2E-reachable); add M4-W remediation rows + surface TESS-PLG-001 --- docs/tess/TASKS.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 4341b2c..5eb6401 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -34,8 +34,11 @@ | TESS-M3-FUP-005 | done | Discord approve/stop production routing predicate mismatch — approve path unreachable | #709 | coder0 | plugins/discord, apps/gateway | feat/tess-m3-integration (rebased onto 0b621660) | TESS-M3-003 | 8K | **MERGED by Mos** → main squash commit **f1c6b37b** ("fix(tess): route bare Discord approvals (#733)"), 2026-07-13; post-merge main CI pipeline 1750 = SUCCESS. Verified-live Discord approve-path defect CLOSED — merged cross-surface mint path now functional end-to-end. HISTORY: **PR #733 OPEN** (base=main), head ed1d985c90e24ca3046bd570a556802927d80ed8 (rebased onto merged main 0b621660 to clear a Gitea conflict, force-with-lease; supersedes pre-rebase a02f526d whose pipeline 1747 was killed). pr-diff confirms clean 2-file scope: plugins/discord/src/index.ts + tess-cross-surface.integration.test.ts. coder0: bare /approve now routes to discord:approve; E2E invokes the REAL DiscordPlugin.handleDiscordMessage proving approve→stop against the durable conversation handle; forced typecheck/lint/format + targeted 17/17 green; command-authz zero-diff from main. CI pipeline 1748 (pull_request, refs/pull/733/head, commit ed1d985c) = **SUCCESS**. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head ed1d985c (Gitea comment 17017) — command-authz byte-identical hash a9f829e7 + 7-field digest intact, bare /approve REAL DiscordPlugin route fixed, gateway uses durable getSnapshot(conversationId), anti-masking divergent test inputs present, no Tess literal, no live creds. Head UNMOVED (ed1d985c), base main, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). On merge → FUP-005 done; makes the merged Discord approve surface functional end-to-end. | ⚠️ VERIFIED-LIVE DEFECT on merged main 0b621660 (orchestrator read-only git show/grep, 2026-07-13). Gateway apps/gateway/src/chat/chat.gateway.ts:670 accepts approval ONLY as bare '/approve' (regex /^\\/approve\\s*$/i). Plugin plugins/discord/src/index.ts trims content (:339-341) then routes to discord:approve ONLY when content.startsWith('/approve ') (:385, requires a space+arg). NET: trimmed bare '/approve' fails the plugin predicate → emitted as normal message → gateway approval handler never fires (DEAD); '/approve x' passes the plugin but the gateway regex rejects it. So the production Discord approve path (AC-TESS-01 cross-surface mint) is UNREACHABLE end-to-end. M3-V PASSED because its integration test drives the gateway handler directly and bypasses DiscordPlugin.handleDiscordMessage, so the plugin predicate was never exercised (my reviewer 17007 caught it; Mos re-review 17009 validated the handler+test, not the plugin predicate). '/stop' likely same class (plugin needs startsWith('/stop ') args; confirm against gateway stop grammar). FIX: reconcile plugin routing predicate ↔ gateway accept-grammar (route bare '/approve' and snapshot-resolved '/stop ') + add an E2E test through the REAL DiscordPlugin.handleDiscordMessage (no bypass) proving mint fires. coder0 HAS this fix uncommitted in its worktree (from the round-1 remediation, pre-empted by the merge) — needs a fresh branch off main 0b621660 as a follow-up PR. AWAITING Mos disposition (fast-follow now vs after M4). Standard gates: PR-open-STOP, independent non-author ROR at exact head, Mos merges. | | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | -| TESS-M4-003 | in-progress | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-V | not-started | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003 | 22K | Gate M5 | +| TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). coder0 builds the spine that registers+consumes. TESS-PLG-001 minimal catalog/registration folded here to close the invisible gap. Orchestrator TRACKS (Mos owns dispatch); on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. Command-authz must stay byte-identical a9f829e7. | +| TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. | +| TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | +| TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | | TESS-M5-002 | not-started | Complete migration inventory, cutover, rollback, retention and deprecation evidence | #711 | sonnet | docs/tess | feat/tess-migration-docs | TESS-M4-V | 18K | TESS-MIG-001 | | TESS-M5-003 | not-started | Complete OpenAPI, user/admin/developer/plugin/operations docs and checklist | #711 | codex | docs | feat/tess-docs | TESS-M5-001,TESS-M5-002 | 22K | Documentation hard gate | -- 2.49.1 From 02b0ef7c0475d22b99f032ea4e168a55af8adfbd Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:01:10 -0500 Subject: [PATCH 47/61] =?UTF-8?q?docs(tess):=20M4-W-001=20split=20?= =?UTF-8?q?=E2=80=94=20#737=20Mos-consumer=20slice=20open;=20provider-reg?= =?UTF-8?q?=20+=20memory-consumer=20BLOCKED=20(design=20ruling=20to=20Mos)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 5eb6401..4dfc8b6 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). coder0 builds the spine that registers+consumes. TESS-PLG-001 minimal catalog/registration folded here to close the invisible gap. Orchestrator TRACKS (Mos owns dispatch); on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. Command-authz must stay byte-identical a9f829e7. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; CI 1758 running; ROR to be routed at exact head → HARD STOP for Mos merge. **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. | | TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From c19dd4b927118d997f4242cc0062bdc6f3570d85 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:12:23 -0500 Subject: [PATCH 48/61] =?UTF-8?q?docs(tess):=20M4-W=20CI-green=20+=20ROR?= =?UTF-8?q?=20sync=20=E2=80=94=20#737=20ROR-complete=20(17054,=20head=20f7?= =?UTF-8?q?b95f60),=20#738=20CI-green=20ROR-routed=20(head=20582c6db2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 4dfc8b6..f3cfa1d 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,8 +35,8 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; CI 1758 running; ROR to be routed at exact head → HARD STOP for Mos merge. **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. | -| TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. | +| TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 582c6db2** (coder3 authored → reviewer is non-author). Awaiting reviewer VERIFIED APPROVE → then MERGEABLE, HARD STOP for Mos merge. This is the COMPLETE matrix deliverable (unlike #737's partial spine). | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From 61d2932cd2a50ac963bd4c74f3155cf84929f715 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:13:59 -0500 Subject: [PATCH 49/61] =?UTF-8?q?docs(tess):=20#738=20ROR-complete=20(1705?= =?UTF-8?q?7,=20head=20582c6db2)=20=E2=80=94=20both=20M4-W=20PRs=20mergeab?= =?UTF-8?q?le,=20HARD=20STOP=20for=20Mos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index f3cfa1d..e3adf9b 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -36,7 +36,7 @@ | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | | TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. | -| TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 582c6db2** (coder3 authored → reviewer is non-author). Awaiting reviewer VERIFIED APPROVE → then MERGEABLE, HARD STOP for Mos merge. This is the COMPLETE matrix deliverable (unlike #737's partial spine). | +| TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From 8b34774214f92e268354da3ea01dc035eb175faf Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:25:22 -0500 Subject: [PATCH 50/61] docs(tess): #737+#738 MERGED (main e2376190 / cca6aaf9); W-002 done; #739 tracks unblocked operator-memory consumer (head 31a59738089f, CI 1764) --- docs/tess/TASKS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index e3adf9b..2beb0c9 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,8 +35,8 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. | -| TESS-M4-W-002 | in-progress | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). CI 1764 running (serializing); on green + head-verified-unmoved → independent non-author ROR at exact live head → HARD STOP for Mos merge. (Head reconcile: coder0 reported 31a597380c55… but live Gitea+CI head is 31a59738089f… — authoritative live head used.) **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | | TESS-M5-001 | not-started | Implement Matrix/native runtime provider behind common contracts and parity suite | #711 | codex | packages/mosaic, packages/agent | feat/tess-matrix-provider | TESS-M4-V | 30K | TESS-TRN-001 | -- 2.49.1 From ab7f37163e08f1eeb4eae5bcfa59bd3deca1447e Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:28:44 -0500 Subject: [PATCH 51/61] docs(tess): #739 CI 1764 green, ROR routed at exact head 31a59738089f; head reconcile closed --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 2beb0c9..9ae5e8a 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). CI 1764 running (serializing); on green + head-verified-unmoved → independent non-author ROR at exact live head → HARD STOP for Mos merge. (Head reconcile: coder0 reported 31a597380c55… but live Gitea+CI head is 31a59738089f… — authoritative live head used.) **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. Awaiting reviewer verdict → then MERGEABLE, HARD STOP for Mos merge. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean, no further commits.) **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From c4c1938a3a1f97be9f4e771ace68074114f6eb29 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:31:30 -0500 Subject: [PATCH 52/61] =?UTF-8?q?docs(tess):=20#739=20REQUEST=20CHANGES=20?= =?UTF-8?q?(17069)=20=E2=80=94=20test-coverage=20gap=20(prod=20scope-deriv?= =?UTF-8?q?ation=20bypass=20+=20missing=20cross-tenant=20denial=20test);?= =?UTF-8?q?=20back=20with=20coder0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 9ae5e8a..c9b0349 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. Awaiting reviewer verdict → then MERGEABLE, HARD STOP for Mos merge. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean, no further commits.) **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. #739 status: CHANGES-REQUESTED, back with coder0. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From 093461cf1f50d1aca313c1de879df1330a0a81a3 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:37:09 -0500 Subject: [PATCH 53/61] =?UTF-8?q?docs(tess):=20#739=20re-serialize=20?= =?UTF-8?q?=E2=80=94=20coder0=20hardened=20isolation=20tests,=20new=20head?= =?UTF-8?q?=20c26b3b775279,=20CI=201765=20in=20flight?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index c9b0349..485e6a7 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. #739 status: CHANGES-REQUESTED, back with coder0. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serializing: **CI 1765 running** at c26b3b775279 (ref refs/pull/739/head); on green + head-verified-unmoved → fresh independent non-author ROR at exact head c26b3b775279 → HARD STOP for Mos merge. #739 status: RE-REVIEW, CI in flight. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From ff6dc8b4d2d5c6ba29c1d1c91cc54060446bc80f Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:41:15 -0500 Subject: [PATCH 54/61] docs(tess): #739 re-serialized CI 1765 green, fresh ROR routed at head c26b3b775279 --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 485e6a7..3f8c67e 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serializing: **CI 1765 running** at c26b3b775279 (ref refs/pull/739/head); on green + head-verified-unmoved → fresh independent non-author ROR at exact head c26b3b775279 → HARD STOP for Mos merge. #739 status: RE-REVIEW, CI in flight. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). Awaiting reviewer re-verdict → then MERGEABLE, HARD STOP for Mos merge. #739 status: RE-REVIEW at new head, ROR routed. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From de6777e04aa652b29c0ad1959b662761621dc33a Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:42:51 -0500 Subject: [PATCH 55/61] =?UTF-8?q?docs(tess):=20#739=20re-ROR=20APPROVE=20(?= =?UTF-8?q?17074,=20head=20c26b3b775279)=20=E2=80=94=20mergeable,=20HARD?= =?UTF-8?q?=20STOP=20for=20Mos;=20W-001=20remaining=20=3D=20provider-reg?= =?UTF-8?q?=20#1=20only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 3f8c67e..9039848 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). Awaiting reviewer re-verdict → then MERGEABLE, HARD STOP for Mos merge. #739 status: RE-REVIEW at new head, ROR routed. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From 72d516831f3916f2c05e7beade634bc3b7c3a9e4 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 08:56:15 -0500 Subject: [PATCH 56/61] docs(tess): sync M4 milestone to in-progress + map TESS-MEM-001 to AC-TESS-05 - MISSION-MANIFEST: TESS-M4 not-started -> in-progress (5 M4 PRs merged: #734/#735/#736/#737/#738; #739 mergeable pending Mos merge; provider-registration linchpin still blocked; M4-V not yet re-fired -> not 'done') - VERIFICATION-MATRIX: fold orphaned TESS-MEM-001 into AC-TESS-05 with operator-memory reachability evidence (M4-W-001 spine: #736 plugin + #739 consumer) --- docs/tess/MISSION-MANIFEST.md | 2 +- docs/tess/VERIFICATION-MATRIX.md | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/tess/MISSION-MANIFEST.md b/docs/tess/MISSION-MANIFEST.md index 19c8bd6..5c3effe 100644 --- a/docs/tess/MISSION-MANIFEST.md +++ b/docs/tess/MISSION-MANIFEST.md @@ -32,7 +32,7 @@ Ship Tess as Jason's durable Pi-native GPT-5.6 Sol high-reasoning interaction ag | TESS-M1 | #707 | Runtime contracts and security foundation | ready | AgentRuntimeProvider, normalized events/capabilities/errors, RBAC/audit contracts and contract tests merged | | TESS-M2 | #708 | Durable Pi Tess service and state | not-started | GPT-5.6 Sol high service starts, resumes, checkpoints, and passes restart/compaction tests | | TESS-M3 | #709 | Discord and CLI interaction surfaces | not-started | One durable session works through dedicated Discord binding and `mosaic tess`, including attach and approvals | -| TESS-M4 | #710 | Fleet, Mos, Hermes, memory, state, and tool plugins | not-started | Fleet/Mos boundary and transitional capability matrix demonstrated end-to-end | +| TESS-M4 | #710 | Fleet, Mos, Hermes, memory, state, and tool plugins | in-progress | Fleet/Mos boundary and transitional capability matrix demonstrated end-to-end | | TESS-M5 | #711 | Matrix/native migration, recovery, documentation, and qualification | not-started | Transport parity, migration/rollback matrix, security review, docs, greenfield and deployment validation complete | ## Success Criteria diff --git a/docs/tess/VERIFICATION-MATRIX.md b/docs/tess/VERIFICATION-MATRIX.md index 82864aa..ab71dfd 100644 --- a/docs/tess/VERIFICATION-MATRIX.md +++ b/docs/tess/VERIFICATION-MATRIX.md @@ -1,18 +1,18 @@ # Tess Verification Matrix -| Acceptance criterion | Requirements | Planned evidence | Gate | -| -------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------------- | -| AC-TESS-01 | TESS-PI-001, TESS-DSC-001, TESS-CLI-001 | Discord/CLI same-session integration and streaming E2E | M3-V | -| AC-TESS-02 | TESS-ARP-001, TESS-CLI-001, TESS-FLT-001 | CLI contract tests for status/sessions/tree/attach/send/stop, typed denial/error snapshots | M3-V | -| AC-TESS-03 | TESS-PI-001, TESS-OBS-001 | Clean service launch; status asserts GPT-5.6 Sol, high reasoning and effective tool policy with secret canaries absent | M2-V, M3-V | -| AC-TESS-04 | TESS-MOS-001, TESS-FLT-001 | Authority E2E: coding request creates Mos handoff; safe status runs in Tess; no competing worker claim | M4-V | -| AC-TESS-05 | TESS-HRM-001 | Hermes capability contract suite: sessions/stream/send/tree plus Kanban/skills/memory/tools/cron supported-or-denied matrix | M4-V | -| AC-TESS-06 | TESS-STA-001, TESS-SEC-008 | Kill/restart/compaction fault injection across inbox/outbox/checkpoint transitions; duplicate side-effect detector | M2-V, M5-V | -| AC-TESS-07 | TESS-SEC-001..009 | Threat-model abuse suite: authz, tenant isolation, forged identity/approval, injection, redaction, transport identity, GC scope | M1-V, M3-V, M5-V | -| AC-TESS-08 | TESS-TRN-001 | Common provider contract suite against tmux/fleet and Matrix/native; identity and replay tests | M5-V | -| AC-TESS-09 | all | `pnpm typecheck`, lint, format, unit/integration/contract/E2E; independent code and security reviews; CI URLs | Every milestone | -| AC-TESS-10 | TESS-MIG-001 | Completed capability inventory with native/adapted/deferred/rejected state, owner, cutover/rollback evidence | M5-V | -| AC-TESS-11 | TESS-PLG-001, TESS-OBS-001 | OpenAPI and user/admin/developer/plugin/ops docs, sitemap links, documentation checklist | M5-V | +| Acceptance criterion | Requirements | Planned evidence | Gate | +| -------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | +| AC-TESS-01 | TESS-PI-001, TESS-DSC-001, TESS-CLI-001 | Discord/CLI same-session integration and streaming E2E | M3-V | +| AC-TESS-02 | TESS-ARP-001, TESS-CLI-001, TESS-FLT-001 | CLI contract tests for status/sessions/tree/attach/send/stop, typed denial/error snapshots | M3-V | +| AC-TESS-03 | TESS-PI-001, TESS-OBS-001 | Clean service launch; status asserts GPT-5.6 Sol, high reasoning and effective tool policy with secret canaries absent | M2-V, M3-V | +| AC-TESS-04 | TESS-MOS-001, TESS-FLT-001 | Authority E2E: coding request creates Mos handoff; safe status runs in Tess; no competing worker claim | M4-V | +| AC-TESS-05 | TESS-HRM-001, TESS-MEM-001 | Hermes capability contract suite: sessions/stream/send/tree plus Kanban/skills/memory/tools/cron supported-or-denied matrix; operator-memory plugin (TESS-MEM-001) reachable end-to-end — env-configured plugin registered + AgentService session-bound server-derived {tenantId,ownerId,sessionId} scoped search/capture, cross-tenant reuse denied before plugin call (M4-W-001 spine: #736 plugin + #739 consumer) | M4-V | +| AC-TESS-06 | TESS-STA-001, TESS-SEC-008 | Kill/restart/compaction fault injection across inbox/outbox/checkpoint transitions; duplicate side-effect detector | M2-V, M5-V | +| AC-TESS-07 | TESS-SEC-001..009 | Threat-model abuse suite: authz, tenant isolation, forged identity/approval, injection, redaction, transport identity, GC scope | M1-V, M3-V, M5-V | +| AC-TESS-08 | TESS-TRN-001 | Common provider contract suite against tmux/fleet and Matrix/native; identity and replay tests | M5-V | +| AC-TESS-09 | all | `pnpm typecheck`, lint, format, unit/integration/contract/E2E; independent code and security reviews; CI URLs | Every milestone | +| AC-TESS-10 | TESS-MIG-001 | Completed capability inventory with native/adapted/deferred/rejected state, owner, cutover/rollback evidence | M5-V | +| AC-TESS-11 | TESS-PLG-001, TESS-OBS-001 | OpenAPI and user/admin/developer/plugin/ops docs, sitemap links, documentation checklist | M5-V | ## Security Abuse Suite Minimum -- 2.49.1 From 81c03711dcdb4a75b8952ad1cced5deaa2cf07d8 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 09:05:02 -0500 Subject: [PATCH 57/61] ledger(tess): #739 MERGED by Mos -> main 3378b857eb; W-001 spine 2-of-3 sub-parts landed, only (#1) provider-registration remains --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 9039848..1839fa6 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From 04d735d05d68f04f1c40fb1b350cf12b6f1f965f Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 09:16:39 -0500 Subject: [PATCH 58/61] ledger(tess): (#1) provider-registration DELIVERED as PR #740 (head 127a69ea); CI 1767 green, non-author ROR routed at exact head --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 1839fa6..60adfc0 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From 9ae4e2b10ec06084b67106b570ee80701de0d5e4 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 09:18:40 -0500 Subject: [PATCH 59/61] =?UTF-8?q?ledger(tess):=20#740=20REQUEST=20CHANGES?= =?UTF-8?q?=20(17088)=20=E2=80=94=20missing=20live-guarded=20reachability?= =?UTF-8?q?=20test;=20routed=20to=20coder0=20no-weakening;=20re-serialize+?= =?UTF-8?q?re-ROR=20at=20new=20head?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 60adfc0..1caab2f 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 127a69ea11cc (Gitea comment 17088) — NOT mergeable.** CI 1767 green; command-authz byte-identical a9f829e7 CONFIRMED; production positives CONFIRMED (module factory registers Hermes provider; concrete transport HTTPS/prefix/channel headers; no live creds/no Tess literal). **Blocker (reachability-integrity):** the required live-guarded reachability proof is MISSING — test directly calls controller.transitionalCapabilities + manually constructs RuntimeProviderService/createGatewayRuntimeProviderRegistry; it does NOT exercise live GET /api/interaction/:agentName/transitional-capabilities, Nest DI through AgentModule, or the AuthGuard request path, so it can pass even if injected gateway registry/route wiring is broken (defeats the M4-V E2E-reachability point). Routed back to coder0 (integrity: add genuine Nest-e2e live-guarded reachability test through real DI+route+AuthGuard asserting reach of the registered Hermes provider; do NOT weaken/stub/mock around it; keep command-authz a9f829e7). Old ROR 17088 + CI 1767 will be SUPERSEDED by the remediation head → re-serialize CI + re-ROR at new head. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From d9cc2e99782f745e9070ec69a55bc204f3584bba Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 09:26:59 -0500 Subject: [PATCH 60/61] ledger(tess): #740 remediation head a7e5d377 (live-guarded Nest-e2e reachability test); CI 1768 re-serializing --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 1caab2f..0906561 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 127a69ea11cc (Gitea comment 17088) — NOT mergeable.** CI 1767 green; command-authz byte-identical a9f829e7 CONFIRMED; production positives CONFIRMED (module factory registers Hermes provider; concrete transport HTTPS/prefix/channel headers; no live creds/no Tess literal). **Blocker (reachability-integrity):** the required live-guarded reachability proof is MISSING — test directly calls controller.transitionalCapabilities + manually constructs RuntimeProviderService/createGatewayRuntimeProviderRegistry; it does NOT exercise live GET /api/interaction/:agentName/transitional-capabilities, Nest DI through AgentModule, or the AuthGuard request path, so it can pass even if injected gateway registry/route wiring is broken (defeats the M4-V E2E-reachability point). Routed back to coder0 (integrity: add genuine Nest-e2e live-guarded reachability test through real DI+route+AuthGuard asserting reach of the registered Hermes provider; do NOT weaken/stub/mock around it; keep command-authz a9f829e7). Old ROR 17088 + CI 1767 will be SUPERSEDED by the remediation head → re-serialize CI + re-ROR at new head. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 127a69ea11cc (Gitea comment 17088) — NOT mergeable.** CI 1767 green; command-authz byte-identical a9f829e7 CONFIRMED; production positives CONFIRMED (module factory registers Hermes provider; concrete transport HTTPS/prefix/channel headers; no live creds/no Tess literal). **Blocker (reachability-integrity):** the required live-guarded reachability proof is MISSING — test directly calls controller.transitionalCapabilities + manually constructs RuntimeProviderService/createGatewayRuntimeProviderRegistry; it does NOT exercise live GET /api/interaction/:agentName/transitional-capabilities, Nest DI through AgentModule, or the AuthGuard request path, so it can pass even if injected gateway registry/route wiring is broken (defeats the M4-V E2E-reachability point). Routed back to coder0 (integrity: add genuine Nest-e2e live-guarded reachability test through real DI+route+AuthGuard asserting reach of the registered Hermes provider; do NOT weaken/stub/mock around it; keep command-authz a9f829e7). Old ROR 17088 + CI 1767 will be SUPERSEDED by the remediation head → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed the live-guarded reachability test, NEW frozen head a7e5d377e38b40275884a7df6ee35c55c5859e43** (live Gitea head independently verified, base main 3378b857, mergeable=true) — added apps/gateway/src/agent/hermes-runtime-reachability.e2e.test.ts: imports REAL AgentModule (preserves actual AGENT_RUNTIME_PROVIDER_REGISTRY factory + RuntimeProviderService), boots Fastify/Nest, unauth HTTP GET /api/interaction/Nova/transitional-capabilities?provider=runtime.hermes asserts 401 via ACTUAL AuthGuard, authed GET asserts 200 + all five Hermes entries, asserts DI registry resolves HermesRuntimeProvider; only unrelated peripheral modules harness-replaced to avoid DB/queue startup — NO route/guard/DI-registry/runtime-service/provider mock; existing controller unit test retained; command-authz untouched (byte-identical a9f829e7 remains). Cold-cache root typecheck/lint/format/test green 42/42 (gateway 53 files/606 tests). Old ROR 17088 + CI 1767 SUPERSEDED. Re-serializing: **CI 1768 (repo 47, refs/pull/740/head, commit==head a7e5d377) running** — poll in flight; on green → re-route non-author ROR at exact head a7e5d377. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1 From 3ad7bfd5a35e68190f879de0392154b835f0100b Mon Sep 17 00:00:00 2001 From: Jarvis Date: Mon, 13 Jul 2026 09:39:12 -0500 Subject: [PATCH 61/61] =?UTF-8?q?ledger(M4-W-001):=20#740=20CI=201768=20gr?= =?UTF-8?q?een=20+=20reviewer=20VERIFIED=20APPROVE=20at=20head=20a7e5d377?= =?UTF-8?q?=20(17094)=20=E2=80=94=20provider-registration=20linchpin=20MER?= =?UTF-8?q?GEABLE,=20HARD=20STOP=20for=20Mos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tess/TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tess/TASKS.md b/docs/tess/TASKS.md index 0906561..ef6363d 100644 --- a/docs/tess/TASKS.md +++ b/docs/tess/TASKS.md @@ -35,7 +35,7 @@ | TESS-M4-001 | done | Implement Mos coordination handoff/observe/result contract with authority-boundary tests | #710 | coder0 | packages/coord, apps/gateway | feat/tess-mos-coordination | TESS-M3-V | 25K | **MERGED by Mos** → main squash **76325ca3** ("feat(tess): add Mos coordination boundary (#735)"), 2026-07-13 — merge = native-in-process transport ACCEPTED (contract transport-neutral). TESS-MOS-001. Mos-DISPATCHED 2026-07-13 to coder0 DESIGN-FIRST. UPDATE 2026-07-13: coder0 wrote docs/tess/MOS-COORDINATION.md; design checkpoint surfaced to Mos with the transport-adapter question (existing fleet/tmux Mos-authority channel vs dedicated native queue/HTTP). coder0 PROCEEDED (ahead of the Mos transport ruling) choosing a **native in-process adapter** and opened **PR #735** (base=main), head 7936e15d3ae137c91c88efdab4bb09b863a2195d. Impl: transport-NEUTRAL handoff/observe/result contract (MosCoordinationPort); deterministic native in-process InMemoryMosCoordinationPort; gateway derives actor/tenant/requester from trusted context/config; fail-closed for unconfigured-requester, self-delegation, target-drift, cross-tenant observe/result; NO public orchestrator verbs; **NO fleet/tmux transport, NO Mos-side consumer**; command-authorization byte-identical hash a9f829e7; no live creds; no hardcoded Tess identity. Local forced cold-cache typecheck/lint/format/test green (42 tasks); Codex security no findings. CI pipeline 1752 (pull_request, refs/pull/735/head, commit 7936e15d) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 7936e15d (Gitea comment 17032) — verified MosCoordinationPort=handoff/observe/result only, gateway-derived authority, fail-closed denial coverage, native in-process port (no tmux/Mos consumer), command-authz byte-identical a9f829e7, no live creds, no Tess literal. ⚠️ HEAD MOVED 2026-07-13 (ROR 17032 INVALIDATED): coder0 pushed one post-ROR commit → new head **5022911f84dd7ac30f40df31a53f6cd31a51728f** (commit "docs(tess): record M4 verification", parent 7936e15d). Orchestrator-verified sole delta = a single scratchpad doc docs/scratchpads/tess-m4-001-mos-coordination.md, ZERO code/test diff. New CI pipeline 1754 (pull_request, refs/pull/735/head, commit 5022911f) = **SUCCESS**; mergeable=true, head now 5022911f. Comment 17032 @ 7936e15d no longer at exact head → re-serialize + re-ROR REQUIRED. Fast delta RE-ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 5022911f (Gitea comment 17036) — confirmed 5022911f is direct child of prior-reviewed 7936e15d, sole two-dot delta = the 3-line scratchpad doc, no code/test diff, command-authz byte-identical a9f829e7, CI 1754 success. Head UNMOVED (5022911f), mergeable=true. **MERGEABLE at 5022911f — HARD STOP for Mos merge** (2026-07-13). MERGE = Mos ACCEPTING the native-in-process transport choice (contract stays transport-neutral; a fleet/tmux or native-queue/HTTP consumer can be added later without contract churn); if Mos wants a different FIRST adapter, hold merge + route rework to coder0. | | TESS-M4-002 | done | Implement transitional Hermes runtime/capability adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-hermes-adapter | TESS-M3-V | 40K | **MERGED by Mos** → main squash **9e5b9188** ("feat(agent): add transitional Hermes runtime adapter (#734)"), 2026-07-13 — Mos merge = **option (a) ACCEPTED**; post-merge main CI 1753. TESS-HRM-001; no legacy schema in core contracts. Mos-DISPATCHED 2026-07-13 to coder3 DESIGN-FIRST (contract sketch + questions to Mos before build). Goes in-progress as PR opens; PR-open-STOP → serialize CI + independent non-author ROR at exact head → Mos merges. UPDATE 2026-07-13: coder3 ACTIVE — fresh worktree/branch feat/tess-hermes-adapter off origin/main; boundary sketch at docs/tess/hermes-runtime-adapter-design.md. DESIGN QUESTION surfaced to Mos (coder3 HELD at design-only until ruling): AC-TESS-05 wants approved capability across Kanban/skills/memory/tools/cron, but AgentRuntimeProvider models only SESSION capabilities. (a) adapter-local Hermes inventory/health marks those as explicit UNSUPPORTED, real ops deferred to their Mosaic-owned plugin contracts (coder3 default, preserves hard no-legacy-core-contract rule); vs (b) an existing Mosaic-owned non-runtime capability contract this adapter must implement. Orchestrator recommends (a) to Mos as the conservative boundary-preserving path. UPDATE 2026-07-13: coder3 PROCEEDED WITH (a) and opened **PR #734** (base=main), head 47b8a145ac43688499d275a54b434a52551c1abd — ahead of the Mos (a/b) ruling (design-hold was placed; coder3's original msg said it would proceed with (a) unless directed). Hermes adapter normalized behind packages/agent boundary; core types unchanged, unsupported ops fail-closed, tests prove no legacy field leak; focused tests/typecheck/lint pass; cold-cache turbo typecheck+build 46/46 0-cached. mergeable=true. CI pipeline 1751 (pull_request, refs/pull/734/head, commit 47b8a145) = **SUCCESS**; head UNMOVED, mergeable=true. Independent non-author ROR **COMPLETE**: reviewer [W-jarvis:reviewer] VERIFIED APPROVE at exact head 47b8a145 (Gitea comment 17027) — verified core AgentRuntimeProvider/runtime types UNCHANGED, adapter normalizes Hermes legacy shapes behind packages/agent boundary, unsupported runtime ops FAIL CLOSED via capability_unsupported BEFORE transport side effects (Kanban/skills/memory/tools/cron deferred under option (a)), no live creds, no hardcoded Tess agent identifier. Head UNMOVED, mergeable=true. **MERGEABLE — HARD STOP for Mos merge** (2026-07-13). ⚠️ MERGE GATED on Mos confirming option (a) is accepted (implementation == (a)); if Mos rules (b), #734 needs rework. HARD STOP for Mos merge. | | TESS-M4-003 | done | Implement memory/retrieval, state/inbox, runtime bootstrap, fleet diagnostics and GitOps plugin foundations | #710 | coder0 | packages/memory, packages/agent, packages/mosaic | feat/tess-operator-plugins | TESS-M3-V | 40K | **MERGED by Mos** → main squash **2363f155** ("feat(memory): add operator retrieval plugin (#736)"), 2026-07-13. ⚠️ SCOPE GAP surfaced by Mos: #736 delivered ONLY the leaf @mosaicstack/memory operator-retrieval slice; **TESS-PLG-001 (packages/mosaic catalog/registration) was silently DEFERRED by the author and never surfaced in MISSION-MANIFEST/VERIFICATION-MATRIX** → now tracked explicitly as its own row (see TESS-PLG-001 below) and folded into TESS-M4-W-001. State/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations remain follow-on (not in #736). TESS-MEM-001, TESS-PLG-001. Mos HELD 1 beat (2026-07-13) for a well-conditioned lane. UPDATE 2026-07-13: coder0 TOOK OVER M4-003 (preserved coder4 WIP first, then rebased on latest main) and opened **PR #736** (base=main), head a1d63ca8ed07610828e9c51a213fffe9123b3de4. ⚠️ AUTHORIZATION FLAG to Mos: M4-003 was on Mos 1-beat HOLD; confirm this takeover/dispatch was Mos-authorized before merge. Scope delivered: LEAF @mosaicstack/memory operator retrieval plugin — config-injected adapter/namespace, runtime-validated server-derived tenant/owner/session scope, redaction-before-persist, provenance, bounded startup prioritization, wildcard adapter contract, namespace/different-instance tests. NO gateway/catalog/durable-inbox or command-authorization changes. Forced cold-cache typecheck/lint/format/test green (42 tasks); Woodpecker 1756 green; Codex code+security clean. CI pipeline 1756 (pull_request, refs/pull/736/head, commit a1d63ca8) = **SUCCESS**; mergeable=true. Independent non-author ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a1d63ca8 (Gitea comment 17044) — leaf packages/memory/doc only (no gateway/catalog/durable-inbox), command-authz byte-identical a9f829e7, runtime scope validation before storage keying, config-injected adapter/namespace/instance metadata, redaction-before-persist + provenance, scoped wildcard adapter contract, namespace/different-instance tests, no live creds, no Tess literal. Head verified UNMOVED at a1d63ca8, base main, mergeable=true. **MERGEABLE — reported to Mos, HARD STOP for Mos merge.** NOTE: M4-003 scope here is the memory-plugin slice; state/inbox/runtime-bootstrap/fleet-diagnostics/GitOps foundations may be follow-on slices — confirm with Mos whether #736 fully closes M4-003 or is slice 1. | -| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 127a69ea11cc (Gitea comment 17088) — NOT mergeable.** CI 1767 green; command-authz byte-identical a9f829e7 CONFIRMED; production positives CONFIRMED (module factory registers Hermes provider; concrete transport HTTPS/prefix/channel headers; no live creds/no Tess literal). **Blocker (reachability-integrity):** the required live-guarded reachability proof is MISSING — test directly calls controller.transitionalCapabilities + manually constructs RuntimeProviderService/createGatewayRuntimeProviderRegistry; it does NOT exercise live GET /api/interaction/:agentName/transitional-capabilities, Nest DI through AgentModule, or the AuthGuard request path, so it can pass even if injected gateway registry/route wiring is broken (defeats the M4-V E2E-reachability point). Routed back to coder0 (integrity: add genuine Nest-e2e live-guarded reachability test through real DI+route+AuthGuard asserting reach of the registered Hermes provider; do NOT weaken/stub/mock around it; keep command-authz a9f829e7). Old ROR 17088 + CI 1767 will be SUPERSEDED by the remediation head → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed the live-guarded reachability test, NEW frozen head a7e5d377e38b40275884a7df6ee35c55c5859e43** (live Gitea head independently verified, base main 3378b857, mergeable=true) — added apps/gateway/src/agent/hermes-runtime-reachability.e2e.test.ts: imports REAL AgentModule (preserves actual AGENT_RUNTIME_PROVIDER_REGISTRY factory + RuntimeProviderService), boots Fastify/Nest, unauth HTTP GET /api/interaction/Nova/transitional-capabilities?provider=runtime.hermes asserts 401 via ACTUAL AuthGuard, authed GET asserts 200 + all five Hermes entries, asserts DI registry resolves HermesRuntimeProvider; only unrelated peripheral modules harness-replaced to avoid DB/queue startup — NO route/guard/DI-registry/runtime-service/provider mock; existing controller unit test retained; command-authz untouched (byte-identical a9f829e7 remains). Cold-cache root typecheck/lint/format/test green 42/42 (gateway 53 files/606 tests). Old ROR 17088 + CI 1767 SUPERSEDED. Re-serializing: **CI 1768 (repo 47, refs/pull/740/head, commit==head a7e5d377) running** — poll in flight; on green → re-route non-author ROR at exact head a7e5d377. | +| TESS-M4-W-001 | in-progress | M4-V remediation — gateway reachability SPINE: register runtime provider into AGENT_RUNTIME_PROVIDER_REGISTRY + wire Mos-coordination consumer + wire operator-memory-plugin consumer (make merged M4 deliverables reachable end-to-end); FOLDS IN minimal TESS-PLG-001 catalog/registration | #710 | coder0 | apps/gateway, packages/mosaic, packages/agent | feat/tess-m4w-reachability-spine | TESS-M4-003 | 30K | **Mos-DISPATCHED 2026-07-13** (remediation). Root cause: M4-V holistic review @ origin/main **2363f155** found the three merged M4 deliverables unit-green but NOT reachable end-to-end (no gateway wiring/consumers; providers never registered into the registry). **SPLIT into 3 sub-parts by coder0 (integrity-honest):** **(#2 Mos-coordination consumer) = DELIVERED as PR #737** (head f7b95f60, base main, "feat(gateway): expose Mos coordination boundary") — real AuthGuard Mos handoff/observe/result consumer, authenticated actor/tenant + required correlation derivation, service authority unchanged, gateway target test/typecheck/lint pass; **CI 1758 SUCCESS** (repo 47, commit==head); head verified UNMOVED at f7b95f60666a4abbbad9a08669637b19fa87c430, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head f7b95f60 (Gitea comment 17054) — clean partial scope confirmed (AuthGuard Mos handoff/observe/result controller + module registration only; no runtime-provider registration / operator-memory consumer; actor/tenant from CurrentUser/scopeFromUser + required X-Correlation-Id before service invocation; MosCoordinationService unchanged; command-authz byte-identical a9f829e7; no live creds/no Tess literal). **#737 MERGEABLE — reported to Mos, HARD STOP for Mos merge (partial slice; land-vs-hold-for-full-spine is Mos's disposition call).** **(#1 runtime-provider registration) + (operator-memory consumer) = BLOCKED, NOT in #737.** coder0 could not truthfully complete them in this slice and REFUSED to fake with deny/unavailable stubs: gateway has **no concrete Hermes transport** and **no gateway-side tmux transport/authority wiring** to register a real provider; OperatorMemory consumer needs **session tenant/owner/session propagation currently ABSENT from AgentService's memory-tools boundary**. ⚠️ **DESIGN RULING ESCALATED TO MOS** (architecture, not resolvable from repo): how to wire provider-registration + memory-scope propagation when no concrete transport exists yet — new remediation slice / re-scope / accept #737 as incremental. TESS-PLG-001 (folded here) is part of the blocked #1 registration path. Command-authz byte-identical a9f829e7. **UPDATE 2026-07-13: #737 MERGED by Mos → main e2376190 ("feat(gateway): expose Mos coordination boundary (#737)").** **Operator-memory consumer sub-part UNBLOCKED + DELIVERED as PR #739** ("feat(memory): bind operator plugin to agent sessions", base main off e2376190, live head 31a59738089f0784428833fc5a0192c6c7c43261, mergeable=true) — coder0 resolved the session-scope-propagation blocker WITHOUT stubbing: gateway bootstrap configures plugin only with MOSAIC_OPERATOR_MEMORY_INSTANCE_ID + MOSAIC_OPERATOR_MEMORY_NAMESPACE, AgentService derives {tenantId,ownerId,sessionId} server-side and binds search/capture tools. Cold-cache root typecheck/lint/format/test (42 tasks) green; security review clean (Codex Optional-import finding = false positive, pre-existing, typecheck passed). **CI 1764 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 31a59738089f0784428833fc5a0192c6c7c43261, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 31a59738089f** (coder0 authored → reviewer is non-author) — asked reviewer to confirm scope is server-derived/non-client-controllable + no cross-tenant leak, and to independently verify the Codex Optional-import finding is a false positive. (Head reconcile CLOSED: coder0 confirmed 31a597380c55… was a transcription typo; live+frozen head is 31a59738089f0784428833fc5a0192c6c7c43261, working tree clean.) **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 31a59738089f (Gitea comment 17069) — NOT mergeable.** Production code CONFIRMED correct (plugin route wired, config env namespace/instance only, no live creds/no Tess literal, command-authz byte-identical a9f829e7; Codex Optional-import finding = false positive, import present). **Two TEST-COVERAGE blockers:** (1) tests BYPASS production scope derivation — they call createMemoryTools with a PREBUILT scope, never exercising the real createSession→buildToolsForSandbox server-side {tenantId,ownerId,sessionId} derivation; (2) NO divergent cross-tenant/cross-owner ISOLATION/DENIAL test proving a foreign actor cannot reuse a session / reach another operator-memory scope before the plugin call. Routed back to coder0 (integrity: harden real coverage, do NOT weaken assertion). Any new commit MOVES head → invalidates ROR → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed hardened tests, NEW frozen head c26b3b775279575276c6ebe8955a9146bfc61413** — added createSession→buildToolsForSandbox PRODUCTION-PATH assertion of derived {tenantId,ownerId,sessionId}; added foreign-actor reuse DENIAL test asserting rejection occurs BEFORE scope/tool construction and before any plugin call. Cold-cache root typecheck/lint/format/test green (42 tasks). Old ROR at 31a59738089f + CI 1764 SUPERSEDED. Re-serialized: **CI 1765 SUCCESS** at c26b3b775279 (ref refs/pull/739/head, commit==head); head verified UNMOVED at c26b3b775279575276c6ebe8955a9146bfc61413, base main, mergeable=true. **Fresh independent non-author ROR RE-ROUTED to reviewer at exact head c26b3b775279** — asked reviewer to confirm both 17069 blockers genuinely closed (prod-path derivation exercised + cross-tenant denial before plugin call, assertion not weakened). **Independent non-author re-ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head c26b3b775279 (Gitea comment 17074) — both 17069 blockers CONFIRMED closed: production createSession→buildToolsForSandbox scope-derivation test asserts {tenantId,ownerId,sessionId}; foreign-scope reuse rejects BEFORE tool construction and BEFORE plugin search/capture; production wiring reachable via MemoryModule env-configured plugin → AgentService injection → memory_search/memory_save_insight plugin path; command-authz byte-identical a9f829e7; Optional import present; no live creds/no Tess literal. Head verified UNMOVED at c26b3b775279, base main, mergeable=true. **#739 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This lands the operator-memory-consumer sub-part of W-001; REMAINING W-001 gap = only (#1) runtime-provider registration. **REMAINING blocked: (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY** — still needs Mos A/B/C design ruling (no concrete Hermes transport yet). So after #739 lands, W-001 = Mos-consumer (#737 merged) + memory-consumer (#739) DONE; only the provider-registration linchpin remains. **UPDATE 2026-07-13: #739 MERGED by Mos → main squash 3378b857eb ("feat(memory): bind operator plugin to agent sessions (#739)"); post-merge main push pipeline 1766 running. W-001 spine now 2-of-3 sub-parts MERGED (Mos-consumer #737 e2376190 + operator-memory-consumer #739 3378b857); ONLY remaining W-001 gap = (#1) runtime-provider registration into AGENT_RUNTIME_PROVIDER_REGISTRY — still BLOCKED on Mos A/B/C design ruling (no concrete Hermes transport; TESS-PLG-001 folded here). coder0 idle/ready to build #1 on ruling.** **UPDATE 2026-07-13: (#1) DELIVERED as PR #740 "feat(gateway): register Hermes runtime provider"** (base main 3378b857, exact live head 127a69ea11ccc36516c78c2007cbe52fbf63ad30 verified unmoved, mergeable=true). coder0 resolved the A/B/C escalation by BUILDING a concrete transport (⚠️ design-direction flagged to Mos for confirm-before-merge): agent.module.ts explicit registry.register(new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())); GatewayHermesRuntimeTransport = server-configured URL+service token, HTTPS-except-loopback, prefixed-URL preserving, forwards full scope incl channel; AuthGuard interaction transitional-capabilities route through RuntimeProviderService + live controller→service→registered-provider reachability test. Cold-cache typecheck/lint/format/test green (42 tasks); Codex path-prefix+channel-header findings remediated, security clean. **CI pipeline 1767 (repo 47, refs/pull/740/head, commit==head) = SUCCESS**; head verified UNMOVED at 127a69ea11ccc36516c78c2007cbe52fbf63ad30 post-CI, base main, mergeable=true. **Independent non-author ROR ROUTED to reviewer at exact head 127a69ea11cc** (coder0 authored → reviewer non-author) — asked reviewer to verify REAL E2E reachability (provider actually in registry + reachability test exercises registered provider, not mock), transport security (HTTPS-except-loopback, no token leak), command-authz byte-identical a9f829e7, no live creds/no Tess literal, Codex findings genuinely remediated. Awaiting reviewer disposition; any new commit moves head → re-serialize + re-ROR. **UPDATE 2026-07-13: reviewer REQUEST CHANGES at head 127a69ea11cc (Gitea comment 17088) — NOT mergeable.** CI 1767 green; command-authz byte-identical a9f829e7 CONFIRMED; production positives CONFIRMED (module factory registers Hermes provider; concrete transport HTTPS/prefix/channel headers; no live creds/no Tess literal). **Blocker (reachability-integrity):** the required live-guarded reachability proof is MISSING — test directly calls controller.transitionalCapabilities + manually constructs RuntimeProviderService/createGatewayRuntimeProviderRegistry; it does NOT exercise live GET /api/interaction/:agentName/transitional-capabilities, Nest DI through AgentModule, or the AuthGuard request path, so it can pass even if injected gateway registry/route wiring is broken (defeats the M4-V E2E-reachability point). Routed back to coder0 (integrity: add genuine Nest-e2e live-guarded reachability test through real DI+route+AuthGuard asserting reach of the registered Hermes provider; do NOT weaken/stub/mock around it; keep command-authz a9f829e7). Old ROR 17088 + CI 1767 will be SUPERSEDED by the remediation head → re-serialize CI + re-ROR at new head. **UPDATE 2026-07-13 (remediated): coder0 pushed the live-guarded reachability test, NEW frozen head a7e5d377e38b40275884a7df6ee35c55c5859e43** (live Gitea head independently verified, base main 3378b857, mergeable=true) — added apps/gateway/src/agent/hermes-runtime-reachability.e2e.test.ts: imports REAL AgentModule (preserves actual AGENT_RUNTIME_PROVIDER_REGISTRY factory + RuntimeProviderService), boots Fastify/Nest, unauth HTTP GET /api/interaction/Nova/transitional-capabilities?provider=runtime.hermes asserts 401 via ACTUAL AuthGuard, authed GET asserts 200 + all five Hermes entries, asserts DI registry resolves HermesRuntimeProvider; only unrelated peripheral modules harness-replaced to avoid DB/queue startup — NO route/guard/DI-registry/runtime-service/provider mock; existing controller unit test retained; command-authz untouched (byte-identical a9f829e7 remains). Cold-cache root typecheck/lint/format/test green 42/42 (gateway 53 files/606 tests). Old ROR 17088 + CI 1767 SUPERSEDED. Re-serializing: **CI 1768 (repo 47, refs/pull/740/head, commit==head a7e5d377) running** — poll in flight; on green → re-route non-author ROR at exact head a7e5d377. **UPDATE 2026-07-13: CI 1768 SETTLED SUCCESS** (repo 47, refs/pull/740/head, commit==head a7e5d377e38b40275884a7df6ee35c55c5859e43); head independently verified UNMOVED at a7e5d377 (live Gitea, NOT worker-reported), base main 3378b857, mergeable=true. **Independent non-author re-ROR COMPLETE: reviewer VERIFIED APPROVE at exact head a7e5d377e38b40275884a7df6ee35c55c5859e43 (Gitea comment 17094).** Prior 17088 blocker CONFIRMED closed — the new hermes-runtime-reachability.e2e.test.ts boots real Nest/Fastify AgentModule and exercises unauth 401 via the ACTUAL AuthGuard + authed HTTP GET /api/interaction/:agentName/transitional-capabilities through the live route→controller→RuntimeProviderService→registered Hermes provider, and asserts DI registry resolves HermesRuntimeProvider (no route/guard/DI/service/provider mock); transport concrete, HTTPS-except-loopback, path-prefix + channel header covered; command-authz byte-identical a9f829e7 CONFIRMED; no live creds/no Tess literal. Head verified UNMOVED at a7e5d377, base main, mergeable=true. **#740 MERGEABLE — the (#1) runtime-provider-registration linchpin — reported to Mos, HARD STOP for Mos merge.** ⚠️ Design-direction (concrete GatewayHermesRuntimeTransport built to resolve the A/B/C escalation) flagged to Mos for confirm-before-merge. On #740 merge, W-001 spine = 3-of-3 sub-parts landed (Mos-consumer #737 + memory-consumer #739 + provider-registration #740) → M4-V re-fire eligible. | | TESS-M4-W-002 | done | M4-V remediation — Hermes capability MATRIX (AC-TESS-05): approved-capability coverage across Kanban/skills/memory/tools/cron for the Hermes adapter | #710 | coder3 | packages/agent, apps/gateway | feat/tess-m4w-hermes-matrix | TESS-M4-002 | 22K | **Mos-DISPATCHED 2026-07-13** (remediation, in flight). Extends the M4-002 option-(a) adapter (merged 9e5b9188) with the AC-TESS-05 capability matrix. UPDATE 2026-07-13: coder3 STARTED — fresh worktree off origin/main 2363f155, TDD failing-matrix-tests-first. Orchestrator TRACKS; on PR-open → serialize CI + independent non-author ROR at EXACT head → HARD STOP for Mos merge. No legacy schema into core contracts; command-authz byte-identical a9f829e7. UPDATE 2026-07-13: **PR #738 OPENED** (base main, head 582c6db2088223fd8dd2105005391b5034c992ac, "feat(agent): add Hermes transitional capability matrix") — normalized exhaustive five-entry matrix (kanban/skills/memory/tools/cron), all explicit unsupported, fails CLOSED before transport; tests 4/4, security review clean, cold-cache 46 successful/0 cached, normalized optional TransitionalCapabilityInventoryProvider (no legacy schema). **CI 1759 SUCCESS** (repo 47, commit==head); head verified UNMOVED at 582c6db2, base main, mergeable=true. **Independent non-author ROR COMPLETE**: reviewer VERIFIED APPROVE at exact head 582c6db2 (Gitea comment 17057) — normalized exhaustive five-entry transitional matrix (kanban/skills/memory/tools/cron) all unsupported; assertTransitionalCapability fails CLOSED with capability_unsupported before Hermes transport; only normalized optional TransitionalCapabilityInventoryProvider added to core (no legacy schema leak); command-authz byte-identical a9f829e7; no live creds/no Tess literal. Head verified UNMOVED at 582c6db2, base main, mergeable=true. **#738 MERGEABLE — reported to Mos, HARD STOP for Mos merge.** This is the COMPLETE matrix deliverable (unlike #737's partial spine). **UPDATE 2026-07-13: #738 MERGED by Mos → merge_commit cca6aaf9. TESS-M4-W-002 DONE.** | | TESS-PLG-001 | in-progress | packages/mosaic plugin catalog / registration (operator plugins registered + discoverable) — was silently deferred by M4-003 author; now VISIBLE | #710 | coder0 | packages/mosaic | feat/tess-m4w-reachability-spine | TESS-M4-003 | (folded) | ⚠️ Surfaced by Mos 2026-07-13 as an invisible gap: M4-003/#736 delivered the memory plugin but NOT its catalog/registration in packages/mosaic; never appeared in MISSION-MANIFEST/VERIFICATION-MATRIX. PLACEMENT DECISION (orchestrator, per Mos "your call"): **FOLD minimal registration into TESS-M4-W-001** (coder0's reachability spine already does registry wiring — same author closes their own gap, keeps it in one lane). This row exists for LEDGER VISIBILITY so the gap is tracked, not re-hidden. If M4-W-001 scope grows too large, split back out as a standalone lane. Manifest/matrix update to follow. | | TESS-M4-V | failed | Cross-provider capability, privacy, authority and failure-path qualification | #710 | sonnet | apps/gateway/src/__tests__/integration, packages/agent | review/tess-m4 | TESS-M4-001,TESS-M4-002,TESS-M4-003,TESS-M4-W-001,TESS-M4-W-002 | 22K | **FAILED 2026-07-13** — independent holistic review @ origin/main **2363f155**: all three M4 deliverables (#734/#735/#736) unit-green but **NOT reachable end-to-end** (providers never registered into AGENT_RUNTIME_PROVIDER_REGISTRY; Mos-coordination + operator-memory consumers unwired; TESS-PLG-001 catalog/registration silently deferred). Remediation TESS-M4-W (W-001 spine coder0 + W-002 Hermes matrix coder3) now in flight. **Mos re-fires M4-V ONLY after the spine + matrix land.** Gate M5 (M5 stays behind M4-V; live-deploy = Jason-reserved). | -- 2.49.1