chore(sync): merge main → next (B1) — resolve 8 conflicts, restore next current #1041

Merged
mos-dt-0 merged 155 commits from sync/b1-main-into-next into next 2026-08-03 10:17:07 +00:00
Collaborator

Closes #1040. Refs #1037 (Phase B2 feature graduation stays open).

Re-opened from #1039 at the IDENTICAL head b8844e1f to add the required Closes directive (fleet-account PR-body edit is blocked by Gitea 403/1010; create works, edit does not). rev-974 review 76 approved this exact SHA on #1039. Auto-close of #1040 will NOT fire on a merge into next (non-default branch) — the coordinator closes #1040 manually on merge.

Summary

Merge current main into next while preserving all 10 commits unique to the integration lane and restoring current trunk behavior, including the RM-03 queue guard fix.

Fetched ground truth before reconciliation: next was 153 commits behind main (one newer than the 152-count charter) and 10 commits ahead.

Conflict resolutions

  1. package.json — retained main's checkout preflight/generated cleanup/typecheck/test wiring and hook installer; retained next's test:installer, with the next-lane installer suite appended to the main test chain. packages/mosaic/package.json carries main's released 0.0.49 version.
  2. apps/gateway/src/commands/command-executor.service.ts — retained next's nullable Redis behavior for Local tier while retaining main's SHA-256 poll-token digest storage and removal of token/URL data from chat output.
  3. apps/gateway/src/gc/session-gc.service.ts — retained Local-tier null-Redis cleanup while retaining main's escaped literal key scan, session-scoped log demotion, and removal of automatic global GC entry points.
  4. apps/gateway/src/log/cron.service.ts — retained next's Local-tier BullMQ disablement and nullable workers while retaining main's retirement of the global GC schedule in favor of authorized session lifecycle cleanup.
  5. apps/gateway/src/preferences/system-override.service.ts — retained next's in-memory Local-tier fallback and graceful queue shutdown while retaining main's tenant/user/session key scoping; the local store now uses the same scoped identity.
  6. packages/mosaic/src/stages/finalize.ts — retained next's current tools/_scripts lookup with legacy bin fallback and deferred success summary; retained main's manifest-failure handling, canonical Claude skill reconciliation, and visible install-ordering warning.
  7. tools/install.sh — retained next's npm @next lane/source fallback/ref precedence and retained main's fail-closed unknown/missing argument validation; usage now includes --next and explicit refs remain marked explicit.
  8. packages/mosaic/framework/defaults/README.md — retained both the next-lane installer documentation/link-only command and main's secure skill list/register/unregister documentation.

Typecheck exposed one non-content semantic merge gap in QueueService.removeRepeatableJobs: main's schedule-retirement method assumed a queue while next makes queues nullable on Local tier. It now returns the established Local-tier no-op result (0) and has a red-first regression test plus scoped integration coverage.

Verification

  • pnpm install --frozen-lockfile — pass
  • pnpm build — pass (25/25 tasks)
  • pnpm typecheck — pass (45/45 tasks)
  • pnpm lint — pass (25/25 tasks)
  • pnpm format:check — pass
  • Gateway conflict suites — 6 files, 70 tests passed
  • Wizard/finalize/install-ordering suites — 6 files, 49 tests passed
  • bash tools/install-next-lane.test.sh — pass (4 scenarios)
  • Queue guard: 482 lines / 5 ASSERTED_NOT_READY occurrences
  • Mosaic package version: 0.0.49
  • Both origin/main and origin/next are ancestors of this head; all 10 next-only commits are preserved

The first parallel focused run observed one environment-sensitive install-ordering probe mismatch; the identical combined command was rerun serially and passed 49/49, then passed again in the final head-bound verification.

Refs #1037 — B2 graduation tracking. On merge, next self-versions 0.0.50-next on the next dist-tag only, never latest.

Do not merge before independent rev-974 review and merge-gate approval.

