Files
stack/docs/scratchpads/828-lease-broker.md
ms-lead-reviewer b118b65f11
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
docs(#828): record final lease broker gates
2026-07-17 21:18:05 -05:00

7.1 KiB

WI-1 Scratchpad — Authenticated external lease broker

  • Issue: Gitea #828
  • Milestone: 188 — Compaction-Refresh Mechanism (M1: Claude + Pi)
  • Branch: feat/828-lease-broker
  • Starting HEAD: d801d6c4c8a984d6a95033c49714210018d3d9a8
  • Session role: Orchestrator coordinating implementation; Mos retains merge authority.

Objective

Implement the ratified WI-1 product lease broker under packages/mosaic/: Linux SO_PEERCRED identity, broker-minted logical session IDs, (pid,starttime) launcher anchors with per-hop /proc starttime revalidation, sibling-substitution rejection, same-PID runtime-generation revocation, crypto-RNG single-use token persistence, and protected Unix-socket posture.

Authority verification

Verified before code on session start; all exact SHA-256 values matched:

  • BUILD-BRIEF: 89fdbc27ed0e5050dc7b52f3ef2ddaea691edf17fd89d51b15e26fb5ed47171b
  • SPEC-v5: a6d07ade835758e8488ca10d3b0631caf0beb93ea3a6733631f151b0c2f01433
  • Ratification: bac58319c9c4028b5b40e1129e0033cdb5a6b7b02033c25f06f4cb77d7779c67
  • P6 planner ruling: b7bbb6ea6e8d9a5c3366993642ab4e4f65b961af04936dcac20bfbcdcbaf1a09
  • WI-0 Gate0 evidence: 5d418306fcc597fd514e500bee40d1509f0bf467e46ee13fc5c280ed8274759d

Locked constraints

  • Build against the ratified design; do not re-derive it.
  • Product code only in packages/mosaic; Gate0 Python probes are reference prototypes and are not shipped.
  • Caller-supplied/asserted session_id is refused.
  • Tokens use the operating-system CSPRNG via Python secrets; never Math.random or model output.
  • Socket parent directory mode 0700, socket mode 0600 minimum; document distinct-principal deployment as the stronger T-C-closing posture.
  • Red-first TDD for six named cases; new-code coverage >=85%.
  • No merge. PR must say closes #828; exact 40-character head handed to Mos for Opus-SECREV and independent review.

Plan

  1. Load security/testing/docs guidance and inspect existing packages/mosaic architecture.
  2. Write the six required tests first and capture RED evidence.
  3. Implement minimal broker modules and CLI/runtime integration necessary for product use.
  4. Run focused tests with coverage, package gates, then full repository gates/suite.
  5. Run author-side review/remediation, commit closes #828, queue guard, push, and open PR through Mosaic wrappers.
  6. Send PR number + exact head SHA to web1:mosaic-100; stop without merging.

Risks / boundaries

  • Same-UID counterfeit socket replacement remains the disclosed T-C residual unless broker runs under a distinct principal; filesystem modes alone are minimum hardening, not a complete authenticity proof.
  • .mosaic/orchestrator/mission.json and .mosaic/orchestrator/session.lock were already modified at session start and must not be included in this PR.
  • Repository Woodpecker pipelines exist; CI is the canonical build path. No manual image build/deploy is in scope.

Progress / evidence

  • 2026-07-18 session start: mandatory mission files and orchestration guides loaded.
  • STEP 0: all four authority hashes matched; artifacts read in full.
  • Branch/HEAD confirmed; issue #828 open; Gate0 evidence hash confirmed.
  • Initial RED: focused Vitest acceptance suite failed 11/11 because the product daemon did not exist; the expected missing-product failure was observed before implementation.
  • Review-remediation RED: partial/zero-progress state writes, nested corrupt state, symlink state, canonical starttime, and duplicate-anchor generation behavior failed before their fixes. Real socket RED/GREEN runs were executed by the unrestricted parent harness because the delegated worker sandbox denies AF_UNIX.bind().
  • Product implementation added at packages/mosaic/framework/tools/lease-broker/daemon.py; Gate0 probe scripts were read as references but not copied or shipped.
  • Independent Codex code review round 1 found 2 blockers + 1 should-fix (connection stall/crash, partial writes, packet-dependent framing); all were remediated with tests.
  • Independent Codex code review round 2 found 2 blockers + 1 relevant should-fix (half-close contract ambiguity, incomplete persisted-state validation, symlink/non-regular state); all were remediated with tests and documentation. Pre-existing .mosaic/* session dirt remains excluded from the PR.
  • Unrestricted focused situational suite: 35/35 GREEN.
  • New Python product module coverage: 90% (356 statements, 36 missed), above the user-required 85%.
  • Root typecheck: 42/42 Turbo tasks GREEN.
  • Root lint: 23/23 Turbo tasks GREEN.
  • Root format check: GREEN.
  • Package build + suite: 71/71 files and 1,369/1,369 tests GREEN, including framework shell tests.
  • Full root suite: 43/43 Turbo tasks GREEN after the oversized-frame production race fix.
  • Focused acceptance suite: 35/35 GREEN in three consecutive unrestricted runs; exact-head instrumented run also 35/35 GREEN.
  • Exact-head Python product coverage: 90% (365 statements, 37 missed), above the required 85%.
  • Review-triggered oversized-frame race was fixed in production by bounded drain-to-EOF; tests were not changed.
  • Commits banked in red/green cadence: d61c5441 (RED contract), deb11df7 (GREEN implementation/docs), 57770e34 (oversized-frame production fix).
  • Final-review blocker remediated: added a 256-token pending-state cap, deletion on consume/generation revocation, pre-open serialized-size enforcement, and request-wide in-memory rollback for every broker mutation/commit failure while retaining the v1 live-token schema.
  • Distinct-principal docs now state built-in 0700/0600 is same-principal only; WI-1 does not provide the external identity-preserving proxy/ACL/service boundary needed for the stronger deployment.
  • Exact Python unit suite: 8/8 GREEN. Unrestricted focused acceptance: 35/35 GREEN.
  • Exact-head package build/suite: 71/71 files and 1,369/1,369 tests GREEN.
  • Exact-head Python product coverage: 90% (376 statements, 36 missed), above required 85%.
  • Root typecheck: 42/42 GREEN. Root lint: 23/23 GREEN. Root format check and git diff --check: GREEN.
  • Final exact-head rereview found two persistence blockers: post-rename directory-fsync uncertainty and acceptance of impossible persisted token records. RED was captured as three invariant failures plus one missing fail-stop error; commits a94b1220 (RED) and d05465e5 (GREEN) remediate both without weakening tests.
  • Post-remediation evidence: Python unit suite 10/10, focused real-socket acceptance 35/35, full root suite 43/43 Turbo tasks, broker coverage 90% (395 statements, 38 missed), lint 23/23, typecheck 42/42, format check and git diff --check GREEN.
  • Independent Codex review of remediation commit d05465e54736c4966294c4af8fbd6a4ad8fe81aa: APPROVE, confidence 0.94, zero findings. Reviewer sandbox could not allocate temp directories; unrestricted parent test evidence above is canonical.

Coordinator handoff requirements

  1. Mandatory Opus-SECREV on the exact PR head; no GPT/terra substitute.
  2. Independent exact-head code review and exact-head RoR before Mos-authorized merge.
  3. Mos retains merge authority; this WI author stops after PR + full 40-character head handoff.