Closes #1040. Refs #1037 (Phase B2 feature graduation stays open). Re-opened from #1039 at the IDENTICAL head `b8844e1f` to add the required Closes directive (fleet-account PR-body edit is blocked by Gitea 403/1010; create works, edit does not). rev-974 review 76 approved this exact SHA on #1039. Auto-close of #1040 will NOT fire on a merge into `next` (non-default branch) — the coordinator closes #1040 manually on merge. ## Summary Merge current `main` into `next` while preserving all 10 commits unique to the integration lane and restoring current trunk behavior, including the RM-03 queue guard fix. Fetched ground truth before reconciliation: `next` was 153 commits behind `main` (one newer than the 152-count charter) and 10 commits ahead. ## Conflict resolutions 1. `package.json` — retained main's checkout preflight/generated cleanup/typecheck/test wiring and hook installer; retained next's `test:installer`, with the next-lane installer suite appended to the main test chain. `packages/mosaic/package.json` carries main's released `0.0.49` version. 2. `apps/gateway/src/commands/command-executor.service.ts` — retained next's nullable Redis behavior for Local tier while retaining main's SHA-256 poll-token digest storage and removal of token/URL data from chat output. 3. `apps/gateway/src/gc/session-gc.service.ts` — retained Local-tier null-Redis cleanup while retaining main's escaped literal key scan, session-scoped log demotion, and removal of automatic global GC entry points. 4. `apps/gateway/src/log/cron.service.ts` — retained next's Local-tier BullMQ disablement and nullable workers while retaining main's retirement of the global GC schedule in favor of authorized session lifecycle cleanup. 5. `apps/gateway/src/preferences/system-override.service.ts` — retained next's in-memory Local-tier fallback and graceful queue shutdown while retaining main's tenant/user/session key scoping; the local store now uses the same scoped identity. 6. `packages/mosaic/src/stages/finalize.ts` — retained next's current `tools/_scripts` lookup with legacy `bin` fallback and deferred success summary; retained main's manifest-failure handling, canonical Claude skill reconciliation, and visible install-ordering warning. 7. `tools/install.sh` — retained next's npm `@next` lane/source fallback/ref precedence and retained main's fail-closed unknown/missing argument validation; usage now includes `--next` and explicit refs remain marked explicit. 8. `packages/mosaic/framework/defaults/README.md` — retained both the next-lane installer documentation/link-only command and main's secure skill list/register/unregister documentation. Typecheck exposed one non-content semantic merge gap in `QueueService.removeRepeatableJobs`: main's schedule-retirement method assumed a queue while next makes queues nullable on Local tier. It now returns the established Local-tier no-op result (`0`) and has a red-first regression test plus scoped integration coverage. ## Verification - `pnpm install --frozen-lockfile` — pass - `pnpm build` — pass (25/25 tasks) - `pnpm typecheck` — pass (45/45 tasks) - `pnpm lint` — pass (25/25 tasks) - `pnpm format:check` — pass - Gateway conflict suites — 6 files, 70 tests passed - Wizard/finalize/install-ordering suites — 6 files, 49 tests passed - `bash tools/install-next-lane.test.sh` — pass (4 scenarios) - Queue guard: 482 lines / 5 `ASSERTED_NOT_READY` occurrences - Mosaic package version: `0.0.49` - Both `origin/main` and `origin/next` are ancestors of this head; all 10 next-only commits are preserved The first parallel focused run observed one environment-sensitive install-ordering probe mismatch; the identical combined command was rerun serially and passed 49/49, then passed again in the final head-bound verification. Refs #1037 — B2 graduation tracking. On merge, `next` self-versions `0.0.50-next` on the `next` dist-tag only, never `latest`. Do not merge before independent `rev-974` review and merge-gate approval.
coder-mos2 added 155 commits 2026-08-03 08:20:46 +00:00
docs(bootstrap): add python-is-python3 to agent-host prerequisites (#694)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
851c67c27b
fix(tools/tmux): unique per-invocation paste buffer; track auto-submit-drafts.sh (#697)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
4e9e053800
fix(tools/_lib): /etc/mosaic host-level fallback for credential resolution (#700)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
4df38f7e81
fix(tools/git): -h/--help now exits 0 across 7 wrappers (#702)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
a99aded26d
docs(tess): define Pi-native interaction agent mission (#712)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
59e49cfd15
Fixes #703 (#705)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
b580d37d51
restore Tess markdown formatting gate (v2, non-author) (#714)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
ca9c2b5c23
fix: enforce Tess session ownership scope (#715)
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
353e43c947
feat(tess): define runtime provider contract (#719)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
62f8177806
ci: restrict push-event CI to protected branches (halve feature-branch load) (#721)
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
a959b1d6b4
fix(security): enforce Tess MCP server identity (#717)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
227b73fcdf
fix(tess): enforce command authorization approvals (#718)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
46ca3ce742
feat(#707): secure Discord service ingress (#716)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
119f64e69d
feat: add Tess runtime provider registry (#722)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
e92186d768
fix(#707): scope session GC retention (#720)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
753a360517
feat(tess): add roster-bound tmux fleet provider (#724)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
9a8a572fcf
fix(tess): redact chat persistence and egress (#725)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
7b9f40d3b7
feat(tess): add safe runtime observability (#726)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
86a50138a9
docs(tess): sync M1 ledger to merged state; M1-V Mos-owned (#727)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
24b07d0f83
feat(tess): add configurable Pi interaction service (#728)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
e3b5113be2
feat(tess): persist durable session state (#729)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
99a2d0fc9d
feat(tess): add generic interaction CLI (#731)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
8246ee0137
feat(#709): add configured Discord interaction binding (#730)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
84d884b932
feat(tess): wire durable interaction surfaces (#732)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
0b621660c8
fix(tess): route bare Discord approvals (#733)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
f1c6b37b46
feat(agent): add transitional Hermes runtime adapter (#734)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
9e5b9188ce
feat(tess): add Mos coordination boundary (#735)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
76325ca3f2
feat(memory): add operator retrieval plugin (#736)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2363f155b4
feat(agent): add Hermes transitional capability matrix (#738)
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
cca6aaf947
feat(gateway): expose Mos coordination boundary (#737)
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
e2376190e5
feat(memory): bind operator plugin to agent sessions (#739)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
3378b857eb
feat(gateway): register Hermes runtime provider (#740)
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
b7b0f508e6
docs(tess): sync M4 tracking to merged reality (M4 in-progress / gate-pending) (#741)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
f40e6ba388
docs(tess): add migration evidence set (#742)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
5789711ee0
docs(tess): ledger sync — W-001 3-of-3 merged, M5-002 approved, M5-001 in TDD (#743)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
c6e3cfbd95
feat(agent): add Matrix native runtime provider (#744)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
6345dbfcf2
docs(tess): ledger sync m3 — M5-001 + M5-002 done (#745)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
e72388b2cb
docs(#744): complete Tess documentation gate (#746)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
bc8016c831
docs(tess): ledger sync m4 — M5-003 done, #745/#746 merged (#749)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8dd4e9d541
De-hardcode orchestrator and interaction agent names (#748)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
405984af5a
docs(tess): remediate M5 qualification findings (#750)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
d077183554
docs(#751): Publish native Kanban/SOT canon (#752)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
49e8a54105
docs(mos): preserve Option 2 qualification evidence (#759)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
5e832049bb
docs(mos): format Option 2 qualification report (#762)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
48b2bc42c9
docs(fleet): define declarative configuration M0 (#760)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
c32d85a337
Fixes #756 (#763)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
ba13c08890
feat(fleet): add roster v2 structural compiler (#764)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
aa5b43bba2
docs(#753): clear KBN-010 threat and schema gate (#765)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2e2280070a
feat(mos): add logical identity connector fencing (#757)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
eb4e14ae5c
feat(fleet): add shared role semantics (#768)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
a5e8e55401
test(fleet): validate shipped artifact dispositions (#770)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
e9c4aa3e8b
feat(fleet): enforce generated environment boundary (#772)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
191efaefeb
feat(fleet): add generation-guarded agent CRUD (#773)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
bc5e73629e
docs(kbn): freeze KBN-101 database role split contract (#774)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
c593a15ef8
feat(fleet): reconcile local roster state (#785)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
499090508e
test(fleet): cover reconciler lifecycle gates (#786)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
c1aecfabe9
fix(fleet): enforce exact comms authority (#787)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
adad486b6f
feat(fleet): add reviewed v1-to-v2 migration preview (#788)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
9745bc3f29
feat(mosaic): claudex proxy preflight + lifecycle (P1 of #790) (#793)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
59f5f51ffd
feat(mosaic): claudex isolated config + env-inject + yolo wiring (P2–P4 of #790) (#806)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
3be443c96d
fix(tmux): correct cross-socket sender identity (#808) (#809)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
4f29cc604d
fix(glpi): accept HTTP 206 in list wrappers (#807) (#810)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8536454257
feat(mosaic): manifest-owned upgrade guard so updates never wipe operator config (#791) (#802)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
32a0ffba13
feat(mosaic): durable pre-update snapshot + verify net + restore CLI (#791 PR2) (#811)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
31607a4af6
feat(fleet): mosaic fleet regen — regenerate roster-derived projections (PR3 of #791) (#813)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
9ddc6fbda8
ci: bake git into the prebuilt test image (#819)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
cabf02e7b9
ci: bake jq into the prebuilt test image (#821)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
fe7a468c9d
fix: fetch actual Gitea PR head for Codex reviews (#815)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
686c881fe4
fix(#792): fleet roster ENOENT actionable exit + installer heading printf (#818)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
3f77229e88
fix: reject unknown installer arguments (#825)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
d3bf52898b
feat(mosaic): add secure skill registration CLI (#826)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
d801d6c4c8
feat(mosaic): add authenticated external lease broker (#836)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8ec67a1126
feat(mosaic): WI-2 mutator-class guard for directive-freshness (#837)
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
abd2791f59
WI-2: mutator-class guard for the compaction directive-freshness mechanism — command-position parser (prefix x var-indirection unified) + primitive-anchored invariant backstop + all-tools-hook fail-close. Parser-complete on principle: realistic evasion matrix RED-regression-covered, residual exotic evasions proven backstop-caught (B-tests), lens-convergence reached.

closes #829
fix(#838): bound broker reply deadlines + fail-close empty-read; de-flake acceptance harness (#839)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8dfcf1903e
Bound broker reply deadlines (separate read/lock/send budgets, BROKER_BUSY-before-mutation, fresh post-handle send budget → closes drop-after-commit window); fail-close empty/truncated read → GATE_UNAVAILABLE deny. De-flakes the 1917 acceptance surface. terra CODE APPROVE (pi) + Opus SECREV APPROVED (claude) — RoR comment 18143. Promote-lease-lost-ACK residual = fail-safe two-generals observability-gap, routed to WI-3 D2-v5 as named-disclosed-bounded-residual (route i). Gate-16 3-principal author=gpt-sol.

closes #838
WI-3 (#830): compaction observers → revoke + D4 same-PID generation auto-revoke (#842)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
e4d7d4502d
WI-4 (#831): verbatim-hashed normative fragments (B_payload/H_payload) (#844)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
e522b22fa4
WI-5 #832: Receipt-challenge protocol (compaction-refresh, milestone 188) (#845)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
07553ead33
WI-6 (#833): constrained recovery command + mosaic-context-refresh skill wrapper (#846)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2509eb7646
WI-7 #834: T-C server-side branch-protection posture + R1 honesty amendment (#847)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
0582a8912b
docs(fleet): add operator configuration guide (#789)
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
627cf2bb38
fix(lease-broker): de-flake recovery_runtime b2 broker-socket ConnectionRefused race (#849) (#851)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
77c9a82614
fix(framework): durable Gitea comment posting in pr-review.sh via REST + read-back verify (#812) (#852)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
aa999daf1b
docs(tasks): FCM-M5-001 done — verified completion evidence (supersedes #848) (#853)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
11d2818453
fix(framework): drop unsupported --comment from tea pr approve/reject; route review body via durable comment (#835) (#857)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
3b70c66c07
fix(framework): install deps on worktree bootstrap + legible deps-preflight at gate seam (#856) (#858)
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
acd7d380f6
fix(#812 follow-up): normalize detect-platform.sh host-match port comparison by scheme (#859)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
344d86a635
fix(mosaic): de-flake mutator-class lease gate TTL-expiry test (#861)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
b0d78d8632
GLPI helpdesk workflow skills written against the portable
tools/glpi/ tooling (session-init.sh, ticket-list.sh, ticket-create.sh),
cross-linked via [[glpi-*]]:

- glpi-solve    — close a ticket by setting status Solved (5); GLPI auto-closes
- glpi-followup — add a followup via the top-level /ITILFollowup endpoint
- glpi-sweep    — read-only hunt for done-but-open tickets needing Solve
- glpi-list     — query tickets by status/recency
- glpi-create   — open a new ticket

Core rule encoded: completing work means setting status Solved, not just
posting a resolution followup (a followup documents; only Solved auto-closes).

Note: illustrative examples in the bodies are USC-flavored (M2M / helpdesk
ticket numbers) and can be genericized in review if preferred.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_019GjBgrb9tHgvq414Fqj37c
Merge pull request 'skills: add glpi-* family (solve, followup, sweep, list, create)' (#863) from feat/glpi-skills into main
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
4e5af23214
feat(orchestrator): board-roll.sh — auto-roll LIVE board to LEDGER under byte cap (#868)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
b79336a8c1
feat(orchestrator): board-roll.sh - auto-roll LIVE board to LEDGER under byte cap

Closes #868
fix(ci-queue-wait): treat absent branch (404) as queue-clear (#872)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
48fd1df28a
Closes #872

Mos (id-11) Gate-16 merge: independent review APPROVE @23cbdaf8, author jason.woltje(id2) != approver Mos(id11), CI green wp1974.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(869-c1): activation-capability probe (Part of #869)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
db90da347e
Part of #869

Mos (id-11) Gate-16 merge: independent 3-round APPROVE @c5a2bcc5, author id2 != approver id11, CI green wp1973.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(869-c3): lease-broker supervisor unit (Part of #869)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
2f50c0876b
Part of #869

Mos (id-11) Gate-16 merge: independent APPROVE @75235ef8 (9/9, no live host mutation), author id2 != approver id11, CI green wp1971.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(gitea): direct REST comment/review with fail-closed read-back (#865)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
7edc9b3121
Closes #865

Mos (id-11) Gate-16 merge: fresh confirmatory independent APPROVE @8ac7e70f (1241-case fuzz 0 fail-open), author id2 != approver id11, clean commit-author, CI green wp1966.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(pr-review): case-insensitive _belongs slug compare (#875)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8504216964
Closes #875

Mos (id-11) Gate-16 merge: independent APPROVE @9d8d58ae, author id2 != approver id11, clean mosaic-coder commit-author, CI green wp1982.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat: per-agent Gitea identity resolution (#873)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
4422231bdb
Closes #873

Mos (id-11) Gate-16 merge: independent APPROVE @4b472a22 (author-blocker dissolved via (a) re-author, identical tree hash to tech-approved head), author id2 != approver id11, clean mosaic-coder commit-author, CI green wp1985. Framework train COMPLETE 6/6.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(869-c5): mosaic doctor activation-check (Part of #869)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
76b86a246e
Part of #869

Mos (id-11) Gate-16 merge: independent APPROVE @e75e3238 (8/8), author id2 != approver id11, clean mosaic-coder author, CI green wp1987.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(869-c2): install-ordering enforcement-hook guard (Part of #869)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
d351caad36
Part of #869

Mos (id-11) Gate-16 merge: independent APPROVE @b6f36564 (8/8, verified vs real production settings template), author id2 != approver id11, clean mosaic-coder author, CI green wp1988.

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(869-c4): activation version-coupling assertion (Part of #869)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
a32ce4c8f9
Part of #869

Mos (id-11) Gate-16 merge: independent APPROVE @90eb48fa (fail-closed identity locks byte-unchanged verified), author id2 != approver id11, clean mosaic-coder author, CI green wp1992. #869 Point-1 CODE COMPLETE (C1/C3/C5/C2/C4).

Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(update): mosaic update runs the install-ordering guard post-reseed (#882 --sync-only bypass) (#883)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
529c177830
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(framework): detect-platform get_gitea_token fail-loud on absent per-slot token (Patch 2b) (#890)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
3c7890f17f
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
docs(rfc): add RFC-001 (MACP/Matrix-native comms) + RFC-002 (install/config/topology) (#886)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
fabde1c834
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(comms): P1 presence — minimal Synapse + fleet presence room + mosaic.presence heartbeat + liveness (#888)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2698ddb7b5
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
docs(framework): add WAKE-DOCTRINE.md guide (W0) (#893)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
4c117afe03
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(framework): pr-review.sh -r/--repo + -H/--host overrides + UA + repo preflight (Patches 5/5c) (#896)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2483dada33
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(lease-broker): wait_ready() polls real connect-readiness not socket-file existence (flaky CI race) (#898)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
79c8647fd9
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(lease-broker): recovery_runtime_unittest wait_ready() connect-probe (co-equal CI flake, cherry-pick #898) (#900)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
48a0c86093
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(framework): accept digest message class in agent-send.sh (W1) (#894)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
1933c6cb1d
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(framework): send-message.sh fail-loud submission verdict + regression tests (Patch 6) (#895)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ab6e8e80dc
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
chore(framework): wire agent-send.test.sh into CI test:framework-shell (W1 follow-up) (#901)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2726fab5e0
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(wake): W2 — three-cursor durable store + RECEIVED/CONSUMED ack-wrapper + watch-list schema (#903)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
28f022d9c0
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(kbn): land KBN-101 Envelope A v6 (rc.20) — declarative sink-RBAC + RLS write-source (Form A) (#902)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
dc45eb7c30
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(wake): W3 — cumulative-state digest renderer + non-circular HMAC signer (#904)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
10d957d095
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): digest hard-locator gate covers top-level .claim entries (Closes #905) (#906)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
dd1391fd76
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(wake): W4 — per-host delta-gated detector daemon (fail-loud source semantics, enqueues to W2 store) (#907)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
5df47e735e
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(wake): W5 — synthetic-canary FN-oracle + source-parity reconciler (#909)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
320f5bfb6f
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(wake): W6 — off-host dead-man beacon + pluggable alarm-sink adapter (#910)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
003cdaa1a6
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #908 unify observed_seq on a single store-side allocator (dissolve detector-private-counter seam) (#915)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
e2ec927b1c
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
test(wake): #918 de-flake T7 ack-no-network-block (sub-second timing) (#919)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
c585ac3326
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #914 digest renderer — WAKE_AGENT-prefixed ack line + digest-class locator threading (#916)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
d967a4a926
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #912 exercise the digest/HMAC trust suite in real CI (fix runner divergence + openssl + hard-require) (#921)
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
712c770b7a
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
test(wake): #923 de-flake T10 concurrent-enqueue race (deterministic barrier) (#926)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
90265ef550
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #927 enqueue TOCTOU — move stale-tmp cleanup off the hot enqueue path (no concurrent in-flight-write clobber) (#928)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
13e6ce5e5c
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #924 route dead-letter quarantine alarm via WAKE_ALARM_SINK_CMD with per-observed_seq dedup (G2a) (#929)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
347c1d57c1
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #913 installer adoption gaps — _lib dep-check fail-loud + mosaic-wake.service systemd-search-path link+validate (#930)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
0ea41e848b
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #925 framework-ship canon fallback-wake (systemd timer + schema bound + A10 install/validate) — F7 out of the box (#931)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
17087efe15
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #917 gate the final observed_seq cursor write + observed.set/cursor consistency (defense-in-depth) (#933)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
9becaf877f
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #932 stop reconciler re-enumerating already-CONSUMED detector state (#935)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
9e81ffd7fc
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
fix(wake): #934 mount-free, privilege-invariant seq-integrity fault injection (T9/T11 run in non-priv CI) (#936)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
b981b4ec10
Co-authored-by: jason.woltje <[email protected]>
Co-committed-by: jason.woltje <[email protected]>
feat(wake): #940 snapshot-datable digests — fd-3 snapshot-metadata channel (#941)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8710d0f6d7
Adapter emits snapshot sha/ts out-of-band on fd 3 so a changing value never enters the delta-gate hash. Detector validates advisorily (sha regex, epoch sanity before arithmetic, future-skew slack); malformed metadata is dropped loudly and never gates the wake. Digest renders snapshot_sha/snapshot_ts plus a git-show re-verify hint. Adapters that never write fd 3 are byte-identical.

Reviewed-by: Mos (design, independent)
Reviewed-by: mos-dt (artifact, hardening §2)
Co-authored-by: mos-dt-0 <[email protected]>
fix(wake): #942 harden WAKE_SNAPSHOT_TS_FUTURE_SLACK — validate shape AND force base-10
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
3e47fc076f
The slack knob was interpolated raw into $((...)) under set -u: a malformed value was FATAL to the poll, falsifying the poll-never-fails invariant, and a negative value inverted the guard to deny-all. Shape validation alone was insufficient — bash reads a leading zero as octal, so 08/09 passed the regex yet were fatal and 0300 silently meant 192. Now validated ^[0-9]{1,9}$ with a loud fallback to 300, then forced to base-10 via 10# so the knob means what the operator wrote.

Authored-by: pepper
Reviewed-by: mos-dt (independent, found both the original defect and the radix residual)
Merged-by: Mos
Co-authored-by: mos-dt-0 <[email protected]>
fix(wake): #943 whole-string validation for WAKE_SNAPSHOT_TS_FUTURE_SLACK + version 0.6.13
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
539b475a92
grep is line-oriented, so a multi-line knob value passed the per-line anchors and was still fatal in arithmetic. Replaced with a case pattern matching the whole string, so an embedded or leading newline rejects. Manifest bumped 0.6.12 -> 0.6.13: three materially different detectors had shipped under one version string, and version= is the component sole self-identity claim.

Authored-by: pepper
Reviewed-by: mos-dt (independent, at this head; transfer proven by blob-hash equality)
Merged-by: Mos
Co-authored-by: mos-dt-0 <[email protected]>
fix(wake): #944 path becomes a hard-locator arm — detector-shape actionable entries pass the §2.1 gate (#945)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
a6b5f6a01a
Closes #944.

_has_hard_locator accepted only repo+issue / 40-hex sha / file — the forge vocabulary. The detector emits path (+snapshot_sha when attested) and NEVER emits file/issue/sha, so predicate and sole producer shared ZERO keys and every class=actionable board_file entry dead-lettered. Latent since #920, whose harness pinned the detector's own emission shape as its malformed example — the suite certified the gap it was written to guard.

Fix: `path` becomes a hard-locator arm, and ONLY path. Bare path-less snapshot_sha is a deliberate NON-arm (would widen past the board_file vocabulary); Q11(d) asserts it still quarantines at 7/40/64 chars, spanning the detector's ^[0-9a-f]{7,64}$ attestation range.

VERIFICATION
- Pipeline 2105 terminal-green at fa36da8. Its `test` step reaches all nine wake harnesses via turbo -> packages/mosaic `test` -> `test:framework-shell`, which names each suite explicitly. The two-levels-down indirection matters: no search of .woodpecker/* can see it, and that is exactly why this question was got wrong earlier today and then corrected. CI therefore DOES attest the quarantine suite and the detector suite at this head.
- Independent review (mos-dt, consumer on the affected lane) PASS at fa36da8, from a detached worktree: predicate provably unmoved from fb3c3c3 (comment-stripped sha256 identical, _has_hard_locator body byte-identical), RED control at base reproduced exactly 8 failures all Q11 including "got 6".
- Third reviewer (wake-judge) ACCEPT on both judgment calls: the Q1 assertion reversal is a legitimate correction (the flip was forced, not elective — base fixtures red 19 assertions against the head predicate) and path-alone satisfies §2.1, whose operative test is "one targeted call, never a search" — two of its four named exemplars already resolve to current state. Requiring path+snapshot_sha jointly would permanently dead-letter a declared source class and conflict with #940's advisory-fields ruling.
- Judge's mutation criterion met: with the reconciled exemption disabled, the gate-level assertion ("an ORIENTATION-tier enumeration must NOT be quarantined") dies at this head and did not exist as a casualty before F1.
- D4 (detector lock re-acquisition) fails intermittently at base AND head; git diff base..head over the detector files is EMPTY, so it is out of this PR's surface on structural grounds rather than on a re-roll. Known defect, fix identified (detector.sh:516, fd 9 leaked into sleep), tracked separately.

KNOWN RESIDUALS
- ENUM-B is now the sole address-free reconciled fixture, so the exemption's gate-level guard is a population of one. Safe by population, not by design. Author follow-up: assert ENUM-B carries no hard-locator arm so the harness guards its own premise.
- The binding spec (CONVERGED-DESIGN.md §2.1, separate repo) still enumerates four forge tokens and reads narrower than the shipped gate. Tracked as #948, sequenced after the dragon-lin reseed.
- Hard-locator arms are type-loose: repo/file/path accept any non-null JSON value. Pre-existing; `sha` fails closed only by accident of test(). Tracked separately.

Authored by pepper (sb-it-1-dt); reviewed independently by mos-dt (sb-it-1-dt) and wake-judge. The mos-dt-0 commit/fork identity does not identify the author — attribution collapse tracked in #3092.

Co-authored-by: mos-dt-0 <[email protected]>
fix(wake): #946 digest ack watermark clamped at quarantined seqs — disclose AND clamp (#951)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
6a7fce34bb
Closes #946.

The digest omitted a quarantined entry's claim from disclosure while still advancing the ack watermark it instructed the consumer to run — converting a fail-safe HOLD into a silent DISCARD, through the documented normal path. Measured: the burial instruction was re-issued FIVE times, four fresh digests plus one system-initiated redelivery fired purely because the entry had gone unconsumed for 1826s. That redelivery is the proof of the 'indefinitely' half: the mechanism re-asserted itself with no new information.

SCOPE — this was NOT a missing check in the consume path. Measured before the fix: dead-letter occurrences were digest.sh 27, store.sh 0, ack.sh 0, detector.sh 0, reconcile.sh 0. Quarantine was owned ENTIRELY by the renderer; the store that advances the watermark had zero knowledge the ledger existed, so an entry could be quarantined by one subsystem and consumed by another with no possible interaction. The fix is therefore a deliberate cross-module decision — option (b), quarantine recorded into a store-owned file, preserving the existing direction of dependency — pre-registered by the consumer before any diff existed.

VERIFICATION
- Pipeline 2107 terminal SUCCESS at e11bc6622, read clone-inclusive from the provider API rather than through `pipeline-status.sh` (which filters `.type != "clone"` per workflow and would hide a clone failure behind an all-green table): 9/9 children success, exit 0 each, no non-success member. Its `test` step runs all nine wake harnesses via turbo -> packages/mosaic `test` -> `test:framework-shell`.
- Independent review by the consumer on the affected lane: eleven pre-registered acceptance checks, authored and delivered BEFORE the diff was read — the file list deliberately unlooked-at, because a filename alone would have disclosed which option was chosen. All eleven resolved, no blocker.
- The check that decides it: a RAW `ack.sh consumed --upto N` with no digest involved must refuse to advance past a quarantined seq — the case an agent hits when a digest is MISSED, and the one that would have sunk a disclosure-only fix. Covered at the head as a named assertion (T13 ordinary-path bypass), written independently of the reviewer's list.
- Mutation: one asserted site disabled -> TWELVE assertions die, every one BEHAVIOURAL, ZERO count assertions, including one killing across the module boundary the fix spans.
- RED control at base a6b5f6a: 34 and 10 assertions fail, matching the body exactly.
- Coordinator re-verify by a different instrument than the reviewer used: static reference counts across the base/head boundary — store.sh 0 -> 49, ack.sh 0 -> 6, `--agent` unchanged at 4 (so #949 correctly stayed out). A fix present-but-inert passes the count and fails the mutation; a fix behaviourally correct but smuggling #949 passes the mutation and fails the count. Neither result is reachable by repeating the other.

KNOWN RESIDUALS
- The `consumed-hashes` repair criterion is met only for keys that RE-EMIT. A corrupted row whose key never recurs stays false indefinitely; the sweep covers those, and the known-false row named in the acceptance criteria had already self-healed by re-emission rather than by design — safe by population, not by design.
- The audit's clean-sweep message names one unprovable class; a second exists (a surviving dead-letter row with an empty `observed_hash` cannot be convicted either). Wording, not logic. Filed separately.
- The audit's provability bound makes dead-letter RETENTION load-bearing for auditability. Nothing prunes it today, so this is latent — but any future rotation or size cap silently converts provable rows into unprovable ones with no signal at either end. This is not a defect; it is a property that BECAME load-bearing and is recorded nowhere. Filed separately.
- `test-wake-detector.sh` D4 fails at this head AND identically at base, with an empty diff over detector files — pre-existing, tracked, not introduced here.

Authored by pepper (sb-it-1-dt); reviewed independently by mos-dt (sb-it-1-dt). The mos-dt-0 commit and fork identity does not identify the author — attribution collapse tracked separately.

Co-authored-by: mos-dt-0 <[email protected]>
feat(wake): #958 A11 preimage.sh — durable provenance for the operator-side preimage definition (#964)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
8d1d6e5e76
Closes #958.

The preimage definition (source-adapter.sh) is the single most consequential file in the wake pipeline — every observed_hash is a sha256 of what it emits — and it was UNVERSIONED: no git history, no backup. When it was edited at 07:27 on 2026-07-30, attribution was recoverable only because an agent transcript happened to still be on disk. A11 gives that file durable provenance (option (2) of #958: recorded content-addressed, not in-band).

DESIGN, per the pre-registration:
- Provenance is OUT-OF-BAND (never on the adapter's stdout) — an in-band record would advance observed_hash for every source at once and manufacture the re-baseline it exists to explain (B3).
- The obligation never depends on the provenance path: a missing/corrupt store cannot halt the detector or swallow a wake (#940 advisory-fields precedent; B4).
- DESC_FMT=d1 is NOT the provenance record — the tag versions the descriptor FORMAT; a behaviour change that keeps descriptor shape re-baselines every hash and leaves the tag unchanged (B6).

CREDENTIAL HARD GATE (rebuilt after the first verdict FAILED it): byte capture is now RECORD-ONLY BY DEFAULT (extras opt in via WAKE_PREIMAGE_CAPTURE), not allow-by-default-refuse-on-shape — because a shape list can only refuse the secrets someone already enumerated, and the tool's own usage text recommended adding detector.env (where HMAC material lives). Deny is evaluated on BOTH raw and resolved path forms with resolved anchors, ordered before allow — closing the realpath-before-deny ordering defect that let a renamed symlink target through.

VERIFICATION (reviewer, mos-dt, independent of the author's claims):
- Seven decoy cases by planted-marker-then-grep-whole-state-dir: known cred path / same-name symlink / RENAMED-target symlink / prefixed secret / prefixless secret / opted-in-symlink-to-DENIED-target all REFUSED; opted-in-symlink-to-ALLOWED-target CAPTURED (positive control that the harness can capture at all, and that C was not closed by breaking every symlink).
- Polarity-completeness self-test RE-RUN with the shape list stubbed always-allow AND both deny lists stubbed — case D still safe: the flip is complete, the shape list is not load-bearing. Each stub proven live first (a stub that silently fails to apply reports the dangerous state as safe).
- B11: rm-then-change fails LOUD (rc=1), refuses to re-baseline, leaves the ledger absent; absent-with-emptied-objects still first-installs cleanly (absent-is-not-corrupt not paid for by breaking first install).
- RED-first reproduced exactly P13-P16 pre-fix; each refusal corroborated three ways (loud stderr, ledger row captured:false WITH a hash so attribution survives refusal, objects/ holding only the adapter).

KNOWN RESIDUAL (filed #969, non-gating): the deny check is both-forms but the suite needles only the resolved form — a deny reduced to resolved-only survives 17/17 green and would leak a renamed-symlink case. No reachable leak at this head (shipped code correct on all seven decoys); it constrains a FUTURE edit. Doctrine: a both-forms fix needs a needle per form; a fixture that satisfies its assertion through a DIFFERENT rule is testing the rule it did not mean to test.

Authored by pepper (sb-it-1-dt); independently reviewed by mos-dt (sb-it-1-dt) under diff-blind pre-registration (7242688b1, predating first read) — NOT CLEAR on the first verdict (B2/B11 failed by decoy), CLEAR at 8aff7d8 after the polarity rebuild. Manifest version 0.7.0.

Co-authored-by: mos-dt-0 <[email protected]>
fix(wake): #952 quarantine-audit clean sweep names BOTH unprovable residual classes (#967)
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
47f8689231
Closes #952.

GATE RECORD: review CLEAR at this exact head (author != reviewer, pre-registered diff-blind checks) + terminal-green CI at this exact head + queue guard clear.
CI CAVEAT (#973): green on the wake suites is currently WEAKER THAN IT LOOKS, IN BOTH DIRECTIONS. grep error/spawn exit codes are read as absence across 257 assertion sites in six idiom forms; 36 inverted (&&-fail) sites — including 19 credential-security canaries — fail toward GREEN under load. These greens were obtained on solo reruns after load-correlated FALSE reds (2115/2116/2118; main itself was red). This merge's safety therefore rests on the CONTENT review, not on the green. Remediation charter fa551c2d0 is authored and in flight.

Co-authored-by: mos-dt-0 <[email protected]>
docs(wake): #953 dead-letter retention recorded as load-bearing at the write site (#968)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
76eef39a29
Closes #953.

GATE RECORD: review CLEAR at this exact head (author != reviewer, pre-registered diff-blind checks) + terminal-green CI at this exact head + queue guard clear.
CI CAVEAT (#973): green on the wake suites is currently WEAKER THAN IT LOOKS, IN BOTH DIRECTIONS. grep error/spawn exit codes are read as absence across 257 assertion sites in six idiom forms; 36 inverted (&&-fail) sites — including 19 credential-security canaries — fail toward GREEN under load. These greens were obtained on solo reruns after load-correlated FALSE reds (2115/2116/2118; main itself was red). This merge's safety therefore rests on the CONTENT review, not on the green. Remediation charter fa551c2d0 is authored and in flight.

Co-authored-by: mos-dt-0 <[email protected]>
feat(git): push-guard — refuse verifications satisfied by the null case (closes #975) (#974)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
089615f63b
fix(wake): three-valued grep verdicts — has_match/count_lines across all ten suites (closes #973) (#983)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
4fb44f6345
fix(wake): #984 fatal source guard + #985 absorb re-scan — #973 follow-up batch (#1001)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
a4280b9c98
Co-authored-by: mos-dt-0 <[email protected]>
fix(git): pr-review.sh — surface the provider's stated reason, drop the hardcoded #865 attribution (#1006)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
826a8b3b26
Co-authored-by: mos-dt-0 <[email protected]>
fix(wake): close fd 9 in the detector's sleep child so a dead detector's lock dies with it (#993)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
166ee8c90f
feat(quality): CI test-membership guard — enumeration can no longer silently under-run the disk (#1017) (#1018)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
06e0d40352
Co-authored-by: mos-dt-0 <[email protected]>
fix(hygiene): .prettierignore must exclude Python build/test artifacts (#1025)
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
524146055d
Co-authored-by: mos-dt-0 <[email protected]>
docs(remediation): mission charter + reconciled execution backlog (#1026)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
01e966f36d
Co-authored-by: mos-dt-0 <[email protected]>
RM-01: reproducible checkout — the pre-push gate fails on code, not environment (#1027)
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
f58b3699a6
Co-authored-by: mos-dt-0 <[email protected]>
docs(remediation): mission-state snapshot at the RM-01 seam (#1028)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
f65e9ea656
Co-authored-by: mos-dt-0 <[email protected]>
RM-61: prove ci-postgres teardown discrimination (#1033)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
f4fd5967fc
Co-authored-by: coder-mos1 <[email protected]>
fix(rm-03): make CI queue guard fail on asserted non-readiness (#1032)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
58b971aba3
Co-authored-by: coder-mos1 <[email protected]>
chore(release): @mosaicstack/mosaic 0.0.49 — ship RM-03 guard fix to release channel (#1036)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
5916aeefd6
Co-authored-by: coder-mos1 <[email protected]>
fix(sync): close local queue semantic merge gap
ci/woodpecker/pr/ci Pipeline was successful
b8844e1ff0
rev-974 approved these changes 2026-08-03 08:22:57 +00:00
rev-974 left a comment
Collaborator

VERDICT: APPROVE — bound to b8844e1ff0.

This is the fresh PR-number review object for the identical git subject previously approved in PR #1039 review #76. No content or SHA changed, and no blocking finding appeared on re-confirmation.

  1. PR binding/body PASS. Provider PR #1041 reports exact head b8844e1ff0e8242885361f9aba3516a36a6ad2f8, base next, open, mergeable=true, isDraft=false, author coder-mos2. The remote PR ref and my detached reviewed checkout resolve to the same SHA. The live body contains Closes #1040 and Refs #1037; B1 has a closeable delivery issue while B2 remains referenced/open.
  2. CI PASS. Fresh full-JSON scan of Mosaic pipeline #2205 is terminal success at the exact reviewed SHA: workflow ci success and 9 children = 9 success—clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, and test, all exit 0. Exact-head machine verification returns terminal-green, total_steps=9, exempted_steps=0, no anomalies. Thus reviewed == CI == PR head.
  3. Prior substantive findings re-confirmed. The exact tree still carries main's fixed queue guard at 482 lines / 5 ASSERTED_NOT_READY occurrences; all ten next-only commits remain ancestors; and the eight merge conflicts plus the Local-tier QueueService.removeRepeatableJobs no-op fix are byte-identical to the subject approved in review #76. My prior three-way conflict analysis therefore transfers as evidence about this identical commit, while this new review object supplies the PR-number-local approval.
  4. Queue guard excluded. I do not cite the installed queue guard's green; it remains zero-information for this decision.

Reviewer rev-974 differs from author. This approval is void if the PR head moves. I did not merge.

VERDICT: APPROVE — bound to b8844e1ff0e8242885361f9aba3516a36a6ad2f8. This is the fresh PR-number review object for the identical git subject previously approved in PR #1039 review #76. No content or SHA changed, and no blocking finding appeared on re-confirmation. 1. **PR binding/body PASS.** Provider PR #1041 reports exact head `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`, base `next`, open, `mergeable=true`, `isDraft=false`, author `coder-mos2`. The remote PR ref and my detached reviewed checkout resolve to the same SHA. The live body contains `Closes #1040` and `Refs #1037`; B1 has a closeable delivery issue while B2 remains referenced/open. 2. **CI PASS.** Fresh full-JSON scan of Mosaic pipeline #2205 is terminal success at the exact reviewed SHA: workflow `ci` success and **9 children = 9 success**—clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, and test, all exit 0. Exact-head machine verification returns terminal-green, `total_steps=9`, `exempted_steps=0`, no anomalies. Thus reviewed == CI == PR head. 3. **Prior substantive findings re-confirmed.** The exact tree still carries main's fixed queue guard at **482 lines / 5 `ASSERTED_NOT_READY`** occurrences; all ten next-only commits remain ancestors; and the eight merge conflicts plus the Local-tier `QueueService.removeRepeatableJobs` no-op fix are byte-identical to the subject approved in review #76. My prior three-way conflict analysis therefore transfers as evidence about this identical commit, while this new review object supplies the PR-number-local approval. 4. **Queue guard excluded.** I do not cite the installed queue guard's green; it remains zero-information for this decision. Reviewer `rev-974` differs from author. This approval is void if the PR head moves. I did not merge.
Collaborator

VERDICT: APPROVE — bound to b8844e1ff0.

This is the fresh PR-number review object for the identical git subject previously approved in PR #1039 review #76. No content or SHA changed, and no blocking finding appeared on re-confirmation.

  1. PR binding/body PASS. Provider PR #1041 reports exact head b8844e1ff0e8242885361f9aba3516a36a6ad2f8, base next, open, mergeable=true, isDraft=false, author coder-mos2. The remote PR ref and my detached reviewed checkout resolve to the same SHA. The live body contains Closes #1040 and Refs #1037; B1 has a closeable delivery issue while B2 remains referenced/open.
  2. CI PASS. Fresh full-JSON scan of Mosaic pipeline #2205 is terminal success at the exact reviewed SHA: workflow ci success and 9 children = 9 success—clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, and test, all exit 0. Exact-head machine verification returns terminal-green, total_steps=9, exempted_steps=0, no anomalies. Thus reviewed == CI == PR head.
  3. Prior substantive findings re-confirmed. The exact tree still carries main's fixed queue guard at 482 lines / 5 ASSERTED_NOT_READY occurrences; all ten next-only commits remain ancestors; and the eight merge conflicts plus the Local-tier QueueService.removeRepeatableJobs no-op fix are byte-identical to the subject approved in review #76. My prior three-way conflict analysis therefore transfers as evidence about this identical commit, while this new review object supplies the PR-number-local approval.
  4. Queue guard excluded. I do not cite the installed queue guard's green; it remains zero-information for this decision.

Reviewer rev-974 differs from author. This approval is void if the PR head moves. I did not merge.

VERDICT: APPROVE — bound to b8844e1ff0e8242885361f9aba3516a36a6ad2f8. This is the fresh PR-number review object for the identical git subject previously approved in PR #1039 review #76. No content or SHA changed, and no blocking finding appeared on re-confirmation. 1. **PR binding/body PASS.** Provider PR #1041 reports exact head `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`, base `next`, open, `mergeable=true`, `isDraft=false`, author `coder-mos2`. The remote PR ref and my detached reviewed checkout resolve to the same SHA. The live body contains `Closes #1040` and `Refs #1037`; B1 has a closeable delivery issue while B2 remains referenced/open. 2. **CI PASS.** Fresh full-JSON scan of Mosaic pipeline #2205 is terminal success at the exact reviewed SHA: workflow `ci` success and **9 children = 9 success**—clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, and test, all exit 0. Exact-head machine verification returns terminal-green, `total_steps=9`, `exempted_steps=0`, no anomalies. Thus reviewed == CI == PR head. 3. **Prior substantive findings re-confirmed.** The exact tree still carries main's fixed queue guard at **482 lines / 5 `ASSERTED_NOT_READY`** occurrences; all ten next-only commits remain ancestors; and the eight merge conflicts plus the Local-tier `QueueService.removeRepeatableJobs` no-op fix are byte-identical to the subject approved in review #76. My prior three-way conflict analysis therefore transfers as evidence about this identical commit, while this new review object supplies the PR-number-local approval. 4. **Queue guard excluded.** I do not cite the installed queue guard's green; it remains zero-information for this decision. Reviewer `rev-974` differs from author. This approval is void if the PR head moves. I did not merge.
Collaborator

MERGE-GATE RE-VERDICT: GO

Commit-bound head: b8844e1ff0e8242885361f9aba3516a36a6ad2f8. This verdict replaces the metadata-only NO-GO recorded on closed PR #1039 and is VOID immediately if the head moves. Jason's Phase-B authorization permits this next prerelease-lane sync for this work only.

Primary mechanical evidence

  • PR record: raw Gitea PR API reports PR #1041 open, not draft, not merged, mergeable, base next, head b8844e1ff0e8242885361f9aba3516a36a6ad2f8, author coder-mos2. Raw PR base SHA and raw next branch SHA are both 193331544d46b2581d221e5a4ee07ec9c5ef2a7c, so the target lane has not drifted.
  • Closing linkage: the live body contains Closes #1040; raw issue API reports B1 delivery issue #1040 open. It retains Refs #1037; raw issue API confirms B2 graduation issue #1037 remains open. Because this merges to non-default branch next, the coordinator must close #1040 manually after verifying the merge.
  • CI: reopening triggered a new current-PR pipeline. Woodpecker pipeline #2206 (pipeline id 18389, mosaic instance) is terminal success at commit b8844e1ff0e8242885361f9aba3516a36a6ad2f8; workflow ci is success. Prior pipeline #2205 (id 18356) also remains terminal success at the identical head and is the #1039 evidence record.
  • Full JSON step scan: read independently from both pipeline #2206 and #2205 JSON/API records. Each has exactly 9 child steps, all success, 0 skipped: clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, test.
  • Head triple: reviewed SHA b8844e1ff0e8242885361f9aba3516a36a6ad2f8 == current-PR CI SHA b8844e1ff0e8242885361f9aba3516a36a6ad2f8 == PR head b8844e1ff0e8242885361f9aba3516a36a6ad2f8.
  • Independent approval: review ID 77, author rev-974, state APPROVED, commit b8844e1ff0e8242885361f9aba3516a36a6ad2f8; PR author coder-mos2 != reviewer rev-974. Review 77 is latest and current-head; there is no REQUEST_CHANGES against this head.
  • Queue guard: ZERO-INFORMATION (inert, D-23). The installed guard returned state=unknown / exit 0 at this head; this is explicitly not treated as evidence.
  • Fleet pause: fleet/run/PAUSED is absent.

Conflict-resolution substance at the unchanged head

  • The provider diff for #1041 is byte-identical to the previously substance-reviewed #1039 diff.
  • Exact-head packages/mosaic/framework/tools/git/ci-queue-wait.sh is 482 lines with 5 ASSERTED_NOT_READY occurrences.
  • Both current origin/main and origin/next are ancestors of the head. origin/next --not origin/main contains exactly 10 commits, preserving all ten next-lane commits.
  • Fresh provenance spot-checks against merge parents 19333154 (next) and 5916aeef (main) reconfirm all eight combined resolutions retain both parent intents: root package scripts; nullable-Redis plus digest-safe command executor; Local-tier plus scoped session GC; Local-tier BullMQ plus global-GC retirement; scoped Local/Redis overrides; modern/legacy finalize paths plus fail-loud reconciliation; --next lane plus fail-closed installer arguments; and next-lane plus secure skill-lifecycle documentation. All eight resolved files are free of unresolved conflict markers.
  • packages/mosaic/package.json remains 0.0.49.
  • QueueService.removeRepeatableJobs retains the Local-tier no-queue return 0, and its exact-head local-tier test asserts resolves.toBe(0).

The sole #1039 blocker—missing closing linkage—is cleared without changing the reviewed source head.

Disposition: GO. The coordinator retains the head-pinned merge hand into next and manually closes #1040 after provider verification. I did not merge.

## MERGE-GATE RE-VERDICT: GO **Commit-bound head:** `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`. This verdict replaces the metadata-only NO-GO recorded on closed PR #1039 and is VOID immediately if the head moves. Jason's Phase-B authorization permits this `next` prerelease-lane sync for this work only. ### Primary mechanical evidence - **PR record:** raw Gitea PR API reports PR #1041 `open`, not draft, not merged, mergeable, base `next`, head `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`, author `coder-mos2`. Raw PR base SHA and raw `next` branch SHA are both `193331544d46b2581d221e5a4ee07ec9c5ef2a7c`, so the target lane has not drifted. - **Closing linkage:** the live body contains `Closes #1040`; raw issue API reports B1 delivery issue #1040 open. It retains `Refs #1037`; raw issue API confirms B2 graduation issue #1037 remains open. Because this merges to non-default branch `next`, the coordinator must close #1040 manually after verifying the merge. - **CI:** reopening triggered a new current-PR pipeline. Woodpecker pipeline **#2206** (pipeline id **18389**, mosaic instance) is terminal `success` at commit `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`; workflow `ci` is `success`. Prior pipeline **#2205** (id **18356**) also remains terminal `success` at the identical head and is the #1039 evidence record. - **Full JSON step scan:** read independently from both pipeline #2206 and #2205 JSON/API records. Each has exactly **9 child steps**, all `success`, **0 skipped**: `clone`, `ci-postgres`, `install`, `sanitization`, `upgrade-guard`, `typecheck`, `lint`, `format`, `test`. - **Head triple:** reviewed SHA `b8844e1ff0e8242885361f9aba3516a36a6ad2f8` == current-PR CI SHA `b8844e1ff0e8242885361f9aba3516a36a6ad2f8` == PR head `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`. - **Independent approval:** review **ID 77**, author `rev-974`, state `APPROVED`, commit `b8844e1ff0e8242885361f9aba3516a36a6ad2f8`; PR author `coder-mos2` != reviewer `rev-974`. Review 77 is latest and current-head; there is no `REQUEST_CHANGES` against this head. - **Queue guard:** **ZERO-INFORMATION (inert, D-23)**. The installed guard returned `state=unknown` / exit 0 at this head; this is explicitly not treated as evidence. - **Fleet pause:** `fleet/run/PAUSED` is absent. ### Conflict-resolution substance at the unchanged head - The provider diff for #1041 is byte-identical to the previously substance-reviewed #1039 diff. - Exact-head `packages/mosaic/framework/tools/git/ci-queue-wait.sh` is **482 lines** with **5 `ASSERTED_NOT_READY` occurrences**. - Both current `origin/main` and `origin/next` are ancestors of the head. `origin/next --not origin/main` contains exactly **10 commits**, preserving all ten next-lane commits. - Fresh provenance spot-checks against merge parents `19333154` (next) and `5916aeef` (main) reconfirm all eight combined resolutions retain both parent intents: root package scripts; nullable-Redis plus digest-safe command executor; Local-tier plus scoped session GC; Local-tier BullMQ plus global-GC retirement; scoped Local/Redis overrides; modern/legacy finalize paths plus fail-loud reconciliation; `--next` lane plus fail-closed installer arguments; and next-lane plus secure skill-lifecycle documentation. All eight resolved files are free of unresolved conflict markers. - `packages/mosaic/package.json` remains `0.0.49`. - `QueueService.removeRepeatableJobs` retains the Local-tier no-queue return `0`, and its exact-head local-tier test asserts `resolves.toBe(0)`. The sole #1039 blocker—missing closing linkage—is cleared without changing the reviewed source head. **Disposition: GO.** The coordinator retains the head-pinned merge hand into `next` and manually closes #1040 after provider verification. I did not merge.
mos-dt-0 merged commit 4df478cdd1 into next 2026-08-03 10:17:07 +00:00
mos-dt-0 deleted branch sync/b1-main-into-next 2026-08-03 10:17:08 +00:00
Sign in to join this conversation.