From 0a15a909f31732f22566123e862856fdd7ad39ad Mon Sep 17 00:00:00 2001 From: sanjey99 Date: Mon, 31 Aug 2026 22:57:57 +0800 Subject: [PATCH 1/7] docs: record issue 96 protected-main evidence Summary: Reconcile the release ledger and test report after PR #97 merged as 53f2529. Change: - Record exact post-integration repository, coverage, browser, Terraform, live-preflight, and hosted results. - Move issue #96 findings from candidate to integrated while preserving independent UI, security, external Ark, and rehearsal gates. - Correct the stale OPS-06 compose-exposure status. Testing: - Local Markdown links resolve across all five changed documents. - git diff --cached --check passes. - Exact merge gates are recorded from the clean 53f2529 worktree. --- docs/BUILD_LOG.md | 35 +++++++++++++++++ docs/FIXES.md | 17 +++++---- docs/SHEPHERD.md | 23 ++++++------ docs/SHEPHERD_TEST_REPORT.md | 22 +++++------ docs/TASKS.md | 73 +++++++++++++++++++----------------- 5 files changed, 105 insertions(+), 65 deletions(-) diff --git a/docs/BUILD_LOG.md b/docs/BUILD_LOG.md index c9bb707..582bdd9 100644 --- a/docs/BUILD_LOG.md +++ b/docs/BUILD_LOG.md @@ -5775,3 +5775,38 @@ Auditor, security and hosted integration evidence. transfer. Independent UI gate `U`, issue #89 part-5 security review, protected-main integration and the three complete demo rehearsals remain open; local and hosted candidate success is not substituted for any of them. + +## 2026-08-31 — issue #96 protected-main integration closeout + +- **Identity:** PR #97 merged to protected `main` as + `53f252935f63f4bef8a36f17432fecd0de824181`; final PR head was + `14b69f230a043e3cc838ce0cc1c96af9f006047b`. Verification used a clean worktree + at the exact merge, not the earlier product or documentation candidate. +- **Install and repository gate:** `npm ci` installed 264 packages and reported + zero vulnerabilities. Literal `npm run check` passed root script/deploy tests + 26/26, Server 856 passed with 3 explicit opt-in skips, Web 20/20, every strict + production/test typecheck, and both production builds. +- **Clean coverage:** `npm run test:coverage` passed. Server V8 coverage was + 86.15% statements (7543/8755), 80.05% branches (5230/6533), 91.46% functions + (1446/1581), and 88.03% lines (7161/8134). Browser Istanbul coverage was 88.40% + statements (923/1044), 80.00% branches (860/1075), 87.35% functions (304/348), + and 92.37% lines (788/853). All four metrics and every production file remain + enforced; 24 instrumented browser flows passed and the ordinary build was + restored. +- **Full browser matrix:** ordinary one-worker Chromium passed 48/48: 24 functional + flows at both exact `1280x800` and `1440x900`. Natural PERF-01 measurements were, + respectively, 3,562/3,463 ms total; 566/563 ms persisted event to visible; and + 1,979/1,877 ms collision to promotion complete. Both visibility samples satisfy + the PRD `<=1.5s` bound. +- **Terraform and live construction:** `npm run test:terraform` passed with pinned + Terraform 1.9.8 and Volcengine provider 0.0.58. The exact-tree + `npm run test:shepherd:live:preflight` built the merged Runtime/controller, ran + the controller non-root with a named volume and engine socket, discovered exactly + one live integration test, and cleaned temporary resources. No model request ran. +- **Hosted integration:** protected-main `Required checks` push run `33396729636` + completed successfully on exact merge `53f2529`. +- **Explicit remaining evidence:** external Ark inference was not executed because + it transmits repository-derived prompts and scoped code and consumes live model + capacity; it requires separate informed approval. Independent UI gate `U`, issue + #89's independent security review, and three complete demo rehearsals remain open. + None is inferred from deterministic integration evidence. diff --git a/docs/FIXES.md b/docs/FIXES.md index ab56ee0..60cd809 100644 --- a/docs/FIXES.md +++ b/docs/FIXES.md @@ -34,8 +34,8 @@ that limitation is explicit. ### `REL-96` — exact-main release audit findings -- **Evidence class:** issue #96 / draft PR #97, based on protected `main` - `f935fdb`; tested product commit `223a5fe`. +- **Evidence class:** issue #96 / merged PR #97, based on protected `main` + `f935fdb`; tested product commit `223a5fe`; integrated as `53f2529`. - **Browser failures:** the first full matrix passed 34/38. Project Group's controlled composer could lose the character committed in the same turn as a mention action or move its caret; Agent edit could publish a blank/custom draft @@ -53,7 +53,8 @@ that limitation is explicit. build the exact candidate tree. Terraform validation was unavailable on hosts without a local binary, and the repository had no executable coverage provider or enforceable 80% threshold. -- **Correction/status:** **REMEDIATED CANDIDATE** at `223a5fe` plus the preceding +- **Correction/status:** **REMEDIATED + INTEGRATED** at protected-main merge + `53f2529`, from product head `223a5fe` plus the preceding issue #96 commits. Controlled UI actions synchronously commit the latest draft and preserve caret/hydration state without changing the accepted design. Durable publication is capacity-bounded and atomic. Tokenless access is loopback Host plus @@ -64,13 +65,13 @@ that limitation is explicit. scripts. - **Observed closure evidence:** literal `npm run check` passed root 26/26, Server 856 passed plus 3 opt-in skips, Web 20/20, strict types and both builds. Clean - Server coverage is 86.15/80.05/91.46/88.03%; clean browser coverage is - 88.50/80.18/87.64/92.37% (statements/branches/functions/lines). Full Chromium is + Server coverage is 86.15/80.05/91.46/88.03%; exact-merge browser coverage is + 88.40/80.00/87.35/92.37% (statements/branches/functions/lines). Full Chromium is 48/48 at exact `1280x800` and `1440x900`. Pinned Terraform validation and the exact-tree zero-spend live Docker preflight pass; dependency audit reports zero - vulnerabilities. External Ark inference, independent UI/security review, - hosted CI and protected-main integration remain explicit gates, so this row is - not marked audited or integrated. + vulnerabilities. Protected-main workflow run `33396729636` passes on the merge. + External Ark inference and independent UI/security review remain explicit gates, + so this row is integrated but not independently audited. ### `TST-30` — Candidate-cleanup fixture races first-use Runtime root adoption diff --git a/docs/SHEPHERD.md b/docs/SHEPHERD.md index 3747a2e..a94d34f 100644 --- a/docs/SHEPHERD.md +++ b/docs/SHEPHERD.md @@ -12,23 +12,24 @@ and phase named in each entry. ## Current release-readiness snapshot -Protected `main` is currently `f935fdb`. Issue #96 / draft PR #97 is an -exact-main release-remediation candidate; its tested product commit is `223a5fe`. -The candidate passes the literal repository check, an enforced 80% coverage gate, -48/48 functional browser flows across exact `1280x800` and `1440x900` viewports, -pinned Docker Terraform validation, dependency audit, the exact-tree zero-spend -live Runtime preflight, and both hosted PR workflows at `bb1a1df`. Exact commands, -counts, coverage, failures, and limitations are in +Protected `main` is currently `53f2529`, the merge of issue #96 / PR #97. Its +tested product commit was `223a5fe` and its final PR head was `14b69f2`. A clean +worktree on the exact merge passes the literal repository check, an enforced 80% +coverage gate, 48/48 functional browser flows across exact `1280x800` and +`1440x900` viewports, pinned Docker Terraform validation, dependency audit, and the +exact-tree zero-spend live Runtime preflight. Protected-main workflow run +`33396729636` also passes on the merge SHA. Exact commands, counts, coverage, +failures, and limitations are in [`SHEPHERD_TEST_REPORT.md`](SHEPHERD_TEST_REPORT.md). -The candidate removes the previously documented macOS host-share blocker from the +The integration removes the previously documented macOS host-share blocker from the live test harness by using a named state volume and a non-root controller that builds the current tree. The external Ark inference itself has not been executed in this audit because it sends repository-derived prompts and code to the configured provider and requires separate informed approval in the execution environment. -Independent UI review (#45), independent security review (#89), protected-main -integration, and three complete demo rehearsals also remain explicit evidence gaps; -none is inferred from the local or hosted candidate matrix. +Independent UI review (#45), independent security review (#89), and three complete +demo rehearsals also remain explicit evidence gaps; none is inferred from the local +or hosted integrated matrix. ### Historical 2026-08-30 snapshot (retained) diff --git a/docs/SHEPHERD_TEST_REPORT.md b/docs/SHEPHERD_TEST_REPORT.md index 6ab1474..a4658dc 100644 --- a/docs/SHEPHERD_TEST_REPORT.md +++ b/docs/SHEPHERD_TEST_REPORT.md @@ -2,16 +2,18 @@ **Observed:** 2026-08-31, Asia/Singapore -**Protected-main base:** `f935fdb5581849f8377f20922e254c55d34e5de0` +**Protected-main base before remediation:** `f935fdb5581849f8377f20922e254c55d34e5de0` **Tested product commit:** `223a5fe00f977013d4bf5df6560016a1719c8d11` -**Candidate:** [issue #96](https://github.com/kyashp/shepherd/issues/96) / -[draft PR #97](https://github.com/kyashp/shepherd/pull/97) +**Integrated merge:** `53f252935f63f4bef8a36f17432fecd0de824181` -This report records commands actually observed on the named candidate. It does not -claim protected-main integration, independent security/UI review, a paid provider -request, or a complete demo rehearsal. +**Delivery:** [issue #96](https://github.com/kyashp/shepherd/issues/96) / +[merged PR #97](https://github.com/kyashp/shepherd/pull/97) + +This report records commands actually observed in a clean worktree on the exact +protected-main merge. It does not claim independent security/UI review, a paid +provider request, or a complete demo rehearsal. ## Environment @@ -30,13 +32,13 @@ request, or a complete demo rehearsal. | Gate | Result | Scope | |---|---:|---| | `npm run check` | Pass | root Node tests 26/26; Server 856 passed and 3 explicit opt-in skips; Web 20/20; strict production/test typechecks; Web and Server production builds | -| `npm run test:coverage` | Pass | Server: 86.15% statements, 80.05% branches, 91.46% functions, 88.03% lines. Browser: 88.50% statements, 80.18% branches, 87.64% functions, 92.37% lines. Every production source file is required; all four thresholds are 80%. | +| `npm run test:coverage` | Pass | Server: 86.15% statements, 80.05% branches, 91.46% functions, 88.03% lines. Browser: 88.40% statements, 80.00% branches, 87.35% functions, 92.37% lines. Every production source file is required; all four thresholds are 80%. | | full Playwright matrix | Pass, 48/48 | 24 functional flows at both `1280x800` and `1440x900`, one worker, normal non-instrumented production build | | `npm run test:terraform` | Pass | formats, initializes, and validates a disposable module copy with the pinned Terraform image; working tree is not populated with provider state | -| `npm run test:shepherd:live:preflight` | Pass | builds the exact candidate Runtime and non-root controller images, uses a named state volume and engine socket, discovers exactly one live test, and cleans temporary resources; no model request | +| `npm run test:shepherd:live:preflight` | Pass | builds the exact merged Runtime and non-root controller images, uses a named state volume and engine socket, discovers exactly one live test, and cleans temporary resources; no model request | | `npm audit --json` | Pass | 0 vulnerabilities | | `git diff --check` and bounded secret scan | Pass | no whitespace error, tracked credential, state, or generated Terraform artifact found | -| hosted PR workflows at `bb1a1df` | Pass | `Node 22 / npm run check` run `33389614355` in 2m59s; `Required checks` run `33389614223` in 3m01s | +| hosted protected-main workflow | Pass | `Required checks` push run `33396729636` completed successfully on exact merge `53f2529` | The clean coverage run executes the complete Server suite first, then rebuilds the Web app with browser instrumentation and runs 24 Chromium flows. It restores the @@ -78,8 +80,6 @@ theme and layout were preserved. - **Independent review:** issue #45's read-only UI review and issue #89's required independent security review cannot be self-certified by the author of this remediation. The deterministic UI and security regressions pass locally. -- **Integration:** both hosted candidate workflows pass, but this remains candidate - evidence until an integrator merges it and the protected-main rerun passes. - **Rehearsal/delivery:** three clean timed demo rehearsals and any genuinely available second-machine run remain separate evidence work. This report does not infer them from automated tests. diff --git a/docs/TASKS.md b/docs/TASKS.md index e785d69..db8b89d 100644 --- a/docs/TASKS.md +++ b/docs/TASKS.md @@ -2,11 +2,13 @@ **Canonical implementation branch:** protected `main`. -**Latest protected-main integration:** `f935fdb` (PR #95), including the issue #48 -stability campaign and issue #89 High remediations. Issue #96 / draft PR #97 is an -exact-main release-readiness candidate based on that SHA; its tested product head is -`223a5fe`. Candidate evidence is not an `I` claim until protected-main integration -and the hosted rerun complete. Exact observations are in `BUILD_LOG.md` and +**Latest protected-main integration:** `53f2529` (PR #97), closing issue #96's +exact-main release-readiness remediation. The tested product head was `223a5fe`; the +final PR head was `14b69f2`. A clean post-integration worktree at the exact merge +passed the repository, coverage, browser, Terraform and zero-spend live-preflight +gates, and protected-main workflow run `33396729636` passed on that SHA. Independent +UI/security review, external Ark inference and demo rehearsals remain separate open +evidence. Exact observations are in `BUILD_LOG.md` and `SHEPHERD_TEST_REPORT.md`. **Reconciled:** 2026-08-31, Asia/Singapore @@ -144,20 +146,20 @@ scrolling. | Check | Observed result | Verdict | |---|---|---| -| Environment | Node `26.5.0`; npm `11.17.0`; Playwright `1.62.1`; Docker client/server `29.6.1` | Recorded for issue #96 candidate | +| Environment | Node `26.5.0`; npm `11.17.0`; Playwright `1.62.1`; Docker client/server `29.6.1` | Recorded on merge `53f2529` | | Workspace typecheck | Both server and web passed during `npm run check` | Pass | | Root script/deploy tests | 26/26 passed | Pass | -| Server suite | Candidate `223a5fe`: 856 passed, 3 explicit opt-in skips | Pass candidate | -| Web unit suite | 20/20 passed | Pass candidate | +| Server suite | Merge `53f2529`: 856 passed, 3 explicit opt-in skips | Pass integrated | +| Web unit suite | 20/20 passed | Pass integrated | | Persistence/recovery closeout | `TST-23` 20/20; `TST-24` 30/30; Store 70/70; combined boundary 133/133 | Pass | | Production build | Web and server production builds passed | Pass | -| Coverage | Server 86.15/80.05/91.46/88.03%; browser 88.50/80.18/87.64/92.37% (statements/branches/functions/lines) | Pass; all four metrics >=80% and every production file required | +| Coverage | Server 86.15/80.05/91.46/88.03%; browser 88.40/80.00/87.35/92.37% (statements/branches/functions/lines) | Pass integrated; all four metrics >=80% and every production file required | | Dependency audit | `npm audit --json`: 0 vulnerabilities | Pass | | Script syntax | `bash -n` launcher and Node launcher syntax passed | Pass | -| Full browser matrix | 48/48: 24 functional flows at both `1280x800` and `1440x900` | Pass candidate; independent `U` remains | -| Terraform | Pinned Terraform `1.9.8` plus Volcengine provider `0.0.58` initialized and validated a disposable copy | Pass candidate | -| Live Runtime preflight | Exact-tree Runtime/controller build, non-root controller, named volume/socket, one test discovered, cleanup | Pass candidate; zero model requests | -| Hosted candidate gate | PR #97 at `bb1a1df`: `Node 22 / npm run check` run `33389614355` passed in 2m59s; `Required checks` run `33389614223` passed in 3m01s | Pass candidate; protected-main `I` pending | +| Full browser matrix | 48/48: 24 functional flows at both `1280x800` and `1440x900` | Pass integrated; independent `U` remains | +| Terraform | Pinned Terraform `1.9.8` plus Volcengine provider `0.0.58` initialized and validated a disposable copy | Pass integrated | +| Live Runtime preflight | Exact-tree Runtime/controller build, non-root controller, named volume/socket, one test discovered, cleanup | Pass integrated; zero model requests | +| Hosted protected-main gate | `Required checks` push run `33396729636` passed on merge `53f2529` | Pass integrated | | External live/model gate | Requires explicit informed approval to send repository-derived prompts/code to configured Ark | Not run | No model request was made during the issue #96 release audit. Earlier bounded live @@ -234,7 +236,7 @@ without an open issue/PR are not active ownership claims. | `ST-02` | 11.5, 12 | **AUDITED** at integrated merge `d5df930` | PR #13 was merged to `main` as `d27dea6` and then merged into `mock-main` without product-code conflict. Notifications remain deliberately undelivered; the Settings surface now labels the capability **Unavailable** and every preserved preference **Reserved**, with three native disabled controls. Auditor passed focused rendering 1/1, web type/build, two-viewport real-browser semantics/no-PATCH/no-overflow, full harness unit 2/2 plus Chromium 4/4, and literal `npm run check` with launcher 3/3, server 563/563 plus one opt-in skip, strict typechecks and both builds. Independent rendered fallback review returned READY/no scoped findings; the configured `ui-reviewer` role was unavailable. No notification integration, public API/schema, persistence, or theme change. | **100% scoped**; `T,C,B,U,I` passed (5/5); audited | | `MR-01` | 4.1.13, 8.6, 12 | **AUDITED** through `35ec268` | Bounded reviewer consumes trusted verified summaries/refs, validates output, remains advisory-only, degrades truthfully and cannot alter deterministic authority. Provider-free, MR-03 partial, browser/security, one-request live and hosted gates passed. | **100% scoped**; `T,A,C,B,S,U,L,I` 8/8; audited | | `MR-02` | 4.1.13, 8.6, 11.5, 12 | **AUDITED** at `577255e` | The server exposes only `shepherdModelReviewConfigured`, derived from the same fail-closed startup predicate used to compose the reviewer. Settings preserves the stored preference but renders a native disabled control plus explicit **Unavailable** process-scoped copy when false; it issues no PATCH. Configured mode retains normal mouse/keyboard PATCH behavior. Auditor passed reviewer/config/service 173/173, Settings 5/5, adjacency 100/100, harness unit 6/6 and Chromium 8/8, literal check (launcher 3/3, Server 588/588 plus two opt-in skips, Web 13/13), audit/scans and hosted run `33268567614`; no live call. | **100% scoped**; `T,A,C,B,S,U,I` passed (7/7); audited | -| `OPS-06` | 6.1, 8.10, 17 baseline | **COMPATIBILITY INTEGRATED** at `b80af11` ([PR #56](https://github.com/kyashp/shepherd/pull/56)); diagnostics audited earlier at `68dbd59` | The bounded stage/reason diagnostics did their job and the affected-host cause is now reproduced: `codex sandbox linux --full-auto` cannot enforce Landlock per-file access rights on a host share reaching the engine through a virtual machine, so the sandbox subprobe's first redirection is denied and the runner reports the catch-all `sandbox_probe_failed`. Both startup probes were also certifying nothing, because `touch` succeeds on exactly that filesystem. Correction adds the opt-in container state volume (`CONTAINER_STATE_ROOT` plus `CONTAINER_STATE_VOLUME`, required together, `volume-nocopy` mandatory), translates the independent verifier, and makes both probes write and read back bytes; unset keeps host bind mounts byte-identically. On the affected host the unmodified preflight now returns `SHEPHERD_RUNTIME_PREFLIGHT_OK` and a containerized non-root control plane completes the sibling-Runtime loop; the `container-volume` startup smoke is recorded in `BUILD_LOG.md`. The green Linux full gate now exists: hosted run `33300759535` ran literal `npm run check` on exact head `b80af11` and succeeded. `ba1ee77` additionally defaulted `LOCAL_POC_STATE_MODE` to `auto`, so the launcher selects the volume layout from its own probes; an explicit `host-bind` or `container-volume` still disables the fallback. Local serial rerun on `b80af11`: 745 passed / 6 failed / 6 skipped, every failure a host-speed timeout (`recovery.process` 5, plus the recorded `resolving`/`attention_required` flake). Adjacent `A` coverage is supplied by [PR #68](https://github.com/kyashp/shepherd/pull/68): eight causal tests for the verifier fail-closed branch, the three executor state-root guards, the `index.ts` verifier composition and the launcher probe/fallback selection, each proven by mutating its guard. An independent `S` review of the merged range returned **FAIL** with one High and two Medium findings, all against `e6a5878`, which removed the non-loopback `APP_AUTH_TOKEN` requirement in the same merge with no recorded review. [PR #69](https://github.com/kyashp/shepherd/pull/69) restores the deploy-path guard and the configured-token floor, documents the state volume and the control-plane engine socket, and gates its own regression test. Adversarial re-review then reproduced two bypasses of that first guard and a bypass of the composition test; both are corrected and re-verified against the reproductions. See `docs/BUILD_LOG.md`. | **100% scoped**; `T,A,C,S,I` passed. `A` integrated at `6137f36` (PR #68) and `S` at `3087b69` (PR #69); both are ancestors of `origin/main`, and the hosted exact-head gate on `3087b69` is run `33322423938`. Scoped 100 means every listed gate for this row passed; the `S` review's High finding is **carried, not closed** — see below — and `L` is `LIVE-01` ([#65](https://github.com/kyashp/shepherd/issues/65)). The High finding is only partly closed: the guarded deploy script is one of three documented compose entry points, and `README` still documents `docker compose up --build` and `docker compose --env-file .env.production up -d` against the same unguarded `docker-compose.yml`, which binds `0.0.0.0` with an unprefixed port. That remainder is owned by [issue #89](https://github.com/kyashp/shepherd/issues/89), successor to `SEC-REVIEW` `#49`. `I` rerun performed on integrated `a62e29b`: hosted exact-head gate run `33324819058` succeeded, and the OPS-06 surfaces passed locally. **The rerun was SELF-PERFORMED by the author of the implementation, not by an independent auditor**, so this row is explicitly NOT `AUDITED`. An independent rerun is still owed, and it matters here: the `SEC-REVIEW` boundary audit found `SEC-01`, an authentication bypass on the same `APP_AUTH_TOKEN` boundary this row's `S` gate covers, which the author had not noticed. | +| `OPS-06` | 6.1, 8.10, 17 baseline | **COMPATIBILITY INTEGRATED** through `53f2529`; original implementation `b80af11` ([PR #56](https://github.com/kyashp/shepherd/pull/56)) | The bounded diagnostics and volume-aware Runtime path pass on the affected macOS host. The carried compose-exposure High was closed as `SEC-06`: the base profile defaults publishing to loopback while preserving explicit `PUBLIC_BIND_ADDR` opt-in, and public effective binds require a strong token. PR #97 additionally makes the exact-tree live gate use a named state volume and non-root controller, eliminating the host-share sandbox-probe blocker without weakening sandbox, cleanup or credential boundaries. Historical implementation and review detail remains in `BUILD_LOG.md`; external model execution is owned separately by `LIVE-01`. | **100% scoped**; `T,A,C,S,I` passed; integration verified, not independently audited | | `TST-12` | 0.3, 6.1, 13 | **AUDITED** at `68dbd59` | Executor correction discards raw mount-cleanup cause and throws fixed bounded cleanup stage/reason. A planted failure proves message/String/stack/inspect/JSON/cause surfaces contain no secret/private-path/OS detail; cleanup continuation, fail-closed cache reset/retry and primary typed diagnostic remain. Focused/adjacent, strict/literal, independent security review and hosted run `33274769957` passed. | **100% scoped**; `T,C,S,I` 4/4; audited | | `GC-02/05` | 8.1, 11.5–11.6.3 | **AUDITED CANDIDATE** on [PR #64](https://github.com/kyashp/shepherd/pull/64), [issue #41](https://github.com/kyashp/shepherd/issues/41) | Explicit initialization creates only the fixed idle auth-demo Project: no Mission, Contract, Plane, shell, model or executor run. Unmentioned bounded text persists with a bounded Shepherd reply. Duplicate/replayed IDs are deterministic, including cross-route concurrency. Focused and full checks, security/DB hostile-state coverage, two-viewport browser evidence and independent review passed; protected-main integration remains. `T,A,C,B,S,U,I`. | **100% scoped**; 7/7 passed; audited candidate | | `CHAT-01` | 4.1.2, 6.1, 11.5, 11.6.2 | **INTEGRATED** at `cd82ec4`, reviewed at `e1fe067`; [PR #57](https://github.com/kyashp/shepherd/pull/57), [issue #55](https://github.com/kyashp/shepherd/issues/55) | A user creates Frontend/Backend Agents and sends each exact assignment in its private chat with **Route through Shepherd**. Server-side bounded parsing accepts one HttpOnly-cookie and one bearer-JWT assignment, persists both restart-safely, atomically/idempotently binds them to one Mission and two authority-intersected Contracts, and reuses the verified Plane/collision/resolution/promotion pipeline. Agent deletion/intake races serialize without archive/state drift. Legacy Playground remains available; route mode cannot leak across Agents; old Shepherd Agent/transport selectors and CSS are removed; the fallback composer remains visible without page overflow. Literal check passed with Server 742 plus two opt-in skips and Web 18/18; focused authenticated Chromium passed 4/4 at both viewports, including keyboard route opt-in, Frontend→Generalist isolation, Backend verified status, exact Contract objectives, full evidence and container/document overflow gates. Independent security and UI re-reviews passed with no blocker. Protected-main integration is done at `cd82ec4`; the exact post-merge `I` rerun remains before issue #55 can close. `T,C,B,S,U,I`. | **98% scoped**; `T,C,B,S,U` passed (5/6), `I` pending; not audited | @@ -251,17 +253,18 @@ without an open issue/PR are not active ownership claims. ## P1 — browser, cross-surface and assurance gates -**Issue #96 candidate overlay (not yet integrated):** PR #97 extends the existing -rows without rewriting their protected-main audit history. `UI-GATE` passes an +**Issue #96 integration overlay:** PR #97 merged as `53f2529` and extends the +existing rows without rewriting their earlier audit history. `UI-GATE` passes an expanded 48/48 matrix at both required viewports, including Agent edit hydration, Settings recovery, full CRUD/lifecycle, runtime-contract and error-state coverage; -independent `U` remains. `SEC-REVIEW` candidate fixes bound durable retention, -make Agent creation atomic, protect tokenless loopback/same-origin access, refuse a -public bind without a token, and remove runtime credentials from Terraform +independent `U` remains. `SEC-REVIEW` integration bounds durable retention, makes +Agent creation atomic, protects tokenless loopback/same-origin access, refuses a +public bind without a token, and removes runtime credentials from Terraform input/cloud-init/state; the required independent part-5 review remains. `LIVE-01` -now has a passing exact-tree named-volume Docker preflight on the affected host; the +has a passing exact-tree named-volume Docker preflight on the affected host; the external provider turn remains unexecuted pending informed approval for sending -repository-derived payloads to Ark. `I` remains pending for every candidate claim. +repository-derived payloads to Ark. Deterministic protected-main `I` passed on the +merge; neither `U` nor external `L` is inferred from it. | ID | PRD ref | Status / dependencies | Required acceptance | Confidence; gates passed; audit | |---|---|---|---|---| @@ -279,13 +282,13 @@ repository-derived payloads to Ark. `I` remains pending for every candidate clai | `E2E-06` | 11.6.6 | `BLOCKED` by `FM-01` | Real service tie → human verified choice → trusted promotion; `C,B,S,U,I`. | **40%**; 0/5; not audited | | `E2E-07` | 11.6.7 | `BLOCKED` by `F-09` product behavior | Cancel mid-Mission → durable cancelled, released Agents, no promotion; `C,B,S,U,I`. | **55%**; 0/5; not audited | | `E2E-08` | 11.6.8, 12 | `BLOCKED` by restart/reconnect product composition | Kill/restart mid-Mission → reconnect/cursor reconciliation, interrupted visible, no false green/duplicates; `C,B,S,U,I`. | **50%**; 0/5; not audited | -| `UI-GATE` | 0.4, 11.1–11.7 | **INTEGRATED CANDIDATE** at protected-main merge `cf4dd0fa` via [PR #87](https://github.com/kyashp/shepherd/pull/87), [issue #45](https://github.com/kyashp/shepherd/issues/45); causal UI fixes `bbc7c81`; independent `U` remains | One real-server Playwright matrix covers the six PRD surfaces plus adjacent auth/Agents/Settings/not-found states at both exact viewports. Final candidate `adbb7aa` passed hosted runs `33329742705` and `33329742709`. The exact merge tree is identical to that candidate; its one-worker integration rerun passed 12/12, regenerated 36 reviewed PNGs (18 per viewport, 3,225,044 bytes), and exact-main hosted run `33329997913` passed literal `npm run check`. Keyboard/focus/roles/state/contrast/long-ID/named-scroll/no-document-overflow and bounded canary assertions pass. The local Node harness remains honestly limited by Windows `spawn EFTYPE` at 15/19; hosted Linux supplies the complete gate. `docs/ui-review/ui-gate/AUDIT.md` records the compact-chip exception, no connected in-app browser, and no manual screen-reader claim. `C,B,U,I`. | **95% scoped**; `C,B,I` passed (3/4), independent `U` pending; not audited | +| `UI-GATE` | 0.4, 11.1–11.7 | **INTEGRATED** through `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97), [issue #45](https://github.com/kyashp/shepherd/issues/45); earlier causal UI fixes `bbc7c81`; independent `U` remains | The real-server Playwright matrix now covers 24 functional flows at both exact viewports: the six PRD surfaces plus auth/shell, full Agent CRUD/lifecycle/edit hydration, Settings persistence/reset/recovery, direct Playground, Project Group, successful/denied Shepherd Missions, loading/empty/reconnect/malformed/not-found states, durable restart, verifier/runtime contracts, contrast and truthful promotion evidence. Exact merge `53f2529` passed 48/48 with no document-level overflow; Web 20/20, coverage, strict types/builds and protected-main run `33396729636` pass. The accepted design was preserved. `C,B,U,I`. | **95% scoped**; `C,B,I` passed (3/4), independent `U` pending; not audited | | `PERF-01` | 14 | **AUDITED** at integrated implementation `b193e57` via [PR #77](https://github.com/kyashp/shepherd/pull/77); [issue #46](https://github.com/kyashp/shepherd/issues/46) | The independent protected-main audit passed the deterministic compiled-service/real-Chromium journey 2/2 at `1280x800` and `1440x900`: conservative two-Plane-ready 323/334 ms, exact verification 303/334 ms, persisted event → visible 488/476 ms (limit `<=1.5s`), collision → `promotion_completed` 2,073/2,044 ms, and 3,712/3,680 ms total. The actual candidate-executor overlap proof and cleanup-race regression passed 1/1 each; harness passed 7/7; literal `npm run check` passed launcher 3/3, Server 810 with three explicit skips, Web 20/20, all typechecks and builds. Hosted exact-main run `33318509842` passed. Tracked screenshots remained unchanged. The evidence is deterministic, not a live-model capacity, package-download, or three-rehearsal claim. `B,I`. | **100% scoped**; `B,I` passed (2/2); audited | | `TEST-TS` | 16 Phase 9B | **AUDITED** at integrated implementation `8995605` | Separate strict no-emit server test-source config is enforced by root `typecheck`/`check`; production emit config is unchanged. RED evidence covers 14 errors across 4 test files (4 implicit callback types, 5 invalid Vitest matcher generics, 4 stale promotion fixtures, 1 stale verifier fixture), then 2 nullable fixture values exposed after matcher typing was restored. Auditor confirmed no suppression, broad exclusion, compiler weakening, blanket `any`, assertion weakening, product/UI change, or dependency churn. Candidate and integrated strict test-source checks passed; both production typechecks/builds passed; affected suites passed 73/73; literal candidate and integrated gates passed with launcher 3/3, server 563/563 and one unchanged opt-in live skip, plus both production builds. | **100% scoped**; `T,C,I` passed (3/3); audited | | `CI-01` | 0.1, 16, 17 | **AUDITED** at workflow `cda2446`; hosted run `33259565232` succeeded | `required-checks.yml` uses supported official checkout/setup-node actions, Node 22, lockfile-backed npm cache, `npm ci`, Docker availability, and literal `npm run check`; it triggers every PR, pushes to protected `main`, and merge-queue `checks_requested`. Token permission is only `contents: read`; checkout credentials are not persisted; no `.env`, secrets, artifacts, privileged actions, or live/model path is configured. Independent local validation passed Docker 29.7.2 and launcher 3/3 plus server 555/555 with one opt-in skip. Hosted Node 22.23.2/npm 10.9.8 and Docker client/server 28.0.4 passed locked install, launcher 3/3, server 551 passed/5 environment-gated skips, typechecks, 40-module web build and server build. Stable job check: `Node 22 / npm run check`. Administrator must require that check on protected `main`; this external rule change is not performed by agents. `C,I`. | **100% scoped**; `C,I` passed (2/2); audited | -| `SEC-REVIEW` | 0.3, 13, 17 | `PARTIAL`; parts 4-5 tracked in [issue #89](https://github.com/kyashp/shepherd/issues/89), successor to [#49](https://github.com/kyashp/shepherd/issues/49) | Parts 1-3 are evidenced at `bd9b093`. **Canary scan:** exactly two credentials exist, both threaded as `sensitiveValues`; no path found by which either reaches `state.json`, a model prompt, a 4xx/5xx body, the DOM, browser storage, a URL, the logger or a tracked file. The Ark key is never in argv and never in the generated Codex config. Two low observations: `/api/system` has no redaction pass, and `ARK_API_KEY` has no minimum length against a 4-character redaction floor. **Five invariant mutations, each caught by an existing test:** bearer auth rejection (2 tests), promotion refusal on failed final re-verification (`failure-matrix`), fast-forward-only protected-ref CAS, contract-cannot-broaden-authority intersection, and verifier Plane containment. **Boundary audit: FAIL.** Route inventory, traversal, identity, authority and promotion boundaries hold, but the bearer hook was bypassable by percent-encoding the `/api/` prefix — filed and fixed as `SEC-01`. **Parts 4 and 5 are tracked in [#89](https://github.com/kyashp/shepherd/issues/89), successor to `#49` after that issue was closed three times with its scope unsatisfied:** the independent read-only review must not be done by the author of `config.ts`'s token floor, `check-deploy-auth-token.mjs`, the deploy guard, the `A`-gate tests or the `SEC-01` fix. This row also owns the carried `OPS-06` High finding: `docker-compose.yml` binds `0.0.0.0` with an unprefixed port while `README` documents two entry points a deploy-script guard cannot reach. `C,S,I`. | **85%**; parts 1-3 evidenced; a seven-lens adversarial review ran for part 4 and returned 19 confirmed findings with 0 refuted, of which five Highs are fixed; part 5 incomplete and four findings remain open; whether that review satisfies "by someone other than the author" is the maintainer's call; not audited | +| `SEC-REVIEW` | 0.3, 13, 17 | **PARTIAL, REMEDIATION INTEGRATED** through `53f2529`; independent acceptance tracked in [issue #89](https://github.com/kyashp/shepherd/issues/89), successor to [#49](https://github.com/kyashp/shepherd/issues/49) | Parts 1-3 are evidenced at `bd9b093`. The seven-lens part-4 review confirmed 19 findings; its five Highs (`SEC-02`–`SEC-06`) are fixed with causal coverage. PR #97 closes the remaining concrete release-audit findings by bounding durable collections, making Agent publication atomic, enforcing tokenless loopback Host plus same-origin Origin, requiring a strong token for every effective public bind, and keeping runtime credentials out of Terraform input/cloud-init/state. Exact merge `53f2529` passes the deterministic security regressions, dependency audit, coverage, Terraform validation and protected-main workflow. Issue #89 remains open because the required independent part-5 security review cannot be self-certified; four documented Low findings also remain review-visible. `C,S,I`. | **90%**; concrete High/Medium remediation and `C,S,I` integrated, independent acceptance pending; not audited | | `STABILITY` | 16 Phase 9B | **INTEGRATED** at protected-main merge `b05a4aa` via [PR #93](https://github.com/kyashp/shepherd/pull/93), [issue #48](https://github.com/kyashp/shepherd/issues/48); immutable campaign candidate `10c95da` | The first `bd77952` sequence was truthfully reset after run 4 exposed PERF-01's full-Mission timing harness. Four causal corrections isolate inherited Git selectors, post-cleanup F-03 observation, scheduler overlap, and candidate-cleanup preflight without sleeps, timeout/retry increases, hidden workers, suppression, skips, or weakened assertions. Candidate `10c95da` passed five separate literal `npm run check` gates: launcher/deploy 12/12, Server 846 passed / 3 documented skips, Web 20/20, all typechecks and both builds on every run; Server durations were 149.16, 145.77, 144.00, 145.19, and 137.87 seconds. A fresh literal exact-main check at `b05a4aa` passed the same counts with Server duration 140.70s; protected-main workflow `33353622211` also passed. `C,I`. | **100% scoped**; `C,I` passed (2/2); integration verified, not independently audited | -| `LIVE-01` | 16 Phase 3/7/8 | `BLOCKED` by host capability, not by code; [issue #65](https://github.com/kyashp/shepherd/issues/65), split out of #47 | Reviewer sub-gate is satisfied: command attempt two made exactly one external request and completed with two bounded findings while deterministic outcome/security/cleanup stayed green. Current live Shepherd Mission and legacy continuity remain required. Reproduced on the affected host at `b80af11`: a plain write to a host-share bind mount inside the Runtime succeeds while the identical write under `codex sandbox linux --full-auto` is denied, so `test:shepherd:live` — which pins `CONTAINER_STATE_ROOT`/`CONTAINER_STATE_VOLUME` to `undefined` and bind-mounts `.tmp/shepherd-live-gate` — would fail at `stage=container_start reason=sandbox_probe_failed` and consume the no-retry allowance for no evidence. The gate needs a Linux host, or a code change making it volume-aware, which is outside an `L` run. `L,S,I`. | **55%**; 1/3; not audited | +| `LIVE-01` | 16 Phase 3/7/8 | `PARTIAL`; external provider turn awaits informed approval; [issue #65](https://github.com/kyashp/shepherd/issues/65), split out of #47 | Reviewer sub-gate is satisfied: command attempt two made exactly one external request and completed with two bounded findings while deterministic outcome/security/cleanup stayed green. PR #97 removes the affected-host bind-mount blocker: exact merge `53f2529` builds the current Runtime and non-root controller, uses a named state volume plus engine socket, discovers exactly one bounded live integration test, and cleans temporary resources. The zero-spend preflight passes on the affected macOS host. Current live Shepherd Mission and legacy continuity still require the explicitly approved external Ark turn; preflight is not substituted for model evidence. `L,S,I`. | **70%**; `S,I` and construction preflight pass, external `L` pending; not audited | | `DEMO-REHEARSAL` | 14–15, 16 Phase 8 | `BLOCKED` by all demo-critical rows; [issue #50](https://github.com/kyashp/shepherd/issues/50) | Three clean reset-to-completion judge flows under three minutes, including clean no-op reset and initialized reset; second machine/state if genuinely available. `B,S,I`. | **0%**; 0/3; not audited | ## P2 — feature freeze deliverables @@ -293,10 +296,10 @@ repository-derived payloads to Ark. `I` remains pending for every candidate clai | ID | PRD ref | Status / dependencies | Required acceptance | Confidence; gates passed; audit | |---|---|---|---|---| | `DEL-01` | 16 Phase 9A | **INTEGRATED** as [`ARCHITECTURE.md`](ARCHITECTURE.md) at `39cd800` via PR #60; [issue #51](https://github.com/kyashp/shepherd/issues/51) was prematurely closed after this one deliverable | As-built one-page architecture and judge-facing Mermaid were rendered and validated. The filename differs from the older prospective name, but all current links use the integrated path. | **100% implementation/integration**; independent final package review not claimed | -| `DEL-02` | 16 Phase 9C | **CANDIDATE** on [PR #97](https://github.com/kyashp/shepherd/pull/97) | [`SHEPHERD_TEST_REPORT.md`](SHEPHERD_TEST_REPORT.md) records the exact base/product head, commands, failures, counts, coverage, browser/container/Terraform scope, and explicit live/review/integration limitations. | **95%**; `C` and hosted candidate checks passed, protected-main `I` pending; not audited | -| `DEL-03` | 16 Phase 9D | **CANDIDATE** on [PR #97](https://github.com/kyashp/shepherd/pull/97) | README now documents reproducible coverage/Terraform validation, credential-safe Terraform deployment, and links the exact report without removing starter setup. | **75%**; final frozen-state/independent review pending | -| `DEL-04` | 0.1, 16 Phase 9E | **RECONCILIATION CANDIDATE** on [PR #97](https://github.com/kyashp/shepherd/pull/97); prior consolidation audited at `5a38d37` | `TASKS.md`, `SHEPHERD.md`, `LOCAL_POC.md`, `FIXES.md`, `BUILD_LOG.md`, README and the test report distinguish protected-main, candidate, live-external, independent-review and rehearsal evidence. | **95% overall**; hosted candidate checks passed, final protected-main/independent audit pending | -| `DEL-05` | 16 Phase 9E, 17 | **PARTIAL CANDIDATE** on [PR #97](https://github.com/kyashp/shepherd/pull/97) | Dependency, tracked-secret, generated-artifact, exact-tree Docker, Terraform, coverage and complete browser checks pass. External live inference, independent security/UI review, hosted integration, demo rehearsals and broader optional PRD rows remain. | **60%**; `C,B,S` candidate evidence, `L,U,I` pending; not audited | +| `DEL-02` | 16 Phase 9C | **INTEGRATED** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97) | [`SHEPHERD_TEST_REPORT.md`](SHEPHERD_TEST_REPORT.md) records the exact base/product/merge heads, commands, failures, post-integration counts, coverage, browser/container/Terraform scope, and explicit live/review/rehearsal limitations. | **98%**; `C,I` passed; independent final package review not claimed | +| `DEL-03` | 16 Phase 9D | **INTEGRATED** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97) | README documents reproducible coverage/Terraform validation, credential-safe Terraform deployment, and links the exact report without removing starter setup. | **85%**; frozen-state integration complete, independent final package review pending | +| `DEL-04` | 0.1, 16 Phase 9E | **INTEGRATION RECONCILIATION** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97); prior consolidation audited at `5a38d37` | `TASKS.md`, `SHEPHERD.md`, `LOCAL_POC.md`, `FIXES.md`, `BUILD_LOG.md`, README and the test report distinguish protected-main, candidate, live-external, independent-review and rehearsal evidence. | **98% overall**; protected-main reconciliation passes, independent document audit pending | +| `DEL-05` | 16 Phase 9E, 17 | **PARTIAL INTEGRATED** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97) | Dependency, tracked-secret, generated-artifact, exact-tree Docker, Terraform, coverage, complete browser and hosted integration checks pass. External live inference, independent security/UI review, demo rehearsals and broader optional PRD rows remain. | **75%**; `C,B,S,I` pass, `L,U` pending; not audited | ## Count and current verdict @@ -305,13 +308,13 @@ repository-derived payloads to Ark. `I` remains pending for every candidate clai - **Ready non-overlapping assignments:** `F-07/08`, `F-09`, `FM-01`, `GC-02/05`, `ST-01`, `SCH-02`, and `UI-02`, subject to the ownership check above. `PERF-01` remains blocked by the completed Project Group and visible-denial journeys. -- **Presentation-host caveat:** protected `main` still has the historical - bind-mounted `LIVE-01` blocker. PR #97 makes the gate volume-aware and its - exact-tree zero-spend preflight passes on the affected host. The external Ark - request remains a separate consent and evidence boundary. -- **Current completion verdict:** incomplete. The exact-main candidate closes the +- **Presentation-host caveat:** protected `main` no longer has the historical + bind-mounted `LIVE-01` construction blocker. The exact-tree zero-spend preflight + passes on the affected host. The external Ark request remains a separate consent + and evidence boundary. +- **Current completion verdict:** incomplete. Merge `53f2529` closes the deterministic browser, coverage, Terraform, release-harness, identified security - and documentation gaps, but independent `U`, protected-main `I`, external `L`, - and three rehearsals remain explicit. The older 82% estimate is retained only + and protected-main integration gaps, but independent `U`, external `L`, and three + rehearsals remain explicit. The older 82% estimate is retained only in `SHEPHERD.md`'s labelled historical snapshot and is not reused as a current metric. From 79cc8b1d45f9029cb3d33fcd4cde132470dfd2d4 Mon Sep 17 00:00:00 2001 From: sanjey Date: Mon, 31 Aug 2026 23:45:23 +0800 Subject: [PATCH 2/7] docs(51): reconcile README with merged Shepherd Summary: - make Shepherd and its Track 1 middleware story the repository entry point - retain the Starter Kit setup, lifecycle, Playground, persistence, deployment, and security contract Change: - document the problem, three primitives, trusted architecture, deterministic judge flow, human-decision path, and preserved live Agent flow - add current Shepherd evidence screenshots, validation commands, configuration, limitations, future work, and authoritative document links Testing: - README integrity: 31 local links/images, 8 npm scripts, 4 shell entrypoints, and 24 PRD/Starter Kit requirements verified - git diff --check passed - bounded secret/private-path scan passed - GitNexus staged change analysis: 1 file, 0 affected processes, low risk - npm run check reached tests under Node 24; 7 Windows/CRLF POSIX-fixture failures are recorded in the PR --- README.md | 536 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 324 insertions(+), 212 deletions(-) diff --git a/README.md b/README.md index d511486..16a6dac 100644 --- a/README.md +++ b/README.md @@ -1,151 +1,269 @@ -# Volc Agent Launchpad + Shepherd +# Shepherd: Multi-Agent Kernel -> [!IMPORTANT] -> Start with [the Shepherd task ledger](docs/TASKS.md). It is the authoritative -> current-state, defect, remaining-work, evidence, and multi-agent workflow entry -> point. [The PRD](docs/PRD.md) remains the requirement authority, and -> [the Local POC guide](docs/LOCAL_POC.md) is the runbook. -> This README still preserves much of the Starter Kit setup material and is not -> the final PRD Phase 9 project report. +**TikTok TechJam 2026 · Track 1 — Agent Launchpad middleware** -A minimal Agent platform for three-day middleware hackathons. It provides Agent -CRUD, a browser Playground, persistent workspaces, and Codex CLI backed by the -Volcengine Ark Responses API. +Shepherd is a transactional execution kernel for teams of coding Agents. It turns +delegated work into verifiable contracts, detects incompatible assumptions that a +clean Git merge cannot see, executes competing resolutions in isolated Git worlds, +and promotes only an independently verified result. -Run it locally with Docker, Colima, or rootless Podman, or deploy it to -Volcengine ECS. +> [!IMPORTANT] +> The [product requirements](docs/PRD.md) define the required behavior. Use the +> [task ledger](docs/TASKS.md) for current implementation status and remaining +> work, the [release test report](docs/SHEPHERD_TEST_REPORT.md) for exact observed +> evidence, and the [Local POC guide](docs/LOCAL_POC.md) for the full runbook. > [!WARNING] -> This is a single-user proof of concept. It has no production identity, -> multi-tenant authorization, or hardened tenant-isolation boundary. Shepherd -> adds a scoped execution/audit kernel for its managed demo project, but this is -> not a production security claim. Do not use production data or credentials. -> See [SECURITY.md](SECURITY.md). +> This is a single-user proof of concept, not a production identity or multi-tenant +> isolation system. Shepherd enforces scoped authority around its managed projects, +> but the shared bearer token is not user identity, the JSON store is single-process, +> and ordinary containers are not a hardened tenant boundary. Do not use production +> data or credentials. See [SECURITY.md](SECURITY.md). -## Screenshots +## The problem -### Agent Playground +Two coding Agents can both finish their assignments, pass their local checks, and +merge without a textual Git conflict while still making mutually incompatible +system assumptions. The deterministic demo makes that failure concrete: a frontend +uses an HttpOnly session cookie while a backend expects a bearer JWT. -![Agent Playground showing lifecycle controls, starter prompts, and the Codex Runtime](docs/assets/playground.jpg) +Shepherd inserts a trusted decision path between delegation and promotion: -### Create an Agent +```text +Contract -> Execute -> Verify -> Detect Collision + -> Fork Futures -> Verify Futures -> Promote Winner +``` -![Create Agent form with name, description, and workspace instructions](docs/assets/create-agent.jpg) +The UI is Mission Control for that kernel. It displays durable backend evidence; it +does not invent success state in the browser. -## Features +## Three primitives -- Shepherd Execution Contracts, Git-backed Planes, independent verification, - deterministic semantic collision detection, speculative resolution, and - protected promotion for the managed authentication fixture -- Shepherd Mission Control, Project Group, timeline, Plane Tree, Agent role and - authority configuration, and settings UI (with known gaps itemized in the task ledger) -- React and TypeScript Web UI -- Agent create, edit, start, stop, delete, and multi-turn chat -- Fastify control plane with asynchronous Run state -- Persistent Agent workspaces and Codex sessions -- Disposable Docker, Colima, or Podman container for each local turn -- Docker and Terraform deployment paths for Volcengine ECS +1. **Agent Execution Contracts** turn delegation into typed, machine-verifiable + objectives, dependencies, authority, expected artifacts, claims, and acceptance + checks. An Agent cannot certify its own work. +2. **Semantic Collision Detection** compares independently verified claims and + finds behavioral incompatibilities that textual merging misses. +3. **Speculative Conflict Resolution** forks competing futures from one immutable + integration commit, verifies each independently, and promotes only the + evidence-derived winner through a final protected-head gate. -## Requirements +Supporting capabilities include Git-worktree-backed **Planes**, scoped authority, +durable Missions and events, a live execution timeline, a Plane Tree, Project Group +routing, bounded model-assisted review, cancellation/recovery, and human selection +when automatic resolution cannot choose uniquely. -- Node.js 22+ -- npm 10+ -- Docker, Colima, or Podman -- A Volcengine Ark API key and endpoint that supports the Responses API +## Product tour -Codex CLI is included in the Runtime image and is not required on the host. +### Verified promotion -## Local browser SOP +The Contract stream, execution timeline, semantic collision, competing Resolution +Planes, retained loser, and promoted winner all come from persisted server state. -For the currently verified deterministic Shepherd command and exact manual test -walkthrough, use [the Local POC runbook](docs/LOCAL_POC.md). +![Shepherd Mission Control showing a completed Mission, resolved auth.transport collision, and selected verified future](docs/ui-review/perf-01/1440x900/02-promotion-completed.png) -### 1. Check the local tools +### Fail-closed authority -Install Node.js 22+ and one supported container engine, then verify them: +Changes outside an Execution Contract's writable scope are rejected with durable +evidence, and protected promotion never starts. -```bash -node --version -npm --version -docker --version # Docker Desktop, Docker Engine, or Colima -podman --version # Use this instead when running Podman -``` +![Shepherd Mission Control showing an authority-denied Mission with retained Contract evidence](docs/ui-review/e2e-04/1440x900/02-denial-evidence.png) -Only one container engine is required. Codex CLI is already included in the -Runtime image. +### Preserved Agent Launchpad -### 2. Clone the repository +Shepherd extends the supplied Starter Kit instead of replacing it. Agent create, +edit, start, stop, delete, asynchronous Runs, multi-turn Playground chat, persistent +workspaces/Codex sessions, and real model execution remain available. -```bash -git clone volc-agent-launchpad -cd volc-agent-launchpad +![Agent Playground showing lifecycle controls, starter prompts, and the Codex Runtime](docs/assets/playground.jpg) + +![Create Agent form with name, description, and workspace instructions](docs/assets/create-agent.jpg) + +## Architecture + +The React application talks only to the Fastify control plane. Trusted server code +owns schema validation, authority intersection, lifecycle state, Git inspection, +manifest ingestion, independent verification, collision rules, winner selection, +final re-verification, and compare-and-swap promotion. Coding Agents and model +output are untrusted inputs. + +```mermaid +flowchart LR + Human["Human"] --> UI["React Web UI"] + UI --> API["Fastify control plane"] + + API --> Launchpad["Starter AgentService"] + Launchpad --> Runtime["Disposable Codex Runtime"] + Runtime --> Ark["Volcengine Ark Responses API"] + + API --> Kernel["Trusted ShepherdService"] + Kernel <--> Store["Durable JSON state and event evidence"] + Kernel --> Contracts["Typed Execution Contracts"] + Contracts --> Planes["Isolated Git Planes"] + Planes --> Runtime + Planes --> Verifier["Credential-free independent verifier"] + Verifier --> Collision["Deterministic collision and winner rules"] + Collision --> Futures["Competing Resolution Planes"] + Futures --> Verifier + Verifier --> Gate["Final verification and protected-head CAS"] + Gate --> Protected["Managed protected branch"] ``` -Skip this step when already working from the repository root. +Each live turn receives only its selected workspace or authority-filtered Plane +export and its own Codex session directory. It does not receive the protected Git +repository or verifier credentials. The deterministic mode exercises the same +kernel without an external model request. + +See the validated [one-page architecture and detailed trust-boundary diagrams](docs/ARCHITECTURE.md) +and the [as-built Shepherd design](docs/SHEPHERD.md). + +## Quickstart: deterministic judge flow + +The recommended judging path runs locally with Docker, Colima, or rootless Podman. +It exercises real Contracts, Git Planes, verification, collision handling, +resolution, persistence, and promotion without spending model capacity. + +### Requirements + +- macOS or Linux +- Node.js 22+ +- npm 10+ +- Docker, Colima, or rootless Podman +- A Volcengine Ark API key and Responses-capable endpoint for the preserved live + Agent path; the launcher requires these values, but the deterministic Mission + does not send a model request -### 3. Start the POC +Codex CLI is included in the Runtime image and is not required on the host. -Configure `ARK_API_KEY` and `ARK_MODEL` in the repository's ignored `.env`, then -run the single local entry point without additional parameters: +### 1. Clone and configure ```bash -./scripts/start-local-poc.sh +git clone https://github.com/kyashp/shepherd.git +cd shepherd +cp .env.example .env ``` -The first run installs Node.js dependencies and builds the Runtime image. The -script automatically selects Docker, Colima, or Podman. +Set `ARK_API_KEY` and `ARK_MODEL` in the ignored `.env`. For the reliable +deterministic demo, also set: + +```dotenv +HOST=127.0.0.1 +SHEPHERD_EXECUTION_MODE=deterministic +SHEPHERD_DEMO_MODE=true +``` -### 4. Open the browser +`APP_AUTH_TOKEN` is optional on loopback. If set, it must contain at least 24 +URL-safe characters and the browser will show an unlock screen. Never source, +print, screenshot, or commit `.env`; the launcher parses it as data. -Visit , or open it from the terminal: +### 2. Start ```bash -open http://localhost:3000 # macOS -xdg-open http://localhost:3000 # Linux desktop +./scripts/start-local-poc.sh ``` -In the Web UI: +The first run installs dependencies, builds the Runtime image, selects the +available container engine, validates the workspace boundary, and serves the app at +. + +### 3. Run the primary Shepherd Mission + +1. Open **Settings -> General -> Reset demo state**. This removes only the managed + demo state and preserves ordinary Launchpad Agents. +2. Create `Frontend Auth Agent` with role **Frontend** and `Backend Auth Agent` with + role **Backend**. Both must be ready. +3. Open `Frontend Auth Agent`, enable **Route through Shepherd**, and send: + + ```text + Implement the frontend authentication client using an HttpOnly session cookie. + ``` -1. Select **Create Agent**. -2. Enter a name, description, and workspace instructions. -3. Select **Create Agent** again. -4. Enter a task in the Playground, for example: +4. Open `Backend Auth Agent`, enable **Route through Shepherd**, and send: ```text - Create a TypeScript hello-world CLI, add a test, and run it. + Implement the backend authentication service using a bearer JWT. ``` -The Agent can write files, run commands, and continue the same Codex session in -later messages. +5. The second compatible-role prompt atomically starts one Mission. Open + **Shepherd** and wait for `completed`. +6. Verify the visible causal chain: two durable Contracts -> isolated Contract + Planes -> independent verification -> clean textual integration -> + `auth.transport` semantic collision -> two same-base Resolution Planes -> cookie + candidate verified and bearer candidate rejected -> final re-verification -> + protected promotion. +7. Open Contract evidence, use every stream filter, expand the collision, and open + Plane Tree details. Evidence must not expose secrets, private host paths, raw + prompts/model output, or session identifiers. + +The exact prompts become durable Contract objectives. The frontend and backend +source Planes do not compete with each other; their incompatible verified claims +create two resolution futures after integration. + +### 4. Exercise the human-decision path + +1. Reset the demo, then open **Settings -> Execution**. +2. Disable **Automatic resolution** and save. +3. Repeat the two private Agent prompts above. +4. At `attention_required`, inspect the durable human-review ticket. Only an + independently passing future offers **Select verified future**. +5. Select that future and confirm it still passes the same final verification and + promotion gate. Restore **Automatic resolution** afterward. + +This is the recommended recovery/decision story for a manual demo. The automated +authority-denial journey shown above is covered separately by the browser suite. ### 5. Stop and resume -Press `Ctrl+C` in the startup terminal. The script removes temporary Runtime -containers but keeps Agent workspaces and conversations. +Press `Ctrl+C` in the startup terminal. The launcher removes this instance's +temporary Runtime containers but preserves Agents, conversations, Runs, workspaces, +Codex sessions, and Shepherd evidence. -- macOS state: `~/.volc-agent-launchpad/` -- Linux state: `.local/` -- Custom location: set `LOCAL_POC_DATA_ROOT` +- macOS host state: `~/.volc-agent-launchpad/` +- Linux host state: `.local/` +- Custom host location: set `LOCAL_POC_DATA_ROOT` +- Engine-native state: set `LOCAL_POC_STATE_MODE=container-volume` -Run the same `./scripts/start-local-poc.sh` command to continue later. +Run `./scripts/start-local-poc.sh` again to continue. The default `auto` state mode +falls back to the `launchpad-state` volume when a VM-backed host share cannot enforce +the Codex sandbox's per-file access rights. See the +[Local POC guide](docs/LOCAL_POC.md#when-the-host-filesystem-reaches-the-engine-through-a-virtual-machine). -### Select a specific container engine +## Preserved live Agent flow -Force Podman when multiple engines are installed by setting -`CONTAINER_ENGINE=podman` in `.env`, then run: +The Starter Kit acceptance path remains available and uses real Ark capacity: -```bash -./scripts/start-local-poc.sh -``` +1. Create a **Generalist** Agent named `Manual QA Agent`. +2. In its Playground, send: + + ```text + Create a dependency-free hello.js that prints "Hello, Shepherd", add a Node test, run it, and report the exact test result. + ``` + +3. Send the follow-up `Reply with only the exact greeting produced by hello.js.` +4. Confirm `queued -> running -> completed`, the expected file, and continued + conversation context. +5. Stop and restart with the same data root; confirm the Agent, messages, Runs, and + workspace persist. -Colima uses `CONTAINER_ENGINE=docker` because it exposes the Docker CLI. +This flow validates the preserved Agent Playground, not Shepherd's deterministic +Mission. It calls the configured external model and should be run only when that +data transfer and capacity use are authorized. A Track 1 rehearsal should pair this +live Starter Kit continuity check with the deterministic Shepherd Mission and its +human-decision or authority-denial evidence. -For a clean Linux host, follow the -[rootless Podman setup](docs/LOCAL_POC.md#rootless-podman-on-linux). +## Container engine options + +Set `CONTAINER_ENGINE=podman` in `.env` to force Podman. Colima uses +`CONTAINER_ENGINE=docker` because it exposes the Docker CLI. For a clean Linux host, +follow the [rootless Podman setup](docs/LOCAL_POC.md#rootless-podman-on-linux). + +Resource limits are controlled with `CONTAINER_CPU_LIMIT`, +`CONTAINER_MEMORY_LIMIT`, and `CONTAINER_PIDS_LIMIT`. The defaults are 2 CPUs, +2 GiB memory, 256 processes, dropped capabilities, and `no-new-privileges`. ## Docker Compose -Create and edit the configuration: +Create the ignored local configuration: ```bash ./scripts/bootstrap-local.sh @@ -158,22 +276,16 @@ ARK_API_KEY=your-ark-api-key ARK_MODEL=ep-your-endpoint-id ``` -`APP_AUTH_TOKEN` is optional and empty by default, so nothing else is needed to -start. The container profile publishes on `127.0.0.1` by default, so the quickstart -is not reachable from the network and a tokenless start is safe. - -To expose it beyond this machine, set `PUBLIC_BIND_ADDR` (for example `0.0.0.0`) and -set `APP_AUTH_TOKEN` to 24+ random URL-safe characters **in the same change**. The -API performs prompt-triggered command and file execution, so an exposed instance -without a token hands that to anyone who can reach the port. - -Start the application: +The base profile publishes on `127.0.0.1` and permits an empty `APP_AUTH_TOKEN`. +To expose the service beyond the machine, set `PUBLIC_BIND_ADDR=0.0.0.0` and a +24+ character `APP_AUTH_TOKEN` in the same change. This API can trigger model, +command, and file execution; never expose a tokenless instance. ```bash docker compose up --build ``` -Open . Stop it without deleting Agent data: +Open . Stop without deleting Agent data: ```bash docker compose down @@ -191,7 +303,7 @@ npm run dev - Web UI: - API: -Use local paths in `.env` when running outside Docker: +Use host-local paths in `.env` when running outside Docker: ```dotenv APP_DATA_DIR=.data @@ -199,62 +311,95 @@ AGENT_WORKSPACE_ROOT=workspaces CODEX_HOME=codex-home ``` -## Optional cloud deployment +The first Playground turn uses `codex exec`; later turns resume the stored Codex +thread. Deleting an Agent archives its workspace under `workspaces/.deleted/`. -Local Docker, Colima, or Podman is the recommended judging path; see -[the Local POC guide](docs/LOCAL_POC.md). The repository retains optional existing -ECS and Terraform deployment scripts, but cloud deployment does not improve the -Track 1 score by itself. +## Configuration -### Existing Linux ECS +| Variable | Default | Purpose | +| --- | --- | --- | +| `ARK_API_KEY` | Required by local launcher | Ark credential for live Agent and Shepherd execution. | +| `ARK_MODEL` | Required by local launcher | Responses-capable endpoint or model ID. | +| `ARK_BASE_URL` | Beijing v3 endpoint | Ark OpenAI-compatible API URL. | +| `APP_AUTH_TOKEN` | Empty on loopback | Shared demo token; use 24+ random URL-safe characters remotely. | +| `SHEPHERD_EXECUTION_MODE` | `auto` | `deterministic`, `live`, or automatic selection. | +| `SHEPHERD_DEMO_MODE` | `false` | Enables the server-owned deterministic demo fixture. | +| `SHEPHERD_MODEL` | Empty | Optional bounded advisory reviewer; never verifies or promotes. | +| `SHEPHERD_AUTO_RESOLUTION` | `true` | Startup seed for automatic candidate selection. | +| `SHEPHERD_MAX_PARALLEL_PLANES` | `2` | Startup seed for bounded Plane concurrency. | +| `RUNTIME_PROVIDER` | `local-process` | `container` for disposable local Runtime containers. | +| `CODEX_SANDBOX_MODE` | `workspace-write` | Inner Codex sandbox request. | +| `CODEX_TIMEOUT_MS` | `600000` | Maximum duration of one Agent turn. | +| `LOCAL_POC_DATA_ROOT` | Platform-specific | Host metadata, workspace, and session root. | +| `LOCAL_POC_STATE_MODE` | `auto` | Host bind, engine volume, or automatic safe fallback. | + +See [.env.example](.env.example) for verifier, timeout, Runtime image, mirror, +state-volume, and resource-limit options. + +## Validation and evidence + +The default test suites do not call Ark. Dependency, browser, Terraform, and image +setup may still download their pinned artifacts: + +```bash +npm ci +npm run check +npm run test:coverage +npm run test:e2e:install +npm run test:e2e:harness +npm run test:terraform +npm run test:shepherd:live:preflight +npm audit --json +``` -Use a dedicated Ubuntu 22.04/24.04, Debian 12, or veLinux 2 instance with at -least 2 vCPU, 4 GiB RAM, a 40 GiB disk, Docker Engine 24+, and the Compose plugin. -The path was verified on veLinux 2 with Docker Engine 29.6.2 and Compose 5.3.1; -Debian 10 is unsupported. Follow Docker's official repository instructions, -verify the downloaded signing-key fingerprint, log in again after group changes, -and check `docker version`, `docker compose version`, and -`docker run --rm hello-world` before deployment. Do not replace the engine on a -host that contains important workloads. +- `npm run check` runs strict production and test-source typechecks, root script + tests, Server/Web tests, and production builds. +- `npm run test:coverage` enforces at least 80% statements, branches, functions, + and lines for both Server and browser-owned Web source, with every production + source file present. +- `npm run test:e2e:harness` runs the deterministic Chromium matrix configured in + `playwright.config.ts`. +- `npm run test:terraform` validates a disposable Terraform module using local + Terraform or the pinned `hashicorp/terraform:1.9.8` image. +- `npm run test:shepherd:live:preflight` builds and inspects the exact-tree live + Runtime boundary without contacting Ark. -veLinux 2 uses Docker's Debian 12 Bookworm repository. Resolve the supported parent -before following the official Docker key/repository installation steps: +The bounded external Shepherd gate is deliberately separate: ```bash -. /etc/os-release -case "$ID" in - ubuntu|debian) - DOCKER_DISTRO="$ID" - DOCKER_CODENAME="$VERSION_CODENAME" - ;; - velinux) - DOCKER_DISTRO=debian - DOCKER_CODENAME=bookworm - ;; - *) - echo "Use the Docker-supported parent distribution." - exit 1 - ;; -esac +npm run test:shepherd:live ``` -Install `ca-certificates`, `curl`, `gnupg`, `git`, and `openssl`; download the key -from `https://download.docker.com/linux/$DOCKER_DISTRO/gpg`; compare its complete -fingerprint with Docker's official installation guide; place the dearmored key in -`/etc/apt/keyrings/docker.gpg`; and configure the stable repository with -`$DOCKER_CODENAME`. Then install Docker Engine, CLI, containerd, Buildx, and Compose. +It sends repository-derived prompts and scoped source content to the configured Ark +endpoint and consumes real capacity. Run it only with explicit authorization. Never +attach raw prompts, model output, credentials, session identifiers, or private paths +to issues or reports. + +For exact tested commits, environment, counts, coverage, failures, and explicit +evidence gaps, read the [release test report](docs/SHEPHERD_TEST_REPORT.md) and +[historical build log](docs/BUILD_LOG.md). -The existing-ECS script deploys from the current source tree: +## Optional cloud deployment + +Local Docker, Colima, or Podman is the recommended judging path. ECS is optional +and does not increase the Track 1 score by itself. + +### Existing Linux ECS + +Use a dedicated Ubuntu 22.04/24.04, Debian 12, or veLinux 2 instance with at least +2 vCPU, 4 GiB RAM, a 40 GiB disk, Docker Engine 24+, and the Compose plugin. The +existing-ECS script deploys the current source tree: ```bash cp .env.example .env.production openssl rand -hex 32 -# Set PUBLIC_PORT, ARK_API_KEY, ARK_MODEL, and the generated APP_AUTH_TOKEN. +# Set PUBLIC_BIND_ADDR=0.0.0.0, PUBLIC_PORT, ARK_API_KEY, ARK_MODEL, +# and the generated APP_AUTH_TOKEN in .env.production. chmod 600 .env.production ./scripts/deploy-existing-ecs.sh .env.production ``` -Verify the result without printing credentials: +Verify without printing credentials: ```bash read -rsp 'APP_AUTH_TOKEN: ' APP_AUTH_TOKEN; export APP_AUTH_TOKEN; printf '\n' @@ -263,21 +408,17 @@ curl -H "Authorization: Bearer $APP_AUTH_TOKEN" http://127.0.0.1/api/system docker compose --env-file .env.production ps ``` -This profile is meant to be reachable, so set `PUBLIC_BIND_ADDR=0.0.0.0` in -`.env.production` alongside `APP_AUTH_TOKEN`; the deploy script refuses to start -without a valid token. Deploy updates with `git pull --ff-only` and rerun the same -script. Allow inbound HTTP only from the event network, SSH only from administrator addresses, and -outbound HTTPS only where required. Add HTTPS before sending the shared bearer token -over an untrusted network. `docker compose --env-file .env.production down` stops -the service without deleting Agent data. +Allow inbound HTTP only from the event network, SSH only from administrator +addresses, and outbound HTTPS only where required. Add HTTPS before sending the +shared bearer token over an untrusted network. Rerun the same deploy script after +`git pull --ff-only`; `docker compose --env-file .env.production down` stops the +service without deleting Agent data. ### Terraform The Terraform path requires Terraform 1.6+, a Volcengine account with scoped resource-creation permission, an existing ECS SSH key pair, a compatible image and -instance type in the selected region, and a public repository URL. - -The Terraform path provisions VPC, subnet, security group, ECS, and EIP: +instance type, and a public repository URL. ```bash cp .env.example .env.production @@ -291,77 +432,48 @@ export VOLCENGINE_SSH_USER=ubuntu ./scripts/deploy-volcengine.sh ``` -Set Ark values only in `.env.production` and region/zone/image/instance/key/CIDR/ -repository values in `terraform.tfvars`. Provide Volcengine account credentials only -through the current shell; never give account AK/SK values to an Agent Runtime. -Terraform provisions only infrastructure and public repository metadata. The deploy -script waits for `cloud-init status --wait`, copies the ignored `.env.production` -over SSH, installs it as root-owned mode `0600`, and then starts the application. -Runtime credentials therefore do not enter Terraform variables, plans, state, +Put Ark/runtime values only in `.env.production` and infrastructure values in +`terraform.tfvars`. Volcengine account credentials stay in the current shell and +must never be given to an Agent Runtime. The deploy script waits for cloud-init, +copies the ignored environment over SSH as root-owned mode `0600`, and starts the +application; runtime credentials do not enter Terraform variables, plans, state, cloud-init, or instance user data. Use a dedicated test instance. Never commit `.env.production`, Terraform variables or state, Ark keys, SSH keys, or Volcengine account credentials. Protect Terraform state because it still contains infrastructure identifiers and network metadata. `terraform -chdir=deploy/volcengine destroy` removes the ECS instance, system disk, -and Agent workspaces—back up required code and data first. - -## Configuration - -| Variable | Default | Purpose | -| --- | --- | --- | -| `ARK_API_KEY` | Required | Ark model API key. | -| `ARK_MODEL` | Required | Responses-capable endpoint or model ID. | -| `ARK_BASE_URL` | Beijing v3 endpoint | Ark OpenAI-compatible API URL. | -| `APP_AUTH_TOKEN` | Empty | Optional shared demo token. Empty requires no credential; use 24+ random characters remotely. | -| `RUNTIME_PROVIDER` | `local-process` | `container` for disposable local Runtime containers. | -| `CODEX_SANDBOX_MODE` | `workspace-write` | Codex inner sandbox mode. | -| `CODEX_TIMEOUT_MS` | `600000` | Maximum duration of one turn. | -| `LOCAL_POC_DATA_ROOT` | Platform-specific | Local metadata, workspace, and session directory. | - -See [.env.example](.env.example) for all Runtime and resource-limit options. - -## How it works - -```mermaid -flowchart LR - UI["React Web UI"] --> API["Fastify control plane"] - API --> Store["JSON metadata and Agent workspaces"] - API --> Runtime{"Runtime provider"} - Runtime -->|Local POC| Container["Disposable Docker / Colima / Podman container"] - Runtime -->|ECS profile| Codex["Codex CLI in application container"] - Container --> Ark["Volcengine Ark Responses API"] - Codex --> Ark -``` - -The first turn uses `codex exec`; later turns resume the stored Codex thread. -Deleting an Agent archives its workspace under `workspaces/.deleted/`. - -See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for component and extension -boundaries. - -## Validation - -```bash -npm run check -npm run test:coverage -npm run test:terraform -docker compose config -``` - -`npm run test:terraform` uses local Terraform when available and otherwise the -pinned `hashicorp/terraform:1.9.8` image. It formats, initializes, and validates a -disposable copy so generated provider files never dirty the checkout. +and Agent workspaces. + +## Honest limitations and future work + +- The application is a single-user PoC with a shared optional bearer token and a + single-process JSON store; it is not production IAM or tenant isolation. +- The deterministic authentication Mission is the strongest complete judge flow. + General private-chat Contract intake is bounded to explicit, authority-contained + project work; it is not unrestricted natural-language orchestration. +- Project Group lifecycle and routing exist, but remaining action/reply and + end-to-end journey work is tracked under the `GC-*`/`E2E-03` rows. +- Notification preferences are visibly reserved/unavailable; no notification + delivery integration is claimed. +- Arbitrary dependency-wave scheduling, trusted duration estimates, and broader + failure/restart journeys remain tracked PRD work. +- Deterministic local evidence does not substitute for the separately authorized + external Ark gate, independent UI/security review, or timed demo rehearsals. + Consult [TASKS.md](docs/TASKS.md) before making a readiness claim. ## Documentation - [Current task ledger and completion cut](docs/TASKS.md) - [Shepherd product requirements](docs/PRD.md) -- [Shepherd design and trust boundaries](docs/SHEPHERD.md) -- [Architecture](docs/ARCHITECTURE.md) +- [One-page architecture and detailed diagrams](docs/ARCHITECTURE.md) +- [As-built design and trust boundaries](docs/SHEPHERD.md) - [Release test report](docs/SHEPHERD_TEST_REPORT.md) -- [Local POC](docs/LOCAL_POC.md) +- [Local POC and complete manual runbook](docs/LOCAL_POC.md) - [Track 1 TechJam brief](docs/TECHJAM.md) +- [Accepted deviations and environment constraints](docs/DEVIATIONS.md) +- [Reproduced defects and corrections](docs/FIXES.md) +- [Historical build evidence](docs/BUILD_LOG.md) - [Hackathon extension guide](docs/HACKATHON_EXTENSION_GUIDE.md) - [Security policy](SECURITY.md) - [Contributing](CONTRIBUTING.md) From 497f4d63cfd05f61eb57ab6eb2f081301448f6f3 Mon Sep 17 00:00:00 2001 From: sanjey Date: Tue, 1 Sep 2026 00:00:05 +0800 Subject: [PATCH 3/7] docs(51): remove optional token note from README ## Summary Remove the requested optional APP_AUTH_TOKEN paragraph from the quick-start documentation. ## Change - README.md: delete only the unlock-screen and .env note while preserving the remaining configuration guidance. ## Testing - README integrity: 31 local links/images and 8 npm scripts validated - git diff --cached --check --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 16a6dac..ec32de1 100644 --- a/README.md +++ b/README.md @@ -152,10 +152,6 @@ SHEPHERD_EXECUTION_MODE=deterministic SHEPHERD_DEMO_MODE=true ``` -`APP_AUTH_TOKEN` is optional on loopback. If set, it must contain at least 24 -URL-safe characters and the browser will show an unlock screen. Never source, -print, screenshot, or commit `.env`; the launcher parses it as data. - ### 2. Start ```bash From b9caf995db17aa00a4b0cc6d144bd84cf242a7db Mon Sep 17 00:00:00 2001 From: sanjey Date: Tue, 1 Sep 2026 00:02:28 +0800 Subject: [PATCH 4/7] docs(51): remove README limitations section ## Summary Remove the requested Honest limitations and future work section from README.md. ## Change - README.md: delete the section in full while preserving the following documentation index. ## Testing - README integrity: 30 local links/images and 8 npm scripts validated - Both requested text blocks confirmed absent - git diff --cached --check --- README.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/README.md b/README.md index ec32de1..ad3f1fd 100644 --- a/README.md +++ b/README.md @@ -441,23 +441,6 @@ state because it still contains infrastructure identifiers and network metadata. `terraform -chdir=deploy/volcengine destroy` removes the ECS instance, system disk, and Agent workspaces. -## Honest limitations and future work - -- The application is a single-user PoC with a shared optional bearer token and a - single-process JSON store; it is not production IAM or tenant isolation. -- The deterministic authentication Mission is the strongest complete judge flow. - General private-chat Contract intake is bounded to explicit, authority-contained - project work; it is not unrestricted natural-language orchestration. -- Project Group lifecycle and routing exist, but remaining action/reply and - end-to-end journey work is tracked under the `GC-*`/`E2E-03` rows. -- Notification preferences are visibly reserved/unavailable; no notification - delivery integration is claimed. -- Arbitrary dependency-wave scheduling, trusted duration estimates, and broader - failure/restart journeys remain tracked PRD work. -- Deterministic local evidence does not substitute for the separately authorized - external Ark gate, independent UI/security review, or timed demo rehearsals. - Consult [TASKS.md](docs/TASKS.md) before making a readiness claim. - ## Documentation - [Current task ledger and completion cut](docs/TASKS.md) From a3e850029542743f48fb6f4a554bd77b8063f66e Mon Sep 17 00:00:00 2001 From: sanjey Date: Tue, 1 Sep 2026 00:22:05 +0800 Subject: [PATCH 5/7] docs(51): trim repository to hackathon artifacts ## Summary Reduce the repository documentation surface to the approved Hackathon v2 artifacts and retained UI assets. ## Change - `docs/`: keep only `assets/`, `UI.jpeg`, `hackathon-v2-skeleton.xml`, and numbered `hackathon-v2-section-*.xml` files - Root: remove `.impeccable/`, `.github/`, `AGENTS.md`, `CLAUDE.md`, `CONTRIBUTING.md`, and `SECURITY.md` - `README.md`: make the overview and runbook self-contained and link only retained artifacts ## Testing - Exact docs keep set: 13 files - Staged scope: 94 deletions and one modified file - README integrity: 18 local links/images and 8 npm scripts validated - `npm run typecheck` - `npm run build` --- .github/ISSUE_TEMPLATE/config.yml | 2 - .github/ISSUE_TEMPLATE/work-item.yml | 69 - .github/pull_request_template.md | 61 - .github/workflows/pull-request-checks.yml | 38 - .github/workflows/required-checks.yml | 47 - .impeccable/config.json | 14 - AGENTS.md | 83 - CLAUDE.md | 31 - CONTRIBUTING.md | 59 - README.md | 66 +- SECURITY.md | 45 - docs/ARCHITECTURE.md | 592 -- docs/BUILD_LOG.md | 5812 ----------------- docs/DEVIATIONS.md | 59 - docs/FIXES.md | 1279 ---- docs/HACKATHON_EXTENSION_GUIDE.md | 92 - docs/LOCAL_POC.md | 335 - docs/PRD.md | 441 -- docs/SHEPHERD.md | 358 - docs/SHEPHERD_TEST_REPORT.md | 102 - docs/TASKS.md | 320 - docs/TECHJAM.md | 157 - docs/superpowers/plans/2026-08-30-ui-gate.md | 420 -- .../plans/2026-08-31-issue-48-stability.md | 387 -- .../2026-08-31-issue-96-release-readiness.md | 189 - .../specs/2026-08-30-ui-gate-design.md | 200 - docs/ui-review/baseline/1280x800.png | Bin 150636 -> 0 bytes docs/ui-review/baseline/1440x900.png | Bin 167357 -> 0 bytes .../e2e-01/1280x800/01-create-agent.png | Bin 86297 -> 0 bytes .../e2e-01/1280x800/02-empty-agent.png | Bin 80215 -> 0 bytes .../e2e-01/1280x800/03-first-turn-active.png | Bin 74383 -> 0 bytes .../1280x800/03-first-turn-completed.png | Bin 75801 -> 0 bytes .../e2e-01/1280x800/05-follow-up-active.png | Bin 85624 -> 0 bytes .../1280x800/05-follow-up-completed.png | Bin 87448 -> 0 bytes .../e2e-01/1280x800/07-agent-stopped.png | Bin 86147 -> 0 bytes .../e2e-01/1280x800/09-server-restarted.png | Bin 87436 -> 0 bytes .../e2e-01/1440x900/01-create-agent.png | Bin 96157 -> 0 bytes .../e2e-01/1440x900/02-empty-agent.png | Bin 82618 -> 0 bytes .../e2e-01/1440x900/03-first-turn-active.png | Bin 76830 -> 0 bytes .../1440x900/03-first-turn-completed.png | Bin 78275 -> 0 bytes .../e2e-01/1440x900/05-follow-up-active.png | Bin 88092 -> 0 bytes .../1440x900/05-follow-up-completed.png | Bin 89877 -> 0 bytes .../e2e-01/1440x900/07-agent-stopped.png | Bin 88583 -> 0 bytes .../e2e-01/1440x900/09-server-restarted.png | Bin 89868 -> 0 bytes .../e2e-04/1280x800/01-authority-denied.png | Bin 143658 -> 0 bytes .../e2e-04/1280x800/02-denial-evidence.png | Bin 142346 -> 0 bytes .../e2e-04/1440x900/01-authority-denied.png | Bin 159658 -> 0 bytes .../e2e-04/1440x900/02-denial-evidence.png | Bin 162019 -> 0 bytes docs/ui-review/e2e-harness/1280x800.png | Bin 81289 -> 0 bytes docs/ui-review/e2e-harness/1440x900.png | Bin 83269 -> 0 bytes .../perf-01/1280x800/01-collision-visible.png | Bin 153939 -> 0 bytes .../1280x800/02-promotion-completed.png | Bin 152231 -> 0 bytes .../perf-01/1440x900/01-collision-visible.png | Bin 161363 -> 0 bytes .../1440x900/02-promotion-completed.png | Bin 170259 -> 0 bytes docs/ui-review/st-02-settings/1280x800.png | Bin 76289 -> 0 bytes docs/ui-review/st-02-settings/1440x900.png | Bin 78499 -> 0 bytes .../ui-review/ui-03-create-agent/1280x800.png | Bin 90813 -> 0 bytes .../ui-review/ui-03-create-agent/1440x900.png | Bin 98429 -> 0 bytes .../ui-gate/1280x800/01-auth-loading.png | Bin 23502 -> 0 bytes .../ui-gate/1280x800/02-auth-error.png | Bin 34449 -> 0 bytes .../ui-gate/1280x800/03-agents-empty.png | Bin 64595 -> 0 bytes .../1280x800/04-agent-create-disabled.png | Bin 97700 -> 0 bytes .../1280x800/05-agent-long-content.png | Bin 96392 -> 0 bytes .../ui-gate/1280x800/06-settings-disabled.png | Bin 80025 -> 0 bytes .../ui-gate/1280x800/07-not-found.png | Bin 50375 -> 0 bytes .../ui-gate/1280x800/08-shepherd-loading.png | Bin 46302 -> 0 bytes .../ui-gate/1280x800/09-shepherd-empty.png | Bin 95349 -> 0 bytes .../1280x800/10-shepherd-reconnecting.png | Bin 98682 -> 0 bytes .../ui-gate/1280x800/11-shepherd-active.png | Bin 158027 -> 0 bytes .../ui-gate/1280x800/12-shepherd-filtered.png | Bin 154329 -> 0 bytes .../ui-gate/1280x800/13-plane-drawer.png | Bin 179762 -> 0 bytes .../1280x800/14-group-uninitialized.png | Bin 76648 -> 0 bytes .../ui-gate/1280x800/15-group-loading.png | Bin 65480 -> 0 bytes .../ui-gate/1280x800/16-group-empty.png | Bin 70932 -> 0 bytes .../1280x800/17-group-reconnecting.png | Bin 74349 -> 0 bytes .../ui-gate/1280x800/18-group-message.png | Bin 96960 -> 0 bytes .../ui-gate/1440x900/01-auth-loading.png | Bin 24908 -> 0 bytes .../ui-gate/1440x900/02-auth-error.png | Bin 35812 -> 0 bytes .../ui-gate/1440x900/03-agents-empty.png | Bin 66279 -> 0 bytes .../1440x900/04-agent-create-disabled.png | Bin 105031 -> 0 bytes .../1440x900/05-agent-long-content.png | Bin 96364 -> 0 bytes .../ui-gate/1440x900/06-settings-disabled.png | Bin 81927 -> 0 bytes .../ui-gate/1440x900/07-not-found.png | Bin 52143 -> 0 bytes .../ui-gate/1440x900/08-shepherd-loading.png | Bin 47643 -> 0 bytes .../ui-gate/1440x900/09-shepherd-empty.png | Bin 97601 -> 0 bytes .../1440x900/10-shepherd-reconnecting.png | Bin 100721 -> 0 bytes .../ui-gate/1440x900/11-shepherd-active.png | Bin 175041 -> 0 bytes .../ui-gate/1440x900/12-shepherd-filtered.png | Bin 177874 -> 0 bytes .../ui-gate/1440x900/13-plane-drawer.png | Bin 196999 -> 0 bytes .../1440x900/14-group-uninitialized.png | Bin 78273 -> 0 bytes .../ui-gate/1440x900/15-group-loading.png | Bin 67213 -> 0 bytes .../ui-gate/1440x900/16-group-empty.png | Bin 73006 -> 0 bytes .../1440x900/17-group-reconnecting.png | Bin 76469 -> 0 bytes .../ui-gate/1440x900/18-group-message.png | Bin 107882 -> 0 bytes docs/ui-review/ui-gate/AUDIT.md | 117 - 95 files changed, 28 insertions(+), 11347 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/work-item.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/pull-request-checks.yml delete mode 100644 .github/workflows/required-checks.yml delete mode 100644 .impeccable/config.json delete mode 100644 AGENTS.md delete mode 100644 CLAUDE.md delete mode 100644 CONTRIBUTING.md delete mode 100644 SECURITY.md delete mode 100644 docs/ARCHITECTURE.md delete mode 100644 docs/BUILD_LOG.md delete mode 100644 docs/DEVIATIONS.md delete mode 100644 docs/FIXES.md delete mode 100644 docs/HACKATHON_EXTENSION_GUIDE.md delete mode 100644 docs/LOCAL_POC.md delete mode 100644 docs/PRD.md delete mode 100644 docs/SHEPHERD.md delete mode 100644 docs/SHEPHERD_TEST_REPORT.md delete mode 100644 docs/TASKS.md delete mode 100644 docs/TECHJAM.md delete mode 100644 docs/superpowers/plans/2026-08-30-ui-gate.md delete mode 100644 docs/superpowers/plans/2026-08-31-issue-48-stability.md delete mode 100644 docs/superpowers/plans/2026-08-31-issue-96-release-readiness.md delete mode 100644 docs/superpowers/specs/2026-08-30-ui-gate-design.md delete mode 100644 docs/ui-review/baseline/1280x800.png delete mode 100644 docs/ui-review/baseline/1440x900.png delete mode 100644 docs/ui-review/e2e-01/1280x800/01-create-agent.png delete mode 100644 docs/ui-review/e2e-01/1280x800/02-empty-agent.png delete mode 100644 docs/ui-review/e2e-01/1280x800/03-first-turn-active.png delete mode 100644 docs/ui-review/e2e-01/1280x800/03-first-turn-completed.png delete mode 100644 docs/ui-review/e2e-01/1280x800/05-follow-up-active.png delete mode 100644 docs/ui-review/e2e-01/1280x800/05-follow-up-completed.png delete mode 100644 docs/ui-review/e2e-01/1280x800/07-agent-stopped.png delete mode 100644 docs/ui-review/e2e-01/1280x800/09-server-restarted.png delete mode 100644 docs/ui-review/e2e-01/1440x900/01-create-agent.png delete mode 100644 docs/ui-review/e2e-01/1440x900/02-empty-agent.png delete mode 100644 docs/ui-review/e2e-01/1440x900/03-first-turn-active.png delete mode 100644 docs/ui-review/e2e-01/1440x900/03-first-turn-completed.png delete mode 100644 docs/ui-review/e2e-01/1440x900/05-follow-up-active.png delete mode 100644 docs/ui-review/e2e-01/1440x900/05-follow-up-completed.png delete mode 100644 docs/ui-review/e2e-01/1440x900/07-agent-stopped.png delete mode 100644 docs/ui-review/e2e-01/1440x900/09-server-restarted.png delete mode 100644 docs/ui-review/e2e-04/1280x800/01-authority-denied.png delete mode 100644 docs/ui-review/e2e-04/1280x800/02-denial-evidence.png delete mode 100644 docs/ui-review/e2e-04/1440x900/01-authority-denied.png delete mode 100644 docs/ui-review/e2e-04/1440x900/02-denial-evidence.png delete mode 100644 docs/ui-review/e2e-harness/1280x800.png delete mode 100644 docs/ui-review/e2e-harness/1440x900.png delete mode 100644 docs/ui-review/perf-01/1280x800/01-collision-visible.png delete mode 100644 docs/ui-review/perf-01/1280x800/02-promotion-completed.png delete mode 100644 docs/ui-review/perf-01/1440x900/01-collision-visible.png delete mode 100644 docs/ui-review/perf-01/1440x900/02-promotion-completed.png delete mode 100644 docs/ui-review/st-02-settings/1280x800.png delete mode 100644 docs/ui-review/st-02-settings/1440x900.png delete mode 100644 docs/ui-review/ui-03-create-agent/1280x800.png delete mode 100644 docs/ui-review/ui-03-create-agent/1440x900.png delete mode 100644 docs/ui-review/ui-gate/1280x800/01-auth-loading.png delete mode 100644 docs/ui-review/ui-gate/1280x800/02-auth-error.png delete mode 100644 docs/ui-review/ui-gate/1280x800/03-agents-empty.png delete mode 100644 docs/ui-review/ui-gate/1280x800/04-agent-create-disabled.png delete mode 100644 docs/ui-review/ui-gate/1280x800/05-agent-long-content.png delete mode 100644 docs/ui-review/ui-gate/1280x800/06-settings-disabled.png delete mode 100644 docs/ui-review/ui-gate/1280x800/07-not-found.png delete mode 100644 docs/ui-review/ui-gate/1280x800/08-shepherd-loading.png delete mode 100644 docs/ui-review/ui-gate/1280x800/09-shepherd-empty.png delete mode 100644 docs/ui-review/ui-gate/1280x800/10-shepherd-reconnecting.png delete mode 100644 docs/ui-review/ui-gate/1280x800/11-shepherd-active.png delete mode 100644 docs/ui-review/ui-gate/1280x800/12-shepherd-filtered.png delete mode 100644 docs/ui-review/ui-gate/1280x800/13-plane-drawer.png delete mode 100644 docs/ui-review/ui-gate/1280x800/14-group-uninitialized.png delete mode 100644 docs/ui-review/ui-gate/1280x800/15-group-loading.png delete mode 100644 docs/ui-review/ui-gate/1280x800/16-group-empty.png delete mode 100644 docs/ui-review/ui-gate/1280x800/17-group-reconnecting.png delete mode 100644 docs/ui-review/ui-gate/1280x800/18-group-message.png delete mode 100644 docs/ui-review/ui-gate/1440x900/01-auth-loading.png delete mode 100644 docs/ui-review/ui-gate/1440x900/02-auth-error.png delete mode 100644 docs/ui-review/ui-gate/1440x900/03-agents-empty.png delete mode 100644 docs/ui-review/ui-gate/1440x900/04-agent-create-disabled.png delete mode 100644 docs/ui-review/ui-gate/1440x900/05-agent-long-content.png delete mode 100644 docs/ui-review/ui-gate/1440x900/06-settings-disabled.png delete mode 100644 docs/ui-review/ui-gate/1440x900/07-not-found.png delete mode 100644 docs/ui-review/ui-gate/1440x900/08-shepherd-loading.png delete mode 100644 docs/ui-review/ui-gate/1440x900/09-shepherd-empty.png delete mode 100644 docs/ui-review/ui-gate/1440x900/10-shepherd-reconnecting.png delete mode 100644 docs/ui-review/ui-gate/1440x900/11-shepherd-active.png delete mode 100644 docs/ui-review/ui-gate/1440x900/12-shepherd-filtered.png delete mode 100644 docs/ui-review/ui-gate/1440x900/13-plane-drawer.png delete mode 100644 docs/ui-review/ui-gate/1440x900/14-group-uninitialized.png delete mode 100644 docs/ui-review/ui-gate/1440x900/15-group-loading.png delete mode 100644 docs/ui-review/ui-gate/1440x900/16-group-empty.png delete mode 100644 docs/ui-review/ui-gate/1440x900/17-group-reconnecting.png delete mode 100644 docs/ui-review/ui-gate/1440x900/18-group-message.png delete mode 100644 docs/ui-review/ui-gate/AUDIT.md diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 8005e32..0000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,2 +0,0 @@ -blank_issues_enabled: false -contact_links: [] diff --git a/.github/ISSUE_TEMPLATE/work-item.yml b/.github/ISSUE_TEMPLATE/work-item.yml deleted file mode 100644 index 9cc719e..0000000 --- a/.github/ISSUE_TEMPLATE/work-item.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Shepherd work item -description: Claim one HANDOVER task, defect, assurance check, or PRD requirement. -title: "[TASK-ID] " -body: - - type: markdown - attributes: - value: | - Read `docs/HANDOVER.md` before claiming work. One issue is owned by one agent at a time. Open a linked draft PR immediately after assignment. - - type: input - id: task-id - attributes: - label: HANDOVER task ID - description: Use the stable ID from docs/HANDOVER.md. Do not invent a duplicate ID. - placeholder: GC-01 - validations: - required: true - - type: input - id: prd-reference - attributes: - label: PRD reference - description: Cite every affected docs/PRD.md section or state that this is an operational task. - placeholder: PRD 4.1 Goal 12; 8.1; 11.5; 11.6 journey 3 - validations: - required: true - - type: textarea - id: observed - attributes: - label: Current behavior and evidence - description: Include the assessed commit, reproduction, and existing test or handover evidence. - validations: - required: true - - type: textarea - id: expected - attributes: - label: Expected behavior and acceptance criteria - description: State observable outcomes, negative cases, and the evidence required before completion. - validations: - required: true - - type: textarea - id: scope - attributes: - label: Owned scope - description: List expected files/modules and explicitly excluded adjacent work. - validations: - required: true - - type: textarea - id: dependencies - attributes: - label: Dependencies and stack position - description: List blockers, parent issue/PR/branch, dependants, or "independent from main". - validations: - required: true - - type: textarea - id: verification - attributes: - label: Verification plan - description: List targeted, adjacent, full, browser, live, security, and post-merge checks. Mark non-applicable checks explicitly. - validations: - required: true - - type: checkboxes - id: gates - attributes: - label: Required gates - options: - - label: The change will be the smallest coherent fix and will preserve existing behavior outside this issue. - required: true - - label: Material UI work will preserve `docs/UI.jpeg` and the existing visual language, and will be browser-verified at 1280x800 and 1440x900. - - label: Material security/trust-boundary work will receive independent security review. - - label: Live model/API calls will be opt-in, sparse, bounded, and never print credentials. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 5093686..0000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,61 +0,0 @@ -## Work item - -- HANDOVER ID: -- Linked issue: -- PRD reference(s): -- Head branch: -- Base branch / stack parent: -- Depends on: -- Blocks: -- Owned files/modules: - -Mid-stack PRs must be manually linked to their issue. Do not rely on a closing keyword until the PR targets `main`. - -## Outcome and minimal scope - -Describe the user-visible or trusted-boundary outcome and why this is the smallest coherent change. List intentionally excluded adjacent work. - -## Acceptance evidence - -Record exact commands and observed outcomes. Do not write "should pass" or copy evidence from another commit. - -```text -command -observed result -``` - -- [ ] Targeted regression tests passed. -- [ ] Adjacent tests passed. -- [ ] `npm run check` passed, or the exact justified subset is recorded. -- [ ] Negative/failure cases required by the issue passed. -- [ ] Documentation and `docs/BUILD_LOG.md` were updated when behavior/evidence changed. -- [ ] No secrets, local state, generated workspaces, or unbounded outputs are included. - -## UI evidence, when applicable - -- [ ] Real browser interaction was completed. -- [ ] 1280x800 and 1440x900 screenshots were reviewed against `docs/UI.jpeg` and PRD 11.7. -- [ ] Loading, empty, error, disabled, reconnecting, overflow, keyboard, and focus states were checked as applicable. -- [ ] Independent UI review completed; material findings are resolved or explicitly blocking. - -## Security and integration evidence, when applicable - -- [ ] Authority, redaction, path, persistence, cancellation, public API, file handling, or model-controlled actions received independent security review. -- [ ] Deterministic tests prove safe behavior without external services. -- [ ] Any live model/API smoke was opt-in, bounded, and recorded without credentials. - -## Scoped verdict - -- Confidence (0-100): -- Why this score is justified: -- Remaining uncertainty: -- Review required because confidence is below 100: yes / no -- Ready-for-review SHA: - -`100` means only that every defined acceptance criterion, required test, independent review, and pre-merge gate passed for this PR's scope. It never means that unknown defects are impossible. - -## Post-merge verification - -- [ ] Required checks passed in the merge queue or against the final merge group. -- [ ] The relevant smoke/flow passed on updated `main`. -- [ ] The issue and HANDOVER ledger were updated from evidence at the merged SHA. diff --git a/.github/workflows/pull-request-checks.yml b/.github/workflows/pull-request-checks.yml deleted file mode 100644 index eb2abde..0000000 --- a/.github/workflows/pull-request-checks.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Pull request checks - -on: - pull_request: - branches: [main] - merge_group: - types: [checks_requested] - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - required: - name: Required checks - runs-on: ubuntu-latest - timeout-minutes: 30 - - steps: - - name: Check out repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - - name: Use Node.js 22 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - with: - node-version: 22 - package-manager-cache: false - - - name: Install dependencies - run: npm ci - - - name: Run repository checks - run: npm run check diff --git a/.github/workflows/required-checks.yml b/.github/workflows/required-checks.yml deleted file mode 100644 index 55d11fa..0000000 --- a/.github/workflows/required-checks.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Required checks - -on: - pull_request: - push: - branches: - - main - merge_group: - types: - - checks_requested - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - check: - name: Node 22 / npm run check - runs-on: ubuntu-latest - timeout-minutes: 20 - env: - CI: true - SHEPHERD_LIVE_TEST: "false" - steps: - - name: Check out repository - uses: actions/checkout@v6 - with: - persist-credentials: false - - - name: Use Node.js 22 - uses: actions/setup-node@v7 - with: - node-version: 22 - cache: npm - cache-dependency-path: package-lock.json - - - name: Verify Docker runtime - run: docker version - - - name: Install locked dependencies - run: npm ci - - - name: Run repository gate - run: npm run check diff --git a/.impeccable/config.json b/.impeccable/config.json deleted file mode 100644 index c037945..0000000 --- a/.impeccable/config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "detector": { - "ignoreRules": [], - "ignoreFiles": [], - "ignoreValues": [ - { - "rule": "overused-font", - "value": "inter", - "createdAt": "2026-08-31T12:14:04.965Z", - "reason": "Project AGENTS/TASKS UI freeze: accepted typography must be preserved; issue #96 permits functional and accessibility fixes, not redesign" - } - ] - } -} diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 6227d4c..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,83 +0,0 @@ -# Shepherd Agent Instructions - -## Entry point and codebase navigation - -`docs/HANDOVER.md` was intentionally removed. Do not recreate or reference it. - -Read in this order before editing: - -1. [`docs/TASKS.md`](docs/TASKS.md) — current hackathon cut, remaining work, - dependencies, acceptance gates, and evidence status. -2. The GitHub issue for the selected TASKS ID — current owner and branch/PR status. -3. The linked sections of [`docs/PRD.md`](docs/PRD.md) — required behavior. -4. [`docs/SHEPHERD.md`](docs/SHEPHERD.md) — as-built architecture, trust - boundaries, implemented features, limitations, and rubric snapshot. -5. [`docs/LOCAL_POC.md`](docs/LOCAL_POC.md) — startup and manual demo runbook. -6. [`docs/TECHJAM.md`](docs/TECHJAM.md) — Track 1 rules and judging rubric. -7. [`docs/FIXES.md`](docs/FIXES.md) and [`docs/BUILD_LOG.md`](docs/BUILD_LOG.md) - when diagnosing a defect or updating verified evidence. - -Primary code areas are indexed in `docs/TASKS.md` under **Requirement and code -navigation**. The PRD defines required behavior; TASKS records the current state. - -## Claim work before editing - -1. Fetch and prune remote refs. Inspect the issue, open PRs, remote branches, and - worktrees; choose different work if an active owner already exists. -2. **Claim the GitHub issue immediately.** Assign it to yourself when permitted and - leave a visible ownership comment naming the intended branch and primary files. - Do not wait until implementation is complete. -3. Branch from current `origin/main`, or from the explicitly documented parent for - a true dependency stack. Use `feat/`, `fix/`, `test/`, `audit/`, `refactor/`, or - `docs/` plus the issue/TASKS ID. -4. **Push the new branch to `origin` before implementation edits.** This is the - second ownership signal other agents must check. -5. Open a linked draft PR after the first comparable commit. State the issue/TASKS - ID, PRD references, owned files, exclusions, base/parent, acceptance criteria, - and test plan. Keep the issue and PR current. - -Never push directly to protected `main`. Keep each branch narrow. Agents do not -merge their own PRs; the integrator reviews overlap, combined gates, stack order, -and protected-branch integration. - -## Concurrent-agent isolation - -- Use one GitHub issue, branch, and isolated Git worktree per implementation owner. -- Work only in the assigned worktree. Do not check out, commit to, rebase, merge, - reset, delete, or force-push another agent's branch or worktree. -- Parallel branches normally target current `main`. Create a stack only for a real - code dependency documented in both issues/PRs with an explicit merge order. -- Record primary owned files/modules and excluded adjacent work before editing. - Shared central modules have one active owner at a time. Stop and coordinate if an - unexpected required edit overlaps active ownership. - -## UI freeze and minimal-change contract - -- **The accepted UI design is frozen.** Do not redesign, restyle, re-theme, change - layout, or perform visual cleanup. Functionalities, backend features, tests, - reviews, evidence, and documentation are the active work. -- Touch UI code only when indispensable to expose required functional data, restore - broken interaction, accessibility, or truthful state. Reuse existing components, - spacing, typography, colors, and interaction patterns from `docs/UI.jpeg`. -- A minimal fix means the smallest coherent change that fully preserves intended - behavior. It must not remove, disable, hide, stub, weaken, or narrow existing or - required functionality merely to reduce the diff or make tests pass. -- Any unavoidable material UI correction requires browser verification at - `1280x800` and `1440x900`, no document-level X/Y overflow, and read-only UI review. - -## Change and evidence rules - -- Preserve security boundaries, public contracts, deterministic behavior, baseline - Agent CRUD/lifecycle/Playground behavior, and existing test assertions. -- Avoid unrelated refactors, formatting, renames, dependency churn, sleeps, retry - inflation, suppression, or weakened assertions. -- Add causal regression coverage. Run targeted/adjacent checks and `npm run check`; - run browser, live, security, stability, or post-merge gates when the issue requires - them. -- Report only checks actually observed. Update `docs/BUILD_LOG.md` and the relevant - `docs/TASKS.md` evidence when behavior or status changes. -- Never print or commit `.env`, credentials, private paths, raw model prompts or - output, session identifiers, or unbounded logs. Default tests remain network- and - model-free. -- After integration, the integrator verifies the scoped flow on updated `main`, - updates the issue/ledger, and deletes only the merged feature branch when safe. diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 2f660e2..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,31 +0,0 @@ -# Claude Code Instructions - -Follow [`AGENTS.md`](AGENTS.md); it is authoritative for ownership, branches, -verification, UI freeze, and minimal-change requirements. - -`docs/HANDOVER.md` was removed. Navigate the repository in this order: - -1. [`docs/TASKS.md`](docs/TASKS.md) for the hackathon cut and work queue. -2. The selected GitHub issue and its linked [`docs/PRD.md`](docs/PRD.md) sections. -3. [`docs/SHEPHERD.md`](docs/SHEPHERD.md) for architecture and current capabilities. -4. [`docs/LOCAL_POC.md`](docs/LOCAL_POC.md) for startup and demo verification. -5. [`docs/TECHJAM.md`](docs/TECHJAM.md) for Track 1 judging requirements. -6. [`docs/FIXES.md`](docs/FIXES.md) and [`docs/BUILD_LOG.md`](docs/BUILD_LOG.md) - for defects and observed evidence. - -Before editing, fetch/prune and inspect issues, PRs, remote branches, and worktrees. -**Claim one issue immediately** by assigning yourself when permitted and posting an -ownership comment with branch and primary files. Create a narrow branch from current -`origin/main` (or its explicitly documented stack parent), then **push it to origin -before implementation edits**. Open a linked draft PR after the first comparable -commit. Never push directly to or self-merge protected `main`. - -The UI design is frozen. Work on functionality, backend features, tests, reviews, -evidence, and documentation. Touch UI code only when required for truthful data, -broken interaction, or accessibility, and preserve the existing theme and layout. -“Minimal fix” means the smallest complete correction; it never permits removing, -hiding, disabling, stubbing, weakening, or narrowing intended functionality. - -Add causal tests, run applicable repository gates including `npm run check`, and do -not claim unobserved results. Never expose secrets, raw prompts, private paths, or -unbounded logs. Update TASKS/build evidence only from observed results. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 20e1df7..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,59 +0,0 @@ -# Contributing - -Start with [docs/TASKS.md](docs/TASKS.md). It is the current implementation, -defect, test-gap, ownership, and verification entry point. `docs/PRD.md` remains -the product-requirement authority; historical build logs are evidence, not the -live task board. Use [docs/LOCAL_POC.md](docs/LOCAL_POC.md) for the runbook. - -Keep changes focused, reproducible, and suitable for a hackathon delivery. - -## Setup - -```bash -npm install -cp .env.example .env -npm run dev -``` - -For container-based Agent execution, follow -[docs/LOCAL_POC.md](docs/LOCAL_POC.md). - -## Validate - -```bash -npm run check -terraform fmt -check -recursive deploy/volcengine -docker compose config -``` - -## Pull requests - -- Claim one TASKS item through a GitHub issue **immediately**: assign yourself when - permitted and comment with the intended branch and primary owned files. If that - issue already has an active owner, branch, or draft PR, choose another task. -- Create a branch from current `origin/main`, push it immediately, and open a - linked draft PR. Dependent work targets the branch below it in a short true stack. -- Keep one concern per PR and include its tests in the same PR. Do not create a - separate "tests later" layer for behavior introduced by the PR. -- Explain the behavior, root cause where applicable, acceptance criteria, - dependency/stack position, and reason for the change. -- Add causal tests for API, lifecycle, persistence, Runtime, or UI changes. -- Record exact commands and observed results; planned results are not evidence. -- Every PR requires independent review. A confidence below 100 remains marked - for review; scoped 100 still requires the normal reviewer gate. -- Material trust-boundary/security changes require independent security review. -- The accepted UI is frozen. Do not redesign or restyle it. Touch UI only when a - required functional state, broken interaction, or accessibility defect cannot be - fixed elsewhere; preserve the existing system and run both viewport/UI gates. -- A minimal correction must still preserve the complete intended functionality. Do - not remove, hide, disable, stub, or weaken behavior merely to reduce the diff. -- Merge only through reviewed PRs into protected `main` after relevant checks pass, - then let the integrator run the scoped post-merge smoke there. -- Update English documentation and `.env.example` when configuration changes. -- Use GitHub Flavored Markdown and relative repository links. -- Never commit credentials, local state, workspaces, build output, or Terraform - state. -- Report security issues according to [SECURITY.md](SECURITY.md). - -The repository PR template is the evidence checklist. See the workflow and -completion rules in [docs/TASKS.md](docs/TASKS.md#working-contract). diff --git a/README.md b/README.md index ad3f1fd..952c635 100644 --- a/README.md +++ b/README.md @@ -8,17 +8,16 @@ clean Git merge cannot see, executes competing resolutions in isolated Git world and promotes only an independently verified result. > [!IMPORTANT] -> The [product requirements](docs/PRD.md) define the required behavior. Use the -> [task ledger](docs/TASKS.md) for current implementation status and remaining -> work, the [release test report](docs/SHEPHERD_TEST_REPORT.md) for exact observed -> evidence, and the [Local POC guide](docs/LOCAL_POC.md) for the full runbook. +> This README is the self-contained product overview, operating guide, and +> validation entry point. The retained Hackathon v2 source sections are linked +> under [Hackathon artifacts](#hackathon-artifacts). > [!WARNING] > This is a single-user proof of concept, not a production identity or multi-tenant > isolation system. Shepherd enforces scoped authority around its managed projects, > but the shared bearer token is not user identity, the JSON store is single-process, > and ordinary containers are not a hardened tenant boundary. Do not use production -> data or credentials. See [SECURITY.md](SECURITY.md). +> data or credentials. ## The problem @@ -55,19 +54,14 @@ when automatic resolution cannot choose uniquely. ## Product tour -### Verified promotion +### Shepherd Mission Control The Contract stream, execution timeline, semantic collision, competing Resolution Planes, retained loser, and promoted winner all come from persisted server state. - -![Shepherd Mission Control showing a completed Mission, resolved auth.transport collision, and selected verified future](docs/ui-review/perf-01/1440x900/02-promotion-completed.png) - -### Fail-closed authority - Changes outside an Execution Contract's writable scope are rejected with durable evidence, and protected promotion never starts. -![Shepherd Mission Control showing an authority-denied Mission with retained Contract evidence](docs/ui-review/e2e-04/1440x900/02-denial-evidence.png) +![Shepherd interface reference covering Mission Control, Agents, Project Groups, and Settings](docs/UI.jpeg) ### Preserved Agent Launchpad @@ -114,9 +108,6 @@ export and its own Codex session directory. It does not receive the protected Gi repository or verifier credentials. The deterministic mode exercises the same kernel without an external model request. -See the validated [one-page architecture and detailed trust-boundary diagrams](docs/ARCHITECTURE.md) -and the [as-built Shepherd design](docs/SHEPHERD.md). - ## Quickstart: deterministic judge flow The recommended judging path runs locally with Docker, Colima, or rootless Podman. @@ -206,7 +197,7 @@ create two resolution futures after integration. promotion gate. Restore **Automatic resolution** afterward. This is the recommended recovery/decision story for a manual demo. The automated -authority-denial journey shown above is covered separately by the browser suite. +authority-denial journey is covered separately by the browser suite. ### 5. Stop and resume @@ -221,8 +212,7 @@ Codex sessions, and Shepherd evidence. Run `./scripts/start-local-poc.sh` again to continue. The default `auto` state mode falls back to the `launchpad-state` volume when a VM-backed host share cannot enforce -the Codex sandbox's per-file access rights. See the -[Local POC guide](docs/LOCAL_POC.md#when-the-host-filesystem-reaches-the-engine-through-a-virtual-machine). +the Codex sandbox's per-file access rights. ## Preserved live Agent flow @@ -250,8 +240,8 @@ human-decision or authority-denial evidence. ## Container engine options Set `CONTAINER_ENGINE=podman` in `.env` to force Podman. Colima uses -`CONTAINER_ENGINE=docker` because it exposes the Docker CLI. For a clean Linux host, -follow the [rootless Podman setup](docs/LOCAL_POC.md#rootless-podman-on-linux). +`CONTAINER_ENGINE=docker` because it exposes the Docker CLI. On a clean Linux host, +use a rootless Podman service and ensure its user socket is available to the launcher. Resource limits are controlled with `CONTAINER_CPU_LIMIT`, `CONTAINER_MEMORY_LIMIT`, and `CONTAINER_PIDS_LIMIT`. The defaults are 2 CPUs, @@ -371,9 +361,9 @@ endpoint and consumes real capacity. Run it only with explicit authorization. Ne attach raw prompts, model output, credentials, session identifiers, or private paths to issues or reports. -For exact tested commits, environment, counts, coverage, failures, and explicit -evidence gaps, read the [release test report](docs/SHEPHERD_TEST_REPORT.md) and -[historical build log](docs/BUILD_LOG.md). +When publishing results, record the exact tested commit, environment, pass counts, +coverage, failures, and any evidence gaps. Do not present an earlier run as evidence +for a newer tree. ## Optional cloud deployment @@ -441,21 +431,21 @@ state because it still contains infrastructure identifiers and network metadata. `terraform -chdir=deploy/volcengine destroy` removes the ECS instance, system disk, and Agent workspaces. -## Documentation - -- [Current task ledger and completion cut](docs/TASKS.md) -- [Shepherd product requirements](docs/PRD.md) -- [One-page architecture and detailed diagrams](docs/ARCHITECTURE.md) -- [As-built design and trust boundaries](docs/SHEPHERD.md) -- [Release test report](docs/SHEPHERD_TEST_REPORT.md) -- [Local POC and complete manual runbook](docs/LOCAL_POC.md) -- [Track 1 TechJam brief](docs/TECHJAM.md) -- [Accepted deviations and environment constraints](docs/DEVIATIONS.md) -- [Reproduced defects and corrections](docs/FIXES.md) -- [Historical build evidence](docs/BUILD_LOG.md) -- [Hackathon extension guide](docs/HACKATHON_EXTENSION_GUIDE.md) -- [Security policy](SECURITY.md) -- [Contributing](CONTRIBUTING.md) +## Hackathon artifacts + +- [Interface reference](docs/UI.jpeg) +- [Agent Playground screenshot](docs/assets/playground.jpg) +- [Create Agent screenshot](docs/assets/create-agent.jpg) +- [Hackathon v2 skeleton](docs/hackathon-v2-skeleton.xml) +- [Section 1](docs/hackathon-v2-section-1.xml) +- [Section 2](docs/hackathon-v2-section-2.xml) +- [Section 3](docs/hackathon-v2-section-3.xml) +- [Section 4](docs/hackathon-v2-section-4.xml) +- [Section 5](docs/hackathon-v2-section-5.xml) +- [Section 6](docs/hackathon-v2-section-6.xml) +- [Section 7](docs/hackathon-v2-section-7.xml) +- [Section 8](docs/hackathon-v2-section-8.xml) +- [Section 9](docs/hackathon-v2-section-9.xml) ## License diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 88e196a..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,45 +0,0 @@ -# Security policy - -Volc Agent Launchpad is a hackathon proof of concept. Only the latest revision -on the default branch is supported. - -Shepherd adds stricter authority, Git Plane, verifier, redaction, and promotion -boundaries for its managed demo project. These do not turn the broader Starter -Kit into a production identity or tenant-isolation system. Current security -evidence and pending review are tracked in [docs/TASKS.md](docs/TASKS.md), with -material interpretations in [docs/DEVIATIONS.md](docs/DEVIATIONS.md). - -## Report a vulnerability - -Send the repository owner or event organizer the affected revision, -reproduction steps, impact, and suggested mitigation. Do not publish -credentials, personal data, or exploit details in an issue. - -## Known limitations - -- Shared demo token; no user identity, authorization, RBAC, or tenant isolation -- No CSRF protection -- No per-Agent container boundary in ECS mode -- Ordinary local containers, not hardened multi-tenant sandboxes -- Broad outbound network access -- Prompt-triggered command and file execution -- Control plane holds the container engine socket in `container-volume` mode, which is equivalent to control of the engine; see `docs/DEVIATIONS.md` -- Ark key available to the server and active Runtime container -- Ark key stored in Terraform POC state - -## Safe use - -- Use a dedicated development machine or disposable ECS instance. -- Use a scoped, revocable Ark key. -- `APP_AUTH_TOKEN` is optional and empty by default, so a server started without - one serves every API route to anyone who can reach the port. That is acceptable - on loopback. Set a unique token before exposing the server beyond the local - machine, including any ECS deployment. -- Keep local use on loopback and restrict ECS Web and SSH CIDRs. -- Add HTTPS before sending a shared token over an untrusted network. -- Never mount production data or provide Volcengine account AK/SK to Agents. -- Stop the POC, destroy test resources, and revoke keys after the event. - -Codex uses `workspace-write` when Landlock is available. On unsupported kernels, -startup warns and relies on the outer Docker or rootless Podman boundary. This -fallback is not tenant isolation. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md deleted file mode 100644 index ddb7b24..0000000 --- a/docs/ARCHITECTURE.md +++ /dev/null @@ -1,592 +0,0 @@ -# Agent Middleware Architecture - -This document describes the as-built architecture on protected `main` at -`c0802e8`. It covers both the original Agent Launchpad path and the Shepherd -multi-Agent middleware layered beside it. The implementation is authoritative; -[`PRD.md`](PRD.md) defines the intended product, [`SHEPHERD.md`](SHEPHERD.md) -records the as-built trust model, and [`TASKS.md`](TASKS.md) records current -completion and evidence status. - -Shepherd is a single-node transactional control plane for coding Agents. It turns -an assignment into a durable Execution Contract, runs the Agent against an isolated -Git-backed Plane, independently verifies the resulting commit, detects incompatible -semantic claims, executes competing resolutions from the same integration commit, -and advances the protected branch only through an evidence-gated compare-and-swap. - -> **Contract → isolated execution → trusted import → authority validation → -> independent verification → semantic collision → speculative resolution → -> deterministic selection → final re-verification → protected promotion** - -## Full end-to-end architecture - -Solid edges are control/data flow. Dashed edges are polling, advisory analysis, or -recovery. Red nodes contain untrusted input or execution, green nodes make trusted -decisions, blue nodes are durable state or Git artifacts, and purple nodes are -external systems. - -```mermaid -flowchart TB - Human["Human operator"] - - subgraph Browser["Experience layer — browser, untrusted input"] - React["React 19 single-page application"] - AgentUI["Agents / Create / Edit / Playground"] - ShepherdUI["Contract stream / timeline / Plane tree"] - GroupUI["Project Group"] - SettingsUI["Settings / reset / human selection"] - Poller["1.1 s state, event, and group-message polling"] - Token["In-memory shared demo bearer token"] - React --> AgentUI - React --> ShepherdUI - React --> GroupUI - React --> SettingsUI - ShepherdUI --> Poller - GroupUI --> Poller - Token --> React - end - - subgraph HTTP["Fastify boundary — trusted validation and public projection"] - Auth["Bearer gate for /api except health and auth"] - Zod["Zod schemas: bounded IDs, bodies, cursors, settings"] - AgentAPI["Legacy Agent / message / Run / system routes"] - ShepherdAPI["Shepherd state / Mission / events / details / controls"] - PublicDTO["Redacted public DTOs: no prompts, host paths, raw logs, or session IDs"] - Errors["Typed status mapping and bounded generic 500"] - Static["Production React assets and SPA fallback"] - Auth --> Zod - Zod --> AgentAPI - Zod --> ShepherdAPI - AgentAPI --> PublicDTO - ShepherdAPI --> PublicDTO - Errors --> PublicDTO - end - - subgraph Legacy["Existing Agent control plane — AgentService"] - AgentCRUD["Agent CRUD, roles, authority presets, lifecycle"] - Playground["Message admission and one active Run per Agent"] - LegacyRecovery["Restart: active Runs → cancelled; busy Agents → ready"] - WorkspaceManager["Server-derived workspaces; no-follow files; archive on delete"] - RunnerFactory{"RUNTIME_PROVIDER"} - LocalRunner["CodexRunner: bounded local child process"] - ContainerRunner["ContainerCodexRunner: disposable local Runtime"] - Thread["Resumable legacy Codex thread per Agent"] - AgentCRUD --> WorkspaceManager - Playground --> WorkspaceManager - Playground --> RunnerFactory - RunnerFactory -->|"local-process"| LocalRunner - RunnerFactory -->|"container"| ContainerRunner - LocalRunner --> Thread - ContainerRunner --> Thread - end - - subgraph Kernel["Shepherd control plane — trusted orchestration"] - Intake["Fixed auth-demo intake and idempotent request binding"] - Reserve["Validate Agent role, readiness, authority; reserve Agent"] - Contracts["Persist Mission and two typed Execution Contracts"] - DAG["Validate DAG and select maximal safe runnable batch"] - StateMachine["Actor-gated Mission and Contract state machines"] - EventWriter["State transition plus bounded event in one mutation"] - Concurrency["Project lock, Agent occupancy, Plane-capacity bound"] - Cancel["Durable cancellation before exact Runtime cancellation"] - Intake --> Reserve --> Contracts --> DAG --> Concurrency - Contracts --> StateMachine --> EventWriter - Cancel --> StateMachine - end - - subgraph GitPlane["Git / Plane boundary — trusted, argv-only, sentinel-guarded"] - ProtectedRepo["Managed auth fixture repository\nprotected branch + expected HEAD"] - PlaneManager["PlaneManager derives all branches and paths"] - GitClient["GitClient: sanitized refs/paths; no shell/hooks/credentials; bounded I/O"] - ContractWT["Contract worktrees from Mission base SHA"] - Export["Authority-filtered Git-free execution export"] - Import["Bounded no-follow staging import; reject links, special files, metadata, and denied diff"] - Manifest["Strict result-manifest ingestion; validate claims/evidence; then remove"] - TrustedCommit["Rebuild trusted Contract commit from base; exclude control metadata"] - VerifySnapshot["Fresh Git-free read-only snapshot of exact commit"] - IntegrationWT["Integration Plane merges verified Contract commits"] - IntegrationSHA["Immutable integration commit"] - ResolutionWT["Two resolution worktrees from identical integration SHA"] - CandidateCommit["Trusted candidate commits; no manifest channel"] - PromotionCAS["Protected fast-forward CAS plus checked-out worktree synchronization"] - PlaneManager --> GitClient --> ProtectedRepo - PlaneManager --> ContractWT --> Export - Import -->|"Contract"| Manifest --> TrustedCommit - Import -->|"Resolution candidate; manifest forbidden"| CandidateCommit - TrustedCommit --> VerifySnapshot - TrustedCommit --> IntegrationWT --> IntegrationSHA --> ResolutionWT - PromotionCAS --> ProtectedRepo - end - - subgraph AgentExecution["Agent Runtime boundary — untrusted model output and files"] - Executor{"Resolved Shepherd execution mode"} - FixtureExecutor["DeterministicFixtureExecutor\nnetwork-free deterministic writes"] - Prompt["Bounded JSON prompt envelope\nidentity, objective, context, authority, artifacts, claims"] - PrivateHome["Fresh private CODEX_HOME per execution\nminimal config; deleted afterward"] - LiveExecutor["CodexShepherdExecutor\none-use execution and session identities"] - RuntimeContainer["Disposable non-root container\nread-only root, dropped caps, limits, bridge network"] - Codex["codex exec --ephemeral --json\nprompt on stdin; workspace-write sandbox"] - AgentFiles["Agent-authored project files and Contract result manifest"] - SessionHash["Require one fresh thread ID; persist only SHA-256 fingerprint"] - Executor -->|"deterministic"| FixtureExecutor --> AgentFiles - Executor -->|"live"| Prompt --> LiveExecutor --> PrivateHome --> RuntimeContainer --> Codex - Codex --> AgentFiles - Codex --> SessionHash - end - - subgraph Verification["Independent verification — trusted interpretation, untrusted code under test"] - Registry["TrustedCheckRegistry: profile ID → server-owned argv"] - Verifier["ContainerVerifier validates target, checks, path, limits, ownership"] - VerifyContainer["One disposable container per check\nno network/key/session; read-only mount/root; bounded resources"] - Evidence["Bounded redacted VerificationEvidence"] - Corroborate["Corroborate semantic transport from verifier output"] - Registry --> Verifier --> VerifyContainer --> Evidence --> Corroborate - end - - subgraph Semantics["Collision and speculative resolution — trusted policy"] - Claims["Normalized, evidence-backed exclusive claims"] - Advisory["Optional ArkModelReviewer\nstrict structured advisory output"] - Detect["Deterministic collision predicate"] - Collision["Durable auth.transport collision without Git conflict"] - Strategies["Generate exact left-value and right-value strategies"] - CandidateExec["Execute resolution Planes concurrently"] - CandidateVerify["Verify frontend, backend, project security, and exact target"] - Winner{"Deterministic winner policy"} - Auto["Exactly one mandatory-pass candidate selected"] - Attention["Both fail, tie, paused automation, or unsafe result → attention_required"] - HumanSelect["Human may select only an eligible verified candidate"] - FinalGate["Re-read selection; immutable head; actual-diff authority; fresh verification; expected protected HEAD"] - Claims --> Detect --> Collision --> Strategies --> CandidateExec --> CandidateVerify --> Winner - Advisory -.-> Detect - Winner -->|"one passes"| Auto --> FinalGate - Winner -->|"none / tie / paused"| Attention - Attention -->|"valid tie or confirmation"| HumanSelect --> FinalGate - end - - subgraph Persistence["Durable single-process state boundary"] - Store["JsonStore queue: clone, scrub, schema-validate, size-bound"] - DB["launchpad.json v2\nAgents, Runs, Missions, Contracts, Planes, claims, collisions, candidates, events, messages, settings"] - Atomic["Exclusive temp → fsync → atomic rename → directory fsync"] - Journal["Narrow Mission-verification persistence-intent journal"] - Cursor["Monotonic durable event cursor"] - Startup["Startup reconciliation: owned artifacts, Git state, in-flight lifecycle, post-CAS evidence"] - Store --> Atomic --> DB - Store --> Journal - Store --> Cursor - DB -.-> Startup - end - - subgraph External["External systems"] - Ark["Volcengine Ark Responses API"] - Engine["Docker / Colima / Podman"] - end - - Human --> React - Static --> React - React --> Auth - Poller -.-> Auth - PublicDTO --> React - AgentAPI --> AgentCRUD - AgentAPI --> Playground - ShepherdAPI --> Intake - ShepherdAPI --> Cancel - ShepherdAPI --> HumanSelect - AgentCRUD --> Store - Playground --> Store - LegacyRecovery --> Store - WorkspaceManager --> Store - LocalRunner --> Ark - ContainerRunner --> Engine - ContainerRunner --> Ark - EventWriter --> Store - Contracts --> Store - Concurrency --> PlaneManager - PlaneManager --> Store - Export --> Executor - AgentFiles --> Import - SessionHash --> Store - VerifySnapshot --> Verifier - Corroborate --> Claims - Corroborate --> StateMachine - StateMachine --> IntegrationWT - IntegrationSHA --> Advisory - Advisory -.-> Ark - Strategies --> ResolutionWT - ResolutionWT --> Export - CandidateCommit --> VerifySnapshot - Evidence --> CandidateVerify - FinalGate --> VerifySnapshot - Evidence -->|"fresh promotion evidence"| FinalGate - FinalGate --> PromotionCAS - Collision --> Store - CandidateVerify --> Store - Winner --> Store - FinalGate --> Store - RuntimeContainer --> Engine - VerifyContainer --> Engine - Codex --> Ark - Startup -.-> Store - Startup -.-> PlaneManager - Startup -.-> Engine - - classDef untrusted fill:#fff1f0,stroke:#b42318,color:#5f160f,stroke-width:2px - classDef trusted fill:#ecfdf3,stroke:#027a48,color:#054f31,stroke-width:2px - classDef durable fill:#eff8ff,stroke:#175cd3,color:#102a56,stroke-width:2px - classDef external fill:#f4f3ff,stroke:#6938ef,color:#2d1b69,stroke-width:2px - class Human,React,AgentUI,ShepherdUI,GroupUI,SettingsUI,Poller,Token,FixtureExecutor,Prompt,PrivateHome,LiveExecutor,RuntimeContainer,Codex,AgentFiles,VerifyContainer untrusted - class Auth,Zod,AgentAPI,ShepherdAPI,PublicDTO,Errors,AgentCRUD,Playground,LegacyRecovery,WorkspaceManager,RunnerFactory,LocalRunner,ContainerRunner,Intake,Reserve,Contracts,DAG,StateMachine,EventWriter,Concurrency,Cancel,PlaneManager,GitClient,Import,Manifest,TrustedCommit,Registry,Verifier,Corroborate,Claims,Advisory,Detect,Collision,Strategies,CandidateVerify,Winner,Auto,Attention,HumanSelect,FinalGate,PromotionCAS trusted - class ProtectedRepo,ContractWT,Export,VerifySnapshot,IntegrationWT,IntegrationSHA,ResolutionWT,CandidateCommit,Thread,SessionHash,Evidence,Store,DB,Atomic,Journal,Cursor,Startup durable - class Ark,Engine external -``` - -## Boundaries and responsibilities - -Shepherd is not implemented by expanding `AgentService`. The process composes two -control planes over one durable store: - -| Boundary | Responsibility | It must not do | -| --- | --- | --- | -| React experience | Render Agents, Missions, Contracts, events, evidence, timeline, Plane lineage, Project Group, and settings; submit typed controls; poll durable state. | Choose winners, validate authority, interpret verification, or submit host paths/commands. | -| Fastify | Authenticate shared-demo API calls, validate request shapes, map typed errors, and create safe public DTOs. | Return repository/worktree/workspace paths, Run prompts, raw verifier output, or session IDs. | -| `AgentService` | Preserve Agent CRUD, lifecycle, workspaces, Playground, resumable Runs, and one-active-Run admission. | Own Missions, Contracts, Planes, collisions, or promotion. | -| `ShepherdService` | Own Mission lifecycle and orchestrate scheduling, Planes, execution, import, verification, collision, candidates, selection, promotion, cancellation, reset, events, and recovery. | Trust an Agent report, execute browser commands, or mutate protected Git directly. | -| `PlaneManager` / `GitClient` | Derive managed paths/branches, create worktrees, export/import Git-free trees, inspect actual diffs, build commits, merge, and perform the only protected CAS. | Give an Agent a worktree, invoke a shell, inherit Git credentials/hooks, or accept unvalidated paths/refs. | -| Agent executor | Produce files for exactly one execution identity in an exported workspace. | Certify acceptance, select a candidate, access protected Git, or reuse a Shepherd session. | -| Independent verifier | Run registry-owned checks against a read-only exact-commit snapshot and return bounded evidence. | Receive Ark credentials, Codex state, network, writable project storage, or Agent-selected commands. | -| Deterministic policy | Corroborate claims, detect collisions, assess mandatory evidence, handle ties, and gate promotion. | Treat advisory model output as authority or prefer a strategy by name. | -| `JsonStore` | Serialize and atomically publish a validated/redacted database and allocate events with state changes. | Support multiple writers or distributed coordination. | - -## Process composition and startup - -`apps/server/src/index.ts` is the composition root: - -1. `loadConfig()` validates environment configuration. A non-loopback bind requires - a strong shared bearer token. `auto` Shepherd mode resolves to `live` only with a - container Runtime and usable Ark Agent configuration; otherwise it is - `deterministic`. -2. The process writes shared legacy Codex configuration, resolves a restart-stable - installation owner from a persisted nonce, and creates one `JsonStore`, - `WorkspaceManager`, and `AgentRunner`. -3. `AgentService.initialize()` initializes storage/workspaces, validates persisted - workspace identity, cancels interrupted legacy Runs, and releases busy Agents. -4. The process registers trusted frontend, backend, and project-security check - profiles, then chooses `CodexShepherdExecutor` or - `DeterministicFixtureExecutor`. A usable `SHEPHERD_MODEL` also composes the - advisory `ArkModelReviewer`. -5. `ShepherdService.initialize()` reconciles a persistence intent, validates or - establishes sentinel-guarded roots, cleans only installation-owned Runtime and - verifier artifacts, reconciles durable Git/lifecycle state, and runs the - credential-free live Runtime preflight. -6. Fastify registers the API and serves the compiled React app in production. - -Startup fails closed on ambiguous sentinels, unexpected managed-root contents, -unsafe workspace identities, an untrusted protected checkout, incomplete owned -container cleanup, or a failed live preflight. - -## Flow A: legacy Agent Playground - -1. The browser creates or updates an Agent with a role and normalized authority - preset. `WorkspaceManager` derives its directory from the server-generated ID - and manages instructions/files with no-follow operations. -2. A Playground message creates a durable user message and queued `AgentRun` in the - same mutation that atomically sets the Agent `busy`. Concurrent admission permits - only one Run per Agent. -3. `RunnerFactory` selects bounded host-process Codex or a disposable local Runtime - container mounting the Agent workspace and shared legacy `CODEX_HOME`. -4. A successful first turn persists the Codex thread ID. Follow-ups use - `codex exec resume`, preserving legacy conversation continuity. -5. Output, usage, Run state, assistant message, and Agent state persist. Public - responses omit Run prompts and workspace paths. -6. Stop/cancel terminates the exact process/container. Restart converts active Runs - to `cancelled`; no interrupted Run is reported complete. - -Legacy authority metadata constrains future Shepherd assignment. It is not enforced -as a filesystem sandbox for ordinary Playground turns. - -## Flow B: Shepherd Mission - -### 1. Intake and Contract creation - -Protected main accepts one constrained plan: the authentication demo. The browser -may supply bounded intent, two different ready Agents with Frontend/Backend roles, -and two different typed transports. It cannot supply repository paths, Plane paths, -Git refs, verification commands, or arbitrary plan structure. - -Admission binds each client message ID to a fingerprint of intent and assignments, -enforces one active mutating Mission, revalidates the protected repository and -expected HEAD, intersects Contract authority with Agent authority, reserves both -Agents, and atomically persists the Mission, two Contracts, initial events, and -group message. Each Contract durably records its objective, Agent, dependencies, -semantic scope and canonical claim key, authority, expected artifact, trusted -acceptance check, manifest location, lifecycle, failure, and verification evidence. - -### 2. DAG scheduling - -The scheduler validates general acyclic Contract graphs and rejects unknown, -duplicate, self, cyclic, cross-Mission, or inconsistent dependency data. A Contract -runs only when the Mission is active, required dependencies are `verified`, the -Agent is free, the mutation lock permits it, and Plane capacity remains. It returns -the maximal stable-ID-ordered safe batch and typed block reasons. - -The current Mission creates two independent Contracts with no edges, so both run in -one wave. The scheduler is general, but protected-main orchestration does not yet -create arbitrary multi-wave plans. - -### 3. Contract Plane and Agent execution - -`PlaneManager` creates each Contract branch/worktree from the immutable Mission base. -All identities, branches, and paths are server-derived beneath a sentinel-guarded -root. The Agent never receives the worktree. Shepherd instead exports a private, -Git-free tree containing only readable-authority files and rejects symlinks, special -files, protected metadata, excessive trees/files, concurrent identity changes, and -root escapes. - -Shepherd builds a bounded secret-scanned JSON prompt envelope with Agent identity, -objective, context and verified dependency outputs, authority, expected artifacts, -canonical claims/scopes, and result-manifest schema. In deterministic mode, fixture -code writes known outputs. In live mode, every Contract/candidate gets a never-reused -execution ID, fresh private `CODEX_HOME`, and fresh `codex exec --ephemeral` turn; -the prompt travels on stdin, not argv. - -The live container is non-root, capability-free, `no-new-privileges`, resource -bounded, and read-only except for tmpfs and mounted workspace/private home. Bridge -networking lets the Codex control process call Ark. Startup preflight proves -model-authored shell code inside the configured `workspace-write` sandbox can write -the workspace, cannot write the private home, and cannot listen/connect via TCP. -Exactly one fresh thread ID is required; reuse is rejected, the raw value is -discarded, and only a SHA-256 fingerprint persists privately. - -### 4. Trusted import and authority - -After execution stops, the complete Git-free tree is copied through a detached -staging worktree at the source commit using bounded no-follow regular-file -operations. Shepherd derives the actual staging diff and enforces normalized write -and forbidden patterns. Forbidden and always-protected paths override grants. Only -after validation does staging replace the trusted Plane tree; the diff is then -re-derived and compared. A partially touched Plane is restored on failure. - -`.shepherd/result.json` is the sole Contract import exception. It is non-integrable -control data, never product code. Resolution candidates have no manifest exception. - -### 5. Manifest and independent verification - -Manifest ingestion requires one bounded regular file with the exact schema and -Contract ID, required artifacts, canonical declared claim keys/scopes, normalized -values, and valid project-contained evidence relevant to actual changes. Agent test -outcomes remain informational. The manifest is removed before `commitPlane()` -rebuilds one trusted commit from the immutable base and approved integrable paths, -thereby stripping Agent commits and control metadata. - -Verification runs on a fresh Git-free read-only snapshot of the exact commit. Each -acceptance check resolves to server-owned argv in `TrustedCheckRegistry` and gets a -disposable container with no network, Ark key, app token, Codex state, Docker socket, -or unrelated host environment; the root and project mount are read-only and CPU, -memory, PID, time, output, and tmpfs are bounded. - -Only the independent-verifier actor can transition `verifying → verified`, and every -mandatory check must have coherent passing evidence. For the auth fixture, trusted -code also derives the observed transport from verifier output and requires it to -corroborate the Agent claim. - -### 6. Integration and collision - -An integration Plane from the Mission base merges both trusted Contract commits with -argv-only Git. Textual conflicts are recorded and safely aborted. In the hero path, -different files merge cleanly and the resulting commit becomes the immutable -resolution base. - -An optional model reviewer receives only bounded trusted objectives, ingested -summaries, corroborated claims, changed files, and diff summaries. Strict structured -completion or explicit degradation is recorded, but reviewer output cannot create -the authoritative collision, verify work, choose, or promote. - -The deterministic collision predicate requires different verified Contracts in one -Mission, correctly attached claims, equal normalized key/scope, `exclusive` modes, -different normalized values, valid evidence, and no dependency supersession. It -therefore detects `bearer-jwt` versus `http-only-session-cookie` even though Git had -no conflict. - -### 7. Speculative resolution and winner - -Shepherd creates two resolution Planes—make the left value true or make the right -value true—from the same integration SHA. Each has independent execution/session -identity and bounded authority across both source scopes. Candidates run concurrently -and are verified against frontend, backend, and project-security profiles. Verifier -output must corroborate the exact persisted target, preventing target substitution. - -Winner policy accepts exactly two candidates: - -- exactly one passes mandatory verification → select it; -- neither passes → select none and require attention; -- both pass → apply only predeclared objective tie-breakers; -- still tied → require human selection between verified candidates. - -A transient Runtime/timeout/verification-infrastructure failure may retry once in a -fresh Plane from the same integration commit; the original attempt remains durable. -Disabling automatic resolution still executes and verifies both futures, then pauses -for manual confirmation of an eligible candidate. - -### 8. Final promotion - -`PromotionGate` rechecks candidate/Plane/persisted-selection identity, immutable -candidate HEAD, absence of unfinalized product changes, actual-diff authority, fresh -independent verification, selection after verification, and expected protected HEAD. -It then durably persists passing promotion evidence and `promoting`, proves -fast-forward ancestry, and performs atomic `update-ref ` plus -checked-out index/worktree synchronization. - -Synchronization failure triggers ref/worktree rollback attempts with distinct -evidence. Any mismatch, denial, failed verification, moved HEAD, dirty checkout, -non-fast-forward, persistence failure, or ambiguous rollback stops non-green. On -success, one mutation records promotion evidence, resolved collision, new protected -HEAD, events/group summaries, and Mission completion. The losing Plane remains -inspectable. - -## Persistence, cancellation, and recovery - -The version-2 JSON database preserves legacy Agent/message/Run collections and adds -Projects, Missions, Contracts, Planes, claims, collisions, candidates, events, -Project Group messages, settings, and the next event cursor. Version-1 legacy values -migrate without alteration. - -`JsonStore` is one-process-per-data-root: mutations serialize through one queue, -operate on scrubbed clones, remove configured/common credentials from all strings, -validate the complete database and 64 MiB limit, then publish through an exclusive -temporary file, file sync, atomic rename, and directory sync. Memory advances only -after publication. State transitions and events share a mutation; failed persistence -does not consume a cursor. - -A narrow digest-backed persistence-intent journal protects the transition after both -source Contracts verify and before integration. Restart either recognizes the -committed rename or records explicit `persistence_error` attention evidence. - -Cancellation is durable-first: one mutation sets the Mission `cancelled`, terminalizes -eligible Contracts, interrupts candidates/Planes, releases Agents/project, and emits -events. Only then are exact executor/verifier identities cancelled. Cancellation is -rejected after the durable pre-CAS marker. - -Startup removes only exactly owner-labelled containers and sentinel-owned ephemeral -artifacts, re-resolves project identity, and checks protected ref, checked-out branch, -HEAD, index, cleanliness, registered worktrees/branches, and persisted commits. It -classifies unchanged state, a narrowly corroborated post-CAS winner, external head -movement, or worktree mismatch. All in-flight entities become explicit interrupted -or `attention_required` evidence; artifact presence alone never means completed. - -## HTTP and browser projection - -All `/api/**` routes except health/auth use the optional shared bearer boundary. It -is a demo token, not identity or RBAC. The API exposes legacy Agent controls and -Shepherd state, Mission/events/details, Project Group, cancellation, human selection, -settings, and guarded reset. Strict schemas bound inputs; no route accepts host paths, -Git refs, arbitrary plans, verifier commands, or shell input. - -Public projection removes project repository paths, Plane worktree paths, execution -identities, raw session fingerprints, manifest content, verifier stdout/stderr/error, -legacy workspace paths, and Run prompts. It retains logical state, changed-file -lists, short Git evidence, check status/duration, and a boolean that a Runtime session -was established. - -The React app uses a small History API router: - -| Route | Role | -| --- | --- | -| `/shepherd` | Mission submission and Agent/transport assignment; durable events, contract evidence, actual-time timeline, collisions, candidates, attention controls, and Plane lineage/detail. | -| `/project-group` | Durable human/Shepherd/Agent messages and explicit `@Agent` routing. | -| `/agents`, `/agents/new`, `/agents/:id`, `/agents/:id/edit` | Agent list, role/authority configuration, lifecycle, current Contract context, and legacy Playground. | -| `/settings` | Persisted timeouts, concurrency, auto-resolution/model-review preferences, immutable security controls, and guarded reset. | - -`useShepherdPolling()` concurrently fetches state and events after the last cursor -every 1.1 seconds, deduplicates events, retains the latest 500, and preserves the last -good snapshot while reconnecting. Project Group polls independently. The UI never -makes trusted decisions: timeline bars derive from timestamps, Plane nodes from -durable lineage, and controls wait for server state. - -## Trust model and invariants - -Untrusted inputs include browser/human content, model output, Agent files/manifests, -claim text/evidence before ingestion, candidate code, code under verification, and -advisory review output. Trusted code owns schemas, derived identities/paths/refs, -authority intersection and actual-diff checks, lifecycle actors, manifest ingestion, -check profiles and evidence interpretation, collision/winner policy, promotion, -redaction, persistence, and recovery. - -Core invariants: - -1. No transition exists from `agent_completed` directly to `verified`. -2. Only independent-verifier evidence matching all mandatory checks can certify a - Contract. -3. Agents never receive protected Git, a linked Plane worktree, verification storage, - or browser-selected host paths. -4. Contract authority is a subset of Agent authority; forbidden/protected paths win. -5. The result manifest exists only as a Contract ingestion exception and never enters - a trusted commit or promotion. -6. Every live Shepherd turn uses fresh execution, private-home, container, and session - identities; only a session fingerprint persists. -7. Verification is credential-free, session-free, no-network, and read-only against - an exact immutable commit. -8. Advisory model output cannot affect deterministic detection, verification, - selection, or promotion. -9. Winner selection comes from coherent persisted evidence, never strategy name or - Agent self-report. -10. Protected state advances only through expected-head fast-forward CAS after durable - passing promotion evidence. -11. Unsafe or ambiguous outcomes stop non-green with retained evidence. -12. One process owns one data root; distributed/multi-writer operation is unsupported. - -## Deployment profiles - -| Profile | Legacy Agent Runtime | Shepherd execution | Independent verification | -| --- | --- | --- | --- | -| Local PoC launcher | Disposable Docker/Colima/Podman container per turn | Deterministic or live disposable container; live preflight required | Disposable no-network container per check | -| Local development default | Host Codex child process | `auto` resolves deterministic because provider is not `container` | Requires reachable container engine/image when a Mission verifies | -| Docker Compose / ECS starter | Codex in the application container unless reconfigured | `auto` resolves deterministic; shipped profile lacks the nested local-container boundary required by live Shepherd | No parity claim without reachable engine and validated mounts | - -The supported Shepherd isolation profile is local Docker/Colima/Podman. Ordinary -containers are a PoC boundary, not hardened hostile multi-tenant isolation. - -## As-built limits - -This document does not imply the generalized PRD is complete: - -- Mission decomposition is the fixed two-Contract auth demo. The scheduler validates - general DAGs, but service orchestration does not create arbitrary multi-wave plans. -- Unmentioned Project Group messages persist as Shepherd-routed messages but do not - start general work. `@Agent` with the fixed preset targets an existing Contract in - an active auth-demo Mission; it does not create a free-form Contract. -- Trusted lifecycle/verified-manifest summaries exist; general Agent group chatter is - intentionally absent. -- The timeline uses actual persisted times but does not produce labeled estimates. -- `SHEPHERD_AUTO_RESOLUTION` and `SHEPHERD_MAX_PARALLEL_PLANES` are composed into - `ShepherdService` at startup. They seed a pristine store only while the persisted - value is still the factory default, so a later Settings update stays authoritative - across restarts. -- Completed/losing Planes are retained; the parsed delete setting does not activate - automatic cleanup. -- The model reviewer is connected when usable but remains advisory and can run in - deterministic Agent-execution mode. -- Promotion updates the managed fixture repository under `SHEPHERD_ROOT`, never this - application's source repository. -- Service, store, scheduler invocation, and project locking are single-node and - single-process. - -See [`TASKS.md`](TASKS.md) and [`DEVIATIONS.md`](DEVIATIONS.md) for the live evidence -ledger. Architectural presence does not imply every browser, live, stability, -security, performance, or rehearsal gate has passed. - -## Code map - -| Concern | Primary implementation | -| --- | --- | -| Composition/configuration | `apps/server/src/index.ts`, `config.ts`, `runner-factory.ts` | -| HTTP/public projection | `apps/server/src/app.ts` | -| Legacy Agents/Playground | `agent-service.ts`, `workspace.ts`, `codex-runner.ts`, `container-codex-runner.ts` | -| Domain/lifecycle | `shepherd/domain.ts`, `state-machine.ts`, `database-schema.ts` | -| Orchestration/scheduling | `shepherd/service.ts`, `scheduler.ts` | -| Authority/manifests/prompts | `shepherd/authority.ts`, `manifest.ts`, `prompt.ts` | -| Git/Planes | `shepherd/git-client.ts`, `plane-manager.ts`, `demo-project.ts` | -| Agent execution | `shepherd/executor.ts`, `codex-executor.ts` | -| Verification | `shepherd/verifier.ts`, `auth-fixture.ts` | -| Collision/review/resolution | `shepherd/collision.ts`, `model-reviewer.ts`, `resolution.ts` | -| Promotion | `shepherd/promotion-gate.ts` | -| Persistence/redaction/recovery | `store.ts`, `database.ts`, `database-schema.ts`, `shepherd/redaction.ts`, `shepherd/recovery.ts` | -| Browser/polling | `apps/web/src/App.tsx`, `Shell.tsx`, `api.ts`, `shepherd-hooks.ts`, `pages/` | -| Runtime/deployment | `Dockerfile*`, `docker-compose.yml`, `scripts/start-local-poc.sh`, `deploy/volcengine/` | diff --git a/docs/BUILD_LOG.md b/docs/BUILD_LOG.md deleted file mode 100644 index 582bdd9..0000000 --- a/docs/BUILD_LOG.md +++ /dev/null @@ -1,5812 +0,0 @@ -# Shepherd Build Log - -This log records commands actually executed and evidence actually observed. Secrets, raw prompts, and unbounded process output are intentionally excluded. - -This is a chronological evidence record, not the current task/status authority. -Branch and phase statements remain true only for the commit named in their entry. -Use [`TASKS.md`](TASKS.md) for the current repository snapshot, defects, -pending checks, and workflow. - -## 2026-08-31 — STABILITY protected-main integration closeout - -Issue [#48](https://github.com/kyashp/shepherd/issues/48) implementation and -evidence [PR #93](https://github.com/kyashp/shepherd/pull/93) merged to protected -`main` as `b05a4aad10d0c4c0e9f7d54fed2cdd5c779c16b0`. Its parents are the -frozen integrated base `a2a464d6be697ab949b254944b81c355a9be5403` and final -evidence head `ec015b6414b56df297a83489004edae441243483`; `git diff` between -the merge tree and that second parent is empty. - -A fresh detached worktree whose HEAD and `origin/main` were both exact `b05a4aa` -ran one literal `npm run check` with no environment, worker, timeout, or retry -override. It exited 0: all four production/test-source typechecks passed; -launcher/deploy passed 12/12; Server passed 846 with three unchanged documented -opt-in skips in 140.70s; Web passed 20/20; and both production builds passed. No -warning, live/model request, product/UI mutation, or tracked-file change occurred. - -The merge-triggered protected-main workflow run -[`33353622211`](https://github.com/kyashp/shepherd/actions/runs/33353622211) -also completed successfully on exact `b05a4aa`; its `Node 22 / npm run check` -job ran for 3m40s. Together with the immutable five-run candidate campaign at -`10c95da`, this establishes both issue gates `C` and `I`. This is an integration -verification record, not a claim of a separate independent audit. - -## 2026-08-31 — STABILITY candidate passed five consecutive literal gates - -Issue [#48](https://github.com/kyashp/shepherd/issues/48), draft -[PR #93](https://github.com/kyashp/shepherd/pull/93). The immutable campaign -candidate was `10c95da098755c513a5908615313b030bd866391`, rebased directly on -integrated feature-freeze `origin/main@a2a464d6be697ab949b254944b81c355a9be5403` -after PR #94 merged. Local HEAD, remote branch, and `origin/main` were checked -before, between, and after the runs; all stayed exact and the worktree stayed -clean. No live/model request ran. - -The earlier `bd77952` sequence remains invalid: its first three checks passed, -then run 4 exposed the five-second Git-backed PERF-01 harness timeout. The count -was reset to zero before any correction. The completed candidate contains four -causal stability fixes: - -- fixture Git commands use an allowlisted child environment and prove nested - repository identity, so inherited outer `GIT_DIR` / `GIT_WORK_TREE` selectors - cannot redirect staging or commits; -- F-03 snapshot-removal tests join an exact post-cleanup service checkpoint and - retain the final `ENOENT` assertion instead of consuming OS file watchers; -- the unchanged production `allSettledBounded` primitive is exported from the - scheduler module and its overlap/cap/order contracts are tested directly, - avoiding a full Git-backed Mission inside a five-second timing assertion; -- the candidate-cleanup fixture performs the executor's public preflight before - concurrent candidates, so first-use sentinel adoption cannot replace the - cleanup failure that the row is intended to assert. - -### Formal candidate campaign - -Each row below is one separate, literal `npm run check` invocation. The terminal -retained the Server start and the next Web start as wall-clock markers, the exact -Server duration, and the final process exit; it did not print a whole-command -start timestamp, so none is invented here. All four workspace/test-source -typechecks passed on every run. The three Server skips are the unchanged documented -opt-in rows. Both production builds passed and no warning was observed. - -| Run | Result / exit | Server → Web start (SGT) | launcher / deploy | Server | Web | Types / builds | Warnings | candidate / base | -|---:|---|---|---:|---:|---:|---|---|---| -| 1 | PASS / 0 | 10:50:15 → 10:52:44 | 12/12 | 846 passed / 3 skipped; 149.16s | 20/20 | 4/4 / 2/2 | none | `10c95da` / `a2a464d` | -| 2 | PASS / 0 | 10:53:37 → 10:56:03 | 12/12 | 846 passed / 3 skipped; 145.77s | 20/20 | 4/4 / 2/2 | none | `10c95da` / `a2a464d` | -| 3 | PASS / 0 | 10:56:34 → 10:58:59 | 12/12 | 846 passed / 3 skipped; 144.00s | 20/20 | 4/4 / 2/2 | none | `10c95da` / `a2a464d` | -| 4 | PASS / 0 | 10:59:26 → 11:01:52 | 12/12 | 846 passed / 3 skipped; 145.19s | 20/20 | 4/4 / 2/2 | none | `10c95da` / `a2a464d` | -| 5 | PASS / 0 | 11:02:21 → 11:04:39 | 12/12 | 846 passed / 3 skipped; 137.87s | 20/20 | 4/4 / 2/2 | none | `10c95da` / `a2a464d` | - -The same exact candidate also passed both required hosted checks: `Required -checks` run `33351880563` in 2m51s and `Node 22 / npm run check` run -`33351880571` in 2m55s. No sleep, timeout/retry increase, hidden worker, skip, -suppression, or weakened assertion was introduced. This establishes candidate -gate `C`; the documentation-only evidence descendant, integrator review/merge, -and fresh protected-main gate remain required for `I`. The issue is not closed by -this candidate record. - -## 2026-08-31 — UI-GATE protected-main integration evidence - -PR #87 merged to protected `main` as -`cf4dd0fa5886979f2af823efa65fd028dbb03334`; its direct second parent is final -candidate `adbb7aa25ed464c3c7080bc6c9c29690ce20d18e`, and `git diff` between those -trees is empty. The source branch had already passed hosted runs `33329742705` -and `33329742709`. - -- An exact `cf4dd0fa` archive ran the real-server UI gate through Playwright - Chromium with one worker. All 12/12 tests passed in 35.6s across exact - `1280x800` and `1440x900` viewports. -- The integration run regenerated exactly 36 non-empty PNGs: 18 at 1280x800 and - 18 at 1440x900, with zero unexpected dimensions and 3,225,044 bytes total. - All 18 byte-changed captures were visually re-inspected; no clipping, - document overflow, obstruction, or theme regression was found. That exact-main - corpus now replaces the candidate corpus under `docs/ui-review/ui-gate/`. -- Protected-main push run `33329997913` completed successfully on exact - `cf4dd0fa`; its `Node 22 / npm run check` job installed locked dependencies and - passed the literal repository gate in 2m54s. -- No live/model request ran. The local Windows Node harness limitation remains - `spawn EFTYPE` with 15/19 passing and is not presented as a pass. The hosted - Linux gate covers the complete repository check. - -UI-GATE gates `C`, `B`, and `I` are passed. Independent usability gate `U` -remains pending, so issue #45 stays open and the row is not called audited. - -## 2026-08-31 — UI-GATE reviewable candidate and current-main refresh - -Issue #45 / draft PR #87 on `test/45-ui-gate`. Causal UI fixes are at -`bbc7c81`; the reviewed current-main candidate is merge `d41613b`, which includes -protected `origin/main` `0ed41dd`. No live/model request ran. - -- The real-server Playwright matrix covers all six PRD UI surfaces plus adjacent - authentication, Agents, Settings, and not-found states at `1280x800` and - `1440x900`. The explicit one-worker evidence run on `d41613b` passed 12/12 and - produced exactly 36 non-empty PNGs with the declared dimensions and a bounded - total of 3,229,473 bytes under `docs/ui-review/ui-gate/`. -- Preserved REDs measured muted-copy contrast at 4.15:1 and 3.87:1, found 5px of - long-Agent document Y overflow at 1280x800, and exposed no-op Settings Discard, - incomplete Settings tab keyboard/relationships, inaccessible full Plane IDs, - and Project Group mentions enabled before initialization without a non-color - unavailable cue. The smallest page/CSS corrections made each causal assertion - green without changing API, persistence, dependency, runtime, or security scope. -- Keyboard-modality assertions activate sidebar/recovery links, Contract filters, - and Plane nodes with Enter; Settings and drawer tabs use arrows/Home/End; - Escape closes the labelled non-modal drawer and restores opener focus. Named - internal panes own overflow, two 1,900-character unbroken group messages wrap, - and bounded DOM/API/log canary scans pass without echoing a matched value. -- Web tests passed 20/20. Strict Web production and test-source typechecks passed. - Web production build transformed 41 modules and Server production build passed. - Adjacent two-viewport browser journeys passed 8/8. `git diff --check` passed. -- The local Node harness is not green and is not reported as one: Windows - reproduced `spawn EFTYPE`, with 15/19 passing and the four process-spawn/server - cases failing. Hosted Node 22 run `33329417868` passed literal `npm run check` - in 2m54s on evidence commit `38ac907`; the post-current-main documentation and - evidence head still requires its own hosted result. -- All 36 screenshots were reviewed against `docs/UI.jpeg`. No High/Medium visual - defect remained. `AUDIT.md` records the compact 25px desktop mention-chip target - exception, 1280x800 Create-form scroll depth, focused drawer capture position, - no connected in-app browser session, and no manual screen-reader claim. - -Candidate browser gate `B` is passed. Exact-final-head `C`, independent `U`, and -protected-main `I` remain pending; this implementation-owner record is not an -independent audit. -## 2026-08-31 — SEC-REVIEW part 4 review run; five High findings fixed - -Branch `fix/89-absolute-form-auth-bypass` from `main` at `0ed41dd`, for issue #89. -No live or model call ran. - -**What kind of review this was.** Seven adversarial lenses were run over the whole -trust boundary, each with fresh context, each instructed to break the system rather -than confirm it, and each told that much of the security-relevant code was written by -a prior agent already found defective three times. Every High and Medium was then put -to a separate verifier whose default was to refute it. **19 findings were confirmed -and 0 were refuted.** These reviewers are not a different party from the author, and -this entry does not claim they are; issue #89's acceptance asks for review by someone -other than the author of the code under review, and whether this satisfies that is -the maintainer's call, not the author's. - -Five High findings are fixed here. Each is filed in `FIXES.md` with its reproduction. - -- **`SEC-02`** — the bearer hook was bypassed by an absolute-form request target. - `GET http://host/api/system` returned 200 unauthenticated on every route including - the destructive reset, reproduced over a raw socket against the real `createApp`. - The `SEC-01` correction decoded the raw target but still tested the raw string, so - it closed percent-encoded spellings and left this one open. The hook now decides - from the parsed, decoded pathname. **The first regression test written for this - used `app.inject`, which normalizes the target and cannot express the attack; it - reported a false pass.** The test goes over a real socket. -- **`SEC-03`** — the deploy guard was silently inert. Its CLI entry point was gated - on `import.meta.url === "file://" + process.argv[1]`, which is not a sound - comparison: a space, `#` or non-ASCII percent-encodes, and macOS reports filenames - in NFD against an NFC argument. From a directory named `My Deploy Repo #1 é` the - guard body never ran and the deploy proceeded with an empty token. Both sides are - now resolved through the filesystem. A first correction using `pathToFileURL` still - failed on NFD and was caught by the new spawning test. -- **`SEC-04`** — the prompt, and on the resume path a stored thread id, reached the - Codex CLI as unseparated positionals on the same argv as `--sandbox`, so a prompt - beginning with `-` parsed as an option. The repository already applies the `--` - discipline to every Git invocation; the legacy runner was the one path missing it. -- **`SEC-05`** — mandatory promotion re-verification ran against the live Plane - worktree rather than the commit being promoted, because the snapshot fast path - copied any worktree `git status` called clean, and that test plus every authority - query are ignore-blind. Ignore rules are agent-controlled, so files under a - committed `.gitignore` were invisible to every check yet present in the verified - tree. Two corrections, each sufficient alone and kept together: the snapshot always - materializes the exact commit, and the authority queries are ignore-aware. - Reverting both reproduces; reverting either alone does not. -- **`SEC-06`** — the carried `OPS-06` High. The base compose profile published on - every interface while the token defaults to empty and the quickstart says nothing - else is needed to start. The published address now defaults to loopback with an - explicit `PUBLIC_BIND_ADDR` opt-in, mirroring the state-volume profile which - already did this. An earlier decision on this row rejected pinning to loopback - because it would remove intended reachability; that was right about pinning and - wrong about the remedy, and the defaulted variable keeps the reachability as an - opt-in while making only the default safe. The existing deploy guard is left - unchanged rather than made conditional, so no existing control is relaxed. - -**Observed.** `npm run typecheck` passed; `app`, `config`, `codex-runner` and -`container-codex-runner` 88/88; the Git/Plane promotion integration suite 28/28; -`plane-manager`, `promotion-gate`, `failure-matrix` and `authority` 52/52; script -tests 7/7 plus launcher 5/5; web 20/20; both production builds passed. Every fix was -mutation-checked against the defect it closes. - -**Not fixed here, and still open on #89:** unbounded retention on durable -collections; CSRF on the tokenless default, materially reduced by `SEC-06` but not -eliminated; credentials in ECS instance user-data and Terraform state; and four Low -findings. Part 5 is therefore incomplete and the `SEC-REVIEW` row stays `PARTIAL`. - -## 2026-08-31 — `TST-26`: the recovery-process failures were a defect, not host speed - -Branch `fix/48-recovery-ipc-flush` from `main` at `e552959`, investigating the five -`recovery.process.test.ts` failures that this campaign had repeatedly recorded as a -host-speed timing condition. **That characterisation was wrong.** - -- **They reproduce in isolation on an idle machine**: 5/5 fail, 168.75s for five - tests, each `Timed out waiting for recovered` with empty stderr. Nothing else was - running. -- **They are not slow.** Raising the message timeout to 400s produced the same - timeout. A direct probe of the recover child showed it exits **code 0**, sends - **zero** IPC messages, and writes nothing to stderr or stdout. -- **Cause.** In `test-fixtures/recovery-process.ts` the recover branch called - `send({ type: "recovered", ... })` and then `process.exit(0)` on the next line. - `process.send` is asynchronous, so the child can terminate before the IPC frame is - flushed. The parent never receives the message; and because the exit code is 0, the - harness's exit handler — which only rejects on a non-zero code — does not fire - either. The test therefore waits out its entire timeout for a result that had been - computed correctly and simply never left the process. -- **Why it looked like host speed.** On a faster host, and in Linux CI, the flush - wins the race. The failure is real everywhere; only its probability varies. Two - earlier entries in this log attributed these five tests to machine slowness. That - attribution is superseded by this entry. -- **Correction.** Exit from the `process.send` flush callback. No timeout was raised, - no sleep added, no assertion weakened. -- **Defence in depth.** The harness now rejects when a child exits cleanly without - ever sending the awaited message. The diagnosis is then in the failure text rather - than in an anonymous timeout. -- **Observed.** With the fix, `recovery.process.test.ts` passes **5/5** and the file - drops from 168.75s to 52s. Reverting only the fixture, with the hardened harness in - place, fails 5/5 in 48s with `Fixture exited 0/null without sending recovered` — - both changes are causal, and the second turns a 168s silent timeout into a 48s - named cause. Strict typecheck passed. -- **Bearing on `STABILITY` (#48).** Its acceptance requires diagnosing and fixing any - flake causally rather than excusing it. Five of the seven failures this host - produces were this defect. The remaining two are `service.test.ts` cases and have - not been investigated here. - -## 2026-08-31 — SEC-REVIEW parts 4-5 moved to a successor issue - -Documentation only; no product code. Protected `main` at `c158480`. - -- `SEC-REVIEW` `#49` was closed three times with its scope unsatisfied: manually on - 2026-08-30 at 08:30 before the OPS-06 `S` review had run, reopened at 16:40, then - closed again at 17:16 by **PR #86, which left `#49` in its closing references while - its own body stated that parts 4 and 5 were not claimed**. That third closure was - the author's own error and was not noticed at merge. -- Rather than reopen a fourth time, the remaining scope moved to issue `#89`, whose - title and acceptance match what is actually left: the independent read-only review, - the fixes that depend on it, and an explicit decision on the carried `OPS-06` - compose exposure. `#49` is left closed with the history recorded on it. -- Pointers corrected: the `SEC-REVIEW` row, the `OPS-06` row's owner reference for - the carried High finding, and the hackathon-cut list all named `#49`. The closure - comment posted on `#47` named it too and was corrected in a follow-up comment. -- Nothing about any gate changed. `SEC-REVIEW` stays `PARTIAL` at 70% with parts 1-3 - evidenced, and `OPS-06` keeps its scoped 100 with the High finding carried. -- `#89` records the instruction that closed `#49` twice: do not put a closing keyword - for it in a PR body unless that PR completes every part. - -## 2026-08-31 — ST-01 and OPS-06 integration rerun, self-performed - -Protected `main` at `a62e29b` (merge of PR #86). Branch -`docs/44-47-integration-rerun`. No live or model call ran. - -- **This rerun was performed by the author of the implementations under test.** - `docs/TASKS.md` reserves `AUDITED` for independent end-to-end evidence and defines - the `I` gate as a rerun by the auditor. Neither row is marked `AUDITED` on the - strength of this entry, and an independent rerun is still owed for both. -- **Hosted exact-head gate.** Run `33324819058` on `a62e29b`, literal - `npm run check` on `ubuntu-latest` / Node 22: success. This is the primary - evidence, and it is platform-independent of the notes below. -- **Local gate on the same SHA.** `npm run typecheck` passed. Launcher and deploy - script tests 9/9. Web 20/20. Both production builds passed. The server suite run - serially reported **837 passed, 7 failed, 2 skipped** across 34 files. -- **On those 7 local failures.** A second serial run on the same SHA reproduced the - identical set — 837 passed, 7 failed, 2 skipped, same tests — so this is a stable - host condition rather than a varying draw. Enumerated: five in - `recovery.process.test.ts` (the four SIGKILL-checkpoint cases and the - update-ref/read-tree fail-closed case), and two in `service.test.ts` (the `PERF-01` - scheduled-interval case and the `cancels tracked attention-required Missions` - case). Every one is a timing failure — `Timed out waiting for recovered`, - `Test timed out in 5000ms`, and the recorded - `expected 'resolving' to be 'attention_required'` `vi.waitFor` flake. No assertion - failure of substance appears in either run. The same commit passes the full suite - on Linux in CI, and this host's documented inability to run the suite green — - recorded since the OPS-06 work, where pristine `main` itself failed 39 and the - branch 61, all timeouts — is the standing explanation. No local figure in this - entry is offered as a pass. -- **Targeted surfaces on the same head passed**: the ST-01, composition, - verifier-container, codex-executor, app and config suites together 149/149, plus - the 9/9 script tests. These are the rows' own surfaces and are unaffected by the - suite-wide timing condition. -- **A stale claim corrected.** The OPS-06 row still said the carried High finding had - "no open owner" because `SEC-REVIEW` was closed. `#49` was reopened on 2026-08-31, - so the row now names it as the owner. -- **Why the independent rerun still matters for OPS-06.** The `SEC-REVIEW` boundary - audit found `SEC-01`, an authentication bypass reachable by percent-encoding the - `/api/` prefix, on the same `APP_AUTH_TOKEN` boundary this row's `S` gate covers. - The author of that gate had worked beside the hook repeatedly without noticing it, - and the first correction offered for it silently widened an exemption. Both were - caught by someone else looking. - -## 2026-08-31 — SEC-REVIEW parts 1-3, and an authentication bypass found and fixed - -Branch `audit/49-sec-review-evidence` from `main` at `bd9b093`; hosted exact-head -gate on that head is run `33323137812`. Issue #49 reopened after being closed on -2026-08-30 with its row unsatisfied. Parts 1-3 of its acceptance are claimed here; -parts 4 and 5 are not. No live or model call ran. - -### `SEC-01` — the bearer hook was bypassable by percent-encoding the prefix - -- Reproduced against the real `createApp`, with `APP_AUTH_TOKEN` configured and no - `Authorization` header: `GET /api/system` returns 401 while `GET /%61pi/system` - returns **200** and executes the handler. -- Cause: the `onRequest` hook decided whether to authenticate from `request.url`, - the raw request target, while Fastify percent-decodes static path segments before - route matching. Any encoded spelling of `/api/` failed the hook's string test, so - the hook returned early and the router still resolved the request. -- Every route was affected, including destructive ones: the audit observed - `PATCH /%61pi/shepherd/settings`, `POST /%61pi/shepherd/demo/reset` and - `DELETE /%61pi/agents/` all returning 200 and executing their service calls. - The reset route removes Plane worktrees and restores the protected HEAD. -- Reachable remotely wherever the token is the only control, because - `docker-compose.yml` binds `0.0.0.0` and publishes its port with no address prefix. -- **Not introduced by any recent change, and not caught by the suite.** The existing - auth tests only ever exercised canonical spellings, so `app.test.ts`, - `authority.test.ts` and `manifest.test.ts` passed while the bypass was live. -- Corrected by deciding from the decoded target, treating an undecodable target as - protected rather than exempt. The `/api/health` and `/api/auth` exemptions stay - exact-match, so a query string on a public route still fails closed — an earlier - form of this fix stripped the query string and thereby widened those exemptions, - which is a behaviour change and was reverted. Both properties are asserted. -- Causal: reverting the hook to the raw-URL test fails the new test. `app.test.ts` - 21/21, `config.test.ts` included 55/55, web 20/20, strict typecheck clean. - -### Part 1 — canary scan: pass with two low observations - -- Exactly two configuration values are credentials, both assembled into one - `sensitiveValues` set and threaded to the store, verifier, service, prompt builder - and model reviewer, with the API layer reconstructing the same pair independently. -- No path was found by which either reaches the persisted state, a model prompt, a - 4xx or 5xx response body, the DOM, browser storage, a URL, the logger, or a tracked - file. The Ark key is never placed in argv — the runner passes the name only and - injects the value through the child environment — and never written into the - generated Codex configuration. The prompt builder fails the whole turn rather than - emit a prompt containing a secret. -- Mechanically confirmed here: no credential file is tracked, `.gitignore` covers - `.env` and `.env.production`, the only key-shaped literal in tracked source is a - deliberately planted canary in `redaction.test.ts`, and the web client holds the - token in a module variable and sends it only as an `Authorization` header — no - `localStorage`, `sessionStorage`, cookie or query parameter anywhere in the client. -- Observations, both low and neither exploitable with a normally shaped credential: - `/api/system` is the only response serializer with no redaction pass, and - `ARK_API_KEY` has no minimum length while the redaction sets apply a 4-character - floor. - -### Part 2 — five invariant-mutation evidence cases - -Each invariant was broken in production source and an existing test caught it. All -source was restored after each; `git status` clean. Baseline before mutating: 66/66. - -| Invariant | Mutation | Caught by | -|---|---|---| -| Bearer auth enforced on every `/api/` route | `app.ts` `if (!valid)` to `if (false)` | 2 failed, including *protects API routes with the configured shared token* | -| No promotion without passing final mandatory re-verification | `promotion-gate.ts` `if (!evidence.passed)` to `if (false)` | *FM-01 ... persists failed final re-verification evidence without promotion* | -| Protected branch advances only by expected-HEAD CAS | `git-client.ts` `before !== persistedHead` to `false` | 1 failed in `git-plane-promotion.integration` | -| Writes must fall inside declared writable authority | `authority.ts` `matchesAny(path, grants)` to `true` | 2 failed in `authority.test.ts` | -| Verification Plane stays inside the managed root | `verifier.ts` containment check to `if (false)` | 1 failed in `verifier.container.test.ts` | - -Two invariants were deliberately excluded and the reason recorded: the hook's -constant-time comparison has no mutation coverage, because replacing -`timingSafeEqual` with a plain comparison is behaviourally identical and no test can -distinguish it; and the promotion gate's own expected-HEAD check is not detectable in -isolation because the Git layer re-checks the same condition and the gate maps the -error to the same reason. The second is defence in depth working, which is why the -CAS is demonstrated at the Git layer instead. - -### Part 3 — boundary audit: FAIL on one sub-surface - -Route inventory carries no debug, introspection or diagnostic route; static serving -and the not-found handler are traversal-proof; every identifier reaching a filesystem -path, Git ref or container name is server-generated and revalidated; the Contract -authority model cannot be broadened by a manifest or a model-produced plan; and -promotion cannot proceed without mandatory independent re-verification of the exact -commit, behind a real `git update-ref `. The bypass sub-surface -failed, which is `SEC-01` above. Other evasion vectors were probed and hold: casing, -trailing slash, query string, dot segments, encoded separator, double slash, and -method. There is no websocket or SSE upgrade. - -### Not claimed - -Parts 4 and 5 are unclaimed. The independent read-only security review must not be -performed by the author of `config.ts`'s token floor, -`scripts/check-deploy-auth-token.mjs`, the deploy guard, the `OPS-06` `A`-gate tests, -or the `SEC-01` fix above — all of which sit inside this issue's audit surface. The -carried `OPS-06` High finding remains a posture decision for that reviewer and the -maintainer: `docker-compose.yml` binds `0.0.0.0` with an unprefixed port while -`README` documents two entry points a deploy-script guard cannot reach. - -## 2026-08-31 — OPS-06 and ST-01 integrated; the OPS-06 High finding is carried - -Protected `main` at `3087b69` (merge of PR #69). That head also carries PR #73 -merge `a8d2266` (ST-01) and PR #68 merge `6137f36` (OPS-06 `A` gate). No live or -model call ran. - -- **Hosted exact-head gate.** Run `33322423938` on `3087b69`, job - `Node 22 / npm run check` on `ubuntu-latest`: success. -- **Observed on the integrated head.** The startup-settings, composition, - verifier-container, config and app suites passed 76/76; the deploy-token and - launcher script tests passed 9/9. These are targeted and adjacent runs by the - implementer, not the auditor's `I` rerun, which is still required before either - row is called audited. -- **`OPS-06` reaches scoped 100 with `T,A,C,S,I`.** `A` is integrated at `6137f36` - and `S` at `3087b69`. Scoped 100 means every gate listed for that row passed; it - does not mean the trust boundary is closed. -- **The `S` review's High finding is carried, not closed.** The independent review - returned FAIL on the merged range because `e6a5878` removed the non-loopback - `APP_AUTH_TOKEN` requirement and the documented existing-ECS path then started an - unauthenticated Agent-execution API on every interface. `scripts/deploy-existing-ecs.sh` - now refuses that deploy, resolving the token through `docker compose config` so the - check and the container share one parser and one rule. But `docker-compose.yml` - still binds `0.0.0.0` and publishes its port with no address prefix, and `README` - documents two other entry points against it — `docker compose up --build` and - `docker compose --env-file .env.production up -d` — which the script guard cannot - reach. Pinning that file to loopback was rejected because the profile is meant to - be reachable behind a security group and the same file serves the local Docker - path. The remainder is `SEC-REVIEW` (`#49`) scope. **No row may be read as closing - it.** -- **`ST-01` is integrated at `a8d2266`,** with the behaviour change it carries - recorded in the entry for that work: `SHEPHERD_MAX_PARALLEL_PLANES=1` previously - booted because the parsed value was discarded and now fails at `loadConfig`, and a - host that never set the variable moves from a nominal 4 to the 2 it actually ran - with. -- **Process note.** The three branches were authored and, apart from PR #69, merged - by the same person. `AGENTS.md` assigns merges and the `I` rerun to the integrator - and auditor precisely so neither is self-certified; the `I` gate for both rows - remains open on that basis. - -## 2026-08-30 — ST-01 startup settings composed into the service - -Branch `fix/44-st-01-startup-settings`, PR #73, against `main` at `07f4202`. No -live or model call ran. - -- `SHEPHERD_AUTO_RESOLUTION` and `SHEPHERD_MAX_PARALLEL_PLANES` were parsed by - `loadConfig` and then discarded: `ShepherdServiceOptions` had no field for either - and the only production construction passed neither. The gap was invisible in E2E - because the harness sets values equal to the persisted defaults. -- Both options are now declared, passed from resolved configuration, and applied by - the pristine-store seeding block. Seeding applies only while the persisted value - is still the factory default, so an operator change away from that default - survives restart. **Stated limit, now asserted by a test rather than only - commented:** an operator who sets the value back TO the factory default is - indistinguishable from one who never chose it, and startup configuration seeds - over that choice on the next restart while the store is still pristine. Removing - the limit needs a persisted "changed by operator" marker, which is a schema change - beyond this correction. -- **Stated behaviour change.** `SHEPHERD_MAX_PARALLEL_PLANES` moves from - `min(1).default(4)` to `min(2).default(2)`. A host that sets `1` previously booted - because the value was discarded; it now fails at `loadConfig`. That is deliberate: - `database-schema.ts`, `updateSettings` and the API all require at least 2, so once - composition works a `1` would fail on its first seed write, and a parse-time error - is the honest place for it. A host that never set the variable moves from a - nominal 4 to 2, which is the value it actually ran with before, since the parsed - number never reached the service. `.env.example` shipped `4` and is aligned to `2` - so the documented template matches the schema default. -- Eight causal tests in `apps/server/src/shepherd/startup-settings.test.ts`. Each - verified by mutating the guard it covers: dropping both options from `index.ts`, - disabling the seeding branch, removing the still-at-default guard so an operator - value is clobbered, and restoring the `min(1)`/`default(4)` schema all turn their - tests red. -- An earlier hosted run failed on this branch with `ENOENT` from `mkdtemp`: the test - allocated case roots under `.tmp/startup-settings` without creating it, and `.tmp` - is gitignored, so a clean checkout had no such directory. It passed locally only - because that directory had been created by hand. Corrected in the test; production - code was unaffected and the same run passed 809 other tests. -- Local full-suite figures from this host are not recorded as evidence: the run - spanned a branch switch and observed a mixed tree. The hosted exact-head gate is - the evidence for this branch. - -## 2026-08-30 — issue #43 integrated verification - -PR #75 merged to protected `main` as -`fbc937fed21ad4441e24ab301f591fe5aa03a025`; issue #43 closed and GitHub -removed the remote feature branch. The required integrated verification ran in -the clean issue worktree detached at that exact SHA before the docs-only -closeout branch was created. - -- `git diff` found no tree difference between reviewed candidate `66e0c0e` and - merge `fbc937f`, so the independent security/UI audit and re-review apply to - the integrated bytes with no remaining Critical, Important or Minor finding. -- Fresh literal `npm run check` passed: launcher 3/3, Server 808 passed plus - three explicit skips, Web 20/20, all production/test-source typechecks and - both builds. The PR's `Required checks` and `Node 22 / npm run check` hosted - jobs also completed successfully before merge. -- Fresh integrated Chromium passed the real-service unauthorized-diff journey - 2/2 at `1280x800` and `1440x900`, including durable reload, typed visible - denial, unchanged stored and actual protected heads, zero Candidates, - integration Planes or promotion, keyboard focus/activation, bounded public - evidence and no document/body overflow. -- The four reviewed E2E-04 screenshot hashes remain unchanged. No live Runtime, - model call, credential, product, CSS, schema, dependency or protected-branch - mutation ran during closeout. Candidate-time unrelated harness limitations - remain recorded in the preceding entry rather than being reclassified. - -## 2026-08-30 — FM-01 integrated verification and event-evidence follow-up - -PR #72 merged to `main` as `2e4058107311170ab12cadc6a6d283aeaefef895`. -Issue #42 closed and the feature branch was removed. The required integrated -verification ran from a clean detached worktree at that exact SHA. - -- **Integrated evidence:** the FM-01 plus database/service/Git-promotion/recovery - slice passed 187/187. Literal `npm run check` passed launcher 3/3, Server - 808/808 with three explicit skips, Web 19/19, all production/test typechecks and - both builds. A lock-backed clean install and `npm audit` reported zero - vulnerabilities; the merged feature files matched the reviewed branch bytes. -- **Independent audit finding:** the final re-verification row asserted - `promotion_started` and no completion, but not the resulting - `resolving -> attention_required` event. The event had a bounded reason but not - the matching failure code/stage, so event removal or misclassification could - remain false-green. No schema-widening, protected-promotion, authorization, - secret-exposure or data-loss blocker was found. -- **Causal follow-up:** branch `test/42-fm-01-final-event-evidence`, implementation - `471f5e8`, draft PR #74. RED passed 5/6 and failed only because the causal event - lacked `failureCode` and `stage`. The existing atomic transition now carries - those two fixed fields, and the matrix asserts its exact summary, - `resolving -> attention_required`, reason, code and stage through both durable - service state and the public events API. -- **Follow-up evidence:** matrix 6/6, adjacent 187/187, Server production/test - types, and a fresh literal gate with the same fully green counts passed. The - same read-only Auditor returned PASS with no remaining blocker. - `git diff --check` passed. No UI, dependency, schema, promotion-gate, live - Runtime or model change ran. -- `T,A,C` are complete. `I` remains pending until PR #74 is integrated and the - corrected focused flow is rerun on updated `origin/main`. - -## 2026-08-30 — issue #43 unauthorized-diff denial candidate - -Branch `fix/43-ui-01-unauthorized-denial`, initially based on protected `main` -`2e4058107311170ab12cadc6a6d283aeaefef895` and rebased onto current `main` -`18daa3a`. This is reviewed candidate evidence for issue #43; protected-main -integration is not claimed. - -- **RED/correction:** an ordinary failed Mission rendered only a generic Failed - timeline pill even though its denied Contract retained - `unauthorized_file_change` at `contract_authority`. The existing attention - panel now uses that precise Contract cause for failed Missions, labels the - safety stop and no-promotion outcome, and keeps the shortened Contract ID - traceable through its full-value title. The focused presentation regression - failed for each missing behavior before its correction and passes 6/6. -- **Causal browser proof:** a test-only executor wrapper uses the real compiled - service, store and host-trusted verifier to modify `policy.json` outside a - delegated `src/frontend/**` scope. The real authority boundary rejects it, - durable state reloads through the production server, and authenticated - Chromium proves the typed Contract denial, failed Mission, unchanged stored - and actual protected heads, zero Candidates, zero integration or promotion, - keyboard/focus evidence expansion, bounded public evidence and no page - overflow at `1280x800` and `1440x900`. The focused journey passed 2/2; all - four committed screenshots were inspected under `docs/ui-review/e2e-04/`. -- **Checks observed:** Web passed 20/20, the exact real-service authority test - passed, both production builds passed, harness unit passed 7/7, strict syntax - checks and `git diff --check` passed, and literal `npm run check` passed with - launcher 3/3, Server 808 passed plus three explicit skips, Web 20/20, strict - production/test-source types and both builds. `npm audit` reported zero - vulnerabilities across 251 dependencies. -- The subsequent pre-push hook reproduced the existing parallel interrupted-policy - cleanup race: Server 806 passed plus three skips while two - `general-project.test.ts` cases failed. That file then passed 8/8 alone. The - hook-created staged `policy.json` artifact was cleared, and only the documented - hook was bypassed for the branch update; no test or assertion was changed. -- The full browser harness passed 22/24. Both failures are unchanged - `starter-kit.spec.mjs` behavior outside the owned surface and reproduce in - that spec alone: a 0.09375px legacy viewport-boundary assertion at 1280 and a - 30-second legacy follow-up response timeout at 1440. No assertion, retry, - timeout, starter UI or unrelated source was changed to conceal them. -- Independent read-only audit and re-review found no remaining Critical, - Important or Minor issue in #43 scope and returned Pass for security and UI. - No production backend/schema, CSS, dependency, live Runtime or model path - changed; the accepted UI design remains frozen. Protected-main integration - and its rerun remain pending. - -## 2026-08-30 — FM-01 deterministic failure matrix candidate - -Branch `feat/42-fm-01-failure-matrix`, implementation `051b32a`, draft PR #72. -This is candidate evidence for issue #42; protected-main integration and audit are -not claimed. - -- **RED:** the first six-case run passed only the existing objective-tie path. Four - missing/malformed/omitted-key/acceptance cases persisted `unknown` at Mission - level, and failed final re-verification omitted its promotion evidence. -- **Correction:** known Contract-boundary failures now retain the exact fixed code - and stage on Mission, Contract, Plane and bounded event details. Final failed - promotion evidence is retained on the selected Candidate and linked from its - Plane; the database admits this only for a promotion-stage - `final_reverification_failure` while retaining target, diff, mandatory-profile - and Plane-link invariants. -- **Causal evidence:** `failure-matrix.test.ts` passed 6/6 without sleeps, retries, - network or model calls. Each case verifies service state, durable reload, public - Mission/events API, absence of `promotion_completed`, stored protected-head - immutability and the repository's actual Git HEAD. -- **Adjacent evidence:** database, service, Git promotion and recovery passed - 181/181. Server production and test-source TypeScript checks passed. The root - production build completed for both Web and Server, and `npm audit` reported - zero vulnerabilities across 251 dependencies. -- **Literal gate:** the pre-push hook reached Server 806 passed plus three explicit - skips, with two failures in the pre-existing parallel-only interrupted-policy - cleanup rows in `general-project.test.ts`. The same failures were observed before - FM-01 edits; the file passes 8/8 in isolation. The hook-created staged - `policy.json` artifact was cleared, and only the documented hook was skipped for - the branch push. `C` remains pending rather than inferred. -- No UI, dependency, live Runtime, model, credential or protected-branch change - ran. UI evidence remains assigned to the dependent E2E rows. - -## 2026-08-30 — issue #41 audited Project Group journey candidate - -Branch `feat/41-project-group-journey`, draft PR #64. This is candidate evidence; -protected-main integration is not claimed. - -- An explicit Project Group initialization creates the fixed idle auth-demo - Project without starting a Mission, Contract, Plane, executor, shell or model. - Unmentioned bounded messages persist with a bounded Shepherd reply. A leading - ready Frontend/Backend mention captures one fixed authentication transport; a - complementary opposite-role request enters the existing deterministic - two-Contract Mission with server-authored objectives and authority. -- Agent-authored Group messages are derived only from verified persisted manifest - summaries and remain bound to the exact sender, target, Contract and Mission. - Hostile V2 checks cover non-verified and missing-manifest states from valid - nonterminal controls, plus wrong sender, target, Contract and summary. The - pre-Agent-summary V2 shape remains compatible. -- Audit correction made Project Group routing atomic across ordinary and Contract - idempotency namespaces. The causal regression failed with two accepted requests - before the correction and passes with exactly one accepted message afterward. - Private-chat and Project Group pending prompts cannot pair across intake - provenance, and Mission-preparation failure rolls back only the new prompt. -- Literal `npm run check` passed: launcher 3/3, Server 795 passed with three - explicit skips, Web 19/19, all production/test-source typechecks and both builds. - The focused Database plus Shepherd suite passed 136/136; the final independent - re-review passed its 3 targeted tests and `git diff --check` with no remaining - finding. -- Authenticated focused Chromium passed 2/2 at `1280x800` and `1440x900` from the - real mention button through verified Contract evidence; the adjacent Shepherd - hero journey also passed 2/2. The broader direct Playwright run passed 18/20; - the two failures were unchanged legacy harness issues outside #41: a 0.09375px - starter-kit viewport rounding assertion and a separate response timeout. Harness - unit tests passed 6/7; the one unchanged macOS fixture compares canonical - `/private/var/...` and non-canonical `/var/...` temporary paths. -- `npm audit` reported zero vulnerabilities. No live/model request ran, no secret - or raw prompt/output was persisted in evidence, and the accepted UI design was - not redesigned. - -## 2026-08-30 — CRUD-01 clarification-only Agent deletion candidate - -- **Branch/review:** `fix/66-crud-01-clarification-draft-delete`, issue #66, - draft PR #67. No Web or CSS source changed. -- **RED:** a stopped Agent with only unbound `general-contract` - `clarification_required` messages, zero Contracts/Missions/Planes/events, and an - inactive managed Project failed deletion with `Cannot delete an Agent referenced - by durable Shepherd history`. -- **Correction:** deletion classifies only exact human-authored, unbound general - clarification messages as discardable. All durable or ambiguous references keep - the 409. Before deleting the exact managed Project, the server validates the - managed-root sentinel, metadata identity, main-only Git worktree state, absence of - Shepherd branches and empty private Plane roots. Fixed-schema, fsynced workspace - intent and Project deletion journals are written before database publication and - reconciled from on-disk durable Agent/Project state after restart. General Project - creation/policy journaling now begins inside the serialized Store mutation after - Agent revalidation, so a racing follow-up cannot strand a journal. -- **Observed checks:** production/test typechecks; focused Agent lifecycle/general - Project 29/29, including injected pre-publication and post-rename persistence - faults, exact follow-up/delete and direct-run/delete barriers, active-run join, - and clean restarts; adjacent API/Shepherd 77/77; literal `npm run check` with - launcher 3/3, Server 791 passed - plus two explicit opt-in skips, Web 18/18, and both - production builds. Authenticated deterministic Chromium passed 2/2 at 1280x800 - and 1440x900, including two clarification turns, exact 200 deletion, empty Agent - UI/state, exact filesystem absence and no document/body overflow. All four - screenshots were inspected. Independent UI review found no High/Medium issue; - it confirmed the frozen theme/layout and keyboard-operable native lifecycle - controls. Final independent security re-review at `171089b` passed with no High - or Medium finding after the direct-run race was also reserved, cancelled and - joined causally. Protected-main integration remains pending. The same-OS-user - recursive-path swap and Project-journal sudden-power-loss ordering are retained as - Low residuals under the existing single-owner local PoC threat/availability model. -## 2026-08-30 — the deploy guard is resolved through Compose, not re-parsed - -Branches `fix/47-ops-06-auth-boundary` (PR #69) and `test/47-ops-06-adjacent-coverage` -(PR #68), against `main` at `07f4202`. No live or model call ran. - -- **The shell guard was the wrong mechanism, not merely buggy.** Adversarial review - found six environment-file shapes where `sed -n 's/^APP_AUTH_TOKEN=//p'` reads a - valid token while Docker Compose resolves the variable to empty or absent, so the - deploy was approved and the container then started with the bearer boundary - disabled on the `0.0.0.0` bind this profile publishes. Reproduced directly: a file - whose valid line is followed by `export APP_AUTH_TOKEN=` gives `sed` the token and - `docker compose config` `APP_AUTH_TOKEN: ""`. `sed` does not implement compose-go's - handling of `export`, leading whitespace, quoting, escape sequences, multi-line - values or `${VAR}` interpolation, and every divergence is a chance to approve a - token the container never receives. Three further shapes passed the guard and then - aborted the container at startup, contradicting the guard's own stated guarantee. -- **Correction.** `scripts/check-deploy-auth-token.mjs` resolves the value through - `docker compose config --format json` — Compose's own parser, with - `LAUNCHPAD_ENV_FILE` set as the deploy script sets it — and applies the same rule - as `apps/server/src/config.ts`: trim, URL-safe shape, 24-character floor, no - `replace-` placeholder. `scripts/deploy-existing-ecs.sh` delegates to it. Because - the check and the container now read one parser and one rule, neither the bypass - class nor the approved-then-rejected class remains. -- **Observed against the real Compose parser** on this host: the `export` override, - the indented override, a quoted run of spaces, an undefined interpolation, a - trailing comment padding the line length, and a CRLF empty value all resolve to - refusal; a quoted 23-character token and a quoted `replace-` placeholder resolve - to `weak` where a shell parse counted the quotes and passed; a genuine 36-character - token resolves to `ok`. Tests 4/4. Causality checked by mutation: removing the - 24-character floor fails 2 cases, removing the trim fails 1. -- **Ledger.** `PR #63` merged ahead of both evidence branches and left the OPS-06 row - claiming `T,A,C,S,I` while neither was integrated. Both branches now carry the same - row text, which claims neither `A` nor `S` until its PR is an ancestor of - `origin/main`; identical text on both sides also removes the merge conflict the two - earlier, differing corrections created. The two should land back-to-back and both - gates be flipped in one follow-up. -- **Still not closed.** The High finding remains partly open: this guards the deploy - script, while `README` still documents `docker compose up --build` and - `docker compose --env-file .env.production up -d` against the same unguarded - `docker-compose.yml`. Carried into `SEC-REVIEW`. - -## 2026-08-30 — OPS-06 `A` and `S` gates, and a corrected reconciliation - -Protected `main` advanced to `f900656` (PR #71) while this reconciliation branch was -open; hosted exact-head gate run `33305530655` passed on it. The entry below remains -true for `b80af11`, the head it names. No live or model call ran. - -- **`A` gate (PR #68).** Four guards introduced or relied on by the container state - volume appeared only in source and in no test, so each could be deleted with a - green suite. Eight causal tests were added for the verifier fail-closed branch, - the three executor state-root guards, the `index.ts` verifier composition and the - launcher probe/fallback selection. Each was proven by mutating its guard and - observing the test fail; all source was restored afterwards. Two of the tests - initially passed for the wrong reason — one assertion was satisfied by the - following guard's message, since both end in `escaped CONTAINER_STATE_ROOT`, and - the launcher assertions read `stdout` while the launcher logs to `stderr`. Both - were corrected. -- **`S` gate (PR #69).** An independent read-only review of the merged range - returned **FAIL**: one High and two Medium findings, all against `e6a5878`, which - removed the non-loopback `APP_AUTH_TOKEN` requirement inside the same merge with - `gh pr view 56 --json reviews` returning `[]`. The container state volume itself - passed: the mount construction was attacked directly and no escape was found. -- **Adversarial re-review of both branches then found three defects in the first - corrections, each reproduced rather than argued.** The new deploy guard was - defeated by a whitespace-only token and by a CRLF environment file, because the - shell tested only for the empty string while the server trims before validating, - so both shapes reached the container as an empty token and disabled the bearer - boundary — the original finding verbatim. The guard now strips CR and surrounding - whitespace as the schema does and applies the same 24-character non-placeholder - floor as `config.ts` and `deploy/volcengine/variables.tf`. Separately, that - guard's only regression test was executed by no gate: the root `test` script names - a single file under `scripts/` and is not a glob, so `npm run check` would have - stayed green with the guard deleted; it is now named in that script, and deleting - the guard fails the gate. Finally, `index.composition.test.ts` could pass on the - exact regression it exists to catch, because its `indexOf("});")` end anchor - overshoots when the call is closed in the expanded argument style; the anchor is - now a close at column zero, comments are stripped from the window, and the - reproduction now fails both assertions. -- **The High finding is only partly closed.** The guarded deploy script is one of - three documented compose entry points; `README` still documents - `docker compose up --build` and `docker compose --env-file .env.production up -d` - against the same unguarded `docker-compose.yml`, which binds `0.0.0.0` and - publishes its port with no address prefix. Pinning that file to loopback was - rejected because the profile is meant to be reachable behind a security group and - the same file serves the local Docker path. The remainder is carried into - `SEC-REVIEW`. This merge must not be recorded as closing it. -- **Corrections to this branch's own earlier entry.** The `CHAT-01` row was left - internally contradictory: a guarded replacement silently matched nothing, so the - row still opened `REVIEWED CANDIDATE` while its body already said integration was - done. It now reads `INTEGRATED` at `cd82ec4`. An earlier local suite run reported - here was discarded rather than recorded, because it spanned a branch switch and - observed a mixed tree: it counted 32 test files where `main` has 29. -- **`TST-25` is resolved** at `e06357c` (PR #71, issue #70) by canonicalizing the - test's own temporary root before `mkdtemp`, leaving the fixture assertion intact. - -## 2026-08-30 — post-merge reconciliation at integrated `b80af11` - -Protected `main` at `b80af11` (merge of PR #56). That head also carries PR #57 -merge `cd82ec4` and PR #60 merge `39cd800`. Same affected host as the entries -below. No live or model call ran; no Mission was started. - -- **Hosted exact-head gate.** Run `33300759535`, event `push`, head branch `main`, - head SHA `b80af11`, job `Node 22 / npm run check` on `ubuntu-latest`: success, - every step green, 08:06:09Z to 08:08:43Z. This is the green Linux full gate that - the `OPS-06` row previously listed as outstanding. -- **Local rerun on the same SHA.** `npm run typecheck` passed; launcher tests 3/3; - web 18/18; both production builds passed. The server suite run serially - (`--no-file-parallelism --maxWorkers=1`) reported **745 passed, 6 failed, 6 - skipped**. The six failures are the recorded affected-host timing condition, not - regressions: five in `recovery.process.test.ts` (`Timed out waiting for - recovered` with empty child stderr — the forked `--import tsx` child never - crashed, it simply exceeded the 25s budget), plus the previously recorded - `expected 'resolving' to be 'attention_required'` flake in `service.test.ts`. - An earlier attempt to run the suite from the repository root is not evidence: - that invocation left `process.cwd()` outside the workspace, so the executor's - source-inventory test raised `ENOENT` and the Playwright specs were globbed into - the Vitest run. -- **`npm run test:e2e:harness:unit` on `b80af11`: 6 passed, 1 failed.** The failure - is `fake Codex fixture implements bounded deterministic version, run, and - resume`, with `fake-codex: workspace identity must be canonical`. This is a real - test-only defect, not an environment quirk: `tests/e2e/harness.test.mjs:38` - builds its workspace with `mkdtemp(path.join(os.tmpdir(), …))`, and on macOS - `os.tmpdir()` is a symlink, so the deliberate `realpath` identity assertion at - `tests/e2e/fixtures/fake-codex.mjs:69` correctly rejects it. The repository's own - idiom is already `tests/e2e/support/test-app.mjs:93`. This target is not part of - `npm run check`, so no hosted run covers it. Recorded as a new defect; the - fixture's assertion must not be weakened. -- **`LIVE-01` cannot run on this host, and the attempt was deliberately not - spent.** `live-runtime.integration.test.ts:182-185` pins - `CONTAINER_STATE_ROOT` and `CONTAINER_STATE_VOLUME` to `undefined`, so the gate - bind-mounts `.tmp/shepherd-live-gate/…` — a host share on this machine — and the - OPS-06 container-volume correction cannot apply to it. Two zero-spend probes - against the Runtime image confirmed the split on the exact gate path: a plain - write to a host-share bind mount inside the container succeeded (exit 0), while - the identical write under `codex sandbox linux --full-auto` was denied - (`cannot create /workspace/.p: Permission denied`, exit 2). A named-volume - control was inconclusive because a freshly created volume is root-owned, so the - denial there was ownership rather than Landlock; the bind-mount pair above is the - discriminating evidence. Running the gate here would therefore fail at - `stage=container_start reason=sandbox_probe_failed` and consume the no-retry - allowance for no evidence. `LIVE-01` needs a Linux host, or a change making the - gate volume-aware, which is outside an `L` run. -- **Ledger reconciliation.** The header pointer, the baseline hosted-gate and - server-suite rows, the presentation-host caveat, and the `OPS-06`, `CHAT-01` and - `LIVE-01` rows described merged work as unmerged candidates and cited hosted runs - that were not on the exact head. Corrected from the evidence above. - `docs/FIXES.md` carried the same stale `CANDIDATE PENDING AFFECTED-HOST GATE` - wording for `OPS-06` and was corrected with it. -- **Issue split.** `#47` bundled `OPS-06` and `LIVE-01`, which need different - hosts, so neither could close. `LIVE-01` moved to issue `#65` with the probe - evidence above; `#47` is re-scoped to `OPS-06` only and remains closeable on this - host once `A` and `S` land. `main` has since advanced to `a1f1fcc` (PR #62); the - evidence in this entry is scoped to `b80af11` and is not restated for that head. -- **Not claimed.** The `A` and `S` gates for `OPS-06` remain open. `A` is missing - the verifier composition at `apps/server/src/index.ts:77-78`, the launcher - probe/fallback selection, and the verifier fail-closed branch. `S` is unmet and - must also cover `e6a5878`, which removed the non-loopback `APP_AUTH_TOKEN` - requirement inside the same merge and carries no recorded independent review. - -## 2026-08-30 — the launcher selects its own state layout - -Same branch and host. `LOCAL_POC_STATE_MODE` defaulted to `host-bind`, so the -affected host had to be told to use the container state volume even though the -launcher's own probes already knew. The probe, not the operating system, is the -correct signal: what matters is whether the engine sees a native filesystem, and a -host can fail that on any platform. - -- Default is now `auto`. The state selection, mount specification and both probes - became functions, so the launcher can apply the host layout, probe it, and on - failure apply the volume layout and probe again within one run. `run_state_probes` - returns a typed status — 1 the engine cannot mount and write the state, 2 the - Codex sandbox cannot govern the workspace — so the fallback message names the - actual reason. An explicit `host-bind` or `container-volume` disables the - fallback, so a host that should work still fails loudly. -- Observed on the affected host with no environment variables set at all: - - ``` - [local-poc] Persistent state: /Users/…/.volc-agent-launchpad - [local-poc] Checking that the Runtime can mount and write the configured state directories. - [local-poc] Checking that the Codex sandbox can govern the configured workspace. - [local-poc] The Codex sandbox cannot govern a workspace on /Users/…/.volc-agent-launchpad. - [local-poc] Switching to the launchpad-state-auto container state volume and retrying. - [local-poc] Preparing the launchpad-state-auto state volume for the Agent Runtime. - [local-poc] Persistent state: launchpad-state-auto (container volume) - [local-poc] Checking that the Runtime can mount and write the configured state directories. - [local-poc] Checking that the Codex sandbox can govern the configured workspace. - [local-poc] Building and starting the containerized control plane. - ``` - - The mount-and-write probe passed on the host share and the sandbox probe failed, - which is the expected split. `GET /api/health` then returned - `{"ok":true,"service":"volc-agent-launchpad"}` and the running control plane - resolved `executionMode: "live"`, `authTokenLength: 0`. The smoke volume was - removed afterwards. -- `scripts/start-local-poc-launcher.test.mjs` passed 3/3, including the darwin case - that pins the five exported host paths: under `auto` its stub engine reports - success, the host layout is kept, and the exported paths are unchanged. - -## 2026-08-30 — APP_AUTH_TOKEN requirement removed, capability retained - -Same branch and host as the entry below. Requested scope was the requirement, not -the feature: the bearer boundary stays in the product and stays enforced whenever -a token is configured. - -- The request originally read as deleting the token entirely. Survey first: the - request hook at `apps/server/src/app.ts:843` already returns early when the - token is empty, so every route is open and `/api/auth` reports - `required:false`. Exactly one line forced a value — the non-loopback guard in - `loadConfig`. Removing the whole feature would have touched 18 non-test source - references and 26 test references and left `deploy/volcengine/main.tf` serving - an unauthenticated Agent-execution API on a public interface, so the narrower - correction was agreed instead. -- Removed the guard and its two now-unused helpers. Removed the matching guard - from `scripts/start-local-poc.sh` and the required interpolation in - `docker-compose.state-volume.yml`. The schema still rejects a token that cannot - be sent as a bearer credential — non-URL-safe characters, or over 128. -- Replaced rather than deleted the affected assertions. The former - "requires a strong non-placeholder token for every non-loopback bind" now proves - the new contract: `0.0.0.0`, `192.0.2.10`, `127.0.0.1` and `::` all start with an - empty token across all three `NODE_ENV` values, and a short or placeholder value - is carried verbatim instead of refused. A second case keeps the bearer-shape - rejections. The reviewer-clone test keeps its non-mutation assertions without the - removed throw. -- Verified on the affected host with **no token set at all**. The launcher logged - `No APP_AUTH_TOKEN is set, so the control plane will not require one`, the - control plane started, `/api/auth` returned `{"required":false}`, and - `GET /api/system` with no `Authorization` header returned `200`. Resolved - configuration inside the container was `executionMode: "live"`, - `authTokenLength: 0`, `host: 0.0.0.0` — so the Codex Runtime preflight still - passes with the boundary disabled. The smoke volume was removed afterwards. -- Enforcement with a token configured is unchanged: `config.test.ts` and - `app.test.ts` passed 52/52, including the 401 paths. -- Documentation updated to describe the token as optional in `README.md`, - `.env.example`, `docs/LOCAL_POC.md`, `docs/SHEPHERD.md` and - `docker-compose.state-volume.yml`. `SECURITY.md` now states plainly that a - server started without a token serves every route to anyone who can reach the - port, and that a token must be set before exposing it beyond the local machine, - including ECS. Prior log entries are left as written; they remain true for the - commits they name. - -## 2026-08-30 — OPS-06 affected-host cause reproduced and corrected - -Branch `fix/47-ops-06-container-state-volume`, PR #56, on the affected host -(macOS, Docker Desktop 29.5.3, LinuxKit 6.12 aarch64, `volc-agent-runtime:local`). - -- Reproduced the reported failure from the repository's own generated preflight - arguments: `docker create` succeeded, `docker start --attach` exited 49, and the - only Runtime stderr was - `sh: 1: cannot create /workspace/.shepherd-sandbox-probe: Permission denied`. -- Isolated the cause by holding image, Codex configuration and container flags - fixed and varying only the workspace filesystem. Inside - `codex sandbox linux --full-auto`, an ext4 named volume, the image overlayfs and - a tmpfs all permitted `: > file`; the macOS host share denied it. On that share - `mkdir`, `rmdir` and `unlink` succeeded while `open()` for read, write, create - and truncate returned `EACCES`, and the file was left behind by the denied - create — Landlock grants `MAKE_REG` there but not `WRITE_FILE`. -- `strace -f -y` on both a passing and a failing run showed byte-identical - `landlock_create_ruleset`, five `landlock_add_rule` calls over the same paths - (`/`, `/dev/null`, `/codex-home/memories`, `/workspace`, `/tmp`) and - `landlock_restrict_self`, all returning 0. Only the subsequent - `openat(AT_FDCWD, "w1", O_WRONLY|O_CREAT|O_TRUNC)` differed: `-1 EACCES` versus a - file descriptor. The ruleset is identical; the filesystem cannot enforce it. -- Confirmed the independent `touch` probe defect: on the same share `touch` - exited 0 **and created the file**, while `: >` in the same shell was denied. -- Verified the correction on the same host. With - `--mount type=volume,...,volume-subpath=...,volume-nocopy=true`, workspace read, - workspace write and a full `git init`/`add`/`commit` all succeeded inside the - sandbox while the private `CODEX_HOME` write stayed denied. The **unmodified** - preflight script then printed `codex-cli 0.111.0` and - `SHEPHERD_RUNTIME_PREFLIGHT_OK` with exit 0. -- Established that `volume-nocopy` is mandatory. Without it an empty subpath is - served with the image's own `/workspace` ownership: `ls -ldn` reported `0 0` - through the mount while the directory on the volume was `10001 10001`, and a - plain non-sandbox write was already denied. With `volume-nocopy=true` ownership - was preserved and both the plain write and the sandboxed write succeeded. -- Proved the full loop: a non-root containerized control plane (uid 10001, - joined to the engine socket group) created its workspace and private home, - derived the state-relative subpaths, started the sibling Runtime container, - and read back the file the sandboxed Agent had written. -- Repository gate on this host is **not green, before or after the change**. - Pristine `origin/main` (`c0802e8`) failed `npm run test -w @launchpad/server` - with 39 failed / 696 passed; the branch failed with 61 failed / 686 passed. - Every failure in both runs is `Test timed out` or a `vi.waitFor` state - assertion behind one, and the `main` failure set is a strict subset of the - branch set — this machine is too slow to run the suite in parallel with the - container engine, not a regression. Run serially - (`--no-file-parallelism --maxWorkers=1`), the five heaviest files passed - **167/168** on the branch in 434s; the single failure, - `expected 'resolving' to be 'attention_required'`, is the same timing flake - observed on pristine `main`. `npm run typecheck` and `npm run build` passed. - `npm run test:e2e:harness:unit` passed 6/7; the one failure is the documented - macOS non-canonical `os.tmpdir()` issue in a fixture this change does not - touch, and the fake-container-engine test pinning the read-only bind mount - passed. A green full gate on a Linux host remains required before integration. -- Ran the default `host-bind` launch on the affected host after the probe - correction. It now stops at startup with - `Codex workspace-write Landlock cannot govern the configured workspace in the - hardened non-root Runtime`, naming `LOCAL_POC_STATE_MODE=container-volume`, - instead of passing a false gate and crashing later inside the server. The - mount-and-write probe passed in the same run, which is the expected split: a - plain write to the host share succeeds while the Landlock-governed write does - not. -- Ran the `container-volume` startup smoke on the affected host with a one-off - token supplied in the environment; the repository `.env` was not modified. The - first attempt exposed a real wiring defect: the launcher validated its resolved - `APP_AUTH_TOKEN` while the control plane re-read a different value from - `env_file`, so the container crash-looped on - `APP_AUTH_TOKEN must be a non-placeholder token`. Corrected by pinning - `APP_AUTH_TOKEN` in the compose `environment:` block from the caller's resolved - value and exporting it from the launcher, so the validated token is the token - the server receives. -- After that correction the profile came up on the first try: both preflight - probes passed in volume mode, the control-plane image built, and - `GET /api/health` returned `{"ok":true,"service":"volc-agent-launchpad"}` with - the port published to `127.0.0.1` only. Resolved configuration inside the - running container was `executionMode: "live"`, `runtimeProvider: "container"`, - `containerStateRoot: /app/state`, `codexSandboxMode: workspace-write`. Live mode - means `CodexShepherdExecutor.preflight()` ran and passed inside the server — - the exact call that previously threw - `Live Shepherd Runtime preflight failed (stage=container_start - reason=sandbox_probe_failed)`. The smoke volume was removed afterwards. -- No live or model call ran; no Mission was started. -## 2026-08-30 — default general Agent Contract-intake candidate - -- Ownership: issue #58, branch `feat/58-general-contract-intake`, stacked draft - PR #59 on private-chat PR #57. No protected-main integration is claimed. -- Shepherd-managed routing is now the default in every Agent chat; the existing - toggle remains a direct-Playground escape hatch. The fixed Frontend/Backend auth - prompts retain their two-Contract collision path. -- Other prompts enter a constrained deterministic planner. It accepts 1–8 bounded - messages, requires a concrete change, writable project-relative artifact(s), and - explicit `Acceptance:` evidence. Missing or authority-incompatible fields produce - a durable in-chat clarification and create no Mission, Contract, or Plane. -- A confirmed draft creates one authority-intersected Contract in a sentinel-bound - managed project seeded from a secret-filtered Agent snapshot. The existing - Git-free executor/import path, strict manifest ingestion and exact-diff authority - check run unchanged. A registry-owned static check independently verifies the - declared artifacts; the verified Contract is merged into an integration Plane, - independently re-verified, promoted by expected-head compare-and-swap, and only - its declared artifacts are synchronized back to the Agent workspace. -- Causal tests cover planner bounds/normalization/authority, secret-filtered project - initialization, verifier policy, symlink-safe artifact sync, deterministic output, - clarification idempotency/conflict, absence of premature executable state, final - verified lifecycle, promotion and workspace output. Security regressions additionally - reject negated/compound Acceptance criteria, retain post-CAS evidence across a - one-shot final persistence fault/restart, and roll back an exact journaled policy - commit when its Project head was not persisted. The literal `npm run check` passed: - launcher 3/3, Server 771 passed plus two opt-in skips, Web 18/18, strict - production/test type checks and both builds. -- Authenticated Playwright passed 6/6 across exact `1280x800` and `1440x900`: - unchanged user-created auth collision, default route plus direct opt-out, general - clarification and follow-up, verified promotion/workspace output, human-review - fallback, stale-Agent-status reconciliation and no document overflow. A first - focused E2E run correctly exposed that the fake verifier allowlist lacked the new - registry-owned check; adding that exact static check made every rerun pass. -- No live/model request was made. Independent UI and security re-reviews returned - ready with no High/Medium finding; integration against protected `main` remains - pending. The final deterministic browser rerun - passed 6/6 after the direct-Playground fixture was explicitly configured with its - bounded fake Agent Runtime; the direct request returned 202 and emitted no managed - Contract request. -## 2026-08-30 — private Agent-chat Contract candidate - -- Ownership: issue #55, branch `feat/55-private-chat-contracts`, draft PR #57; - implementation `6018352`, reviewed correction head `e1fe067`. Protected-main - integration remains pending. -- Frontend and Backend Agents now have an explicit **Route through Shepherd** mode - in their existing private chat. Bounded server parsing accepts exactly one - HttpOnly-cookie assignment and one bearer-JWT assignment; ambiguous, absent, - same-role, same-transport, stopped/busy, authority-incompatible and reused-ID - inputs fail closed. Legacy Playground behavior remains available when the mode is - off. -- The first exact bounded prompt and the second prompt are durable before their - respective filesystem/Mission work. A restart can resume intake; the second - prompt idempotently creates one Mission whose two Contract objectives are the - original user assignments. The existing isolated Contract Planes, independent - verification, integration, semantic collision, same-base resolution candidates, - final re-verification and protected promotion remain authoritative. -- The old Shepherd Agent/transport selectors and their unused CSS were removed. - Private chat shows collection and verified Contract status. A route-mode identity - regression prevents Frontend state leaking into a Generalist or Backend. Narrow - `/shepherd` flex containment keeps the full fallback composer in viewport while - preserving designated internal panel scrolling and the accepted theme. -- Verification found and corrected three causal defects. The first restart RED was - `Shepherd startup artifact reconciliation failed` because a pending Project lacked - its trusted Plane-root sentinel. UI review then reproduced hidden route state on a - Generalist and main-container Y overflow. Security review found Agent deletion - could archive a workspace while private intake persisted a reference or created - pre-mutation Project artifacts. Final intake/delete operations serialize through - the Store queue; actual barrier coverage proves both orderings keep Agent, - workspace, Project and prompt state consistent and restartable. -- Final literal `npm run check` passed: launcher 3/3; Server 742 passed plus two - explicit opt-in skips; Web 18/18; strict production/test type checks and both - production builds passed. Focused security/intake regressions passed 3/3. -- Final authenticated Playwright passed 4/4 at exact `1280x800` and `1440x900`: - private Frontend prompt, Generalist isolation, private Backend prompt, verified - private status, exact Contract assignment, complete evidence, collision/candidate - outcome, human-review fallback, keyboard opt-in, and document/main-container - no-overflow/composer-in-viewport checks. A source-only rerun before rebuilding the - production Web bundle served stale assets and failed the new identity assertion; - the explicit build and every final rerun passed. -- Independent security and UI re-reviews passed with no remaining blocker. The - configured custom reviewer roles were unavailable, so repository-instructed - read-only fallback reviewers were used. No live/model request ran; this evidence - covers deterministic local behavior only. The separate Project Group `@Agent` - journey remains issue #41. - -## 2026-08-30 — protected-main promotion and exact post-merge gate - -- PR #52 passed hosted `Node 22 / npm run check` and merged the documentation and - workflow candidate into retained campaign branch `mock-main` at `017e07e`. -- Promotion PR #53 was mergeable with no main-only commit. Both hosted checks— - `Required checks` and `Node 22 / npm run check`—passed before it merged into - protected `main` at `5ccd0f143146b2c303be90dc1337e02bb6986459`. -- On that exact protected-main merge, literal `npm run check` passed locally: - launcher 3/3; Server 739 passed plus two explicit opt-in skips; Web 18/18; strict - production/test type checks and both production builds passed. -- The campaign branch was intentionally retained. This follow-up changes only - promotion provenance in documentation; it does not change product or UI code. - -## 2026-08-30 — protected-main hackathon integration candidate - -- Base: campaign integration merge `005a51e02ab39a995803b4ed3717ee0ee55cae6c`, - which contains the independently reviewed user-selected Contract flow from PR #40. - Branch `docs/hackathon-main-integration` was pushed before edits. -- Active contribution instructions now target protected `main`, require immediate - issue assignment/comment plus an early remote branch, and provide the replacement - navigation path after intentional removal of `HANDOVER.md`. `AGENTS.md`, - `CLAUDE.md`, `CONTRIBUTING.md`, `TASKS.md`, and the active Fixer rules all freeze - visual design and define “minimal” as a complete functionality-preserving fix. -- `SHEPHERD.md` now inventories implemented Track 1 backend capabilities, separates - current evidence from open gates, links the today-feasible work, and records the - dated internal assessment: 82% hackathon completion, 90% core demo readiness, - 85/100 weighted rubric score, 74/100 current winning confidence, and 91/100 - novelty confidence. The deductions and the dependency/rubric weighting method are - explicit; no official-judge or guaranteed-win claim is made. -- Read-only GitHub audit found only two stale open issues. #35 (MR-02) and #36 - (CI-01) were closed as completed with their integrated evidence; none was deleted. - Unassigned, dependency-aware issues #41–#51 now cover only the minimum - hackathon-ready cut and carry `hackathon-ready` plus `priority:P0` labels. -- The manual runbook now creates/selects user Frontend and Backend Agents, displays - both complete Contracts, explains source versus competing Resolution Planes, and - verifies the internal human-review ticket. Project Group's unfinished behavior - remains explicitly open. -- `docs/PRD.md` remained byte-identical at SHA-256 - `478ca55f201b52ba75c5c2134e0eef9d8ded4eb74f6a35d32062927413a70ced`. - All local Markdown links resolved across 15 files and `git diff --check` passed. -- Literal `npm run check` passed on the candidate: launcher 3/3; Server 739 passed - plus two explicit opt-in skips; Web 18/18; strict production/test type checks and - both builds passed. Neither `actionlint` nor the Ruby YAML fallback exists in this - environment, so no local parser pass is claimed for the one-line workflow trigger - removal; the hosted required check remains the merge gate. -- No product source, runtime, schema, dependency, secret, live/model request, or UI - implementation changed in this documentation/workflow candidate. - -## 2026-08-30 — user-selected Agent Contract demo candidate - -- Base: `mock-main` at `6fddb0e84608a8614f745bcfdcd92b091e4f7fdf`. - Branch: `feat/demo-agent-contract-flow`, pushed before edits. -- The existing Shepherd Mission composer can now assign one ready user-created - Frontend Agent and one ready user-created Backend Agent to opposite typed auth - transports. Reservation and authority are revalidated in the final serialized - mutation; Mission request idempotency is fingerprinted and persisted atomically - with the Mission, Contracts and originating human message. -- Every Contract-linked stream event can disclose the complete bounded Execution - Contract: identity and assignment, objective, dependencies, semantic contract, - contextual inputs, scoped authority, artifacts, acceptance checks and profile, - tie-breakers, manifest path and timestamps. Existing evidence remains alongside - it; public responses do not expose the server-only request fingerprint. -- Collision evidence explains that both Resolution Planes fork from the same - immutable integration commit and compete by independent project-invariant - verification. Non-automatic or non-unique outcomes show a truthful internal - human-review ticket with the full durable collision/Mission reference; no - external issue-tracker integration is claimed. -- Causal tests cover selected Agents with reversed transports, concurrent and - restart-safe idempotency, assignment mismatch, the stop-versus-reservation race, - full Contract rendering and human-review behavior. Literal `npm run check` - passed launcher 3/3, Server 739 passed plus two explicit opt-in skips, Web 18/18, - all strict production/test typechecks and both builds. -- The focused real-browser gate passed 4/4: normal completion and forced human - review at exact `1280x800` and `1440x900`, including Agent creation/selection, - exact Contract assignment/objectives, both Resolution Planes, full evidence, - keyboard focus and no document/body overflow. Independent UI review passed at - 5.31:1 minimum contrast; independent security re-review passed with no remaining - scoped blocker. After the final ticket-label wording edit, the first browser - invocation served the prior production bundle: both unchanged completion cases - passed and both new-label assertions failed. Rebuilding the Web bundle and - repeating the exact command passed 4/4. No live/model request was made. -- This candidate does not claim completion of `GC-03/04`: the separate Project - Group `@Agent` click/type → Contract → Agent-summary journey remains open. - -## 2026-08-30 — DEL-04 documentation consolidation candidate - -- Base: `mock-main` at `43fb5d3f40a0b90a744aec70b2ab02a8adab5ed9`. -- Branch: `docs/hackathon-doc-consolidation`, pushed before edits as the ownership - signal. Documentation and root navigation are the only owned surfaces. -- `TASKS.md` is now the canonical entrypoint and explicitly separates the minimum - hackathon-ready cut from additional full-PRD work. Its ledger was mechanically - recounted as 69 work items: 40 fully audited and 29 not fully audited. -- The current startup/manual demo SOP moved to `LOCAL_POC.md`; current as-built - behavior remains in `SHEPHERD.md`; the competition brief was reduced to Track 1 - and renamed `TECHJAM.md`; optional deployment essentials moved into `README.md`. -- Obsolete `HANDOVER.md`, `DEPLOYMENT.md`, and the five-track source digest were - removed only after all actionable repository links were redirected. Historical - mentions inside this immutable chronological log were intentionally retained. -- `PRD.md` remained byte-identical with SHA-256 - `478ca55f201b52ba75c5c2134e0eef9d8ded4eb74f6a35d32062927413a70ced`. -- A repository-local link checker inspected 15 retained Markdown files; every local - target resolved. `TECHJAM.md` contains no Track 2–5 section, `git diff --check` - passed, and the stale deviation/browser/count statements were reconciled. -- Literal `npm run check` passed: launcher 3/3; Server 27 files passed with two - explicit opt-in files skipped and 736 tests passed with two skipped; Web 3 files - and 17/17 tests passed; strict production/test typechecks passed; Web production - build transformed 41 modules; Server production build passed. -- No product, UI, schema, dependency, Runtime, secret, or live-model behavior changed; - no live/model request was made. -- Independent read-only review rejected five stale/incomplete statements; the exact - E2E-02, branch identity, authenticated deployment verification, link-count, and - veLinux mapping corrections were applied and the re-review passed with no blocker. -- The reviewed commit `5a38d37a210c255781055648c43896597497f50f` was fast-forwarded - into `mock-main`. The post-merge local-link/PRD/task-count/Track-1 checks passed, - literal `npm run check` repeated the 3/3 launcher, 736-pass Server, 17/17 Web, - strict typecheck, and two-build result, and `origin/mock-main` was verified at the - same exact commit before this bookkeeping update. - -## 2026-08-30 — F-06 and TST-21–24 integrated and audited - -Auditor integrated exact corrected chain -`7d51ec69d1ac6c807d42e872b4616b6357967f48` onto `mock-main`. Independent -evidence passed TST-23 20/20, TST-24 30/30, Store 70/70, and combined Store/ -recovery/service 133/133. Literal `npm run check` passed launcher 3/3, Server -736 passed plus two explicit opt-in skips, Web 17/17, strict production/test -typechecks and both builds. Independent final security review returned 0 High and -0 Medium; all prior journal-read and sensitive-temp crash-prefix blockers closed. -Hosted Node 22 Required checks run `33286090602` passed the implementation head. - -The accepted Low residual is the documented same-UID parent-directory swap or -concurrent independent-Store race under the existing single-process managed-root -threat model. Windows narrowly lacks Unix directory-fsync/mode guarantees; Unix and -macOS errors are not swallowed. F-06 is explicitly representative of the Mission -running-to-verifying boundary and does not claim arbitrary store-mutation recovery. -No live/model/UI call was needed. - -## 2026-08-30 — TST-24 Fixer candidate restores the TST-22/F-06 full gate - -After visible persistence-error attention, the exact fixture now uses bounded -`vi.waitFor` on `store.persistenceRecoveryIntent()` becoming null and then awaits a -test-owned no-op `store.mutate` sentinel. This proves recovery-journal unlink, -directory sync, in-memory intent clearing and all earlier original-store queue work -have finished before durable reads, cancellation, reset or root teardown. No sleep, -retry, timeout increase, suppression, cleanup catch or product change was added. - -The exact row passed 30/30. Combined Store/recovery/service coverage including -TST-23 passed 138/138 without an unhandled rejection or retained artifact. Two -consecutive literal `npm run check` executions each passed launcher 3/3; Server 736 -with two explicitly opt-in skips; Web 17/17; strict production/test typechecks; and -both builds. TST-22's prior independent security verdict remains 0 High / 0 Medium -with only the documented same-UID parent-directory swap Low. Auditor integration -and hosted evidence remain pending. - -## 2026-08-30 — TST-24 reconciliation-quiescence RED preserved - -Auditor tested exact corrected chain -`7d8483a3ef5998002dab6331bd53532640f953ec`. The transient Mission verification -persistence row passed once, then passed 18 contention repetitions before failing -iteration 19. The Mission was visibly `attention_required`, but the complete -recovery intent remained non-null; a late Store operation also rejected with fixed -`recovery_pending`. - -Source ordering confirms `mutateForPersistenceReconciliation` publishes attention -before `clearPersistenceRecoveryIntent` finishes journal unlink, parent-directory -sync and in-memory intent clearing. The test must wait for that exact intent to clear -and queue a test-owned no-op mutation sentinel on the original Store before durable/ -reload/cancel/teardown work. No sleep, retry, timeout, suppression, assertion -weakening or product edit is authorized. No `mock-main`, hosted, live, model or UI -action occurred. - -## 2026-08-30 — TST-23 Fixer candidate - -The TST-17 Plane-unwind attention row now awaits one test-owned no-op -`store.mutate` sentinel after observing `attention_required` and before reading -durable reload state. Because Store operations are serialized, this joins all prior -original-store persistence without sleeping, retrying, suppressing a rejection or -changing product behavior. The exact row passed 20/20; combined Store, recovery and -service coverage passed 138/138 with no unhandled rejection or retained root/temp. - -The first literal full gate advanced past TST-23 but stopped in a distinct transient -Mission-verification persistence row: Server reported 735 passed, two opt-in skips -and one failure because the row observed attention before its recovery intent was -cleared. That row passed 10/10 isolated, establishing contention sensitivity rather -than closure. It is outside TST-23 ownership and is not edited or hidden here; the -TST-22/F-06 full gate remains blocked pending separately owned evidence/correction. - -## 2026-08-30 — TST-23 independently reproduced on TST-22 checkpoint - -On exact checkpoint `619e3ddd369d2dd8a0ce3b04134c0064c240142e`, Auditor ran only -`fails closed with bounded attention evidence when initial Plane unwind fails`. -Its assertions passed 1/1, but the command failed with one unhandled cause-free -`PersistenceBoundaryError(cleanup, cleanup_pending)` from `JsonStore.persist` on -the original Store queue. Source ordering confirms the row observes service memory, -then initializes a second Store before joining that queue. The corrected TST-22 -marker authority is correctly fail-closed under concurrent independent access. - -TST-23 therefore requires only a test-owned no-op Store sentinel after attention -and before reload/teardown, with immediate rejection observation/finally join if -needed. No sleep/retry/timeout/suppression/cleanup catch or production change is -permitted. No `mock-main` push or full/hosted/live/model/UI gate is claimed. - -## 2026-08-30 — TST-22 Fixer candidate: crash-safe managed-temp state machine - -The correction replaces post-failure temp registration with pre-registration: -before either database or recovery-journal sensitive temp is opened, a small fixed -schema containing only kind, strict temp basename and publication UUID is written, -file-synced, atomically published and directory-synced. All markers and sensitive -temps live in an adjacent fixed-name private directory validated as a current-owner -regular directory with mode `0700` and no symlink. Database/journal rename remains -on the same filesystem; the target parent and private directory are synced at their -respective transitions. - -One idempotent cleanup path handles marker+temp and marker+missing-temp states, -preserves the primary database/journal failure with bounded `cleanupPending`, and -consumes any prior marker before another same-instance write can publish. Marker -publication files are opened no-follow and validated through the same handle; -schema-bound UUID provenance is required before deletion. General-parent -lookalikes, malformed foreign files, hostile directory/marker/publication symlinks -and outside canaries remain untouched. - -Observed focused evidence: strict test typecheck passed; Store passed 70/70; the -selected Store/recovery/service slice passed 134/134 before the private-directory -hardening and Store returned 70/70 after it. The matrix includes 12 publication -checkpoints, eight removal checkpoints, primary/journal double faults, -same-instance retry, two fresh restarts, missing-temp idempotence and repeated-write -no-accumulation. Independent final security review found 0 High / 0 Medium; the -documented Low residual is a same-UID parent-directory swap race because Node lacks -portable `openat`-style anchored operations, and such an actor already controls the -database parent. - -The post-hardening adjacent run exposed a separate deterministic test-quiescence -defect in the TST-17 cleanup-double-fault row: 138/138 assertions passed but Vitest -reported a late unhandled Store rejection; isolated stress failed on repetition 2. -The row observes in-memory `attention_required` then starts a second `JsonStore` -before the original Store queue is quiescent. The private marker correctly fails -closed during that overlap. This is not hidden as TST-22 success; a test-owned Store -queue sentinel is required before reload/teardown. The first post-hardening literal -gate likewise stopped at Server tests (735 passed, two opt-in skips, one teardown -failure). Auditor integration/hosted evidence remains pending. - -## 2026-08-30 — F-06/TST-21 correction blocked by TST-22 marker lifecycle - -Auditor fast-forwarded exact corrected candidate -`f65681aa48a3bfd384d36fc9320ea63e045d3261` only on the audit ownership branch. -Store passed 43/43; the selected persistence/journal/Plane slice passed 21/21; and -the previously order-sensitive initial Plane-unwind attention row passed 20/20, so -no causal lifecycle or fault-seam-reset defect reproduced there. - -The recovery-intent open/stat/read/close boundary is now fixed and cause-free, but -the temp-marker protocol remains Medium-blocked. Auditor changed only the existing -double-fault test's recovery instance for a causal probe: same-instance recovery -failed database and journal rows 2/2 with `cleanup_pending`. The in-memory pass -removes the temp without its marker, then marker scanning rejects the missing temp. -Independent security re-review also confirmed unhandled crash prefixes: marker -publication failure can leave an unmarked full-state temp; temp removal followed by -marker removal failure or a partial marker can permanently block restart. The probe -edit was reverted byte-clean. TST-22 records the required idempotent state-machine -boundary. No product commit was pushed to `mock-main`; full/hosted/live/UI/model -gates were not claimed after the Medium blocker. - -## 2026-08-30 — TST-21 Fixer candidate - -The correction closes recovery intent open/stat/read/close operational faults as -fixed cause-free `PersistenceBoundaryError(recovery_intent_read, unavailable)` while -retaining fixed schema/symlink/size/owner validation. Database and journal UUID temps -are registered in memory; a primary plus temp-unlink double fault preserves the -primary failure and durably marks the exact artifact. Before state becomes observable on -restart, only a strict matching marker is considered, then fixed content, lstat -regular-file/no-symlink, owner, mode and database/journal size limits are enforced -before exact unlink and parent-directory sync. Two restart rows prove removal; a matching marker symlink remains untouched with its outside -canary unchanged. Two marker-write triple-fault rows preserve the original primary/ -journal identity, expose only bounded `cleanupPending`, and consume exact in-memory -ownership on same-instance initialize. Focused store coverage passed 43/43; Auditor remains pending. -The final literal gate passed launcher 3/3, Server 709 passed plus two opt-in skips, -Web 17/17 and both builds. Independent final security review approved with 0 High / -0 Medium; Low residuals are same-UID data-directory races and fail-closed handling -when an external actor removes an exact pending temp. - -## 2026-08-30 — F-06 audit blocked by TST-21 persistence-boundary defects - -Auditor replayed exact Worker candidate -`6bc67b3272b530897149aa5a9507e46c2393453a` locally as `1a3be1a` over canonical -`mock-main` `19876cb740d80c2e868d401f4b5f6164e20ff330`. The focused persistence/journal -selection passed once (18 passed, 62 skipped) and then passed 10/10 repeated -invocations. The exact-byte digest, bounded schema, no-follow/size/mode/owner -checks, pending-recovery mutation/event lock, representative running-to-verifying -scope, and immediate/two-restart reconciliation design were inspected; no broader -arbitrary-store recovery claim is accepted. - -Integration is blocked. Independent read-only security review found two Medium -gaps outside the existing single-stage fault matrix. First, non-`ENOENT`/`ELOOP` -journal open/stat/read failures escape initialization as raw native errors, including -configured path and OS diagnostic. Second, database or journal primary failure plus -temp-unlink failure suppresses the cleanup fault; a database temp can retain the -complete serialized state with no tracking/restart reconciliation, and repetitions -can accumulate sensitive artifacts. Existing tests have no unlink fault checkpoint -or native read-fault rows. These are recorded as `TST-21`; no F-06 product commit was -pushed to `mock-main`, and no full/hosted gate or live/model/UI call was claimed. - -## 2026-08-30 — TST-20 audited; F-05 final stability restored - -Exact test-only `cdcfa95` passed Auditor row stress 30/30, service/store 56/56, -strict test types and literal `npm run check` (launcher 3/3, Server 676 passed plus -two opt-in skips, Web 17/17, both builds). Rejection observation attaches before the -gates; unconditional `finally` releases and joins the blocked backend checkpoint, -then a test-owned store mutation drains the persistence queue before teardown. No -setImmediate, sleep, retry, timeout increase, suppression, cleanup catch, assertion -weakening or product edit exists. Hosted Node 22 implementation run `33282600354` -passed. F-05/TST18/19 scoped 100% is restored pending the final docs-head hosted gate. - -## 2026-08-30 — TST-20 Fixer candidate - -The hosted RED returned from the test while its released backend checkpoint and store -queue were not owned through teardown. The test-only correction attaches Mission -rejection observation immediately, always releases and joins the exact backend -checkpoint lifecycle, and then awaits a test-owned no-op `store.mutate` sentinel. -The prior `setImmediate` timing assumption is removed. The exact fail-fast/no-sibling- -verifier/state/no-promotion row passed 20/20 locally; hosted Auditor evidence remains -pending. No product, timeout, retry, cleanup suppression or assertion change was made. -The service/store slice passed 56/56 and two literal local gates each passed launcher -3/3, Server 676 passed plus two opt-in skips, Web 17/17 and both builds. - -## 2026-08-30 — F-05 implementation green; final hosted blocked by TST-20 - -Implementation hosted run `33281977834` passed exact `f8d7f71`. Final docs-head run -`33282108035` failed with an unhandled `JsonStore.persist` rename ENOENT beneath the -case root for service test `does not invoke a sibling verifier after infrastructure -terminalization`. The fail-fast Mission promise had returned, the test released its -blocked sibling and waited only one event-loop turn, and teardown removed the root -while late sibling/store persistence remained active. Exact targeted candidate- -cleanup repeats 10/10 did not reproduce the earlier local contention symptom; this -hosted failure is preserved separately as TST-20. F-05/TST18/19 product/security -evidence remains green, but final hosted I and scoped 100% are withdrawn until the -test owns and joins the exact sibling lifecycle. No retry was used. - -## 2026-08-30 — F-05 / TST-18–19 audited and integrated - -Exact `f8d7f71` passed the 28-case real-Git suite five consecutive times (140/140), -combined Git/service 72/72, adjacent API/store/state/recovery/executor/verifier -133/133, and literal `npm run check` (launcher 3/3, Server 676 passed plus two opt-in -skips, Web 17/17, both builds). The nine-case identity/cleanup matrix proves clean -ordinary conflict restoration and zero-mutation rejection for detached, sibling- -branch, moved-head, dirty and preexisting-MERGE_HEAD states; target/source refs, -status, MERGE metadata, protected HEAD/canary and downstream state remain unchanged. -Cleanup uncertainty persists bounded attention evidence and cancel→reset exact -resource removal. Independent security review found no High/Medium issue. Hosted -Node 22 run `33281977834` passed. The Low same-host multi-command TOCTOU residual is -documented; no live/model/UI call ran. - -## 2026-08-30 — TST-19 Fixer candidate - -The source-confirmed RED allowed a clean integration checkout on the wrong persisted -branch/head to reach `git merge`. The candidate passes the persisted Plane branch and -head into the Git boundary and, before mutation, proves no `MERGE_HEAD`, clean -porcelain, the exact symbolic branch and exact HEAD. Real-Git rows for detached HEAD, -sibling branch at the same OID, moved head, dirty worktree and preexisting MERGE_HEAD -all return the fixed cause-free cleanup boundary while preserving integration -HEAD/status/all head refs, exact `MERGE_HEAD` metadata and source HEAD. The existing service maps this typed result -to failed integration Plane plus active-project Mission attention, with released -Agents and no candidate/promotion. Independent review reported 0 High / 0 Medium; -the remaining Low local-host TOCTOU window requires an actor with independent write -access and is not a new privilege boundary. Auditor integration remains pending. -Focused identity rows passed 25/25 across five repeats, combined conflict/identity -passed 9/9, and adjacent Git/service/recovery passed 72/72. Two literal final -`npm run check` gates each passed launcher 3/3, Server 676 passed plus two opt-in -skips, Web 17/17 and both builds. - -## 2026-08-30 — TST-18 passes locally; F-05 blocked by TST-19 - -Auditor replayed exact `53c8415`. Focused Git/service passed 67/67; the two service -conflict rows repeated 10/10 invocations (20/20 cases), and adjacent API/store/state/ -recovery/executor/verifier passed 133/133. Enumeration, abort and post-inspection -cleanup rows are fixed/cause-free; ordinary conflict proves absent MERGE_HEAD, clean -status, exact observed pre-head and persisted branch. The attention path retains -truthful cleanup state; an ephemeral cancel-then-reset check removed its exact retained -Plane successfully. The earlier scheduling symptom did not reproduce in 10/10 focused -candidate-cleanup repeats; however one literal full run later failed that pre-existing -candidate-cleanup assertion under contention, so no global-stability claim is made. - -Independent security review found a distinct Medium precondition defect: expected -Plane branch/head are compared only after conflict cleanup, not before merge mutation. -A clean worktree switched to another branch/head can be mutated first. TST-19 requires -pre-mutation identity proof. The candidate was not pushed to `mock-main`. - -## 2026-08-30 — TST-18 Fixer candidate - -The preserved implementation RED showed conflict enumeration/path validation before -abort, accepted abort exit 128, and no combined proof of absent `MERGE_HEAD`, clean -status and unchanged integration HEAD. The candidate makes abort mandatory, validates -and caps paths only afterward, and requires all three post-abort facts. Injected real -conflict rows cover enumeration, abort and inspection failures: each returns the fixed -cause-free cleanup boundary; enumeration/inspection faults leave a clean worktree, -while abort failure truthfully leaves it dirty for operator recovery. The service -persists `git_conflict/integration_cleanup`, a failed integration Plane and an -`attention_required` Mission with active project, verified Contracts, released Agents, -no collision/candidate/promotion and no planted diagnostics. Auditor integration is -still pending. Focused conflict rows passed 4/4, service clean/attention rows 2/2, -and adjacent Git/service/recovery passed 67/67. The final literal `npm run check` -passed launcher 3/3, Server 671 passed plus two opt-in skips, Web 17/17 and both -builds. `npm audit --omit=dev` reported zero vulnerabilities. A read-only security -fallback's initial Medium branch-integrity finding was corrected by also proving the -persisted symbolic branch. Final read-only re-review reported 0 High / 0 Medium and -passed the scoped security boundary. - -## 2026-08-30 — F-05 integration blocked by TST-18 merge-abort precedence - -Candidate `0208713` was replayed onto canonical F-04 docs as `a7b669b`. Auditor -passed ordinary real conflict/path gates 3/3: the ten-file add/add Mission retained a -clean failed integration Plane, bounded count 10 / preview cap 8 / path length 48, -verified Contracts, released Agents, protected HEAD/canary, no candidates/promotion, -reload/API evidence and explicit reset removal; the lower real-Git conflict stayed -clean. No candidate-owned test artifact remained. - -An independent cleanup-double-fault injected a planted exception specifically at -`merge abort` after the real conflict was detected. The exact test reproduced 1/1: -`mergePlane` rejected with the planted raw abort diagnostic instead of returning the -validated conflict, proving original-conflict precedence and clean-retention claims -are not closed. Independent security review additionally found conflict enumeration -and path validation occur before abort, exit 128 is accepted without checking cleanup, -and post-merge inspection does not assert clean/head state. Temporary audit -instrumentation was removed. TST-18 requires a mandatory abort/restore boundary, -bounded primary conflict and truthful cleanup state; F-05 was not pushed to -`mock-main`. - -## 2026-08-30 — F-04 / TST-17 audited and integrated - -Exact implementation `2cef988` passed Auditor focused creation/unwind/double-fault -3/3, real Git 20/20, adjacent service/executor/container/recovery/store/API/state/ -verifier 174/174, and literal `npm run check` (launcher 3/3, Server 665 passed plus -two opt-in skips, Web 17/17, both builds). Successful unwind removes only exact -current-batch durable Plane associations, worktrees and branches; cleanup failure -truthfully retains a failed Plane and interrupted Contract under bounded -`plane_unwind` evidence while Mission keeps the primary `plane_creation` failure. -Agents release, active-project and protected-head invariants hold, and no downstream -work runs. Independent security fallback found no High/Medium issue. Hosted Node 22 -run `33280187821` passed. F-04 and TST-17 are audited scoped 100%. The Low partial- -teardown injection granularity limitation is documented; no live/model/UI call ran. - -## 2026-08-30 — TST-17 transactional initial Plane unwind candidate - -The Fixer preserved the second-of-two RED from `5cc24f5`: one durable ready Plane, -Contract association, worktree and branch survived after the sibling creation failed. -Candidate `fix/f04-plane-unwind` now tracks only Planes successfully created by that -initial batch and destroys them through `PlaneManager` in reverse order before -removing their exact durable records and Contract associations. The original failed -Contract and Mission remain `worktree_creation_failure` / `plane_creation`; Agents -and the terminal Mission's project are released. No downstream executor, verifier, -integration, collision, candidate or promotion path runs, and protected HEAD plus an -outside canary remain unchanged across reload. - -A cleanup double-fault retains the exact failed Plane and interrupted Contract, -releases all Agents, and transitions the Mission to existing nonterminal -`attention_required` / `plane_unwind_failed` while retaining the project as required -by the active-Mission invariant. Fixed cleanup evidence is -`worktree_creation_failure` / `plane_unwind`; it does not claim F-06's reserved -`persistence_error`. Raw cleanup secret/path/OS diagnostics do not reach durable, -reload or public DTO surfaces. Causal rows passed 2/2, service plus real-Git 61/61, -security/F-01/recovery/API adjacency 186/186, strict test types and two literal -checks passed (each: launcher 3/3, Server 665 plus two opt-in skips, Web 17/17 and -both builds). Independent security review found no High/Medium issue; explicit -reload-state and non-busy Agent assertions address its actionable Low notes. No -UI/live/model call ran. Auditor integration remains pending. - -## 2026-08-30 — F-04 integration blocked by TST-17 batch unwind - -The Auditor rebased candidate `d988292` onto canonical docs as `5cc24f5` and -independently passed the focused Contract failure 1/1, real partial-Git rollback 1/1, -both changed suites 59/59, and adjacent executor/container/recovery/store/API/state -125/125. The real-Git case removes the partial worktree and Shepherd branch while -preserving protected HEAD/canary; bounded public failure and candidate-owned temp -cleanup passed. No other-agent artifact was removed. - -A causal second-of-two creation injection failed 1/1: after Plane 1 succeeded and -Plane 2 failed, Mission state was failed but one durable `ready` Plane, its Contract -association, worktree and branch remained. Source tracing confirmed no batch unwind -in `executePreparedMission` or `recordMissionFailure`. Independent security fallback -classified this Medium. The temporary audit test was removed after preserving the -RED; product candidate was not pushed to `mock-main`. TST-17 requires exact -batch-owned durable and physical cleanup without weakening the first-call behavior. - -## 2026-08-30 — F-01/02 and TST-13–16 independently audited and integrated - -Exact implementation `83cc1d0` was pushed to `mock-main`. Auditor verification -passed executor 67/67, combined runner/executor/service 127/127, adjacent API/store/ -container/state/recovery/verifier 66/66, and literal `npm run check` (launcher 3/3, -Server 661 passed plus two explicit opt-in skips, Web 17/17, both builds). Manual -inspection matched all 47 executor-owned filesystem/config expressions to a closed -boundary and all 31 injected call-site/double-fault rows. Independent security -fallback returned READY with no High/Medium issue. Secret/artifact/diff scans were -clean apart from documented placeholders and test canaries. Hosted Node 22 run -`33278994572` is the implementation integration gate. No external/model/UI call ran. -The Low restart-invalid-sentinel residual remains fail-closed and may require manual -operator cleanup; cross-process retry is not claimed. - -## 2026-08-30 — TST-16 complete filesystem boundary candidate - -The Fixer candidate `fix/f-01-02-filesystem-boundary` closes the remaining raw -executor-owned filesystem/config paths with fixed stages for private-root -preparation, private-home and preflight-workspace reconciliation, preflight setup -and execution setup. It preserves existing fixed policy/invariant errors, -containment/symlink checks, typed runtime/cancellation behavior and exact cleanup -precedence; raw native errors are not attached as causes or durable fields. - -The causal matrix injects 31 filesystem/config call-site failures across all stages -failures and proves bounded stage/reason output, exact retained-target cleanup and -retry, including distinct canonical roots/workspace and sentinel handle/post-create -edges. TST-15 retains complementary open/handle/unlink/rm coverage. A frozen source -inventory tracks 47 executor filesystem/config expressions. Contract and candidate tests scan -Error/cause/stack/inspect, console, store/reload, Mission/Contract/Plane/Agent/event, -public DTO and real HTTP response surfaces with opaque, secret, path, errno and OS -canaries; no candidate promotes or moves protected head. Executor 55/55, adjacent -runtime/service/config/verifier 141/141, strict test typecheck and the first literal -`npm run check` passed (launcher 3/3, Server 649 plus two explicit opt-in skips, Web -17/17 and both builds). After the first security review identified missing distinct -call-site evidence, the matrix expanded to 31 rows and the inventory to all 47 calls; -focused 67/67, adjacent 154/154 and two corrected literal checks passed (each: -launcher 3/3, Server 661 plus two skips, Web 17/17 and both builds). Independent -security re-review found no remaining material -issue. No model/live/UI call ran. Independent Auditor integration remains pending. -The existing Low restart-only invalid-sentinel manual-cleanup -residual remains fail-closed and is not claimed as cross-process automatic recovery. - -## 2026-08-30 — TST-15 passes; F-01/02 blocked by complete TST-16 boundary - -The Auditor reviewed exact unintegrated chain `8c7cfc1`. Focused runner/executor/ -service passed 93/93 and API/store/container-service/state-machine/recovery/verifier -adjacency passed 66/66. TST-15's sentinel open/close/unlink and exact interrupted- -artifact rm fault matrix, bounded double-fault precedence, same-process pending- -unlink retry, retained cleanup target and containment behavior passed. - -The mandated full-source review found remaining Medium raw filesystem/config paths: -private-root preparation, reconciliation enumeration, preflight setup and execution -setup still call mkdir/mkdtemp/lstat/readdir/realpath/chmod/config write outside the -closed boundary. These can expose raw startup inspection or persist as unknown -Contract/candidate failures. The chain was not pushed to `mock-main`; broad checks -stopped after the causal boundary was established. TST-16 must complete the fixed -stage policy and fault matrix. A process restart after both sentinel adoption and -unlink failure remains fail-closed but may require operator cleanup; this is a -documented Low availability residual, not a PRD trust-boundary bypass. - -## 2026-08-30 — TST-14 passes; F-01/02 blocked by TST-15 cleanup family - -The Auditor reviewed exact unintegrated chain `3afc452`. Focused runner/executor/ -service passed 81/81; API/store/container-service/state-machine/recovery/verifier -adjacency passed 66/66; literal `npm run check` passed launcher 3/3, Server 615/615 -plus two explicit opt-in skips, Web 17/17, strict test/source types and both builds. -TST-14's success/cancel/timeout/execution precedence, fixed cleanup-only failure, -retained-home reconciliation, retry, Contract/candidate durable/public/Fastify HTTP/ -log canary exclusion and no-promotion/head-move behavior passed. No external call ran. - -The required exhaustive executor review found one remaining Medium cleanup family: -sentinel open carries raw cause; sentinel validation/adoption close can override -bounded primary errors; failed adoption unlink is swallowed; and interrupted-home/ -preflight-workspace reconciliation rm failures escape raw. These paths lack causal -fault coverage. The chain was not pushed to `mock-main`; TST-15 requires fixed -bounded precedence, actionable retained-artifact retry and clean startup/log Error -surfaces before integration. - -## 2026-08-30 — F-01/02 + TST-13 remain blocked by TST-14 cleanup path - -The Auditor reviewed exact corrected chain `c7b5175`. Focused runner/executor/ -service passed 75/75; API/store/container-service/state-machine/recovery/verifier -adjacency passed 66/66; literal `npm run check` passed launcher 3/3, Server 609/609 -plus two explicit opt-in skips, Web 17/17, strict test/source types and both builds. -TST-13 successfully bounded parsed stdout/stderr, create/start/spawn/container- -cleanup and hostile typed fields across Contract and candidate durable/public paths; -candidate failure retained attention/no-promotion/protected-head behavior. No -live/model/UI call ran. - -Independent exhaustive security fallback found a separate Medium defect: executor -execution-private-home `rm()` runs directly in `finally`. Its raw exception can -leak path/OS detail and override typed timeout/execution or cancellation identity. -That path is not covered by TST-12 preflight or runner container cleanup tests. The -chain was not pushed to `mock-main`; TST-14 requires bounded cleanup precedence and -opaque-canary durable/public regression coverage before integration. - -## 2026-08-30 — F-01/02 integration blocked by TST-13 stderr exposure - -The Auditor reviewed exact unintegrated candidate `685e4ff`. Focused runner, -executor and service passed 72/72; API/store/container-service/state-machine/ -recovery/verifier adjacency passed 66/66; literal `npm run check` passed launcher -3/3, Server 606/606 plus two explicit opt-in skips, Web 17/17, strict test/source -types and both builds. Typed timeout/execution identity, untyped unknown, -cancellation precedence, durable state codes, ownership release and no-promotion -behavior were correct. No live/model/UI call ran. - -Independent security fallback found one Medium defect: arbitrary parsed Runtime -error/stderr remains in `RuntimeExecutionError.message`; bounded secret/path -redaction does not remove opaque attacker/runtime-controlled text, which is then -persisted and publicly exposed through Contract, Plane, Mission, Agent, event, -reload and DTO surfaces. F-01/02 was not pushed to `mock-main`. TST-13 requires a -fixed public execution message plus a causal opaque-stderr canary across the full -runner → executor → service boundary before integration. - -## 2026-08-30 — OPS-06 diagnostics integrated; TST-12 audited - -The Auditor integrated exact corrected chain `68dbd59` into `mock-main`. Focused -runner/executor/config/service/live-runtime tests passed 95 with one explicit live -skip. Literal `npm run check` passed launcher 3/3, Server 602/602 plus two explicit -opt-in skips, Web 17/17, strict test/source types and both builds. Hosted Node 22 -required-check run `33274769957` passed. - -Independent security fallback returned READY with no finding. The planted cleanup -fault is absent from message, String, stack, deep inspection, JSON and cause -surfaces; private-home cleanup continues, the preflight cache resets and a clean -retry succeeds. Typed diagnostics, non-root/private-home/network/version gates, -output bound, secret exclusion and owner-scoped cleanup remain fail-closed. No -live/model call ran. TST-12 is closed at scoped 100%; OPS-06 has `T,A,C,S,I` -evidence, but affected collaborator/macOS `L` remains explicitly unverified and no -macOS compatibility claim is made. - -## 2026-08-30 — TST-12 executor preflight redaction candidate - -The Fixer reproduced the source-confirmed Medium leak on exact Auditor evidence -`ed3ceb6`: an injected cleanup failure containing planted secret, private macOS -path and OS diagnostic text emerged unchanged as the uncaught executor preflight -rejection's `Error.cause`. Inspection-capable startup handling could therefore -expose detail despite the fixed outer message. - -The minimal executor correction removes the raw cause and rejects with only -`Live Shepherd Runtime preflight failed (stage=cleanup reason=cleanup_failed)`. -The causal regression checks the Error message, String conversion, stack, -`util.inspect`, JSON serialization and cause inspection; none contains the planted -detail. Cleanup remains fail-closed, both mount removals are still attempted, the -cached failure permits a bounded retry, and the existing primary container-start -stage/reason assertion is unchanged. No runner mapping, non-root/read-only-home, -socket-denial, exact-version, output-cap, owner cleanup, fallback, UI or dependency -behavior changed. - -Focused cleanup/primary rows passed 3/3. Adjacent config, runner, executor, service -and live-runtime coverage passed 95 tests plus one explicit opt-in skip. Strict -Server test typecheck passed. Two literal `npm run check` gates each passed launcher -3/3, Server 602/602 plus two opt-in skips, Web 17/17, strict types and both builds. -Dependency, diff, credential and artifact/root scans were clean. No live, model or -external request ran. Independent security fallback passed executor/runner 34/34 -and strict test typecheck with no High, Medium or Low finding. Affected-macOS -validation and hosted Auditor integration remain required before OPS-06 is audited. - -## 2026-08-30 — OPS-06 integration blocked by TST-12 security finding - -The Auditor rebased candidate `5a1aef9` onto audited `mock-main` as local -`34477e8`. Focused runner/executor tests passed 186/186 and literal `npm run check` -passed launcher 3/3, Server 601/601 plus two explicit opt-in skips, Web 17/17, -strict test/source types and both builds. No live/model request ran. - -Configured `security-reviewer` was unavailable; independent read-only fallback -found one Medium defect. Executor-side preflight mount cleanup attaches raw -`cleanupError` as `Error.cause`; an uncaught startup failure may render a private -path or OS detail even though runner stage/reason diagnostics are closed enums. -The remaining typed mapping, fail-closed sandbox/private-home/non-root/version -gates, output cap, raw stderr discard and owner-scoped cleanup were READY. OPS-06 -was not pushed to `mock-main`; TST-12 requires a fixed bounded executor cleanup -error and planted-path causal regression before integration or macOS validation. - -## 2026-08-30 — OPS-06 bounded live-preflight diagnostics candidate - -The Fixer source-traced the macOS message loss without a live/model request: -`ContainerCodexRunner.isEphemeralAvailable` caught create/start/output/cleanup -failures into one boolean. The candidate uses a closed typed result limited to safe -stage/reason enums. Explicit exits distinguish non-root, private-home denial, -Codex-version and sandbox listen/connect/generic probe classes; unknown engine -failures discard raw content. No path, command, secret, endpoint, prompt, stderr or -fallback is exposed. - -All original gates remain mandatory: non-root, read-only root with bounded tmpfs, -writable workspace, denied private-home write, denied listen/connect, exact version, -bounded output, success marker and owner-scoped cleanup. Cleanup failure overrides -success. Runner/executor tests passed 33/33; config/runner/executor/service/default- -live adjacency passed 87 plus one opt-in skip; production/strict Server typechecks -passed. Independent security review found no issue; its mapping/cleanup coverage -note was closed with final table and cleanup regressions. Two final literal checks -passed: launcher 3/3, Server 601/601 with two opt-in live skips, Web 17/17, strict -test projects and both builds. Diff, credential, dependency and artifact scans -passed before commit. - -No live/model call ran. Mocked Linux/engine evidence is not affected-macOS evidence: -macOS validation and Auditor integration remain pending, with no compatibility -bypass or full OPS-06 claim. - -## 2026-08-30 — E2E-02, TST-10 and TST-11 independently audited - -The Auditor integrated exact corrected chain `338f1e4` into `mock-main` only after -four focused real-backend deterministic journeys passed. Harness units passed -14/14 across those invocations; all 52 screenshot observations were reviewed; -13/13 named claims were visibly supported at both 1280x800 and 1440x900; and all -26 final hashes were unique. Exact stages 06, 09, 10 and 11 visibly showed -promotion start, selected Candidate evidence, distinct final re-verification and -rejected Candidate evidence with positive pane/drawer/browser intersection. - -Full harness passed unit 7/7 plus Chromium 12/12. Literal `npm run check` passed -launcher 3/3, Server 592/592 plus two explicit opt-in skips, Web 17/17, strict -test/source types and both builds. Independent rendered/security fallback returned -READY with no finding; no production UI/CSS, live/model/network request, secret, -private path, residual process/root or tracked artifact was introduced. Hosted -Node 22 required-check run `33273947769` passed on the integrated implementation. -This closes only E2E-02/TST-10/TST-11; `GC-06` and `UI-02` remain unclaimed. - -## 2026-08-30 — TST-11 visible drawer-evidence candidate - -The Fixer reproduced the Auditor's four visual REDs on exact parent `041521b`: -stages 09 and 11 at both viewports showed Plane metadata while their named selected -or rejected Candidate verification summaries remained below the internally -scrolling drawer. DOM text assertions alone did not prove screenshot visibility. - -The test-only correction scrolls each exact evidence summary inside -`.detail-drawer`, asserts positive intersection with both the drawer content -viewport and browser viewport, and then requires that marker visibly present before -capture. It preserves stage 10's ArrowRight/focus/selected final-promotion evidence, -TST-10's promotion-event visibility, Escape/opener focus, and all functional and -security assertions. No production, frontend, CSS, theme, timeout, retry, sleep, -dependency, live or model behavior changed. - -Two focused invocations passed both viewports (4/4 journeys; 52 capture -observations). Manual review of every final image confirmed all 13 named semantic -claims visibly present at both viewports, and all 26 PNGs had unique hashes. Full -harness passed unit 7/7 and Chromium 12/12. Two literal `npm run check` gates each -passed launcher 3/3, Server 592/592 plus two explicit opt-in skips, Web 17/17, -strict server/web test typechecks and both builds. Dependency, cleanup, ignored -artifact, bounded-output, diff and visual-theme review were clean. No external, -live, model or network request ran. Independent hosted Auditor integration remains -required before TST-11 or E2E-02 can be called audited. - -## 2026-08-30 — E2E-02 remains blocked by TST-11 drawer evidence - -The Auditor independently verified TST-10 on exact corrected chain `79da51a`: -two focused invocations passed harness unit 14/14 and Chromium 4/4; each corpus had -26/26 unique hashes; stage 05/06 differed at both viewports; and promotion start -was visibly intersecting the Contract pane. All 52 captures were inspected. Full -harness passed unit 7/7 plus Chromium 12/12. Literal `npm run check` passed launcher -3/3, Server 592/592 plus two explicit opt-in skips, Web 17/17, strict types and -builds. Dependency audit, diff, ignored-artifact, process/root cleanup, UI and -security scans were clean. No live/model/network request ran. - -Before integration, a second independent exhaustive semantic manifest review found -`TST-11`: stage 09 selected-candidate evidence and stage 11 rejected-candidate -evidence show only Plane header/metadata at both 1280x800 and 1440x900. Their DOM -text exists below the internally scrolling drawer but is not in the capture. The -other eleven stage markers are visibly supported in both viewports, and all hashes -are distinct. The minimal correction is test-only scrolling plus drawer/browser -intersection proof for the exact candidate-evidence region before stages 09/11; -stage 10 final evidence and TST-10 must remain intact. Candidate `79da51a` was not -pushed to `mock-main`; E2E-02 and hosted integration remain blocked. - -## 2026-08-30 — TST-10 visible promotion-stage candidate - -The Fixer reproduced the preserved E2E-02 visual RED on the exact candidate plus -Auditor evidence: stage 05 and stage 06 were byte-identical at both 1280x800 and -1440x900. The DOM assertion located a promotion-start event below the internally -scrolling Contract pane, so it did not establish visible screenshot evidence. - -The test-only correction selects the exact persisted `promotion_started` event, -scrolls that card into `.event-list`, asserts positive intersection with both the -pane and browser viewport, and compares the written stage-05/stage-06 PNG bytes. -No production, frontend, CSS, theme, timeout, retry, sleep or dependency changed. - -Two corrected focused invocations passed both viewports (4/4), yielding 52 capture -observations. The final 26-file corpus had 26 distinct hashes and every image was -manually inspected; stage 06 visibly shows “Started final authority and independent -verification gate,” while stage 05 remains a distinct candidate-outcome view. Full -harness passed unit 7/7 and Chromium 12/12. Strict test typecheck and two literal -`npm run check` gates passed, each with launcher 3/3, Server 592/592 plus two -explicit opt-in skips, Web 17/17, strict types and both builds. Dependency, -cleanup, ignored-artifact, bounded-output, diff and visual-theme reviews were clean. -No live/model/network request ran. Independent hosted Auditor integration remains -required before TST-10 or E2E-02 can be called audited. - -## 2026-08-30 — E2E-02 candidate audit blocked by TST-10 visual evidence - -The Auditor reviewed exact candidate -`85550e0a6c6c8f2263375943b22271d72c814c05` without pushing it to -`mock-main`. Its diff is five test/harness/docs files (+420/-2) and contains no -production or UI change. Two focused invocations passed harness unit 14/14 and -Chromium 4/4 across 1280x800 and 1440x900. Full harness passed unit 7/7 plus -Chromium 12/12. Literal `npm run check` passed launcher 3/3, Server 592/592 plus -two explicit opt-in skips, Web 17/17, strict typechecks and both builds; dependency -audit reported zero vulnerabilities. API/Git/store assertions prove the immutable -base, two verified Contracts, exact semantic collision, cookie selection, bearer -rejection, distinct final evidence, protected-main output, preserved loser, -Shepherd-authored Project Group lifecycle, 401 boundary, no network/model use, -source/outside-canary safety and exact reset/process/port/container/root cleanup. - -Independent review found `TST-10`: stage 05 and stage 06 are byte-identical at -both viewports (1280 hash `66159d4f...`; 1440 hash `f35e34c3...`). Although the DOM -assertion proves the promotion-start event exists, it is below the internally -scrollable contract pane and is absent from the named stage-06 capture. Therefore -only 24/26 screenshots are distinct, and “13 material stages” is not yet supported -visually. The minimal correction is confined to scrolling and intersection-proof -inside `shepherd-hero.spec.mjs`; no product/UI/theme change, wait inflation or -assertion weakening is authorized. E2E-02 remains blocked and unintegrated. No -live/model request ran. - -## 2026-08-30 — UI-04 and verifier fixture integrated audit - -The Auditor integrated the bounded verifier fixture, UI-04 frontend correction and -explicit keyboard audit at `412a010`. Independent gates passed: fixture/harness -7/7, Web 17/17, focused Chromium 2/2 twice, full Chromium 10/10 at 1280x800 and -1440x900, and literal `npm run check` with launcher 3/3, Server 592/592 plus two -opt-in skips, Web 17/17, strict types and builds. Screenshots showed the final -promotion marker under the promotion event and distinct candidate/final drawer -tabs without overflow/theme drift. Tab, Space, arrows, Home, End, Enter, Escape, -focus-visible and opener restoration passed. Planted private fields stayed absent -from API/DOM/store/log surfaces. - -The fixture accepts only the exact independent-verifier create/start/rm/ps -protocol and validates network-none, readonly/non-root/capability/resource/tmpfs/ -environment/check allowlists with bounded output and cleanup. It introduces no -production debug or live path. Configured custom security/UI reviewer roles were -unavailable; independent manual fallbacks found no material issue. Dependency and -artifact scans were clean. Hosted Required checks run `33271397185` passed. UI-04 -is audited scoped 100; the fixture prerequisite is integrated, while E2E-02 remains -incomplete and ready for Worker continuation. No live/model call ran. - -## 2026-08-30 — UI-04 truthful promotion evidence candidate - -The Fixer preserved the API/DOM RED, then changed only Shepherd frontend, scoped -styles and tests. Completed promotion events now bind final promotion -re-verification evidence; candidate events retain candidate verification and a -promotion-started event cannot imply final evidence exists. The Resolution Plane -drawer exposes both safe stages through the existing compact filter visual language -with candidate default and one/none fallback. Roving tab focus, arrows/Home/End, -Tab/Enter/Space, focus-visible, drawer initial focus, Escape close, opener restore, -plane reset and drawer-local scrolling are covered. No backend/schema/API/model -authority or live behavior changed. - -Observed local gates: - -- causal Web helper/component 4/4 and full Web 17/17; -- harness unit 7/7; focused Chromium 2/2 and full deterministic Chromium 10/10 - across 1280x800 and 1440x900; -- both final screenshots visually preserved the Launchpad theme/layout with zero - document/body X/Y overflow and readable candidate/final labels; -- planted private evidence ID/stdout/stderr/error values remained absent from body - text and serialized DOM; public API private-field and store/log route-marker scans - passed; -- strict test projects, Web build, and two final literal `npm run check` passes: - launcher 3/3, Server 592/592 with two opt-in live skips, Web 17/17 and both builds; -- independent UI and security re-reviews passed with no remaining finding after - roving tabs, drawer focus lifecycle and inactive-tab contrast were corrected. - -No live/model request ran. Auditor integration/hosted evidence remains pending; -UI-04 is not audited and broader E2E-02 remains incomplete. - -## 2026-08-30 — UI-04 promotion evidence misbinding reproduced - -After final hosted run `33270319210` passed on `3846591`, the Auditor rebased the -bounded fake-container verifier fixture onto an isolated ownership branch and ran -a fresh 1280x800 browser/API reproduction. The real completed candidate contained -distinct verification and promotion evidence IDs. A route-scoped public-response -decoration assigned safe distinct summaries; expanding the real -`promotion_completed` event displayed the verification marker and omitted the -promotion marker. Screenshot inspection confirmed the wrong evidence under the -promotion card without unrelated theme/layout damage. Source inspection confirms -the same unconditional verification selection in `EventEvidence` and -`PlaneDetailDrawer`. Product code was not changed; UI-04 is ready for a minimal UI -selection fix and two-viewport regression. - -## 2026-08-30 — MR-01/MR-03/TST-08/TST-09 integrated audit - -Auditor gates passed at `35ec268`: config 27/27 plus one default live skip, -TST-08 returned 20/20 and paired 40/40, reviewer/service/config 165/165, harness -unit 6/6 and Chromium 8/8, and literal check with launcher 3/3, Server 592/592 -plus two opt-in skips, Web 13/13, strict types and builds. Audit reported zero -vulnerabilities; diff, credential, snapshot and artifact scans were clean. - -The corrected explicit live command was command attempt two overall but made the -only external reviewer request (1/1); the earlier attempt made zero. Bounded result: -`completed findings=2`. The test proved exactly one advisory event, unchanged -deterministic collision/winner/promotion, exact promoted HEAD, store/state secret -absence and live-root cleanup. The 21-byte ignored outcome file was read once and -removed. Hosted Required checks run `33270168480` passed. LIVE-01's reviewer -component is satisfied; its current live Shepherd Mission remains open. - -## 2026-08-30 — TST-09 reviewer-only environment isolation candidate - -Without making another live request, the Fixer corrected only the reviewer live -test and causal config coverage. The test now calls `loadConfig` with a clone of -the real process environment whose sole override is loopback `HOST`. This isolated -test never starts HTTP; actual Ark credentials/model/base URL, SHEPHERD model -resolution, all other configuration, the production reviewer predicate and -sensitive-value filter, and fatal authentication/configuration handling remain -unchanged. The source environment and ignored `.env` are not mutated. - -Observed local gates: - -- causal config plus default-skipped live file: 27 passed, one live test skipped; - the package script still has both opt-in gates, exact test path, one worker, - `bail=1` and retry 0; -- TST-08 exact row 20/20 and paired infrastructure rows 40/40; -- MR-03 reviewer/service/config matrix 165/165 and strict Server test typecheck; -- two literal `npm run check` passes: launcher 3/3, Server 592/592 with two - opt-in live skips, Web 13/13, strict test projects and both builds. - -External reviewer/model/network calls by the Fixer remain **0**. Independent -read-only security review passed with no finding; diff, dependency, credential and -live-artifact scans also passed. Auditor integration and the one explicitly -authorized live gate remain pending; this entry makes no audited or 100% claim. - -## 2026-08-30 — TST-09: MR-03 live gate blocked before egress - -The Auditor independently passed the TST-08 returned row 20/20, paired -infrastructure rows 40/40, MR-03 reviewer/service/config 164/164, adjacent 100/100, -harness unit 6/6 and Chromium 8/8, and literal `npm run check` (launcher 3/3, -Server 591/591 with two opt-in skips, Web 13/13, strict types and builds). Diff, -dependency, credential and exact snapshot-removal checks passed; MR-03 remains -schema/ref bounded and advisory-only. - -After every deterministic gate was green, the explicit live-review command was -invoked exactly once with retry disabled. It failed during `loadConfig`, before -reviewer construction or network egress, because the local non-loopback runtime's -`APP_AUTH_TOKEN` was a placeholder/too short. External reviewer call count was -therefore **0**. No retry was made, no live root remained, and no secret or raw -configuration value was printed. MR-01/MR-03 `L` and integration remain open. - -## 2026-08-30 — TST-08 returned-evidence teardown quiescence candidate - -The Fixer preserved the literal-gate RED and isolated 20/20 scheduling evidence, -then changed only the returned-infrastructure test fixture. It now coordinates both -Contract arrivals, attaches the Mission rejection observer immediately, captures -and validates the exact contained sibling `VerificationRequest.planePath`, proves -rejection precedes removal, arms an exact-basename watcher before release, and -joins the sibling, Mission and removal in `finally`. This closes the fixture's -background-work gap without changing production, MR-03, the cleanup walker, -timeouts, retry behavior or assertions. No live/model request ran. - -Observed local gates: - -- exact returned-infrastructure row 20/20 and paired thrown/returned rows 40/40; -- MR-03 reviewer/service/config matrix 164/164; -- service/container/API/store/recovery adjacency 82/82; -- strict Server test-source typecheck; -- two literal `npm run check` passes: launcher 3/3, Server 591/591 with two - opt-in live skips, Web 13/13, strict test-source projects and both builds; -- diff, credential and stale trusted-snapshot cleanup scans passed. Auditor - integration/hosted evidence and MR-03's single bounded live gate remain pending, - so this entry makes no audited or 100% claim. - -## 2026-08-30 — MR-03 integration blocked by TST-08 - -MR-03 merged conflict-free locally as `3c878b3` but was not pushed to `mock-main`. -The focused reviewer/service/config matrix passed 164/164, adjacent service/API/ -store/F-03/recovery/container passed 100/100, and deterministic harness passed unit -6/6 plus Chromium 8/8. Literal `npm run check` then failed one of 591 executed -Server tests: returned Contract verification infrastructure evidence reached -teardown while a sibling exact trusted snapshot root was removed, producing -`makeDeletable -> realpath -> ENOENT`. The isolated row passed 1/1 and 20/20, -supporting a scheduling-dependent test coordination gap rather than an MR-03 -product regression. No live/model request ran (call count zero). Ownership was -published on `audit/tst-08-mr03-cleanup`; MR-03 integration/live remains blocked. - -## 2026-08-30 — MR-01/MR-02 integrated audit - -The Auditor integrated the controlled MR-01 merge and truthful MR-02 capability -correction on `mock-main` at `577255e6f4980499f032451d18557f8eefcf80ef`. -Independent local gates passed: reviewer/config/service 173/173, Settings 5/5, -adjacent service/API/store/recovery/state/container 100/100, harness unit 6/6 and -Chromium 8/8 at both required viewports. Four MR-02 screenshots were inspected: -configured and unavailable states preserve the accepted theme with no document -overflow or clipping. The literal repository gate passed launcher 3/3, Server -588/588 with two opt-in live skips, Web 13/13, both strict test typechecks and both -builds. Dependency audit reported zero vulnerabilities; credential/private-output -and tracked-artifact scans were clean. Configured reviewer roles were unavailable; -independent manual security/UI review found no material issue, consistent with the -candidate's prior independent fallbacks. Hosted Node 22 Required checks run -`33268567614` passed. No live/model call ran. MR-01 remains below final scoped 100 -until MR-03 and one bounded live reviewer gate; MR-02 is audited scoped 100. - -## 2026-08-30 — MR-02 truthful reviewer capability candidate - -The Fixer reproduced the no-reviewer mismatch before product edits: persisted -`modelReviewEnabled=true` rendered as an enabled “Run advisory” control and allowed -false/true PATCH even though production composed no reviewer. The candidate adds -one public `shepherdModelReviewConfigured` boolean, computed from the same -fail-closed startup predicate used by `index.ts`. Settings preserves the stored -preference but renders the existing native toggle disabled with explicit -**Unavailable** process-scoped copy when false; configured mode remains editable. -No credential, model, endpoint or failed-predicate reason is exposed, and no live -request ran. - -Observed local gates: - -- causal Server 12/12 and Settings component 5/5; -- reviewer/config/API adjacency 71/71 and harness unit 6/6; -- dedicated Chromium 2/2 at 1280x800 and 1440x900, proving zero PATCH while - unavailable, exactly two successful mouse/keyboard PATCHes while configured, - persisted state, disabled/status semantics, no overflow and no fixture secret in - persistence, DOM or logs; -- full deterministic Chromium 8/8; four screenshots under ignored `.tmp` were - visually inspected without theme/layout drift; -- strict Server/Web test typechecks, two literal `npm run check` passes, clean diff - and credential/root scans, and `npm audit` with zero vulnerabilities; -- independent read-only security review passed with no findings. The configured - UI reviewer role was unavailable; a read-only fallback UI review passed with no - Critical/High/Medium finding and only the non-blocking absence of stored-off - browser screenshots (covered by component tests). Auditor integration/hosted - evidence remains pending, so this entry makes no audited or 100% claim. - -## 2026-08-30 — MR-01 local audit and MR-02 reproduced blocker - -The Auditor published ownership branch `audit/mr-01-integration`, then merged -current `main` `403fc095b07d60e17de1cb3f82b4e16b6a778919` locally into -`mock-main` as `1422fd6` without pushing `mock-main`. The resulting tree exactly -matched the precomputed conflict-free merge tree `804aa74c`. It preserves the -audited F-03/TST/service work, strict Server/Web tests, E2E harness and both CI -workflows while adding MR-01's 14-file bounded reviewer composition. - -Line review confirmed that only verified Contracts contribute bounded trusted -objectives, ingested manifest summaries, valid corroborated claims, non-protected -changed files and committed diff summaries. Closed runtime validation restricts -result keys, enums, contract pairs and evidence references. The service consumes -no finding value: it records only sparse bounded advisory metadata, returns void, -then runs unchanged deterministic collision/candidate/winner/promotion logic. -Deadline and durable cancellation win over an abort-ignoring reviewer; configured -sensitive values are excluded/rejected. The independent security fallback found no -High/Medium issue and returned READY for this provider-free scope. Configured -`security-reviewer` was unavailable. MR-03 partial-finding behavior and the single -final live reviewer gate remain deliberately pending; no network/model call ran. - -Observed local gates: - -- model-reviewer adapter/schema/evidence/redaction, MR service 14-case matrix and - readiness config: 3 files, 161/161; -- Settings rendering: 1/1; API/store: 31/31; -- F-03/service/container-verifier/recovery/state-machine adjacency: 69/69; -- deterministic harness: Node 6/6 and Chromium 6/6; -- literal `npm run check`: launcher 3/3, Server 587/587 with two opt-in live files - skipped, Web 9/9, both strict test-source projects and both builds. - -The dedicated real-browser audit passed 2/2 at 1280x800 and 1440x900 for real -Tab/Enter/Space focus semantics, true→false→true PATCH persistence, advisory -degradation event visibility, exact viewport/document/body overflow, screenshots, -and absence of auth/private/raw-prompt text. It also reproduced MR-02 causally: -the real no-Ark process reports `arkConfigured=false` while persisted -`modelReviewEnabled=true`; Settings presents an enabled checked “Run advisory” -toggle with no unavailable/not-configured state, and both PATCHes succeed even -though production deliberately composes no reviewer. Therefore the preference -cannot cause a call or outcome and silence can look like “no findings.” - -MR-02 owns the minimal fix: preserve preference, expose only bounded server-derived -reviewer capability/operational truth, and reuse current Settings/event visuals. -Never expose/probe credentials, model IDs, endpoints, prompts or provider state in -the browser. MR-01 remains a passing provider-free local candidate, but is blocked -from `mock-main` integration and cannot claim `I` or `L` until MR-02 is corrected; -MR-03 should integrate before exactly one final sparse live review. - -## 2026-08-30 — deviations hard-ledger reconciliation - -The Auditor reconciled every section of `docs/DEVIATIONS.md` against the PRD, -current `mock-main`, exact tested evidence and the canonical task/defect ledgers. -Each item is now classified as a clarification, actual deviation, environment -limitation or permanent PRD scope statement, with explicit OPEN/PARTIAL/RESOLVED -status and existing task IDs. No new task ID was required. The correction prevents -backend-only or hosted-only evidence from closing browser/live/second-machine -requirements, identifies completed-Plane cleanup as an allowed future policy rather -than a shipped automatic cleaner, and makes every actual deviation completion- -blocking until its named gates pass. - -A fresh GitHub/ref audit also found PR #16 (`MR-01`) merged to current `main` as -`403fc095b07d60e17de1cb3f82b4e16b6a778919`; it is therefore no longer externally -held, but it is not yet an ancestor of `mock-main` and remains unaudited integration -work. Draft PR #25 (`MR-03`) remains the sole external hold. This was a read-only -ownership check; no product branch was merged and no live/model request was made. - -## 2026-08-30 — GC-01 and TST-07 integrated audit - -The Auditor merged current `main` `662a7e7` into the previously audited -`mock-main` line as merge `c834c39`, preserved every prior audited mock commit, -then integrated the test-ownership correction as `de3e631`. The effective product -change is the bounded GC-01 parser-safe mention helper and Project Group buttons; -TST-07 only moves the complete eight-case regression to Web ownership and adds -explicit Web Vitest/strict-test configuration plus root scripts and the matching -lockfile entries. Server JSX/rootDir, product authority, Shepherd lifecycle, CSS -and schemas are unchanged. Both CI workflows are retained: `required-checks.yml` -remains the stable push/PR/merge-queue Docker gate, while the main-sourced -`pull-request-checks.yml` is a narrower PR/merge-queue duplicate that should be -consolidated only as a separately owned CI task. - -Independent focused evidence passed: Web GC 8/8, full Web 9/9, Server group -routing 10/10, strict Server and Web test typechecks, `npm ci`, and `npm audit` -with zero vulnerabilities. The real browser protocol passed 2/2 at 1280x800 and -1440x900 for mouse and real Tab/Enter/Space activation, focus-visible and composer -refocus/caret, multiline preservation, safe/spaced/escaped/Unicode/NFKC/ID-fallback -mentions, exact 2,000 acceptance/2,001 unchanged rejection, in-flight native -disable/no duplicate submission, parser-exact Agent ID, zero document/body X/Y -overflow, and absence of the auth token/private run root in rendered text. The -top-of-page frame places the composer partly below the visible area when the -runtime banner is present; the accepted internal main-content scroll brings the -entire composer/helper/send control into both viewports with no overlap. This is -recorded honestly as a Low UI-GATE framing item, together with the mention button's -subtle disabled visual distinction; it is not a document-overflow or GC-01 blocker. -The configured `ui-reviewer` role was unavailable, so an independent read-only -fallback inspected both frames and the source. - -The full deterministic harness passed Node 6/6 and Chromium 6/6. Literal -`npm run check` passed launcher 3/3, Server 563/563 with one unchanged opt-in live -skip, Web 9/9, both strict test-source projects and both production builds. No -live/model call was made. Hosted Node 22 Required checks run -`33266624301` passed on `de3e631`. GC-01 and TST-07 are therefore independently -audited at scoped 100%; this does not claim GC-03/04 targeted lifecycle completion. - -## TST-07 correct Web test ownership candidate - -**Date:** 2026-08-30 (Asia/Singapore) -**Branch/base:** `fix/mock-main` from canonical blocker head `6e4e230` - -The Fixer reproduced the required strict RED exactly: Server test typecheck exited -2 with TS6142 for the imported Web TSX component and TS6059 for the Web formatter -outside Server `rootDir`. The cause was test packaging, not formatter/parser/UI -behavior. The complete eight-case GC-01 regression moved from Server to Web. Web -gained explicit Vitest and strict test-source configuration/scripts, while root -`test` and `typecheck` now execute both workspaces. The production component, -formatter, parser, Server JSX/rootDir and every assertion remain unchanged. - -Observed candidate evidence: - -- relocated Web regression 8/8 and adjacent Server group-routing 10/10 passed; -- strict Web and Server test-source checks passed; Web production typecheck/build - passed; -- literal `npm run check` passed twice: launcher 3/3, Server 563/563 plus one - unchanged opt-in live skip, Web 9/9, strict/production typechecks and both builds; -- `npm ci --ignore-scripts --dry-run` completed from the lockfile and `npm audit` - reported zero vulnerabilities; `git diff --check` passed; -- diff is limited to test relocation, Web/root test configuration and scripts, - lockfile, and TST-07/GC-01 evidence docs. Default tests remain model/network-free - with Web Vitest temp output under repo-local `.tmp/web-tests`. - -This is a candidate, not an audit/100% claim. GC-01 still requires independent -two-viewport browser interaction plus integrated/hosted gates; TST-07 `I` is pending. - -## TST-07 blocks current-main / GC-01 integration before push - -**Date:** 2026-08-30 (Asia/Singapore) -**Ownership branch:** `test/tst-07-gc-01-strict-typecheck` -**Local merge:** `c834c3907abe84fb0bd79250ac93c2bbf78c87c0` -**Source main:** `662a7e7d2f54cd7eb6e6f33aa761a1d06901f609` - -The Auditor real-merged current `origin/main` into audited `mock-main` head -`5469c1f` only on the dedicated ownership branch. All prior audited mock commits -remain ancestors and the effective main delta is GC-01, its evidence docs and the -second CI workflow. Nothing was pushed to `mock-main`. - -The first required gate produced a deterministic RED: - -```text -npm run typecheck:tests -w @launchpad/server -src/project-group-mention.test.ts(5,43): TS6142: Web ProjectGroupPage.tsx was -resolved, but --jsx is not set -src/project-group-mention.test.ts(11,8): TS6059: Web project-group-mention.ts is -outside apps/server/src rootDir -exit 2 -``` - -The new Server test imports both Web TSX and a Web helper. That packaging made the -test discoverable by the default Server Vitest suite on main, but violates the -strict test-source ownership gate already audited on `mock-main`. Literal -`npm run check` is therefore known red and was not misreported or rerun broadly. -No browser/full/hosted GC-01 acceptance claim is made from this branch. - -`TST-07` owns the minimal test-only correction: place formatter/component and -production parser round-trip coverage under correctly discovered, strictly typed -workspace ownership without broadening Server JSX/rootDir, suppressing/excluding -tests, weakening the multiline/disabled/exact-boundary/ID assertions, or changing -product code. GC-01 remains integration-blocked until Fixer correction and the full -Auditor gates pass. - -## TST-05/TST-06 and E2E-01 independent integration closeout - -**Date:** 2026-08-30 (Asia/Singapore) -**Candidate:** `e1d9c349226913a1192702fab3fa21c36514055e` -**Integrated implementation:** `f6df2d9503a3a482da2cb2882eb913ca2285501c` -**Committed review evidence:** `284994d` - -The candidate was exactly one commit above canonical docs head `3b9137b`. Its diff -contains only harness fixtures/support, Playwright configuration/scripts/tests and -canonical evidence docs: no production React, CSS, server, service, schema, -dependency or debug-route change. The prior E2E candidate and stale screenshot set -were not integrated. - -Independent gates passed: - -- harness unit 6/6 and Chromium 6/6 at exact `1280x800` and `1440x900`, repeated - three times (unit 18/18 and browser 18/18 total); every run left no `run-*` root; -- all 16 E2E stages and four adjacent harness/UI-03 ephemeral images were visually - inspected. Create is reachable at 1280 through the existing inner scroll and has - the established purple focus outline; empty, active, completed, stopped and - restarted states preserve the accepted Launchpad theme without document X/Y - overflow, clipping or overlap; -- actual Tab traversal, focus-visible treatment and Enter activation passed for - Create, Stop and Start. The journey also proved 401/auth, disabled active composer, - exact two-turn fake thread continuity, exact hello files and independent Node - artifact tests 2/2, outside canary and symlink confinement, port closure, same-root - restart, durable Agent/messages/runs/files, and bounded public/store/DOM/log scans; -- strict server test-source typecheck and literal `npm run check` passed with - launcher 3/3, server 563/563 plus one unchanged opt-in live skip, all typechecks - and both builds; -- default screenshots went only to ignored `.tmp`. Hash sets for all tracked review - images were identical before and after each ordinary run. The explicit evidence - command passed 2/2 and wrote exactly 16 intended `docs/ui-review/e2e-01` PNGs, - with no blank down-state or unrelated evidence; a subsequent ordinary full - harness again left those files byte-identical; -- secret values reach only boolean comparisons, not matcher formatting; live trace, - screenshots and video are disabled; retries remain zero; live entry requires the - exact opt-in and preserves the two-turn cap, loopback binding, bearer auth, child - environment allowlist and empty live `SHEPHERD_MODEL`. Repository, `.tmp`, harness - and run-root identities are lstat/realpath checked before allocation/removal. - Causal tests cover ancestor symlink rejection, retained-root cleanup after restart - failure, fresh setup-failure cleanup and reusable-root rejection. No credential, - private path, live artifact or retained root was found. - -Configured `ui-reviewer` and `security-reviewer` roles were unavailable. An -independent rendered fallback re-reviewed the exact 20 ephemeral PNGs and returned -READY with no severity finding; the Auditor's independent security review found no -High/Medium issue. Low residuals remain for hostile same-user mutation between -identity check and recursive removal and exceptional spawn/concurrent-mkdir timing; -these are bounded local-test-harness conditions and not production authority. - -The previously authorized live legacy evidence was accepted without another call: -exactly two successful ARK turns, no retry, one real Codex thread, generated artifact -test 2/2, restart persistence, bounded/redacted evidence and cleanup, with no -Shepherd Mission/model-review invocation. This closes only the PRD 11.6.1 baseline; -`LIVE-01` remains open for its separately scoped Shepherd/model-review smoke. - -Hosted Required checks run -[`33265640400`](https://github.com/kyashp/shepherd/actions/runs/33265640400) -passed Node 22, Docker, locked install and literal repository gate in 1m42s. - -**Verdict:** `TST-05` and `TST-06` are **AUDITED at scoped 100%** with 5/5 gates; -`E2E-01` is **AUDITED at scoped 100%** with `C,B,L,S,U,I` 6/6. - -## TST-05/TST-06 deterministic E2E harness correction candidate - -**Date:** 2026-08-30 (Asia/Singapore) -**Branch:** `fix/mock-main` (pending commit/Auditor integration) - -The Fixer imported the unintegrated E2E-01 harness candidate without its stale -ledger or screenshots, then changed only test/harness/configuration files. Ordinary -screenshots now go to ignored `.tmp/playwright-evidence`; only the explicit -`npm run test:e2e:starter-kit:evidence` mode writes review images. The empty -server-down canvas was removed: the test records only the observed closed port and -reserves reconnect UI for E2E-08. At both viewports the existing Create form is -scrolled until its primary action is visible, and Create, Stop and Start are reached -with actual Tab focus, checked for the existing focus-visible outline, and activated -with Enter. No production or UI/theme file changed. - -Harness assertions no longer pass credentials or sensitive bodies to matcher -formatting. Live Playwright trace, screenshot and video are off. Exact live opt-in, -two-turn/no-retry limit, loopback binding, bearer auth, child environment allowlist -and empty live `SHEPHERD_MODEL` remain. The repository, `.tmp`, harness and selected -run-root identities are lstat/realpath checked before allocation/removal. Added fault -tests reject a repo-contained symlinked harness ancestor without following it and -prove a previously retained stopped root can be removed after a restart failure. - -Observed evidence, with no live/model call: - -- harness unit: 6/6 passed, including ancestor-symlink, retained-root restart and - fresh-allocation setup-failure cleanup tests; -- deterministic Chromium: 6/6 passed in 17.5 seconds at exact `1280x800` and - `1440x900`; all 16 E2E-01 stage captures were visually inspected under ignored - output and the four adjacent harness/UI-03 captures were produced there too; -- tracked `docs/ui-review` SHA-256 sets were identical before/after the ordinary - run; `git diff -- docs/ui-review` was empty and no server-down image was produced; -- strict server test-source typecheck passed; literal `npm run check` passed twice, - each with launcher 3/3, server 563/563 plus one unchanged opt-in live skip, all - typechecks and both builds; -- `git diff --check` passed; stale roots created by the initial controlled failing - iteration were explicitly confined and removed, and the final harness root had - no `run-*` child. - -The earlier independently bounded live legacy evidence remains exactly two -successful turns with no retry. It was not invoked again. `TST-05`, `TST-06` and -`E2E-01` remain candidates pending independent UI/security/integrated/hosted audit; -no `U` or `I` gate is claimed here. - -An independent read-only security review found the initial candidate could retain a -freshly allocated root when setup failed before child spawn. The transaction was -extended over every post-allocation pre-spawn setup step and the new missing-Codex -fault regression proves the harness root returns to the exact prior `run-*` set. -Independent re-review closed the Medium finding and found no remaining High/Medium -issue. Low local residuals remain for same-user mutation between identity validation -and recursive removal, an exceptional synchronous `spawn()` throw, and theoretical -concurrent sibling mkdir completion after a `Promise.all` rejection. These require -adversarial or exceptional concurrent conditions outside this local harness threat -model; no broad filesystem refactor was attempted. - -## E2E-01 independent audit rejection: visual evidence and failure-path safety - -**Date:** 2026-08-30 (Asia/Singapore) -**Candidate:** `592699d140145165c5ca0d9511478171e5051271` (parent `949cec1`) - -The Auditor reviewed the exact candidate in an isolated worktree. It remains -**unintegrated**. No candidate product, test, screenshot, or documentation file was -cherry-picked to `mock-main`. - -Passing evidence was substantial but insufficient for integration: harness unit -tests passed 3/3; Chromium passed 6/6 across exact `1280x800` and `1440x900` projects; -strict server test-source typecheck passed; and literal `npm run check` passed with -launcher 3/3, server 563/563 plus one unchanged opt-in live skip, all typechecks and -both builds. All 18 regenerated E2E captures were manually inspected. The previously -bounded live evidence remains exactly two successful legacy ARK turns, no retry, -one real Codex thread, generated artifact/test 2/2, restart persistence, redacted -evidence and cleanup; the Auditor did not consume another live call. - -Two blocking gates failed. First, the successful routine harness run modified 16 of -18 tracked E2E-01 PNGs and the unrelated tracked UI-03 1280 PNG. Only the two -server-down files stayed byte-identical. Both were blank white canvases: the test -asserts the port closed, catches reload failure, then screenshots without any DOM or -visible-state assertion. Calling that a visually inspected application down state -overclaims the evidence. The 1280 Create Agent image also does not demonstrate that -the primary action is reachable, and actual Tab/focus-visible/lifecycle keyboard -coverage is incomplete. This is recorded as `TST-05`; production UI and the accepted -design must remain unchanged. - -Second, source audit found failure-path safety gaps recorded as `TST-06`: a secret is -passed directly to Playwright matcher output; a retained run root cannot be cleaned -by a later idempotent stop after restart failure; managed harness ancestor symlinks -are not canonically rejected before temporary-root creation/removal; and opt-in live -failure traces/screenshots may retain prompts or output. These require causal fault -tests and the narrow redaction/confinement/cleanup changes in `FIXES.md`, without -broadening environment or filesystem authority. - -**Verdict:** E2E-01 remains blocked and unintegrated. `TST-05` and `TST-06` must pass -their targeted, browser/security-review, full, integrated and hosted gates before -the journey can be marked audited. - -## TST-04 independent integration audit and hosted closeout - -**Date:** 2026-08-30 (Asia/Singapore) - -Auditor inspected the exact candidate and integrated it as -`00c81ae067961d43ee63acb777bf070ca808c113`. The diff changes only -`service.test.ts` and evidence docs. It leaves `makeDeletable`, product/service/ -verifier/UI code, timeouts, retries, sleeps, behavioral assertions, sentinel checks, -path confinement and symlink rejection unchanged. - -The captured backend `planePath` is resolved beneath the sentinel-owned case root, -with exact `.trusted-verification` parent and `verify-*` basename assertions. The -two-arrival barrier ensures capture before the selected frontend failure; the test -then observes typed Mission rejection while that root still exists. The watcher is -armed on the exact parent before sibling release, filters the exact basename, and -accepts quiescence only after `lstat` returns `ENOENT`. `finally` idempotently -releases all gates and joins the Mission, sibling return and conditional removal -promise without replacing the primary assertion failure. - -Independent evidence: exact row 20/20 in 28 seconds; service/container-verifier -slice 43/43; strict test-source typecheck; literal `npm run check` twice in 38/40 -seconds with launcher 3/3, server 563/563 plus one opt-in live skip and both builds; -integrated focused row 1/1; and `git diff --check`. Hosted Node 22 run -[`33263688794`](https://github.com/kyashp/shepherd/actions/runs/33263688794) -passed the locked install, Docker and literal repository gate in 1m42s. - -**Verdict:** TST-04 is **AUDITED at scoped 100%**, `T,A,C,I` 4/4. E2E-01 is -unblocked. No live/model/browser request occurred. - -## TST-04 exact verification-snapshot quiescence candidate - -**Date:** 2026-08-30 (Asia/Singapore) -**Branch/base:** `fix/mock-main` / `4f7da60a4b45415fb6283eaa3a60360102875856` - -The preserved RED is the full-suite `afterEach` failure recorded below: after all -typechecks, `makeDeletable -> readdir` received `ENOENT` beneath a sibling -`.trusted-verification/verify-*/src`, while the exact isolated behavioral row passed. -The disappearing owned path and order dependence implicated teardown beginning -before a sibling `withVerificationSnapshot` finalizer finished. - -The correction is test-only. `SnapshotTrackingContractThrowingVerifier` records the -blocked backend request's real `planePath` and uses the existing two-arrival barrier, -so the selected frontend infrastructure failure is not released before the backend -snapshot is observable. The Mission promise gets an immediate success/rejection -observer. After the typed rejection, the test asserts the captured absolute root is -inside the sentinel-owned case root, its parent is exactly `.trusted-verification`, -its basename matches `verify-`, and that exact directory still exists. This is -the controlled proof that fail-fast rejection precedes sibling snapshot cleanup. - -Before releasing the backend, the test arms `fs.promises.watch` on the exact root's -parent. Its quiescence signal requires an event for the captured basename followed -by `lstat(capturedRoot)` returning `ENOENT`, bounded by the existing five-second -`settleWithin` helper. A `finally` block idempotently releases the Contract pair and -sibling and joins the Mission, sibling return, and removal outcome. The test cannot -finish into `afterEach` while that background snapshot cleanup remains active. -Existing typed terminalization, bounded diagnostics, ownership release, -no-collision/candidate/promotion and public/store assertions remain unchanged. - -Observed GREEN evidence: - -- focused causal row: 1/1 passed initially, 560ms test time; -- 20 independent exact-row invocations: 20/20 passed in 28s; -- service/container-verifier slice: 43/43 passed in 33.22s; -- strict server test-source typecheck: passed; -- literal `npm run check` passed twice under normal contention, 39s/39s each: - production and strict test typechecks, launcher 3/3, server 563/563 with one - opt-in live skip, and both production builds passed; -- `git diff --check`: passed. - -No `ENOENT` was swallowed in `makeDeletable`; no sleep, retry, timeout increase, -cleanup-sentinel/path/symlink weakening, product/service/verifier/UI edit, or -live/model call occurred. `TST-04` is a **100% scoped candidate** with `T,A,C` -passed; integrated Auditor/hosted `I` remains pending. E2E-01 stays paused only on -that deterministic baseline audit. - -## ST-02 main-to-mock integration audit - -**Date:** 2026-08-30 (Asia/Singapore) - -PR #13 merged to `main` as `d27dea670108e5a06eac20de7df88f756b68e404`. -The Auditor merged that mainline into `mock-main` as -`d5df930923503cf337f865f8c0361fa1b3bd8530`, retaining both histories in the sole -`BUILD_LOG.md` conflict. The effective product delta is only -`SettingsPage.tsx` plus its focused test: public Settings schemas/persistence and -all kernel, harness, strict-type, CI, UI-03 and TST-03 implementation remain intact. -No notification delivery, external integration, model request, or credential path -was added. - -Observed independent evidence: - -- focused static-render regression: 1/1 passed; -- web production typecheck and 40-module build: passed; -- real Chromium Settings audit at exact `1280x800` and `1440x900`: three disabled - accessible notification controls, three **Reserved** labels, one **Unavailable** - label, disabled controls skipped in Tab order, forced interaction sent zero - Settings `PATCH` requests, and document/body X/Y scroll sizes equalled client - sizes at both viewports; -- screenshots `docs/ui-review/st-02-settings/{1280x800,1440x900}.png` were inspected - and preserve the accepted Launchpad theme with no clipping or overlap; -- deterministic harness unit 2/2 and Chromium 4/4 passed; -- literal `npm run check` passed in 39 seconds: launcher 3/3, server 563/563 with - one opt-in live skip, strict test-source and production typechecks, and both - production builds; -- `git diff --check` and the bounded diff/artifact review passed. - -The configured `ui-reviewer` role was unavailable. An independent read-only rendered -fallback returned **READY with no scoped findings**. It confirmed truthful copy, -native disabled semantics, persisted checked-state visibility, non-color-only labels, -responsive layout and design fidelity. It noted only pre-existing non-blocking -Settings tablist ARIA/arrow-key and small secondary-type debt; ST-02 does not broaden -into those shared concerns. - -**Verdict:** ST-02 is **AUDITED at scoped 100%**, `T,C,B,U,I` 5/5. This is one -observed green repository run, not a claim that separately reproduced TST-04 -background-cleanup instability is resolved. - -Final hosted Node 22 run -[`33262928516`](https://github.com/kyashp/shepherd/actions/runs/33262928516) -passed the locked install, Docker availability and literal repository gate on audit -head `7f5a719` in 1m42s. -## TST-04 F-03 snapshot-cleanup teardown race - -**Date:** 2026-08-30 (Asia/Singapore) -**Branch/base:** `work/mock-main` / `e88dbef27b0a7f55acbdab3a7f89b67c9e6900c1` - -The literal repository gate passed both production typechecks and the strict server -test-source typecheck, then failed one F-03 service test during `afterEach` cleanup. -The behavioral assertions did not fail. The cleanup walker attempted to read a -sibling trusted-verification snapshot subtree while its owning -`withVerificationSnapshot` finalizer was removing it: - -```text -service.test.ts > Shepherd deterministic walking skeleton > -terminalizes Contract verification infrastructure failures without promotion or sensitive diagnostics - -afterEach -> removeServiceCaseRoot -> makeDeletable -> readdir -ENOENT: .tmp/shepherd-tests/service-*/managed/planes/auth-demo/ - .trusted-verification/verify-*/src -``` - -```sh -npm run check -# RED after typechecks: server 562 passed, 1 failed, 1 opt-in skipped -# build phase did not run - -npm run test -w @launchpad/server -- --run src/shepherd/service.test.ts \ - -t 'terminalizes Contract verification infrastructure failures without promotion or sensitive diagnostics' -# isolated GREEN: 1 passed, 33 skipped -``` - -The full-suite-only RED, immediate isolated GREEN, fail-fast concurrent Contract -verification path, and disappearing snapshot path strongly support an ordering race. -The required next discriminating check is to record the sibling -`VerificationRequest.planePath` and prove teardown starts before that exact snapshot -cleanup/Contract batch is quiescent. No product, UI, test, timeout, or cleanup -behavior was changed during this diagnosis. The paused E2E-01 deterministic work is -preserved separately; no live/model call was made. - -Auditor source inspection confirmed that the failing `makeDeletable` recursion does -not suppress a directory disappearing between its entry `chmod` and `readdir`, while -each concurrent Contract verifier owns a `withVerificationSnapshot(...finally)` -cleanup. The unmodified current-tree literal gate passed 563/563 plus one opt-in skip, -which is consistent with an intermittent ordering defect and does not close the -preserved RED. The Fixer must still prove the exact sibling-path ordering causally -before changing the fixture. - -## TST-03 independent integration audit and hosted closeout - -**Date:** 2026-08-30 (Asia/Singapore) - -**Integrated implementation:** `0b1c4017f01d37823b13c5da7360f00a8d8e7814` - -Auditor inspected the exact candidate diff and confirmed it changes only the test -fixture and evidence docs: no product, service, verifier, API, persistence, UI, -workflow, dependency, timeout, sleep, retry, rejection suppression, or weakened -assertion. Both parameter rows passed 40/40 across 20 independent invocations; the -service/container-verifier slice passed 43/43; strict test-source typecheck passed; -the literal repository gate passed locally in 39 seconds with launcher 3/3, server -563/563 plus one opt-in live skip, and both production builds; integrated focused -rows passed 2/2. `git diff --check` passed. - -Required hosted Node 22 run -[`33262227553`](https://github.com/kyashp/shepherd/actions/runs/33262227553) -passed on `0b1c401` in 1m38s, including locked install, Docker availability and the -literal repository gate. TST-03 is **AUDITED at scoped 100%**, `T,C,I` 3/3. This -restores UI-03 to **AUDITED at scoped 100%**, `T,C,B,U,I` 5/5, and unblocks E2E-01. -No live/model call occurred. - -## TST-03 deterministic concurrent-verifier regression candidate - -**Date:** 2026-08-30 (Asia/Singapore) -**Branch/base:** `fix/mock-main` / `346ab91bd807ee787ac275d43f10bfe08b5a5532` - -The controlled RED remains hosted run -[`33261198788`](https://github.com/kyashp/shepherd/actions/runs/33261198788): -the thrown-verifier row exhausted its existing 30-second budget and emitted an -unhandled `ContractVerificationInfrastructureError` after 558 passed, 5 skipped, -and 1 failed tests. The prior disposable backend pre-verifier hold reproduced the -same ordering defect in one second. A subsequent unmodified docs-only hosted run -[`33261491905`](https://github.com/kyashp/shepherd/actions/runs/33261491905) on -`346ab91` passed, which corroborates schedule sensitivity but does not make the -fixture deterministic. - -The candidate changes only `service.test.ts`. A reusable two-arrival barrier makes -the selected frontend thrown/returned infrastructure outcome wait until the backend -has entered the verifier. A `then` success/failure observer is attached to the -Mission promise immediately, before `siblingEntered` or any other gate is awaited. -The assertion still requires the typed infrastructure failure. `finally` releases -the pair and sibling gates idempotently and joins both the Mission and sibling exit, -so an assertion failure cannot strand deferred work or create an unhandled -rejection. Existing atomic terminalization, durable reload, ownership release, -late-return, no `verification_passed`, no collision/candidate/promotion, and bounded -Plane assertions remain intact. - -Observed GREEN evidence: - -- focused parameterized test: 2/2 passed initially in 1.47s (929ms test time); -- 20 independent focused invocations: both parameter rows passed 40/40 in 37s; -- Shepherd service/container-verifier slice: 43/43 passed in 32.29s; -- strict `typecheck:tests`: passed; -- literal `npm run check` passed twice, in 39s and 40s: both production and strict - test-source typechecks, launcher 3/3, server 563/563 with one opt-in live skip, - and both production builds passed; -- `git diff --check`: passed. - -No timeout changed, no sleep/retry was added, no failure was swallowed, and no -product, service, verifier, API, persistence, UI, workflow, dependency, or live/model -path changed. `TST-03` is a **100% scoped candidate** with `T,C` passed; integrated -Auditor/hosted gate `I` is pending. UI-03 stays at 98% until that hosted closeout, -and E2E-01 remains blocked only on the deterministic baseline integration. - -## TEST-TS strict server test-source typecheck candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `work/mock-main` / `39211213bc1f77e8873673eda9e7c87da2b24abd` - -The production server compiler excludes `*.test.ts`, so its existing typecheck did -not validate test sources. A separate `tsconfig.test.json` now reuses the production -compiler options with `noEmit`, includes production and test sources, and is invoked -after the unchanged workspace production typechecks by the root `typecheck` script. -The production build/emit configuration remains unchanged. - -The initial strict RED found 14 errors across four test files: four implicit callback -types, five Vitest 4 matcher calls using removed generic parameters, four promotion -fixtures missing the required persistence callback, and one container verifier fixture -missing its required owner identity. Restoring matcher typing then exposed two nullable -fixture values. The test-only fixes add exact inferred/imported types, use `satisfies` -for matcher shapes, complete the fixtures with inert deterministic callbacks/identity, -and assert the already-established non-null candidate-head invariant. No assertion, -production behavior, UI, compiler strictness, or test coverage was removed. - -```sh -./node_modules/.bin/tsc -p apps/server/tsconfig.test.json --pretty false -# RED: exit 2; 14 errors across 4 files in the categories recorded above - -npm run typecheck:tests -w @launchpad/server -npm run typecheck -w @launchpad/server -npm run build -w @launchpad/server -# all passed; test-source and production typechecks plus production server emit - -npm run test -w @launchpad/server -- --run src/app.test.ts \ - src/shepherd/git-plane-promotion.integration.test.ts \ - src/shepherd/service.container.test.ts src/shepherd/service.test.ts -# 4 files passed; 73/73 tests passed - -npm run check -# both workspace production typechecks and the new server test-source typecheck passed -# launcher tests: 3/3 passed -# server: 26 files passed, 1 opt-in file skipped; -# 563 tests passed, 1 opt-in test skipped -# web 40-module production build and server production build passed -``` - -This is implementation evidence only. Independent Auditor integration/review on -`mock-main` remains the `I` gate, so confidence is scoped to 95%, not 100%. - -### TEST-TS independent integration audit - -The Auditor reviewed and integrated the candidate as `8995605`. The new config is -strict, no-emit, and additive: the production server `tsconfig.json`, emitted files, -web compiler, dependencies, runtime, API, and UI are unchanged. Source review found -no `ts-nocheck`/`ts-ignore`, new broad exclusion, `skipLibCheck` weakening, blanket -`any`, assertion removal, or matcher weakening. Runtime matcher objects are unchanged; -the required fixture callback and owner identity complete existing production -contracts, while the non-null assertions encode commit invariants already established -earlier in the same tests. - -Independent candidate and integrated evidence: - -```sh -npm run typecheck:tests -w @launchpad/server -# passed on candidate and integrated implementation - -npm run typecheck -w @launchpad/server -npm run typecheck -w @launchpad/web -npm run build -w @launchpad/server -npm run build -w @launchpad/web -# both production typechecks and builds passed; web transformed 40 modules - -npm run test -w @launchpad/server -- --run src/app.test.ts \ - src/shepherd/git-plane-promotion.integration.test.ts \ - src/shepherd/service.container.test.ts src/shepherd/service.test.ts -# 4 files passed; 73/73 tests passed - -npm run check -# passed on candidate and integrated implementation: launcher 3/3; server 26 -# files and 563/563 tests passed with one unchanged opt-in live file/test skipped; -# strict test-source and production typechecks plus web/server builds passed - -git diff --check -# passed -``` - -The recorded RED categories match the exact corrected sites and TypeScript/Vitest -contracts; the audit did not retain a weakening mutation merely to recreate them. -`TEST-TS` is **AUDITED, scoped 100%**, with `T,C,I` passed 3/3. Hosted Node 22 -evidence is recorded after the final audit-documentation push. - -## UI-03 Create Agent preset-radio overflow correction - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `fix/mock-main` / `39211213bc1f77e8873673eda9e7c87da2b24abd` - -The causal real-browser regression was added before production CSS changed. At -`1280x800`, Create Agent failed with document scroll/client width `2299/1280`; at -`1440x900`, it failed with `2579/1440`. The accessible four-radio group, initial -Generalist selection, one native Tab stop, ArrowLeft focus/selection, and wrapping -label click all passed before the overflow assertion, preserving the existing -semantic baseline. - -The correction changes only the preset-radio CSS: each transparent absolute native -radio is `1x1`, and inherited `min-height`, margin, padding, and border are reset. -No ancestor overflow rule, React/API contract, visible card geometry, or theme was -changed. Independent read-only review then found that the global focus outline was -computed on the transparent radio rather than visibly painted on its card. A second -minimal selector applies the same existing purple 2px focus outline to the wrapping -label through `:has(input:focus-visible)`; the browser regression asserts that -visible card treatment directly. - -Observed final evidence: - -- focused Chromium: 2/2 passed at exact `1280x800` and `1440x900`; document - scroll/client widths were `1280/1280` and `1440/1440`, document/body X/Y - invariants passed, and all four computed radio boxes were `1x1` with zero - inherited minimum height and spacing; -- semantics: four radios under the `Authority preset` group, Generalist initially - checked, one Tab stop, arrow-key focus plus selection, visible focused-card - outline, all four wrapping labels selectable, and exactly one checked radio; -- full deterministic browser harness: 4/4 passed across the two viewports; -- screenshots inspected at - `docs/ui-review/ui-03-create-agent/{1280x800,1440x900}.png`; hashes are - `b64a61aa0c01566a710e3a480f6186a95e97075a06d97c89c327ea10cfec2de9` and - `ac630408a97445d439f79305b8c25854bdc07d3bb6fa741f45e3509055a26804`; -- literal `npm run check`: both typechecks, launcher 3/3, server 563/563 with one - opt-in live skip, and both production builds passed. - -The independent read-only re-review reran the focused browser slice 2/2, observed -the visible card outline, passed `git diff --check`, and closed its earlier Medium -finding with no remaining UI-03 findings. - -No live/model request was made. `UI-03` is a **100% scoped candidate** with -`T,C,B,U` passed; integrated Auditor gate `I`, `E2E-01`, and `UI-GATE` remain -pending and are not claimed here. - -### UI-03 independent integration audit - -The Auditor integrated the candidate as `83954f7` while preserving the newer -TEST-TS gate and its evidence. The only product change remains eleven lines in the -existing preset-radio CSS: a locally bounded transparent native input and the -existing purple two-pixel focus treatment painted on its wrapping card. No React, -API, navigation, ancestor overflow, dependency, runtime, or unrelated design change -was introduced. - -Independent integrated evidence: - -```sh -node --test tests/e2e/harness.test.mjs -# 2/2 passed - -PLAYWRIGHT_BROWSERS_PATH=.tmp/playwright-browsers \ - npx playwright test --config=playwright.config.ts -g "Create Agent presets" -# 2/2 passed at 1280x800 and 1440x900 - -PLAYWRIGHT_BROWSERS_PATH=.tmp/playwright-browsers \ - npx playwright test --config=playwright.config.ts -# 4/4 passed across both required viewports - -npm run check -# strict server test-source plus both production typechecks passed; launcher 3/3; -# server 26 files and 563/563 tests passed with one unchanged opt-in live skip; -# web 40-module and server production builds passed - -git diff --check -# passed -``` - -The browser gate observed document/body scroll width and height within client -geometry, four `1x1` radios with zero inherited minimum height/padding/border/margin, -an accessible `Authority preset` group and radio names, Generalist initially checked, -one native Tab stop, ArrowLeft focus/selection, a visible theme-matched 2px outline, -all four label clicks, and exactly one checked radio. Regenerated screenshots exactly -matched the committed hashes and were visually inspected for adjacent layout, -spacing, hierarchy, clipping, and theme consistency. The authenticated token was not -rendered, temporary browser/run artifacts remained ignored, and no model/network call -occurred. This establishes `T,B,U,I` for UI-03. Final hosted `C` remained pending -the audit-documentation push. - -### UI-03 hosted closeout failure / TST-03 - -Required-check run -[`33261198788`](https://github.com/kyashp/shepherd/actions/runs/33261198788), -job `99123330844`, failed on final audit head `2ba5cb9`. Setup, checkout, Node 22, -Docker and locked install passed. The repository gate reached server tests, then -`atomically interrupts a blocked sibling after 'thrown verifier exception'` timed -out at 30 seconds and emitted an unhandled -`ContractVerificationInfrastructureError`. Hosted results were 24 files passed, 2 -skipped and 1 failed; 558 tests passed, 5 environment-gated skipped and 1 failed. -Builds did not run. The five-skip hosted profile was unchanged. - -The UI-03 diff does not touch that backend service test or orchestration. Source -inspection instead found a schedule-sensitive test contract: it awaits the backend -fixture's `siblingEntered` promise before attaching rejection handling to the -already-started Mission. Under contention, the frontend can terminalize first, so -the awaited sibling signal never arrives and the Mission rejection becomes -temporarily unhandled. The test has no unconditional sibling release/join when a -timeout or assertion wins. Five isolated local repetitions subsequently passed 5/5, -which confirms intermittency and does not correct the hosted RED. - -A disposable controlled fault probe then held the backend only at -`contract_verification_snapshot_ready`, immediately before verifier entry, and -shortened only that temporary test's budget to one second. The thrown-verifier row -deterministically timed out and Vitest reported the same unhandled -`ContractVerificationInfrastructureError`. The mutation lived only in the Auditor's -temporary worktree and was not integrated. This separates the orchestration race -from machine speed and directly validates the supported root cause. - -`TST-03` now owns the smallest test-only correction: deterministic two-arrival -coordination, immediate rejection handling, and unconditional bounded release/join; -no sleep, timeout increase, swallowed rejection, weakened F-03 assertion, or product -change. Until its repeated/full/hosted acceptance is green, UI-03 remains **98% -scoped** with `T,B,U,I` passed 4/5 and hosted `C` pending; E2E-01 remains blocked by -the baseline rather than by its resolved Create Agent browser prerequisite. - -## CI-01 required-check workflow candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `work/mock-main` / `7217c1c055df76ace392d3804bc6517df85ce768` - -The repository had no workflow capable of reporting the stable required status -named `Required checks / Node 22 / npm run check`. This candidate adds one workflow -and changes no product, UI, server, test, package, lockfile, dependency, or runtime -configuration. - -The workflow follows the current official GitHub Actions contracts reviewed on -2026-08-29: every `pull_request` runs; `push` is limited to `main` and `mock-main`; -and `merge_group` is limited to `checks_requested`, which GitHub documents as -necessary for merge-queue required checks. Workflow concurrency is scoped by the -workflow name and event ref, so a newer run cancels only an older run for the same -workflow/ref. The job runs on `ubuntu-latest`, installs Node 22 through -`actions/setup-node@v7`, caches npm's download cache against the checked-in -`package-lock.json`, verifies the hosted Docker client/daemon, executes `npm ci`, -and then executes the literal `npm run check`. The job has a 20-minute timeout. - -Security and isolation are explicit: - -- top-level token permission is only `contents: read`; all unspecified permissions - are `none` under GitHub's workflow permission semantics; -- `actions/checkout@v6` uses `persist-credentials: false`; -- no `pull_request_target`, write permission, secret reference, `.env` loader, - artifact upload, custom/privileged action, deployment, or external/live/model - command exists; -- `SHEPHERD_LIVE_TEST` is fixed to `false`, and repository secrets are not mapped - into the job environment. - -No Action-specific linter was installed on this host. The available PyYAML 6.0.1 -parser loaded the workflow with `BaseLoader`, and custom structural assertions -verified the exact events/branches, merge-group activity, permission, runner, -timeout, official action versions, and command sequence: - -```sh -python3 -c '' -# workflow YAML and required structure: pass - -docker version --format '{{.Client.Version}} {{.Server.Version}}' -# client 29.7.2; server 29.7.2 - -npm run check -# Node 24.17.0 / npm 11.17.0 local evidence -# both workspace typechecks passed -# launcher tests: 3/3 passed -# server: 26 files passed, 1 opt-in file skipped; -# 555 tests passed, 1 opt-in test skipped -# web and server production builds passed - -git diff --check -# passed -``` - -The Worker branch is intentionally not a `push` trigger, and the user prohibited a -PR for this campaign. After pushing the candidate, the authenticated read-only -query `gh run list --repo kyashp/shepherd --branch work/mock-main ...` returned -`[]`, confirming no hosted run exists for that branch. CI-01 remains below 100% -until the Auditor integrates it into `mock-main`, observes the real hosted Node -22/Docker run, records the resulting check identity, and confirms the -protected/merge-queue rule consumes that stable status. No external model request -was made. - -### Independent Auditor pre-hosted integration review - -**Candidate:** `bdab32da9305a3787ec4b0c1d2061d521230eeae` - -**Integrated workflow:** `cda2446584d0f5d6c07ec8d2521d08fb6711f971` - -The Auditor independently confirmed the exact three-file diff: the workflow plus -`TASKS.md` and this log. Product, UI, server, tests, dependencies, lockfile, runtime -configuration, and environment examples are unchanged. PyYAML `BaseLoader` parsing -and structural assertions covered the complete event map, branch filters, -`checks_requested`, permissions, concurrency expression, runner, timeout, child -environment, action inputs, and exact command sequence. - -Current official GitHub documentation reviewed on 2026-08-29 confirms that -`pull_request:` without filters runs every PR; `push.branches` limits pushes to the -two named branches; merge queues require the separate `merge_group` trigger and -currently support `checks_requested`; unspecified permissions become `none`; the -workflow/ref concurrency expression cancels only an older matching run; and the -20-minute positive integer is a valid bounded job timeout. Official action refs -also resolve: `actions/checkout@v6` is still supported, while v7 is latest and its -documented breaking safety change concerns `pull_request_target`, which this -workflow does not use; `actions/setup-node@v7` is current and its npm cache hashes -the named `package-lock.json` while caching npm data rather than `node_modules`. - -Independent local evidence on the candidate: - -```sh -python3 -c '' -# pass - -docker version --format 'client={{.Client.Version}} server={{.Server.Version}}' -# client=29.7.2 server=29.7.2 - -npm run check -# typechecks passed; launcher 3/3; server 26 files and 555 tests passed; -# one opt-in live file/test skipped; web 40-module and server builds passed - -git diff --check -# pass -``` - -The workflow maps no repository secret and invokes no env loader, model/live test, -artifact upload, deployment, privileged container, or write-capable command. -`contents: read` is the only token permission and checkout credential persistence -is disabled. Hosted Node 22, `npm ci`, Docker daemon availability, the emitted check -identity, and the real trigger remain pending until the first `mock-main` push run -completes; CI-01 is not yet marked audited. - -### Hosted integration result - -The combined `mock-main` push at `cd23488b29d9f45ba854e11ef1b6bf41c1bcda3f` -triggered the newly integrated workflow exactly once: - -- run: `33259565232` -- URL: `https://github.com/kyashp/shepherd/actions/runs/33259565232` -- event/ref: `push` / `mock-main` -- job/check: `Node 22 / npm run check` (`99119063014`) -- conclusion: `success` -- duration: 91 seconds, from `2026-08-29T15:11:31Z` to `15:13:02Z` - -Every hosted step succeeded: checkout with credential persistence disabled, -setup-node, Docker client/daemon probe, `npm ci`, literal repository gate, both -post-action cleanups, and job completion. Bounded logs established the real hosted -environment and counts: - -```text -Node 22.23.2; npm 10.9.8 -Docker client 28.0.4; server 28.0.4 -launcher: 3/3 passed -server: 25 files passed, 2 environment-gated files skipped; - 551 tests passed, 5 skipped, 556 total -web: 40 modules transformed; production build passed -server: TypeScript production build passed -``` - -The hosted skip delta is explicit rather than hidden: local Docker evidence passed -555 server tests with only the opt-in live test skipped, while hosted `CI=true` -retained five repository-defined environment-gated skips. The dedicated hosted -Docker probe proved both client and daemon availability independently. No secret, -model, live-test, deployment, artifact, or write-capable path ran. - -**Verdict:** `CI-01` is **AUDITED at scoped 100%**, `C,I` 2/2. The stable branch -protection check to select is `Node 22 / npm run check` from workflow `Required -checks`. A repository administrator must still add this check to the protected -`main` ruleset/branch-protection rule (and enable merge queue there if desired); -that external administrative mutation was not performed by an agent. - -## E2E-01 stopped at Create Agent overflow defect - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `work/mock-main` / `ace01ae0a6875f102ea0fec30e871a0e2f6d60a8` - -The Worker extended only the deterministic test composition toward PRD 11.6.1, -then stopped at the first reproduced production defect as required. Before the -browser stage, the real web/server production build passed and the existing -isolated harness causal tests passed 2/2. No `.env` was read and no external/model -request was made. - -The focused command drove the built authenticated application with Playwright -`1.62.1` / Chromium `151.0.7922.34`: - -```sh -npm run test:e2e:starter-kit -# build passed; harness unit 2/2 passed -# browser 0/2: Create Agent overflow assertion failed at both viewports -# 1280x800: document scrollWidth 2299, clientWidth 1280 -# 1440x900: document scrollWidth 2579, clientWidth 1440 -``` - -The earliest divergence occurs after the four recommended authority radios render, -before creating an Agent, calling fake Codex, changing workspace files, or testing -restart continuity. A one-project diagnostic rerun at `1280x800` enumerated every -overflowing element. Each transparent absolute `.preset-grid input` retained the -global `input { width: 100%; min-height: 38px; ... }` sizing: all four inputs had -`clientWidth=1280`, and their static grid positions produced right edges `1589`, -`1826`, `2063`, and `2299`. The accepted visible form looked clipped only because -the main content surface hides X overflow; the document geometry was still invalid. - -This establishes `UI-03` causally. The minimal correction belongs to the Fixer: -bound only the visually hidden native radio dimensions while preserving labels, -selection, keyboard semantics, and all accepted styling. The Worker did not edit -React, CSS, or any production file, did not weaken the no-overflow gate, and did not -attempt the separately labelled sparse live acceptance while deterministic E2E-01 -was red. Live call count: **0**. E2E-01 remains blocked with no acceptance gate -claimed. - -### Independent Auditor reproduction - -**Evidence candidate:** `7b92813550f192d2b45e3e4e39f473b99c084615` - -**Docs integrated as:** `eb44d8633aa7e78cc7b89ea69e9215e3755be178` - -The candidate diff from `ace01ae` contains only this log, `FIXES.md`, and the -`E2E-01` ledger row. It does not contain the Worker's unfinished E2E-01 code or any -React, CSS, API, runtime, test configuration, dependency, or production change. -The Auditor independently drove the integrated built application through access -token unlock and the Create Agent link using the audited deterministic harness. - -At `1280x800`, document geometry was `clientWidth=1280`, `scrollWidth=2299`; -the four transparent absolute radios were each `1280x38`, with bounds ending at -`1589`, `1825.75`, `2062.5`, and `2299.25`. At `1440x900`, document geometry was -`clientWidth=1440`, `scrollWidth=2579`; the radios were each `1440x38`, ending at -`1749`, `2025.75`, `2302.5`, and `2579.25`. In both cases document height and all -body X/Y measurements stayed within the viewport. This isolates the failure to -the root X extent created by the hidden inputs; it is not ordinary page content or -a vertical-overflow defect. - -The browser-computed radio style was `position:absolute`, `opacity:0`, and -`pointer-events:none`, while global form rules still supplied `width:100%`, -`min-height:38px`, padding, and a border. The source/geometry causal account is -therefore confirmed. Existing native semantics were also measured as the -preservation baseline: Generalist was the initial checked radio and the radio group -was reached as one Tab stop; ArrowLeft moved both focus and selection to -Verification; direct focus plus ArrowRight selected the next radio; clicking the -wrapping Verification label left exactly one radio checked. - -No live/model request, Agent creation, fake Codex turn, product edit, or sibling -branch integration occurred. Temporary screenshots/scripts and the isolated run -root were removed; no server process remained. - -**Verdict:** `UI-03` is independently reproduced with **100% causal-diagnosis -confidence** and **0% correction completion**. The Fixer must constrain only the -hidden radio box, explicitly overriding inherited size/spacing properties without -changing the visible form or native focus/selection/label contract. Required gates -are focused causal Playwright coverage, `1280x800` and `1440x900` browser/screenshots -with document/body X/Y invariants, literal `npm run check`, independent rendered -`ui-reviewer`, and post-integration Auditor rerun. `E2E-01` remains blocked. - -## E2E-HARNESS deterministic browser foundation - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `work/mock-main` / `42d3b517c05a20f6a9e526390e9e82d95306e859` - -The repository had the Playwright package but no checked-in configuration, browser -test, deterministic real-server composition, or fake Codex executable. This -candidate adds only test infrastructure, two baseline screenshots, root test -scripts, and evidence documentation. Production server, React, CSS, API, and -runtime behavior are unchanged. - -`tests/e2e/support/test-app.mjs` starts the built Fastify application directly on -an ephemeral loopback port. Every data, workspace, home, temporary, Codex, and -Shepherd path is under one exact `.tmp/playwright-harness/run-*` directory. The -child environment is constructed from an allowlist instead of spreading -`process.env`: Ark/model values are empty, the execution mode is deterministic, -and no `.env` loader or live model path runs. Startup uses a bounded fake Codex -protocol executable and a startup-only fake container engine that permits only the -two ownership-filtered empty `ps` reconciliation calls. There is no production -debug/fault route. Readiness polls the real health endpoint; teardown sends -`SIGTERM`, bounds the wait, retains a `SIGKILL` fallback, removes only the exact -allocated run root, and is tested to close the port. - -Observed focused verification with Playwright `1.62.1` and repo-local Chrome for -Testing/Chromium `151.0.7922.34`: - -```sh -npm run test:e2e:install -# Chromium, headless shell, and FFmpeg installed below ignored .tmp/ - -npm run test:e2e:harness -# build passed -# Node harness tests: 2/2 passed -# Playwright Chromium: 2/2 passed using one worker -``` - -The Node tests verify the fake Codex version/run/resume protocol, output/prompt -bounds, real HTTP health, required bearer authentication, unauthenticated 401, -authenticated system state, `codexAvailable=true`, deterministic/local runtime, -real production HTML, ambient-Ark exclusion, and state/process/port cleanup. A -planted ambient Ark canary and the test bearer token were absent from persisted -state, the system API payload, and bounded server logs. - -The Playwright test unlocks the real app through the access-token form, waits for -the Shepherd heading and `Kernel online`, verifies the exact browser dimensions, -asserts document and body scroll sizes do not exceed their client dimensions on -either axis, and verifies the token is absent from rendered text. Captures were -written to: - -- `docs/ui-review/e2e-harness/1280x800.png` -- `docs/ui-review/e2e-harness/1440x900.png` - -Both captures were visually inspected against PRD 11.7. They preserve the accepted -cream surface, charcoal sidebar, violet accent, restrained borders/shadows, -typography and spacing, with no overlap, raw state, or document-level overflow. -The expected deterministic clean-start runtime warning and empty Mission panels -are visible. This is harness/baseline evidence only; it does not satisfy the eight -full PRD journeys, populated/intermediate states, accessibility review, or the -independent `UI-GATE`. - -Repository regression evidence: - -```sh -npm run check -# both workspace typechecks passed -# launcher tests: 3/3 passed -# server: 26 files passed, 1 opt-in file skipped; -# 555 tests passed, 1 opt-in test skipped -# web and server production builds passed - -git diff --check -# passed -``` - -No external/model API request was made. Secret isolation was exercised through -store/API/log/DOM checks; no production trust boundary changed, so an independent -security-reviewer is not required for this test-only candidate. `T`, `C`, `B`, and -`S` are evidenced. Auditor integration and the `I` gate remain pending. - -### Independent Auditor integration - -**Candidate:** `fd4953defd4a2e9331bb7dc39f79aea8fbc05342` - -**Integrated implementation:** `5b152a0c54ac1ed97c69d69cc84a7e093f5250e9` - -The Auditor reviewed the exact parent-relative diff and dependency graph before -integration. The implementation scope is the Playwright configuration, root test -scripts, E2E support/fixtures/tests, two PNG baselines, and evidence documentation. -The existing Playwright `1.62.1` lock entry is reused; `package-lock.json` did not -change. No server source, web source, CSS, API route, runtime configuration, -production launcher, `.env` example, or production debug/fault route changed. - -Source and focused runtime review confirmed that the built server is spawned -directly with a constructed child-environment allowlist rather than `process.env`; -there is no env-file flag or dotenv loader. Ark/model variables are empty, the -runtime is deterministic and loopback-only, and no model request is possible in -the exercised state. The real API still requires bearer authentication. The fake -Codex limits invocation shape, prompt size and output; the fake container engine -returns only an empty result for the two ownership-filtered startup `ps` probes. -Readiness is capped at 15 seconds, captured output at 16 KiB, and shutdown at -`SIGTERM` plus a bounded `SIGKILL` fallback. Each run uses a single exact -repository-local ignored root; tests proved state-root deletion and port closure. - -The candidate was independently tested in a detached audit worktree, then the -same gates were repeated after integration on `mock-main`: - -```sh -npm run test:e2e:harness:unit -# build passed; Node harness 2/2 passed - -PLAYWRIGHT_BROWSERS_PATH=.tmp/playwright-browsers \ - npx playwright test --config=playwright.config.ts -# Chromium 2/2 passed: 1280x800 and 1440x900 - -npm run check -# typechecks passed; launcher 3/3; server 26 files and 555 tests passed; -# one opt-in live file/test skipped; web 40-module build and server build passed - -git diff --check -# passed -``` - -Both fresh screenshots had the exact committed dimensions and hashes: - -- `1280x800.png`: `07acf85b0cdfe947aca71a3bf26c476a20305761aa7d2f4bf0dca334014bfd05` -- `1440x900.png`: `3b54e1afe689acee16a8c6a0991e3178f7440f6d2cd9118a03a480bb975ed355` - -The Auditor visually inspected both captures. They preserve the accepted charcoal, -cream and violet design language with legible empty-state hierarchy, no overlap, -and no document/body X/Y overflow. The access token is absent from DOM text and -the screenshots; the ambient Ark canary is absent from state, API payloads and -bounded logs. No server process or per-run state remained after either run. Only -the expected ignored browser binaries and Playwright last-run metadata remain. - -**Verdict:** `E2E-HARNESS` is **AUDITED at scoped 100%** with `T,C,B,S,I` 5/5. -No independent UI or security reviewer was required because production UI and -trust-boundary code did not change. This verdict covers only the deterministic -authenticated clean-shell foundation. `E2E-01` through `E2E-08`, populated and -composer interactions, accessibility, live-model acceptance, and `UI-GATE` remain -separate pending work. -## F-03 Contract verifier infrastructure failure candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `fix/mock-main` / `origin/mock-main@ace01ae` - -The causal regression planted a Contract-only verifier exception containing a -canary and private diagnostic path. Before the correction, the raw exception -escaped; the Mission became `failed` with code `unknown` at -`deterministic_demo`, both Contracts remained `verifying`, both Contract Planes -remained `inspecting`, and both Agents remained `busy` with -`currentContractId` retained. - -The correction is confined to the existing Contract verification service and -verifier cancellation boundaries. A thrown verifier infrastructure error or a -returned mandatory check with status `infrastructure_error` now produces fixed -`verification_infrastructure_error` evidence at `contract_verification`. Ordinary -mandatory checks with status `failed` retain `failed_independent_acceptance`. -One durable mutation sets the throwing/returning Contract and its Plane to -`verification_failed`/`failed`, interrupts every active sibling Contract/Plane, -releases all mission-owned Agent and project ownership, and fails the Mission. -The batch returns promptly, makes bounded best-effort cancellation calls, and -rejects late sibling completion. Target cancellation remains sticky across -sequential checks and reserved container creation, prevents later invocation or -container start, contains repeated cancellation during bounded removal, and allows -clean exact-ID reuse only after cleanup. Passing verification still requires -independent evidence; no integration, candidate, or promotion path is entered. - -Three read-only review rounds prevented incomplete candidates from release. The -first found an active sibling beneath a failed Mission. The second fault probe -found the production container verifier returns infrastructure evidence rather -than always throwing, plus non-sticky sequential/reserved cancellation. The third -found a repeated cancel during delayed removal could leave a stale marker and -cancel later same-ID work. Regressions preserve each failure: blocked sibling plus -durable reload and late return; returned mandatory infrastructure evidence; -no sibling verifier invocation; no second sequential check; no `start` after -reserved cancellation; and delayed removal plus repeated cancel and bounded ID -reuse. Final re-review reported no blocker, high, or medium finding. The configured -custom reviewer role was unavailable, so reviews used a separate read-only -fallback agent. - -Observed verification: - -```sh -npm run test -w @launchpad/server -- --run \ - src/shepherd/service.test.ts src/shepherd/verifier.container.test.ts \ - -t "terminalizes Contract verification infrastructure failures without promotion or sensitive diagnostics|terminalizes returned Contract verification infrastructure evidence|preserves ordinary failed mandatory Contract acceptance semantics|atomically interrupts a blocked sibling after|does not invoke a sibling verifier after infrastructure terminalization|keeps target cancellation sticky across sequential checks and permits bounded ID reuse|keeps cancellation sticky across reserved container creation before start" -# 2 files; 8 passed, 34 skipped - -npm run test -w @launchpad/server -- --run \ - src/shepherd/service.test.ts src/shepherd/verifier.container.test.ts \ - src/shepherd/codex-executor.test.ts src/shepherd/executor.test.ts src/app.test.ts \ - src/shepherd/recovery.test.ts src/shepherd/recovery.process.test.ts \ - src/shepherd/state-machine.test.ts src/database.test.ts src/store.test.ts -# 10 files passed; 185/185 tests passed - -npm run check -# exit 0: both workspace typechecks; launcher 3/3; server 26 files and -# 563/563 tests passed with one opt-in live file/test skipped; -# web and server production builds passed - -git diff --check -# exit 0 -``` - -The planted canary, private path, and raw verifier message were absent from the -durable Mission detail, public Mission DTO, and persisted store file. No Ark/model -request was made. Browser/UI and live Runtime gates were not run because this -candidate changes only backend failure/cancellation orchestration and deterministic tests. -`T,A,C,S` are fixer-verified; independent Auditor integration gate `I` remains -pending. - -### F-03 independent integration audit - -The Auditor reviewed and integrated the corrected candidate as `dc87553` without -changing UI, dependencies, runtime configuration, public routes, or the existing -required-check workflow. The state transition uses fixed bounded -`verification_infrastructure_error` evidence, preserves ordinary mandatory -acceptance failure, terminalizes all Mission-owned Contract/Plane/Agent/project -ownership in one durable mutation, and rejects late sibling success before any -integration, collision, candidate, or promotion path. The container boundary keeps -cancellation sticky through sequential checks and reserved creation/removal, -contains repeated cancellation, and releases only the exact target for bounded -same-ID reuse. - -Independent observed results on the candidate and integrated tree: - -```sh -# exact corrected service/verifier selection -# 2 files passed; 8 passed, 34 skipped - -# service/API/recovery/store/state-machine/executor/verifier adjacency -# 10 files passed; 185/185 tests passed - -npm run check -# launcher 3/3; server 26 files and 563/563 tests passed with one opt-in live -# file/test skipped; both workspace typechecks and production builds passed - -git diff --check -# passed -``` - -The failure regressions reload the durable store after terminalization, release a -blocked late sibling, and assert the terminal state is unchanged with no green -verification, integration, collision, candidate, selection, or promotion evidence. -Canary diagnostics and private paths remain absent from durable state, public DTOs, -and the store file. No model/network call was made. `F-03` is **AUDITED, scoped -100%** with `T,A,C,S,I` passed 5/5; hosted Node 22 evidence is recorded after the -final audit documentation push. - -## TST-02 deterministic recovery fixture clock - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/base:** `work/mock-main` / `6f7660d` - -The post-CAS startup-reconciliation fixture created its Git Planes with -`PlaneManager`'s wall clock but reconciled them at the fixed instant -`2026-08-29T12:05:00.000Z`. Once wall time passed that instant, recovery attempted -to persist an `updatedAt` earlier than the Plane's `createdAt`; the store correctly -rejected the invalid lifecycle state. - -The original isolated reproduction was preserved before editing: - -```sh -npm run test -w @launchpad/server -- --run src/shepherd/recovery.test.ts \ - -t "fails closed, recognizes the exact post-CAS window, cleans private artifacts, and is idempotent" -# RED: 1 failed, 16 skipped; JsonStore reported -# "Refusing to persist invalid database state" -``` - -The smallest correction is test-only: the affected fixture now passes its existing -deterministic `12:00Z` clock to `PlaneManager`, so Plane creation precedes the -deliberate `12:05Z` recovery instant. Production recovery, store validation, and -lifecycle ordering assertions are unchanged. - -Observed GREEN verification: - -```sh -npm run test -w @launchpad/server -- --run src/shepherd/recovery.test.ts \ - -t "fails closed, recognizes the exact post-CAS window, cleans private artifacts, and is idempotent" -# 1 passed, 16 skipped - -npm run test -w @launchpad/server -- --run src/shepherd/recovery.test.ts -# 17/17 passed - -npm run check -# exit 0: both workspace typechecks passed; launcher 3/3 passed; -# server 26 files and 555 tests passed with one opt-in live file/test skipped; -# web and server production builds passed -``` - -No Ark/model request was made. The implementation has `T`, `A`, and `C` evidence; -independent Auditor integration and the `I` gate remain pending. - -### Independent Auditor integration - -**Candidate:** `bab6de18e7c28e5f8a132f8d80163f509c890a1e` - -**Integrated implementation:** `0cb431a0420e3d7f77784fe4c62b42f92710446c` - -The Auditor fetched the candidate without touching the Worker's worktree, reviewed -the exact parent-relative diff, and found one production-adjacent test change: -`recovery.test.ts` injects the fixture's existing `12:00Z` clock into its -`PlaneManager`. The only other changes were this build-log entry and the task row. -No production, UI, store, recovery, lifecycle-validation, API, security, dependency, -or configuration file changed. `git show --check` and the parent-to-candidate diff -check passed. - -The candidate was first verified in a separate detached repository-local audit -worktree: - -```sh -npm run test -w @launchpad/server -- --run src/shepherd/recovery.test.ts \ - -t "fails closed, recognizes the exact post-CAS window, cleans private artifacts, and is idempotent" -# 1 passed, 16 skipped - -npm run test -w @launchpad/server -- --run src/shepherd/recovery.test.ts -# 17/17 passed - -npm run check -# launcher 3/3; server 26 files and 555 tests passed; -# one opt-in live file/test skipped; both production builds passed -``` - -After cherry-picking the candidate onto `mock-main` as `0cb431a`, the Auditor ran -the same integrated-SHA gates again with the same counts: isolated 1/1, recovery -17/17, launcher 3/3, server 555/555 with one opt-in skip, and both builds green. -The audit worktree was clean and removed after verification; the main worktree was -clean before integration. - -**Verdict:** `TST-02` is **AUDITED at scoped 100%** with `T,A,C,I` 4/4. The fixed -fixture clock removes the time-dependent test failure while strict lifecycle/store -validation remains unchanged. Browser, live-model, UI-review, and security-review -gates were not run because this correction changes only deterministic test setup -and evidence documentation. -## TST-02 recovery fixture clock candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch:** `fix/33-recovery-fixture-clock` -**Issue:** [#33](https://github.com/kyashp/shepherd/issues/33) -**Draft PR:** [#34](https://github.com/kyashp/shepherd/pull/34) - -The exact post-CAS recovery test created its Plane through a `PlaneManager` using -the real wall clock, then reconciled it with fixed `recoveredAt` -`2026-08-29T12:05:00.000Z`. Once real time passed 12:05Z, recovery assigned an -`updatedAt` earlier than the Plane's real `createdAt`, and database validation -correctly rejected the state. The unmodified targeted test reproduced the causal -RED with `Refusing to persist invalid database state` after 12:05Z. - -The candidate injects the test's existing `2026-08-29T12:00:00.000Z` timestamp -through `PlaneManager`'s existing `now` option. It changes no production code, -schema, validator, assertion, launcher, dependency, UI file, or ST-02/PR #13 file. - -Observed against code commit -`1dc3133c332b9fd31ec27d2ed5e8d620a0dae08f`: - -- the exact targeted test passed 1/1 at the real post-rollover time 15:08Z; -- the complete `recovery.test.ts` file passed 17/17 at the real post-rollover time; -- literal `npm run check` in a clean Node 24 Linux workspace, with only the process - wall clock held at the shared 12:00Z fixture baseline, passed: launcher 3/3, - server 25 files passed and 2 opt-in files skipped, 551 tests passed and 5 skipped, - and both production builds completed; -- unconstrained real-clock full-suite attempts still exposed unrelated current-main - cross-suite instability in unchanged service/recovery-process cases, while the - changed recovery file remained 17/17; the full unchanged `service.test.ts` and - `recovery.process.test.ts` files then passed 28/28 and 5/5 in isolation; -- `npm audit --json` reported 0 vulnerabilities across 251 dependencies; -- `git diff --check` passed. - -An independent read-only review of the exact code range -`349897d3d9167fe711bf720f7c3fadd213938d11...1dc3133c332b9fd31ec27d2ed5e8d620a0dae08f` -reported no Critical, Important, or Minor finding and returned **Ready to merge: -Yes**. It confirmed the injected clock owns the persisted Plane lifecycle -timestamps, produces a fresh fixed `Date` on each call, precedes recovery by five -minutes, and leaves every fail-closed, cleanup, event, and idempotency assertion -unchanged. - -The clock-controlled full check is recorded as controlled evidence, not as an -unconstrained real-clock pass. The real-clock targeted and full-file results are the -post-rollover proof for this narrowly scoped correction. - -## OPS-05 canonical launcher-entry candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch:** `fix/31-ops-05-canonical-launcher-entry` -**Issue:** [#31](https://github.com/kyashp/shepherd/issues/31) - -On macOS, `os.tmpdir()` returned a lexical `/var/...` path while `realpath()` -returned its `/private/var/...` filesystem identity. The launcher compared the -lexical `process.argv[1]` with ESM's canonical module path, misclassified direct -execution as an import, and exited before starting its child. The preserved initial -launcher suite RED was 1/2: the direct-shell fixture failed with missing -`startup-environment`. A new deterministic symlink-entry RED then failed 0/1 -because its child-side-effect marker was absent even though the launcher exited 0. - -The launcher now canonicalizes both entry paths with `realpath()` before comparing -them. An identity-resolution failure is an explicit generic launcher error (exit 1), -never a safe import classification. The regression invokes a symlink alias and -asserts that its child writes the marker. The existing direct-shell fixture now uses -a temporary `HOME` and asserts Darwin's documented user-local state root while -retaining Linux's repository-local root; exact Docker-default localization, explicit -custom paths, Node-only dotenv parsing, inherited child environment, and secret -non-disclosure assertions remain intact. - -Observed GREEN verification: - -```sh -node --test scripts/start-local-poc-launcher.test.mjs -# 3/3 passed, repeated five consecutive times - -npm run check -# exit 0: workspace typechecks passed; launcher 3/3; server 25 files passed, -# 550 tests passed, 2 opt-in tests skipped; web and server production builds passed - -npm audit -# found 0 vulnerabilities -``` - -No Ark or Shepherd model request was made. A real zero-parameter Docker smoke was -unavailable in this session: the Docker CLI was installed but `docker info` exited -1, so no live Runtime claim is recorded. - -## OPS-04 local loopback candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/commit:** `fix/29-ops-04-local-loopback` / `a0a2d60` -**Issue:** [#29](https://github.com/kyashp/shepherd/issues/29) - -The first exact post-#28 command, `./scripts/start-local-poc.sh`, used the real -ignored `.env` without printing values. Runtime preflight and both builds passed, -but server configuration then failed closed because the inherited host was an -any-address value and the configured application token was a placeholder. A -classification-only check confirmed those facts without exposing either value. - -The candidate changes only the local launcher: an empty host or the exact container -any-address values `0.0.0.0` and `::` become `127.0.0.1`. Other custom hosts remain -unchanged, and the server's non-loopback token validation is untouched. The causal -RED fixture captured `0.0.0.0`; GREEN captured `127.0.0.1` through the real launcher -boundary. - -The exact direct command was then run from the candidate worktree against the real -ignored `.env` through a temporary ignored symlink; no credential was copied, -printed, or committed. Observed results: - -- listener: `127.0.0.1:3000` only; -- `GET /api/health`: 200; -- `GET /`: 200; -- unauthenticated `GET /api/system`: 401; -- authenticated `GET /api/system`: 200 with Ark configured, Codex available, and - the container/Docker Runtime selected; -- SIGINT closed port 3000 and left zero Runtime containers owned by the configured - instance; the temporary `.env` symlink was removed; -- no Agent or Shepherd model request was made. - -Final local verification before PR creation: - -```sh -node --test scripts/start-local-poc-launcher.test.mjs -# 2/2 passed - -npm run check -# exit 0: both workspace typechecks passed -# launcher tests 2/2 passed -# 26 server test files passed, 1 opt-in live file skipped -# 551 tests passed, 1 opt-in live test skipped -# web and server production builds passed -``` - -The configured custom security-reviewer role was unavailable. An independent -read-only fallback review reported no high or medium finding and confirmed that -non-loopback hosts still reach the unchanged server token-enforcement boundary. -It reported one Low test gap for empty, IPv6-any, and explicit custom hosts. The -launcher regression now covers empty and `::` normalization plus preservation of -the concrete documentation-range host `192.0.2.10`; the focused test remains 2/2. - -## OPS-02 direct local startup candidate - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch/commit:** `fix/27-ops-02-direct-env-launch` / `e4cb2e5` -**Draft PR:** [#28](https://github.com/kyashp/shepherd/pull/28) - -Direct `./scripts/start-local-poc.sh` previously exited 2 before Runtime detection -because it did not read the repository `.env`. The preserved RED launcher fixture -observed the generic missing-Ark-variable error. The candidate performs one guarded -handoff through Node's dotenv parser and marks the returned shell environment to -prevent recursion; `.env` is never sourced or printed. - -The same fixture established the adjacent host-path defect: `.env.example` Docker -defaults would otherwise remain `/app/...`. The candidate maps only those exact -defaults into the existing platform local-state root and leaves explicit custom host -paths unchanged. The fake engine/npm boundary captures values only in a private -temporary test file and asserts that planted Ark/model sentinels never reach stdout -or stderr. - -Observed verification: - -```sh -node --test scripts/start-local-poc-launcher.test.mjs -# 2/2 passed: npm launcher compatibility; direct dotenv/path behavior - -bash -n scripts/start-local-poc.sh -node --check scripts/start-local-poc-launcher.mjs -git diff --check -# all passed - -npm run check -# exit 0: both workspace typechecks passed -# launcher tests 2/2 passed -# 26 server test files passed, 1 opt-in live file skipped -# 551 tests passed, 1 opt-in live test skipped -# web and server production builds passed -``` - -No live Ark or Shepherd-model request was made. The configured custom security -reviewer role was unavailable, so an independent read-only fallback reviewer -inspected the exact `origin/main...8266c46` delta. It reported no critical, high, -medium, or low finding: Node parses rather than executes `.env`; the recursion -marker adds no privilege boundary; paths remain quoted; only exact Docker defaults -are localized; and container isolation is unchanged. It reran the launcher suite -2/2. A post-merge real zero-parameter startup smoke remains before `OPS-02` may be -marked complete on `main`. - -## Phase 0 — Baseline Lock - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch:** `feature/shepherd-phase-0-baseline` -**Starting commit:** `12479cf` -**Environment:** Node 24.17.0, npm 11.17.0, Git 2.43.0, Docker client/server 29.7.2, Linux host. The application Runtime image is based on Node 22. - -### Configuration and credential hygiene - -- Confirmed ignored `.env` contains configured `ARK_API_KEY`, `ARK_MODEL`, `SHEPHERD_MODEL`, and `ARK_BASE_URL` without printing their values. -- Removed real values from tracked `.env.example`; it now contains placeholders only. -- Direct Responses API probes returned HTTP 200 and exact output `OK` for the configured Agent model (`gpt-5.6-terra`) and Shepherd model (`gpt-5.6-sol`). -- Added ignored `.tmp/` so test/browser temporary state can remain inside the repository boundary. - -### Locked dependency baseline - -Commands: - -```sh -npm ci -npm audit fix -npm audit -``` - -Observed: - -- Locked install completed. -- The initial audit reported five high and one moderate advisory. -- Non-force audit remediation updated seven transitive packages. -- Final audit: `found 0 vulnerabilities`. -- Added exact development dependency `@playwright/test@1.62.1`; Chromium 151 test binaries are held under ignored repository-local `.tmp/`. - -### Real starter Runtime acceptance - -Started the actual local PoC on loopback with repository-local persistent state and the disposable Docker Runtime. The first build produced `volc-agent-runtime:local`. Runtime preflight observed that Landlock was unavailable and correctly used the documented `danger-full-access` inner fallback inside the disposable outer container. - -Observed API/system state: - -```json -{ - "arkConfigured": true, - "arkModel": "gpt-5.6-terra", - "codexAvailable": true, - "runtimeProvider": "container", - "containerEngine": "docker" -} -``` - -Acceptance journey: - -1. Created one real Agent through `POST /api/agents`; it entered `ready`. -2. Sent a dependency-free hello-world CLI task through `POST /api/agents/:id/messages`. -3. Observed Run transition `queued → running → completed`. -4. Agent created `hello.js` and `hello.test.js`; the exact Runtime-container command `node --test hello.test.js` passed 1/1. -5. Sent a minimal follow-up in the same persisted Codex thread; observed exact response `Hello, world!`. -6. Stopped and restarted the server against the same data root. -7. After restart, observed the Agent still `ready`, its Codex thread present, four ordered messages (`user, assistant, user, assistant`), two completed Runs, and the original workspace files. - -The first live turn reported 79,196 input tokens (58,062 cached) and the follow-up reported 91,339 input tokens (67,739 cached). This is why later live-model verification is intentionally limited to required gates. - -### Diagnosed baseline discrepancy - -Reproduction on the host: - -```sh -node --test .local/baseline-poc/workspaces//hello.test.js -``` - -Observed: failure because the host resolves the nested workspace under the repository's root `"type": "module"`, while the Agent generated CommonJS `.js` files. - -Root cause: the same mounted workspace is `/workspace` inside the disposable Runtime and has no ancestor `package.json`; Node therefore evaluates the generated files as CommonJS there. Re-running the exact test in `volc-agent-runtime:local` passed 1/1. No starter code was changed because the supported execution boundary behaved correctly; the host-only command is not the Runtime acceptance path. - -### Rendered baseline evidence - -Used headless Chromium against the real production server and real persisted backend data. - -- `docs/ui-review/baseline/1440x900.png`: Agent, session, first response, and follow-up rendered; no horizontal overflow. -- `docs/ui-review/baseline/1280x800.png`: same persisted state rendered; no horizontal overflow. - -Both screenshots were visually inspected. They establish the starter's cream surface, charcoal sidebar, violet accent, typography, spacing, chat treatment, and compact control conventions to preserve. - -### Phase 0 gate - -Commands and observed results: - -```sh -TMPDIR="$PWD/.tmp/test-temp" npm run check -# type checks passed; 5 test files / 12 tests passed; web and server builds passed - -terraform fmt -check -recursive deploy/volcengine -# passed - -docker compose config --quiet -# passed - -npm audit -# found 0 vulnerabilities - -git diff --check -# passed -``` - -**Verdict:** starter deterministic checks, real model/container execution, session continuation, restart persistence, and rendered baseline are verified for this local environment. This does not yet establish any Shepherd behavior. - -## Phase 1 — Deterministic Walking Skeleton - -**Date:** 2026-08-29 (Asia/Singapore) - -**Branch:** `feature/shepherd-phase-1-kernel` - -### Built kernel chain - -Implemented the deterministic chain before connecting any live model: - -```text -Contracts → real Git worktrees → deterministic executors → manifest ingestion -→ actual-diff authority → independent Docker verification → trusted integration -→ normalized semantic collision → concurrent resolution Planes -→ independent candidate evidence → deterministic selection -→ final re-verification + expected-HEAD CAS promotion -``` - -The V2 store migration preserves the captured V1 Agent/message/Run fixture. Mission and Contract transitions, 22 failure codes, authority envelopes, Plane/candidate evidence, collision state, group messages, settings, and monotonically sequenced events are durable. Store mutations are serialized and written through an atomic temporary-file rename. - -The managed authentication fixture uses different frontend/backend files, so both contract commits merge without a textual conflict. Their normalized exclusive `auth.transport` claims conflict semantically. Under the default invariant the cookie candidate passes and is promoted; flipping the invariant selects bearer instead. Both resolution Planes begin at the exact same integration SHA. - -### Trust-boundary verification - -- Git is invoked with argv arrays, sanitized refs, disabled prompts/hooks/signing, bounded output, and explicit timeouts. -- Public protected-worktree/ref mutation methods reject direct use; the configured protected branch changes only through the final promotion gate. -- Contract and candidate executors receive authority-filtered, Git-free exports with opaque handles; they never receive a linked Git worktree or trusted repository metadata. -- Trusted import compares the complete exported tree with the source Plane, validates the derived actual diff, and rejects escapes, symlinks, FIFOs/special files, `.git`, protected `.shepherd` contents, and out-of-scope writes. A partial import is restored before the error is surfaced. -- Contract and candidate commits are inspected against actual changed paths at the import/Plane boundary and again before promotion. -- Result manifests are strict-schema parsed. The exact `.shepherd/result.json` ingestion exception is removed before trusted commit creation and is absent from every Plane commit. -- The independent verifier creates a fresh snapshot of the exact trusted commit, creates a named container, mounts only that snapshot read-only, uses `--network none`, no capabilities, no new privileges, cleared environment, bounded resources/output/time, then forcibly removes both the container and snapshot on every exit path. -- Independently observed fixture facts must corroborate manifest claim values before claims are persisted as collision inputs. A forged value produces `claim_rejected` and `invalid_semantic_evidence` instead of participating in selection. -- Protected compare-and-swap promotion rolls the ref back to the expected commit if worktree synchronization fails and proves both ref and worktree restoration. Synchronization failure and unprovable rollback are distinct fail-closed errors. -- Agent workspaces use isolated execution UUIDs outside all protected repositories and Planes. Public DTOs expose allowlisted logical fields only. -- Server binding defaults to loopback. Every non-loopback bind requires a URL-safe, non-placeholder token of at least 24 characters; internal errors are bounded/redacted and public 500 responses are generic. -- The JSON store sanitizes configured canaries and common credential forms before state can become observable in memory or on disk. Public Shepherd DTOs strip repository, worktree, and Agent workspace host paths. - -An independent read-only security review first identified mutable verification input, linked worktree metadata at the executor boundary, public-bind authentication defaults, uncorroborated claims, incomplete production authority intersection, raw error/path exposure, and a protected-ref synchronization edge. Each finding received a regression test and the smallest fail-closed remediation above. A second independent review re-ran its focused 38-test security slice and reported no remaining critical, high, or medium findings. - -### Automated and real-boundary evidence - -Focused real-container Mission test: - -```sh -npm run test -w @launchpad/server -- --run src/shepherd/service.container.test.ts -# 1 file / 1 test passed; real Docker Mission completed in 5.53 s -``` - -The test observed persisted contract/candidate/final-promotion evidence, the cookie winner, common resolution base SHA, selected Plane HEAD equal to protected HEAD, trusted profile output, no committed `.shepherd` path, and no remaining containers owned by that Mission. - -Full parallel server suite after integration: - -```sh -npm run test -w @launchpad/server -# 19 files / 225 tests passed -``` - -Real built-server HTTP smoke used isolated repository-local data and the real `volc-agent-runtime:local` verification image. Observed: - -```json -{ - "unauthenticatedStatus": 401, - "rejectedInputStatus": 400, - "missionState": "completed", - "selectedTransport": "http-only-session-cookie", - "corroboratedClaimEvents": 2, - "eventCount": 33, - "elapsedMs": 6798, - "pathAndTokenLeakCheck": "passed" -} -``` - -After graceful stop/restart against the same store, the Mission remained `completed`, persisted protected HEAD matched real Git `HEAD`, no control metadata was tracked, and neither the configured Ark key nor application token appeared in the persisted JSON. The execution-export, trusted-materialization, and trusted-verification directories were empty; Git listed no materialization worktrees; a global Docker label query returned zero remaining verifier containers. - -### Five invariant mutation checks - -Each guard was temporarily disabled only in the working tree, its hostile test was run red, the guard was restored, and the same test was run green. No mutation was retained. - -| Invariant | Temporary mutation | Red observation | Restored observation | -| --- | --- | --- | --- | -| Agent cannot self-certify | Allowed `agent_runtime` to perform `verifying → verified` | Independent-actor assertion failed (1 failed / 7 passed) | State-machine suite 8/8 passed | -| Out-of-scope changes cannot integrate/promote | Forced writable-scope result to `true` | Authority suite failed twice and direct Plane-boundary bypass test failed | Authority + Git suites 56/56 passed | -| Protected branch only changes through promotion | Disabled protected-root mutation guard | Structural bypass test resolved instead of rejecting | Git/Plane suite 10/10 passed | -| Winner is evidence-derived | Forced first assessment to pass | Invariant-flip expected cookie but selected bearer (1 failed / 27 passed) | Resolution suite 28/28 passed | -| Secrets never persist | Replaced recursive redaction with identity | New-write and existing-V2 canaries both leaked (2 failed / 5 passed) | Store suite 7/7 passed | - -### Problem-resolution record: parallel Docker cleanup assertion - -Reproduction: - -```sh -npm run check -# verifier.container.test.ts reported containers owned by service.container.test.ts -``` - -Root cause: Vitest runs test files in parallel, while both real-container tests queried the shared `io.codejam.shepherd=independent-verifier` label and incorrectly treated another test's live container as their own leak. - -Fix: cleanup assertions now combine the shared label with each test's owned `io.codejam.verification-target` labels. This preserves parallelism and still proves each executor destroys its own containers. The original full-suite reproduction then passed 19/19 files and 225/225 tests; an additional phase-boundary global query proves no actual leftovers after all work stops. - -### Problem-resolution record: authority denial misclassification - -Reproduction: an executor changed an out-of-scope file after Git-free export, and the service initially persisted generic `execution_failed` because trusted import occurred inside the broad executor error boundary. - -Root cause: authority validation had moved to the trusted import boundary, but the orchestration layer still classified every pre-import exception as an execution failure. - -Fix: execution completion and trusted import now have distinct transitions/error handling. An import-scope rejection durably records `authority_denied` (and candidate `unauthorized_file_change`) while preserving the fail-closed Plane. The focused service/container/Git slice passed 23/23 after the original reproduction was rerun. - -### Problem-resolution record: real-Git integration timeout under suite load - -Reproduction: the full parallel suite crossed Vitest's generic 5-second default in one real-Git background Mission journey (observed 5.13 seconds) even though the Mission was progressing normally. - -Root cause: the integration test intentionally performs multiple real worktree, commit, merge, snapshot, and container-adjacent operations and can exceed a unit-test timeout under parallel contention. - -Fix: only that real-boundary integration test declares a 30-second ceiling; unit-test defaults remain unchanged. No sleep or polling delay was added. The full 225-test server suite passed afterward. - -### Problem-resolution record: empty control directory in snapshots - -Reproduction: after trusted import removed `.shepherd/result.json`, the optimized snapshot copier rejected the now-empty root `.shepherd/` directory even though no control content could enter the snapshot. - -Root cause: the hardened tree copier correctly rejected protected control content but did not distinguish a harmless empty root directory left by manifest ingestion from actual metadata. - -Fix: snapshot creation skips only an empty root `.shepherd/`; any file or nested content still rejects the source. A regression also proves `.git`, live-only files, and control content never enter a verification snapshot and every snapshot is removed. - -### Hardened Phase 1 focused gate - -```sh -npm run test -w @launchpad/server -- --run \ - src/config.test.ts src/app.test.ts src/shepherd/auth-fixture.test.ts \ - src/shepherd/service.test.ts src/shepherd/git-plane-promotion.integration.test.ts -# 5 files / 38 tests passed - -npm run test -w @launchpad/server -# 19 files / 225 tests passed (includes the real Docker Mission) - -npm run typecheck -w @launchpad/server -# passed -``` - -**Security review verdict:** no critical, high, or medium findings remain at the Phase 1 boundary. - -### Phase 1 branch gate - -```sh -TMPDIR="$PWD/.tmp/test-temp" npm run check -# exit 0: both workspace type checks passed; 19 files / 225 server tests -# passed; web and server production builds passed - -npm audit -# found 0 vulnerabilities - -terraform fmt -check -recursive deploy/volcengine -# passed - -docker compose config --quiet -# passed - -git diff --check -# passed -``` - -A repository-wide text scan compared the configured non-placeholder Ark credential against 145 files (excluding the ignored source `.env`, dependency/build/browser scratch, and Git metadata) and found zero occurrences. The global verifier-container label query returned zero containers. - -The sample environment now defaults `HOST` to `127.0.0.1`; Compose and Terraform retain explicit service binds with their required application token. The user's current ignored `.env` has both requested models and the Ark credential configured, but also has a non-loopback host without a strong application token. Test/rehearsal processes therefore use an explicit loopback override until the private file is intentionally changed; the server correctly refuses that unsafe combination. - -**Phase verdict:** the deterministic kernel, its hardened executor/import/verifier boundaries, real Git/container/HTTP path, restart persistence at a completed boundary, and all Phase 1 security regressions are verified. General in-flight recovery and the remaining PRD capabilities are intentionally deferred to subsequent phase gates. - -## Phase 2 — Domain, Persistence, and Crash Recovery Hardening - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch:** `feature/shepherd-phase-2-recovery` - -### Strict durable state - -The version-2 store now validates every persisted and outgoing field with strict, -bounded schemas rather than accepting shape-compatible JSON. Validation covers -canonical host and project-relative paths, supported authority patterns, safe Git -branches, full object IDs, bounded collections/text/numbers/timestamps, unique IDs, -references, event cursors, one active non-terminal Mission, and lifecycle/evidence -relationships. The captured version-1 fixture is independently validated before its -lossless migration. - -False-green completion is rejected unless verified Contracts have non-vacuous -mandatory acceptance evidence tied to their exact Plane diff and manifest claims. -Collision sources must be verified Contracts with canonical embedded claims. For the -managed authentication fixture, candidate evidence must contain exactly the trusted -frontend, backend, and project-security mandatory suite; final promotion evidence -must repeat that exact suite. Completed collision Missions require one resolved, -selected, promoted candidate whose verified Plane HEAD matches the protected project -HEAD. A no-collision completion requires a verified integration Plane at the promoted -protected HEAD. - -The JSON reader uses bounded, no-follow, non-blocking regular-file reads. Outgoing -state is validated and recursively scrubbed before a unique exclusive `0600` -temporary file is synced and atomically renamed. Oversized reads/writes, symlinks, -fixed-name temporary symlinks, FIFOs, invalid outgoing state, and persistence failure -before in-memory publication all have negative tests. The supported concurrency model -is one server process per data root; mutation serialization is in-process and the JSON -store is not a distributed database. - -### Restart reconciliation and trust adoption - -Startup now validates the sentinel-bound managed root, project metadata, repository, -Plane roots, Plane sentinels, Git worktree registration, protected branch, index, and -worktree before serving. Trusted identity files are bounded `O_NOFOLLOW | O_NONBLOCK` -reads with pre/opened inode and size checks. Persisted host paths are comparison values -only; server-derived sentinel identities select filesystem locations. Missing, -substituted, symlinked, special-file, out-of-root, dirty, detached, unregistered, or -unexpected artifacts fail closed. - -In-flight Contracts, candidates, and Planes become `interrupted`; their Mission and -Collision become `attention_required`; Agent leases are released; private execution, -materialization, and verification artifacts are removed. Evidence and the event cursor -are preserved, and a second restart is idempotent. - -Promotion has a durable intent boundary. After final authority, immutable-head, -selection, protected-head, and independent-verification checks—and immediately before -compare-and-swap—Shepherd atomically records `promotionState=promoting`, the complete -passing promotion evidence, and its Plane evidence link. Recovery never trusts the -earlier `reverifying` state. It recognizes a post-CAS window only when the exact -selected resolution Plane, expected-head ancestry, derived branch/worktree identity, -live Git registration, clean/index-synchronized protected checkout, candidate HEAD, -and complete verifier suite all corroborate. Ordinary post-marker promotion failures -retain evidence and fence the project in `attention_required`; a same-process second -Mission cannot silently adopt an external branch move. - -An empty/replaced database cannot establish a new trust root over old managed project -artifacts. Only a missing/empty root or an existing sentinel-only root with empty known -containers is a valid zero-project state. A non-empty unsentinelled root is still never -adopted. - -### Stable verifier and Agent identities - -Verifier cleanup ownership is installation-scoped and restart-stable: -`verifier..<128-bit persisted nonce>`. A separately persisted marker -distinguishes first boot/one-time upgrade from nonce loss; corruption, symlink/special -files, or deletion after establishment fail closed. Concurrent first starts converge -on one nonce, while different data roots remain distinct. Cleanup targets only the -exact owner label. - -Persisted Agent workspaces are revalidated at startup and before execution against the -canonical configured workspace root and exact Agent-ID-derived path. Escapes, -cross-Agent substitutions, root/leaf symlinks, and durable Shepherd references during -Agent deletion are rejected. - -### Problem-resolution records - -**Persisted state initially proved shape, not truth.** Hostile V2 fixtures could label -evidence-free or weakly related records as verified/completed. The root cause was that -the first V2 loader validated DTO shapes and references but not completion proofs. -Strict semantic/lifecycle validation plus false-green fixtures now rejects invented, -substituted, incomplete, or cross-target evidence. - -**A restart-unstable verifier owner could collide or leak cleanup scope.** A random -per-process fallback changed on every boot and a configured default could be shared by -unrelated installations. Persisted installation identity and exact-owner cleanup -remove both ambiguities. - -**A persisted `reverifying` candidate was not proof that CAS had been attempted.** An -external move to the candidate SHA during re-verification could resemble a post-CAS -crash. The durable pre-CAS evidence marker makes the distinction explicit; recovery -accepts only `promoting` with the exact full suite. A kill immediately before CAS keeps -the trusted/protected head unchanged, while a kill immediately after a successful CAS -can be corroborated and adopted. - -**Promotion failure could release the project fence.** The initial compensation marked -only the Candidate/Collision before generic failure handling terminalized the Mission -and cleared `activeMissionId`. The fixed atomic compensation preserves final evidence, -sets Candidate promotion failure plus Mission/Collision `attention_required`, and keeps -the project fenced. A synchronous regression proves a second Mission is rejected and -neither the stored trusted head nor externally moved Git head changes. - -**Deleting only the database could orphan and then re-adopt an old repository.** The -empty state previously looked like first boot. Startup now rejects any established -managed project artifacts when no durable Project record exists; a hostile external -branch move remains untrusted. - -**A live server could adopt an external head between Missions.** Startup reconciliation -runs once, while the fixture re-opener returns the repository's current branch head. -After a completed Mission, an external commit could therefore become the next Mission's -base without a restart. Mission preparation now re-derives the sentinel-backed project -identity and requires the protected ref, checked-out branch, HEAD, index, and worktree -to equal the durable trusted record before any new Mission, Plane, Agent, workspace, or -store mutation. A regression completes one Mission, commits externally, and proves a -second synchronous run is rejected with all durable counts and both heads unchanged. - -**No-follow reads could still block on a FIFO.** Opening a FIFO read-only can block -before `fstat`. Adding `O_NONBLOCK` while retaining post-open regular-file and identity -checks makes database, verifier identity, sentinel, metadata, and policy reads reject -special files immediately. - -**A real-Git winner-flip test retained a unit-test timeout.** An independent full-suite -run exceeded Vitest's five-second default while parallel real-Git tests were active; -the still-running test then raced teardown of a read-only snapshot. The production path -was not failing. That integration-style test now has the same 30-second ceiling as its -adjacent real-Git journeys. Two consecutive complete server-suite reruns passed after -the fix (31.31 s and 31.47 s) with no teardown failure. - -### Phase 2 verification evidence - -Real process tests send `SIGKILL` at five boundaries: - -1. contract execution workspace ready; -2. contract verification snapshot ready; -3. complete promotion proof persisted immediately before CAS; -4. successful CAS complete before final database persistence; and -5. protected ref updated before protected index/worktree synchronization. - -Each ordinary boundary is restarted twice and proves non-green durable state, -artifact cleanup, and cursor idempotence. The internal ref/index gap is rejected on -both restarts with the original trusted head preserved. - -Commands and observed results: - -```sh -TMPDIR="$PWD/.tmp/test-temp" npm run test -w @launchpad/server -- \ - src/database.test.ts src/shepherd/git-plane-promotion.integration.test.ts \ - src/shepherd/recovery.test.ts src/shepherd/recovery.process.test.ts \ - src/shepherd/service.test.ts -# 5 files / 111 tests passed - -TMPDIR="$PWD/.tmp/test-temp" npm run check -# exit 0: both workspace type checks passed; server suite passed; -# web and server production builds passed - -TMPDIR="$PWD/.tmp/test-temp" npm run test -w @launchpad/server -- \ - --reporter=json --outputFile="$PWD/.tmp/phase2-vitest.json" -# 21 files / 326 tests passed; 0 failed or pending - -# repeated twice after stabilizing the real-Git test ceiling -# run 1: 21 files / 326 tests passed in 31.31 s -# run 2: 21 files / 326 tests passed in 31.47 s - -npm audit -# found 0 vulnerabilities - -terraform fmt -check -recursive deploy/volcengine -docker compose config --quiet -git diff --check -# all passed -``` - -A repository-local exact-value scan checked 150 tracked/ignored project files outside -`.env`, Git metadata, dependencies, builds, and test/browser scratch against the one -configured non-placeholder secret and found zero matching files. The global verifier -container label query returned zero containers after the suite. - -The dedicated `security-reviewer` role was requested after stabilization but was not -available in this environment. A separate read-only fallback reviewer inspected the -complete Phase 2 trust boundary and ran a 5-file/111-test security slice, server -typecheck/build, production fault-seam scan, and whole-tree diff check. Its final -verdict was **no remaining critical, high, or medium findings**. Residual lows are: -directory entries are not explicitly fsynced after atomic rename (process-crash, not -sudden-power-loss, durability is tested); one server per data root is operationally -required; `RUNTIME_INSTANCE_ID` must remain stable for prior-owner container cleanup; -and test-only fault seams remain constructor-injectable but are absent from config, -API, and production composition. - -**Phase verdict:** strict persistence, exact evidence proof, stable ownership, -sentinel-bound identity, five process-kill boundaries, idempotent reconciliation, -pre/post-CAS distinction, live-process protected-head fencing, secret scanning, and -the complete deterministic gate are verified for Phase 2. - -## Phase 3 — Live Plane Runtime and Bounded Advisory Modules - -**Date:** 2026-08-29 (Asia/Singapore) - -**Branch:** `feature/shepherd-phase-3-live-runtime` - -### Versioned execution envelopes and semantic authority - -Contract and resolution work now receive bounded, JSON-escaped -`SHEPHERD_EXECUTION_ENVELOPE_V1` prompts assembled by trusted code. Prompts contain -logical IDs, the intersected authority, expected artifacts, dependency outputs, and -the exact strategy or objective; configured secret values are rejected before a -prompt can be returned. Contract Agents must write the one schema-validated -`.shepherd/result.json` ingestion artifact. Resolution Agents are explicitly forbidden -from writing any `.shepherd/**` path and are evaluated from the imported Git diff and -independent evidence instead. - -Contract envelopes now include both the declared canonical claim keys and the -Contract's declared canonical semantic scopes. Manifest ingestion rejects an -undeclared scope, just as it already rejected an undeclared or omitted key. This -prevents independently correct Contracts from avoiding collision only because their -model-selected scope labels differ. - -Resolution envelopes state the candidate's exact canonical key/value strategy and -forbid substituting a different value based on project policy. Prompt compliance is -not trusted: after the fixed candidate acceptance suite runs, server code derives the -verified `auth.transport` fact from its outputs and requires it to equal the -candidate's persisted target. A candidate whose checks pass for a substituted target -fails with `invalid_semantic_evidence` at -`candidate_target_corroboration`; it cannot tie, win, or promote. - -### Isolated live Codex execution - -`SHEPHERD_EXECUTION_MODE` now accepts `auto`, `live`, or `deterministic`. `auto` -selects live execution only when a usable Ark Agent-model configuration and the -container Runtime are both present. Explicit `live` fails closed if either condition -is absent, and live execution additionally requires `CODEX_SANDBOX_MODE=workspace-write`. -The resolved mode is exposed by system/demo metadata so a deterministic run cannot be -presented as live-model evidence. - -Each Contract or candidate execution uses a fresh Git-free export, a unique opaque -execution identity, a new private `0700` `CODEX_HOME`, and one disposable container. -The exact in-container Codex shape is: - -```text -codex exec --ephemeral --json --sandbox workspace-write \ - --skip-git-repo-check -C /workspace - -``` - -The complete prompt is sent only on standard input. No thread is resumed. The Runtime -container is created first and then started/attached by the validated immutable -container ID, avoiding name-retargeting between creation and attachment. The -container runs non-root with a read-only root filesystem, a dedicated `/tmp` tmpfs, -all capabilities dropped, `no-new-privileges`, and configured CPU, memory, and PID -limits. Only the Git-free workspace and that execution's private home are mounted. - -The outer container uses bridge networking because the Codex control process must -reach Ark. The generated Codex config gives model-authored shell processes a fixed, -key-free environment. Startup preflight, without an Ark credential, requires the -exact pinned `codex-cli 0.111.0`, proves a sandboxed write succeeds in `/workspace`, -proves a write to `/codex-home` is denied, and proves sandboxed TCP listen and connect -attempts are denied. This is distinct from the independent acceptance verifier, which -continues to run with no network and no model credential at all. - -Private-home roots use an exact sentinel and refuse non-empty unsentinelled adoption. -Runtime containers carry the restart-stable installation owner labels introduced in -Phase 2. Startup reconciliation removes only exact-owner interrupted containers, -private homes, and preflight workspaces; normal completion and timeout/cancellation -paths also verify cleanup. - -Codex thread IDs exist only long enough to validate that exactly one fresh session was -created. Shepherd persists only a SHA-256 fingerprint and rejects fingerprint reuse -across Plane executions. Public state and Mission DTOs omit that fingerprint and -expose only `runtimeSessionEstablished: boolean`. Raw session IDs, raw prompts, and -prompt-envelope text are not persisted or returned. - -### Implemented modules not yet connected to Mission orchestration - -Three Phase 3 modules are implemented with focused deterministic tests, but are not -yet invoked by `ShepherdService` or exposed by the current HTTP/UI surfaces: - -- The DAG scheduler validates the duplicate/unknown/self/cyclic dependency cases and - selects a stable maximal batch subject to verified dependencies, failed-dependency - blocking, one active assignment per Agent, the mutation lock, and configured Plane - capacity. -- Project Group routing normalizes and bounds input, routes unmentioned text to - Shepherd, resolves one leading Agent name/ID mention, supports JSON-quoted names, - and rejects malformed, ambiguous, unknown, or multiple mentions. It interprets no - paths or commands. -- `ArkModelReviewer` is an advisory-only Responses client. It canonicalizes and caps - input at 48 KiB, performs at most one HTTPS request with redirects rejected, - `store:false`, no tools, no prior-response chain, and a strict structured-output - schema. It caps streamed response bytes at 128 KiB, output tokens at 1,536, - findings at eight, evidence references at six per finding, and its deadline at - 120 seconds (30-second default). All provider/configuration/timeout/schema/storage - failures return an explicit typed degraded result; no result grants authority or - changes deterministic collision/selection. The current service does not yet call - this adapter or emit its `model_review_degraded` event. **Superseded by the - Phase 4 composition recorded below (`MR-01`).** - -### Live-gate corrective episodes - -The opt-in gate uses the configured Agent model only for this explicit evidence path: - -```sh -npm run test:shepherd:live -``` - -It is single-worker, has no test retries, and creates fresh Mission state inside the -sentinel-guarded repository-local live-gate root. Four failed gate episodes were -preserved as causal evidence before the final pass: - -1. **Two sessions, no semantic collision.** Both contract executions and their - independent checks passed, but one model used a file-oriented scope while the - other used a conceptual scope, so the exact-scope collision predicate found zero - collisions. Root cause: semantic scopes existed on the Contract but were absent - from the prompt and were not checked during manifest ingestion. Supplying the - canonical declared scope and rejecting undeclared scopes fixed the contract. -2. **Four sessions, objective tie.** The collision then appeared and both candidates - ran, but the bearer-target candidate substituted the policy-preferred cookie - implementation. Its independent checks passed the cookie implementation, as did - the actual cookie candidate, so the deterministic selector correctly stopped in - `attention_required` with `objective_tie`. Root cause: the prompt did not make - speculative target fidelity sufficiently explicit and trusted selection checked - acceptance success without corroborating the implemented value against the - candidate target. The exact-target rules and trusted target corroboration above - close both gaps. -3. **Completed Mission, outdated all-pass assertion.** After those product fixes, the - Mission completed with the secure cookie candidate selected and the bearer - alternative objectively rejected by the project-security check. The gate itself - still expected every candidate's verification to pass. The assertion was corrected - to require the evidence-derived bearer failure and cookie promotion; no production - behavior changed for this harness-only failure. -4. **Completed Mission, missing test import.** The next product Mission again - completed, after which the test referenced a fixture transport constant it had not - imported. The missing test-only import was added; no production behavior changed. - -The final gate then passed in **121.49 seconds**. It completed two fresh Missions with -eight total live Codex sessions: two Contract and two resolution sessions per Mission. -Both Missions persisted two verified Contracts, one resolved semantic collision, the -bearer candidate rejected by independent acceptance, the cookie candidate selected -and promoted, and 33 bounded events. All eight persisted session fingerprints were -present, valid, and unique; no raw session ID was stored or exposed. Both resolution -Planes shared their Mission's exact immutable integration base. - -The gate also proved the protected repository HEAD equals the promoted result, -`.shepherd/**` is absent from the promoted tree, and no prompt-envelope marker or -configured secret appears in persisted state, reachable Git blobs, or managed -worktree files. Exact-owner queries found no remaining live-Runtime or verifier -containers, and every per-execution private home and Git-free execution export was -gone after cleanup. - -### Security review and verification evidence - -The independent Phase 3 live-Runtime review identified four Medium findings during -implementation: unsafe private-root adoption, an incomplete sandbox preflight, raw -Runtime error/secret propagation, and a cleanup rejection race. Sentinel-only -adoption, the positive/negative filesystem plus socket probes, bounded redacted -Runtime errors, and immediately handled/awaited cleanup failures closed them. The -reviewer's final 58-test focused slice reported no remaining critical, high, or -medium finding at the live-Runtime boundary. - -The independent model-reviewer review later found two Medium stream-handling issues: - -- **M1:** a hostile asynchronous `reader.cancel()` rejection could surface as an - unhandled rejection. Every fire-and-forget cancellation now attaches a rejection - handler, with an exact regression. -- **M2:** an endless stream of zero-byte chunks could make no byte progress and starve - the intended deadline path. Zero-byte chunks are now rejected immediately as an - invalid response, with an exact regression. - -The same reviewer re-inspected both fixes and reported both Mediums closed, no new -critical/high/medium findings, and a **PASS** merge gate. Its fake-only focused suite -passed **121/121**; the review made no network call and did not read `.env`. - -A final independent security delta review then covered the canonical-scope and -candidate-target changes together with the live-gate scanner and Ark adapter. Its -focused suite passed **174 tests with the opt-in live test skipped**, its diff check -passed, and it reported **no critical, high, or medium finding**. It made no network -call and did not read `.env` or credentials. Residual lows are recorded explicitly: -the generic manifest-ingestion API treats an omitted declared-scope list as -unrestricted, although every production service call supplies a non-empty list; the -live gate scans current/reachable Git blobs and managed worktrees rather than dangling -Git objects; and the Ark reviewer requires a trusted HTTPS endpoint configuration but -does not pin a hostname. - -The first final repository check exposed one test-harness concurrency flake: an -executor test used a 15 ms sleep as a proxy for proving two Contract executions had -overlapped. Under full-suite scheduling, the first execution could finish before the -second arrived even though production still dispatched them concurrently. The test -now uses a deterministic two-arrival barrier and still records the maximum active -executions. Its focused service suite passed **12/12** after the correction. - -Final commands and observed results: - -```sh -npm_config_cache="$PWD/.tmp/npm-cache" \ - TMPDIR="$PWD/.tmp/test-temp" npm run check -# exit 0: both workspace type checks passed -# 26 test files passed, 1 opt-in live file skipped -# 520 tests passed, 1 opt-in live test skipped -# web and server production builds passed - -npm run build -w @launchpad/server -# passed on a separate rerun -``` - -The final exact-owner container query returned no container. The two-Mission live -gate above is separate opt-in evidence; its PASS is not presented as proof of -unrelated UI or Phase 4 behavior. - -**Phase 3 scope verdict:** isolated live Contract/candidate execution and the fixed -demo Mission are proven across two fresh end-to-end Missions. Scheduler, Project -Group parser, and Ark advisory-reviewer modules exist and are focused-test-backed, but -their service/API integration remains Phase 4 work and is not claimed here. - -## 2026-08-29 — GC-01 draft correction - -[Draft PR #9](https://github.com/kyashp/shepherd/pull/9) implements the bounded -`GC-01` correction discovered while verifying Project Group mentions: - -- Project Group mention buttons generate the parser's JSON-quoted syntax for Agent - names containing whitespace or unsafe token characters. The pure prepend contract - preserves existing multiline composer content; the page retains its existing - request-animation-frame focus/caret restoration. - -Strict TDD evidence: - -- Mention formatting RED received `@Frontend Agent` instead of - `@"Frontend Agent"`; focused GREEN passed 2/2. -- Draft preservation RED reported a missing prepend contract; focused GREEN passed - 3/3 after the helper and page integration. - -The final pre-merge `npm run check` passed with 25 test files passed and 2 skipped, -544 tests passed and 2 skipped, and successful web/server typechecks and production -builds. - -Browser interaction and screenshots are not claimed: the browser runtime exposed no -attachable browser. `docs/HANDOVER.md` records the remaining `GC-01` keyboard, -focus/caret, and `1280x800`/`1440x900` gates plus separate `GC-02..07` work. - -## RST-01 — Idempotent and Serialized Demo Reset - -**Date:** 2026-08-29 (Asia/Singapore) - -**Branch:** `fix/7-rst-01-idempotent-reset` - -**Draft PR:** [#10](https://github.com/kyashp/shepherd/pull/10) - -**Reviewed implementation commit:** `19a2e45f7a67c575d9acced3dfcfbc6a32f5718e` - -### Root cause and correction - -`resetDeterministicDemo()` classified a missing durable `auth-demo` project as -`not_found`, although a missing project is the expected state before the first demo -Mission. The initial empty-result correction then exposed a check-without-reserve -race: reset checked `activeProjects` but did not claim `auth-demo` across its later -asynchronous validation and cleanup work. - -The scoped correction: - -- returns a deliberate path-free empty success with `restoredHead: null` and zero - removal counts when the durable project is absent; -- creates no Mission, Agent, repository, worktree, or fixture merely to reset; -- still calls `assertNoManagedProjectState()` so the empty path fails closed on - orphaned, symlinked, or unknown managed-root artifacts; -- synchronously reserves `auth-demo` before the first reset await and releases it in - `finally`, serializing both clean and initialized resets against Mission startup; -- leaves initialized trusted-identity checks, guarded Git/Plane cleanup, unrelated - data preservation, cursor high-water preservation, and partial-reset recovery - intact. - -### TDD and verification evidence - -Original clean-start RED: - -```sh -npm test -w @launchpad/server -- src/shepherd/service.test.ts src/app.test.ts \ - -t "returns the same empty result|returns an authenticated empty demo reset" -# 2 failed as intended: service rejected "Auth demo was not found"; -# authenticated API returned 404 instead of 200 -``` - -Concurrency RED and GREEN: - -```sh -npm test -w @launchpad/server -- src/shepherd/service.test.ts \ - -t "reserves .* demo reset against a concurrent Mission start" -# RED: 2 failed; clean start reached the executor and initialized reset lost the race -# GREEN after reservation: 2 passed, 21 skipped -``` - -Additional observed results: - -- reset-focused service/API selection: **8 passed, 34 skipped**; -- adjacent persistence/recovery suites: **100 passed**; -- complete Shepherd service suite: **23 passed**; -- complete server suite with one worker: **25 files passed, 2 skipped; 547 tests - passed, 2 skipped**; -- `npm run check` under Node 24.17.0/npm 11.17.0 with Vitest externally constrained - to one worker: both workspace typechecks, the same complete server suite, and both - production builds passed; -- `npm audit --json`: **0 vulnerabilities across 251 dependencies**; -- `git diff --check`: passed. - -Three unconstrained `npm run check` attempts after the concurrency correction hit -different existing fixed 1-second/5-second timeouts in Git-heavy service, recovery, -and Plane integration tests. Every affected test passed isolated, and the complete -suite passed serialized without weakening assertions. This is recorded as `TST-01` -in `HANDOVER.md`; no unrelated timeout or test behavior changed in PR #10. - -### Current-main integration verification - -After OPS-05 merged through PR #32 at -`8110aa3ed49bd0586cbb275d7c4067552cd9a144`, only `origin/main` was merged into -the RST-01 branch. Merge commit -`4673edfff0d6a205b48ca4d90821ce852a9952e4` had conflicts only in this file and -`docs/HANDOVER.md`; resolution preserved current-main evidence and reapplied only -RST-01-specific entries. The effective diff against `origin/main` remained limited -to the three reset implementation/test files and these two evidence files. - -Fresh results observed on that integrated commit: - -- reset-focused service/API selection: **2 files passed; 8 tests passed, 39 - skipped**; -- complete `service.test.ts`: **28/28 passed**; -- complete `app.test.ts`: **19/19 passed**; -- `npm run typecheck`: both workspace typechecks passed; -- `npm run build`: web and server production builds passed; -- literal `npm run check` with no worker or timeout override: launcher tests - **3/3 passed**; server **25 files passed, 2 skipped; 554 tests passed, 2 - skipped**; both production builds passed; -- `npm audit --json`: **0 vulnerabilities across 251 dependencies**; -- `git diff --check origin/main...HEAD`: passed; worktree status was clean. - -Browser evidence is not applicable to this service/API-only correction. No UI -source, layout, interaction, or response consumer changed; the authenticated -reset route is exercised through the real Fastify injection boundary in -`app.test.ts`. - -### Independent review and remaining gates - -An independent read-only security/correctness review found the reset/start race. -After causal regressions and the reservation fix, its follow-up reported no Critical, -Important, or Minor finding and marked the implementation ready to merge. - -A final independent read-only review of the OPS-05-bearing integrated diff at -`ecd14228e0b83f8a9087d8bce675a3ae689fd29e` likewise reported no Critical, -Important, or Minor finding. It confirmed the synchronous reservation and `finally` -release, fail-closed empty-root validation, initialized path/head guards, causal -concurrency and authenticated API coverage, exact five-file scope, and browser -non-applicability, with a **Ready to merge: Yes** verdict. - -GitHub reported the draft PR open and mergeable at this checkpoint, but with no -automated status checks. `CI-01` tracks required pull-request automation separately. -The remaining RST-01 work is lifecycle evidence: the final literal check/push gate, -required/merge-group checks when available, clean and initialized reset verification -on updated `main`, issue closure, and a merged-SHA ledger update. None requires -another scoped product-code change on this branch. - -## Phase 4 — Mission-composed advisory model review (`MR-01`, `MR-02`) - -Assessed on branch `feat/12-mr-01-compose-model-reviewer` at `4a46f72`, stacked on -`fix/7-rst-01-idempotent-reset`. This entry supersedes the Phase 3 statement that the -bounded reviewer is not connected to Mission orchestration. - -### What is now composed - -`ShepherdServiceOptions` gained an optional `reviewer?: ModelReviewer`, injected as an -interface instance in the same style as `verifier` and `executor` and defaulting to -`null`. `apps/server/src/index.ts` constructs an `ArkModelReviewer` only when the new -`isShepherdModelReviewConfigured(config)` predicate holds, which gives -`config.shepherdModel` — fed by the documented `SHEPHERD_MODEL` — its first and only -consumer. An unconfigured server composes no reviewer and emits no advisory event, -rather than degrading every Mission with a false `configuration_error`. - -`runAdvisoryModelReview()` runs between `integrateContracts()` and -`detectAndPersistCollision()`, gated at call time on `settings().modelReviewEnabled` -so the persisted setting is genuinely causal. - -### Why the advisory result cannot reach authority - -`runAdvisoryModelReview` returns `Promise`, and `detectAndPersistCollision` has -**zero diff** in this change: its only nearby hunk appends two new private methods -after its closing brace. There is therefore no parameter, field, or closure through -which a finding can reach the deterministic detector, the winner policy, or the -promotion gate. The independence claim is structural rather than conventional. - -### Containment and bounds - -A reviewer that throws is converted into a durable `provider_error` degradation rather -than being swallowed, so a failure can never present as a fake "safe". A service-side -deadline bounds any injected reviewer that does not bound itself; the composed -`ArkModelReviewer` bounds itself at 20 seconds. A 250 ms poller aborts an in-flight -review once durable cancellation is visible, so `cancelMission` cannot block on it. -The outer catch is total, and cancellation is re-derived from durable state by -`detectAndPersistCollision`'s own `ensureMissionRunnable` on the very next statement. - -`model_review_completed` was added additively to `ShepherdEventType` -(`shepherd/domain.ts`), the persisted `z.enum` (`database-schema.ts`), and the browser -mirror (`apps/web/src/types.ts`). No store version bump and no migration were -required: `databaseV2Schema` remains `version: z.literal(2)` and the change only -widens what parses. Persisted advisory details are closed enums, counts, and claim -keys Shepherd itself supplied. Free model prose (`finding.reason`) is deliberately -never persisted or rendered. - -### Observed evidence - -```sh -npx vitest run --config apps/server/vitest.config.ts \ - apps/server/src/shepherd/service.model-review.test.ts -# repository default config, no flags -# Test Files 1 passed (1) -# Tests 9 passed (9) -# Duration 110.54s - -npm run typecheck -# PASS: server and web TypeScript checks - -npm run build -# PASS: web production build, 40 modules transformed -# PASS: server production build - -git diff --check -# clean -``` - -Each test declares the budget it needs, because every one drives a full Mission with -real Git worktrees and real trusted fixture checks. The file therefore passes under -the repository default configuration rather than depending on a `--testTimeout` flag. - -The composition predicate was checked against a configured environment, reporting -booleans only and printing no secret: - -```text -arkConfigured: true -shepherdModelReviewConfigured: true -shepherdModel is distinct from arkModel: true -shepherdExecutionMode: deterministic -``` - -This confirms two design choices. Reusing `isArkConfigured` would have been wrong, -because it validates `arkModel` while the reviewer consumes the genuinely distinct -`shepherdModel`. Gating the reviewer on `shepherdExecutionMode` would have left the -feature unreachable in exactly the configuration the deterministic demo runs in, -since `auto` resolves to `deterministic` without a container engine. - -RED was observed before implementation on the same file: `3 failed | 1 passed`, each -failure on `expect(reviewer.inputs).toHaveLength(1)`. `MR-T05` — the PRD 8.6 mandate -that collision detection succeeds with the reviewer disabled — passed both before and -after, because it is the baseline invariant rather than a new capability. Every -independence assertion carries the call-count expectation; without it those tests -would pass vacuously against an uncomposed service. - -`MR-T14` injects a finding naming a non-existent claim key and arguing for the losing -transport, then asserts the persisted collision, the selected candidate, and the -promoted SHA are unchanged, that `attentionReason` stays null, and that the hostile -prose appears in neither the collision nor the event trail. `MR-T16` drives a real -`ArkModelReviewer` through an injected `fetchImpl`, proving both that the -service-built input satisfies `reviewInputSchema` end to end and that a configured -secret never reaches the outbound request body. - -### Recorded limitations - -- `npm run check` was **not** observed passing unmodified on this host, and that is - pre-existing. On the unmodified stack parent the server suite reports - `24 failed | 518 passed`, every failure at ~5000 ms with no assertion failures, - because `apps/server/vitest.config.ts` leaves Vitest's 5 s default `testTimeout` - against tests that perform real Git work. Raising the flag takes - `git-plane-promotion.integration.test.ts` from `13 failed` to `19/19 passed`. -- This change causes no functional regression, established by isolation rather than - by assertion. Under `--testTimeout=60000` the parent reports - `8 failed | 534 passed | 547` and this branch reports `12 failed | 543 passed | 556` - — nine tests added, nine passing. `service.test.ts` shows 3 failures on the parent - and 6 on this branch in a full run, but **1 failed / 20 passed when run in - isolation** on this branch. Five of those six therefore exist only under full-suite - parallelism, and the remaining one fails on the parent too. With no reviewer - injected `runAdvisoryModelReview` returns on its first line, so it cannot slow a - Mission; what the new file adds is roughly 110 s of parallel Mission load, which - pushes an already-marginal suite further past its timing budget. -### Opt-in live `SHEPHERD_MODEL` gate - -HANDOVER pending-ledger item 5 was executed after item 4 passed, via the new -`npm run test:shepherd:model-review:live` script and -`apps/server/src/shepherd/live-model-review.integration.test.ts`. The suite is behind -a double gate (`SHEPHERD_LIVE_TEST` **and** `SHEPHERD_LIVE_MODEL_REVIEW`) so the -existing `test:shepherd:live` script cannot trigger it; both the default run and a -`SHEPHERD_LIVE_TEST=true`-only run were confirmed to skip it. The Mission itself stays -deterministic and container-free, so the gate costs exactly one provider request. - -```sh -npm run test:shepherd:model-review:live -# Test Files 1 passed (1) -# Tests 1 passed (1) -# Duration 14.55s -# observed outcome: degraded reason=invalid_response retryable=false -``` - -The composition is proven against the real provider: one request was sent, a response -was received, the degradation was recorded durably, and the deterministic collision, -winner, and promoted head were unchanged. **The review itself did not succeed**, and -that is reported as a defect rather than as a pass. - -Bounded diagnosis using the adapter's own schema and instructions with a two-contract -payload: HTTP 200, `object: "response"`, `status: "completed"`, `store: false`, -`error: null`, `incomplete_details: null`, one `reasoning` item followed by one -assistant `output_text` message whose text parses as schema-valid JSON. The envelope -contract in `extractOutputText` is therefore satisfied, and the model produced a -genuinely correct review naming the real `auth.transport` conflict with high -confidence. - -The rejection happens later. `evidenceReferenceExists` requires -`source: "manifest"` refs to equal the literal sentinel `manifest_summary`, while the -model supplied the manifest summary text; and `validateAndNormalizeFindings` returns -`null` when any single finding fails, so one ambiguous reference discards the entire -review including its valid findings. Tracked as `MR-03`. `ArkModelReviewer` is -deliberately unmodified by this change. - -### Composition defect found by adversarial review - -An adversarial review of the branch diff found a high-severity defect in the -composition itself. `apps/server/src/index.ts` passed `[arkApiKey, authToken]` -unfiltered into `ArkModelReviewer`. `validateConfiguration` rejects the entire -configuration when any supplied sensitive value is shorter than eight characters, and -`config.authToken` is legitimately `""` on the documented loopback default, where -`APP_AUTH_TOKEN` is required only for non-loopback listeners. The reviewer was -therefore permanently inert: every qualifying Mission emitted -`model_review_degraded / configuration_error` **without ever attempting a request**, -behind a reason that reads as a credential problem. - -Reproduced with the compiled adapter and an empty auth token: - -```text -as shipped -> degraded/configuration_error | fetch attempted: false -with >= 8 filter -> completed | fetch attempted: true -``` - -Fixed by filtering at the construction site. `MR-T17` pins the exact composition -`index.ts` performs and was confirmed to fail without the filter -(`expected 'degraded' to be 'completed'`). - -Nothing caught this earlier because every service test used a scripted fake with -`sensitiveValues: []`, `MR-T16` supplied a single long key, and the live gate -pre-filtered at `>= 4`, which dropped the empty token and exercised a composition the -server never uses. The live gate now filters at `>= 8` to match production exactly. - -The remaining adapter-side weakness is deliberately out of this branch's scope: -`validateConfiguration` rejects a whole configuration for one unusable sensitive -value rather than dropping it or naming a caller-side mistake. - -### Recorded limitations - -- The live gate has never observed a `completed` review; only the degradation path is - live-proven. Until `MR-03` is fixed, the advisory reviewer is safe but silent. -- Mid-review cancellation is covered by `MR-T13`, which blocks a reviewer until its - caller signal aborts, cancels the Mission in flight, and asserts the signal was - aborted, that no advisory event was recorded, and that no collision, candidate, or - protected-head change survived. The test pins `deadlineMs` far out of reach so only - the cancellation poller can settle the review: an earlier version passed with the - poller disabled because the service deadline aborted instead, which mutation - testing caught. -- Both UI changes (the Verification stream filter and the `degraded` tone) are - untested: the web workspace has no test runner, so there is nowhere to put one. -- `apps/server/src/index.ts` is a top-level-`await` entrypoint with no export, so its - composition is build-verified rather than test-verified. -- No container runtime was available, so the two container-gated suites skipped as - designed. The new tests require none; they drive full Missions through an - in-process trusted fixture verifier. -- During final integration, the two presentation-only regex changes (`model_review` - joining the Verification stream filter and `degraded` mapping to the existing - amber tone) were removed with user approval because this GPT CLI device has no - connected browser runtime. The event contract typing remains, but the final diff - adds no rendered UI behavior and therefore has no UI-specific browser gate. - -### Integrated current-main verification - -**Date:** 2026-08-30 (Asia/Singapore) -**Branch:** `feat/12-mr-01-compose-model-reviewer` -**Final integrated base:** `origin/main` at `fae0852` -**Integration commits:** `fbf3038` (base `d27dea6`), then `5972aa8` (base `fae0852`) -**Verified implementation checkpoint before the final base refresh:** `a2afbf3` - -The initial `d27dea6` `origin/main` base was merged without rebasing or -force-pushing. All code merged automatically; the only conflict was this build log, -where the complete MR-01 and current-main evidence blocks were both preserved. - -Immediately before final review, refreshed refs showed that PRs #9 and #37 had -advanced `origin/main` to `fae0852`. That base was merged at `5972aa8`. Source and -workflow changes merged automatically; the HANDOVER conflict was resolved by -preserving both the newly merged Group Chat/required-check evidence and PR #16's -model-review status. A new exact-head Node 24 gate is required after the final -evidence commit; the earlier result is not presented as covering the refreshed base. - -The first focused baseline exposed an environmental timing failure rather than a -reviewer defect: `JsonStore.persist()` rejected lifecycle state after Docker Desktop -stepped its wall clock backwards. Path-only diagnostics isolated -`updatedAt < createdAt` across Project, Contract, and Plane records. A standalone -Node 24 probe then measured two backward steps in 40 seconds, with a largest step of -`-35,921 ms`, while the monotonic timer advanced normally. The new Mission test -fixture now uses the service's existing `now` seam with a strictly monotonic -per-service test clock; production timestamp and reviewer behavior are unchanged. - -RED was observed repeatedly before that test-only correction. Fresh GREEN evidence: - -```text -npx vitest run --config apps/server/vitest.config.ts \ - apps/server/src/shepherd/service.model-review.test.ts -# host isolation: 1 file passed; 13/13 tests; 100.10s - -# Node 24, focused model-review + config gate -# 2 files passed; 33/33 tests; 219.95s -``` - -The first bind-mounted literal check was not reported green: it stopped in the -launcher suite because Windows checkout conversion produced a `bash\r` shebang. -The committed head was therefore cloned into a fresh Linux Docker volume so Git -materialized LF files, and the same unmodified command passed: - -```text -npm run check -# launcher: 3/3 passed -# server: 26 files passed, 3 skipped; 568 tests passed, 6 skipped -# web and server typechecks passed -# web production build: 40 modules transformed -# server production build passed - -npm audit --json -# 0 vulnerabilities across 251 dependencies -``` - -After the presentation-only deltas were removed, the same literal Node 24 gate was -rerun against exact commit `a2afbf3` in a fresh LF-native Linux volume. It passed -with the same totals: launcher 3/3, server 568 passed/6 skipped, both typechecks, -both production builds, and a zero-vulnerability audit across 251 dependencies. - -The local Vite UI was started for the two-regex rendered gate, but the required -browser runtime reported no connected in-app or extension browser. The server was -stopped and no screenshot, viewport, or visual claim is made. With user approval, -both presentation-only regex deltas were then removed; the final diff adds no -rendered UI behavior. The final security/correctness review, push/required checks, -merge, and post-merge verification remain separate gates and are not implied by -this entry. - -### Final-review correctness corrections - -The independent final review of integrated checkpoint `aa76ebf` found three -important service-boundary gaps. All three were reproduced with causal tests before -production changes: - -- the readiness predicate accepted six configurations that `ArkModelReviewer` - rejects (short/control-character keys, an invalid model identifier, and insecure, - credential-bearing, or query-bearing endpoints); -- malformed injected reviewer results could bypass an explicit durable degradation; -- durable Mission cancellation only aborted the injected reviewer signal, so a - reviewer that ignored aborts held `cancelMission()` until the 1.5-second test - deadline. - -The combined RED run observed 32 passing and 8 failing assertions across the two -affected files. The correction keeps `model-reviewer.ts` unchanged because active -stacked PR #25 owns that adapter. Instead, `config.ts` mirrors the adapter's exact -credential/model/HTTPS endpoint acceptance rules, while `ShepherdService` validates -the closed, bounded result shape from any injected reviewer and converts invalid -values to `invalid_response`. A service-owned cancellation settlement now races both -the reviewer and deadline, so cancellation remains bounded even when the injected -implementation never settles. The result validator accepts the bounded optional -`droppedFindingCount` field planned by the stacked `MR-03` change without persisting -it or giving it authority. - -Fresh Node 24 follow-up evidence: - -```text -apps/server/src/config.test.ts -# 1 file passed; 26/26 tests - -service.model-review.test.ts -t MR-T10b -# 1/1 passed; 13 skipped - -service.model-review.test.ts -t MR-T13 -# 1/1 passed; 13 skipped - -npm run typecheck --workspace @launchpad/server -# passed -``` - -One aggregate affected-file run reached 39/40 before a Git-fixture `worktree` command -exited 128 in `MR-T12`; that case then passed 1/1 immediately in isolation. This is -recorded as an infrastructure interruption, not presented as a clean aggregate pass. -The literal exact-head Node 24 check, final independent follow-up, push/required -checks, merge, and post-merge verification remain lifecycle gates. - -## ST-02 — Truthful unavailable notification preferences - -**Date:** 2026-08-29 (Asia/Singapore) -**Branch:** `fix/6-st-02-notification-truth` -**Pull request:** [#13](https://github.com/kyashp/shepherd/pull/13) - -### Root cause and bounded correction - -The notification booleans were persisted and round-tripped by the settings API, but -no delivery or in-app behavior read them. `SettingsPage` nevertheless bound all three -values to enabled toggles with functional descriptions, so the browser presented -stored-only values as active product controls. - -The Notifications tab now identifies the capability as **Reserved for a future -release** and **Unavailable**. It continues to render each stored value through a -native disabled toggle paired with a `Reserved` label. The settings schema, -persistence, model-review control, other tabs, and notification delivery remain -unchanged. - -### Original RED/GREEN and branch evidence - -The focused server-rendered React regression was added before the section component. -Its first valid run failed because `NotificationSettingsSection` was undefined; after -the minimal implementation, the same test passed and proved all three controls were -disabled while two supplied checked values remained visible. - -Before current-main integration, fresh branch-local evidence passed: - -```sh -npx vitest run apps/web/src/pages/SettingsPage.test.tsx -# 1 file / 1 test passed - -npm run typecheck -w @launchpad/web -# passed - -npm run build -w @launchpad/web -# passed; Vite transformed 40 modules - -git diff --check -# passed -``` - -A disposable terminal Playwright/Chromium proof rendered the real Vite application -with deterministic API responses at `1280x800` and `1440x900`. At both viewports it -observed stored states `[true, false, true]`, three natively disabled controls, -rejected programmatic and sequential focus, unchanged mouse/keyboard activation -attempts, disabled Save, zero settings `PATCH` requests, zero horizontal overflow, -zero clipping/overlap, and no console, page, or request errors. Temporary screenshots -were visually inspected against `docs/UI.jpeg` and were not committed. - -### Current-main integration - -OPS-05 merged through PR #32 at `8110aa3ed49bd0586cbb275d7c4067552cd9a144`, -then priority PR #10 merged at `349897d3d9167fe711bf720f7c3fadd213938d11`. -Only that latest `origin/main` was merged into this branch. Source and regression -files merged automatically; conflicts were limited to this file and `HANDOVER.md`. -Resolution restored current-main documentation and reapplied only ST-02-specific -evidence. Fresh integrated verification and independent-review results are recorded -in a follow-up entry only after they are observed. - -### Integrated current-main verification - -On merge commit `066009b6eda658eee9a66135224d69b3a4dae515`, the effective -diff against `origin/main` contained exactly the notification page section, its -focused regression, and these two ST-02 evidence files. Observed results: - -```sh -npx vitest run apps/web/src/pages/SettingsPage.test.tsx -# 1 file / 1 test passed - -npm run typecheck -w @launchpad/web -# passed - -npm run build -w @launchpad/web -# passed; Vite transformed 40 modules - -npm run check -# launcher 3/3 passed -# server: 25 files passed, 2 skipped; 554 tests passed, 2 skipped -# web and server production builds passed - -npm audit --json -# 0 vulnerabilities across 251 dependencies - -git diff --check origin/main...HEAD -# passed -``` - -Terminal Playwright/Chromium then repeated the real Vite-page proof at `1280x800` -and `1440x900`. Both viewports preserved `[true, false, true]`, exposed all three -checkboxes as natively disabled, rejected direct and sequential focus, and remained -unchanged after forced label clicks and keyboard activation attempts. Save stayed -disabled, no settings `PATCH` occurred, and automated geometry checks found no -horizontal overflow, clipping, or overlap. Console, page, and request error lists -were empty. The final temporary screenshots were visually inspected against -`docs/UI.jpeg`; current-main's cream canvas, dark sidebar, updated Shepherd icon, -purple accent, restrained borders, typography, spacing, and locked-control language -were preserved. No screenshot binary was added to the effective branch diff. - -### Independent final review - -An independent read-only quality audit reviewed the exact -`349897d3d9167fe711bf720f7c3fadd213938d11..87b4b12e894233e2a2d852db90bfde2fe1714386` -diff plus both final screenshots. It confirmed the exact four-file scope, native -disabled semantics, stored-value preservation, absence of a notification interaction -path to the unchanged `PATCH` submit handler, regression coverage, current-main UI -preservation, and honest documentation of unimplemented delivery and broader UI -gaps. It reported no Critical, Important, or Minor finding and returned **Ready to -merge: Yes**. This review-status entry is documentation-only; the same auditor must -confirm the final follow-up diff before push. - -### Final dependency-gated current-main refresh - -TST-02 merged through PR #34 at -`8149a7cf3b52c4f0c7d20b31f14c4d2ddbc52b12`. The latest `origin/main` was -then merged conflict-free into ST-02 at -`f1ad0b9811e9b77dddc933c11df6a6e3fd17cf61`; no source, test, or -documentation conflict required manual resolution. The effective diff against -that updated base remained exactly `SettingsPage.tsx`, its focused regression, -and the two ST-02 evidence files. - -Fresh evidence on the integrated merge passed the focused ST-02 test (1/1), the -formerly blocked recovery target with its canonical temporary path (1/1, 16 -skipped), web typecheck, and the web production build (40 transformed modules). -The required literal `npm run check` then passed without an environment override: -launcher 3/3, server 25 files passed with 2 skipped and 554 tests passed with 2 -skipped, plus web and server production builds. `npm audit --json` reported zero -vulnerabilities across 251 dependencies, and `git diff --check -origin/main...HEAD` passed. - -Terminal Playwright/Chromium repeated the proof against the integrated Vite page. -At both `1280x800` and `1440x900`, stored values remained -`[true, false, true]`; all controls were natively disabled, rejected direct and -sequential focus, and ignored mouse/keyboard activation. Save remained disabled, -zero settings `PATCH` requests occurred, geometry checks reported no horizontal -overflow, clipping, or overlap, and console/page/request error lists were empty. -The visually inspected temporary screenshots remained faithful to `docs/UI.jpeg` -and were not added to the branch diff: - -- `st-02-1280x800.png` — SHA-256 - `8dc439b849eac9aeb84f3353145ff106ff4518f0b007a8fd7c61f5038a2ab22c` -- `st-02-1440x900.png` — SHA-256 - `c6d5c9e0831f9c7cc187827e574f1ca1c98b2fbd322738b96b19e6b45a33d95b` - -## Test-lifecycle stabilization candidate (`#11`) - -**Date:** 2026-08-29 (Asia/Singapore) -**Candidate branch/commits:** `fix/11-shepherd-test-flake-clean` / -`de986b9a3ecdd1e1360050209742497f8c6b2813`, `f2db22c` -**Draft PR:** [#19](https://github.com/kyashp/shepherd/pull/19) - -The generic five-second Vitest budget was exceeded by three real service journeys -and measured Git/recovery integration journeys under full-suite contention. A timed -out background-Mission test could also race fixture cleanup; raw recursive cleanup -could not remove a deliberately read-only trusted-verification snapshot. - -The candidate adds only test lifecycle changes. Service fixtures now require an -exact sentinel, restore write permission only after validating the allocated path, -and skip symlinks. Causal RED checks observed `EACCES` on a `0400` file beneath a -`0500` snapshot and, under a temporary unsafe symlink mutation, an external marker -became unreadable. Restored GREEN checks prove the fixture is removed while the -external marker and permissions survive. Background test Missions cancel and join via -the existing `cancelMission()` behavior before cleanup. Six measured -integration cases declare 15-second budgets; global defaults stay unchanged. - -The contamination route was also causal: `runFixtureGit()` spread `process.env`, so -an inherited `GIT_DIR` could override `git -C` and route a fixture commit elsewhere. -The helper now gives Git a fixed environment (path/locale plus non-interactive, -system/global-config-disabled settings). Its regression creates only disposable -fixture and decoy repositories, poisons `GIT_DIR` with the decoy, and proves the -fixture advances while the decoy's HEAD and tracked file remain unchanged. The RED -against the old inherited environment left the fixture HEAD unchanged; the restored -implementation is GREEN. - -Observed verification: - -```sh -# target-substitution regression: 5 consecutive passes (2.51–3.59 s) -npm run check -# pass twice: 25 files passed, 2 opt-in skipped; 547 tests passed, 2 skipped; -# web and server production builds passed -git diff --check -# passed -``` - -The initial PR #18 was closed as contaminated: the documented defective pre-push hook -created commit `9d252957` and tracked `external-move.txt` before the intended fix. -The clean candidate contains only the causal test files. The demonstrated recovery -fixture route is fixed; the pre-push hook itself remains separate infrastructure work, -so manual verification is required before using `ECC_SKIP_PREPUSH=1` for a scoped -push. - -### Resolved-base verification - -The clean candidate was resolved against current `main` at -`2f7a9fd8122cb62f2f2ed4e2b08cc87f311e8887`. On that exact resolved head, -`npm run check` passed: 25 files passed, 548 tests passed, 2 opt-in tests skipped, -and both production builds completed. A subsequent teardown-only audit identified a -test-lifecycle follow-up; its final commit and verification are recorded separately -once that bounded correction is complete. - -### Teardown follow-up evidence - -Commit `d8c4dff7e6a6c3b1597e56c8b493e436a4f227c2` is test-only. It retains tracked -Missions until cancellation and background-run joining succeed, treats -`attention_required` as cancellable, and releases both blocked promotion checkpoints -in `finally` paths. The promotion verifier release is idempotent. Its causal RED -timed out safely against the prior blocked verifier (the test's `finally` released -the fixture); GREEN focused coverage passed the four promotion/attention teardown -paths, and the full `service.test.ts` file passed 25/25. - -The first repository `npm run check` on `d8c4dff` was **not green**: the unmodified -Git-plane integration test `reports a real textual merge conflict and leaves the -integration Plane clean` timed out at Vitest's five-second default. The observed -test phase had 24 files passed, 1 failed, 2 skipped; 549 tests passed, 1 failed, 2 -skipped. This follow-up did not broaden into that separately owned timeout; its -production builds therefore did not run after the failing test phase. - -That Git-plane test is also an owned #11 real-Git integration case. Commit -`0e0e743` gives only that test a 15-second Vitest budget. It passed five consecutive -focused runs (1.23–1.90 s) and the complete Git-plane integration file passed 19/19. -A subsequent full gate exposed a distinct RED: the background real-Planes service -journey has a 30-second test budget but its shared completion helper stopped at 15 -seconds. Commit `a14c3f7` makes that helper accept an optional timeout and passes -25 seconds only to this measured journey; it does not add another Vitest budget. -The journey passed five consecutive focused runs (4.27–6.33 s) and the complete -service test file passed 25/25. - -On final head `a14c3f71446ff5c46a84db6482fc445e9d1944d9`, `npm run check` passed: -25 files passed, 550 tests passed, 2 opt-in tests skipped, and both production -builds completed. Six measured integration cases now have explicit 15-second -Vitest budgets; the one 25-second internal completion wait remains confined to the -already-30-second background real-Planes test. - -## 2026-08-29 — GC-01 post-#19 current-main browser gate - -[Draft PR #9](https://github.com/kyashp/shepherd/pull/9) was integrated on the -merged [PR #19](https://github.com/kyashp/shepherd/pull/19) `main` commit -`120fff066d962f4f30ed6cd62bc367cc869e02db` in a detached evidence worktree. -The overlay contained exactly the three GC web files, and each blob matched the -PR #9 head: - -```text -apps/web/src/pages/ProjectGroupPage.tsx -apps/web/src/pages/project-group-mention.test.ts -apps/web/src/pages/project-group-mention.ts -``` - -Observed verification on that exact integration: - -```sh -npx vitest run apps/web/src/pages/project-group-mention.test.ts \ - --environment node --no-file-parallelism --maxWorkers=1 -# 1 file passed; 3 tests passed - -npm run check -# exit 0: both workspace typechecks passed -# 25 test files passed, 2 opt-in files skipped -# 550 tests passed, 2 opt-in tests skipped -# web and server production builds passed - -git diff --check -# passed -``` - -A terminal Playwright run exercised the real Vite page with deterministic API -interception in installed headless Chromium. At both exact `1280x800` and -`1440x900` viewports, mouse click, keyboard Enter, and keyboard Space activation -produced `@"Frontend Agent" Keep this draft\nincluding its second line`. After -every activation, `#group-message` was the active element and its collapsed -selection was `59..59` for a 59-character value. Keyboard focus matched -`:focus-visible` with a solid 2 px outline. Both pages reported exact requested -viewport dimensions, no horizontal overflow, no console/page error, and no -unexpected API request. - -The two screenshots were visually inspected against `docs/UI.jpeg`. The dark -sidebar, restrained purple accents, bordered conversation panel, spacing hierarchy, -and bottom composer remained consistent; mention chips and the focused composer had -no clipping or overlap. Screenshots and the one-off Playwright harness remained -temporary and were not committed. - -This evidence closes the scoped `GC-01` interaction uncertainty only. `GC-02..07`, -polling/reconnect and populated-history browser coverage, accessibility, a committed -deterministic E2E harness/screenshot corpus, independent UI review, and post-merge -verification after PR #9 itself lands remain separate. - -### GC-01 final parser-round-trip hardening - -A final review found that a quoted display name could still fail routing when the -server's whole-message normalization changed the decoded lookup target. For example, -`Frontend Agent` was formatted as `@"Frontend Agent"`, then collapsed to one -space before lookup even though the stored Agent name retained two spaces. - -The focused RED failed 2/5 tests: normalization-changing spacing did not fall back -to the Agent ID, and full-width quote characters were not normalized before JSON -escaping. The minimal web-only fix now normalizes safe display-name mentions before -escaping and falls back to the Agent UUID when a parser-valid name cannot survive -the whole-message transformation and the shared ID/name namespace is unambiguous. -The focused GREEN passed 5/5 and -round-tripped those generated mentions through the production -`parseProjectGroupMessage()` implementation. - -A second review found that U+037A gains leading spacing under NFKC and the parser -directory trims after normalization. RED failed 1/6 because the formatter retained -that introduced spacing; the minimal post-NFKC trim is GREEN at 6/6 through the -production parser. No server files, stored records, or public schemas changed. - -The reviews also found two out-of-scope server directory mismatches, now tracked as -`GC-07`: create/update accepts source-short Agent names whose NFKC+trim form exceeds -the parser's 128-character directory-key limit, and names canonically equal to a -different Agent's ID even though IDs/names share one parser lookup namespace. The -parser rejects the first entire directory before resolving an ID and correctly -rejects the second route as ambiguous, so no web fallback can correct either case. -A separate server/schema task must align canonical length and namespace validation -and plan non-destructive repair for existing invalid or colliding stored names. - -On the actual merge-resolved branch: - -```sh -npx vitest run apps/web/src/pages/project-group-mention.test.ts -# 1 file passed; 6 tests passed - -npm run check -# exit 0: both workspace typechecks passed -# 25 test files passed, 2 opt-in files skipped -# 550 tests passed, 2 opt-in tests skipped -# web and server production builds passed -``` - -Terminal Playwright was rerun at exact `1280x800` and `1440x900`. Mouse, Enter, -and Space still inserted the readable `@"Frontend Agent"` form, preserved the -multiline draft, restored focus, and left the collapsed caret at `59..59`. -Keyboard focus remained visibly outlined; both viewports had no overflow, -console/page errors, unexpected API requests, clipping, or overlap. The refreshed -screenshots were visually inspected against `docs/UI.jpeg` and remained temporary. - -## 2026-08-30 — GC-01 current-main integration and default-gate packaging - -PR #9 was merged locally with current `origin/main` at -`d27dea670108e5a06eac20de7df88f756b68e404`, the merge of PR #13. The only -textual conflicts were this build log and `docs/HANDOVER.md`; the product diff -remains limited to the Project Group mention helper and its use in -`ProjectGroupPage.tsx`. - -Review correctly found that the original web-workspace test was not discovered by -the repository's root test command. The pure regression moved to -`apps/server/src/project-group-mention.test.ts`, whose existing Vitest workspace can -import both the web helper and production server parser without new dependencies. -The packaging RED command reported no matching test file before the move. - -Independent review then found an in-flight submission race: the textarea was -disabled during the POST, but a mention button could mutate the retained draft -before the successful request cleared it. The review also found that programmatic -mention insertion could exceed the textarea's 2,000-character limit. The causal RED -failed 2/8 because the submission-locked button and bounded prepend helper did not -exist. The minimal correction gives the mention button native disabled semantics -while sending plus a defensive callback guard, and rejects an over-limit insertion -without changing the draft while showing a composer-scoped status message. GREEN -passes all 8 formatter, parser-round-trip, draft-preservation, submission-lock, and -exact-boundary cases: - -```sh -npm run test -w @launchpad/server -- src/project-group-mention.test.ts -# 1 file passed; 8 tests passed -``` - -The Node 24 Linux verification copy normalized only the checkout's CRLF shell -launcher; repository blobs were not changed. The current-head `npm run check` -completed both workspace typechecks, the 3/3 launcher suite, and all 8 GC-01 tests, -but did **not** complete green. Two unchanged server cases failed under the complete -suite: `recovery.process.test.ts` after `update-ref`, and `service.test.ts` while -rejecting a second Mission after an external protected-head move (24 files passed, -2 failed, 2 skipped; 557 tests passed, 2 failed, 5 skipped). The latter passes 1/1 -alone. The recovery-process file had passed 5/5 in an earlier isolation, then failed -a different `promotion_ready_for_cas` case in a later 4/5 isolation. PR #9 has no -diff in either server path. These rotating failures are recorded as existing -shared-clock/process instability, not as a passing required gate and not as GC-01 -scope. - -Independent production builds passed for web and server, `git diff --check` passed, -and `npm audit --audit-level=high` found 0 vulnerabilities. - -The current integrated browser run used terminal Playwright because the in-app -browser exposed no attachable backend. At exact `1280x800` and `1440x900`, mouse, -Enter, and Space each produced -`@"Frontend Agent" Keep this draft\nincluding its second line`; focus returned to -the composer, the collapsed caret was `59..59`, and keyboard focus had a solid -2 px visible outline. During a deliberately deferred POST, both the mention button -and composer were disabled, programmatic button activation left the submitted draft -unchanged, and the successful response cleared only that submitted content. An -exact 2,000-character mention insertion succeeded; one character over remained at -2,000 and displayed the explicit limit error. Both viewports had no horizontal -overflow, clipping, console or page errors, failed requests, unexpected API writes, -or layout overlap. The temporary screenshots were visually checked against -`docs/UI.jpeg`: - -```text -1280x800 sha256 4d4e35b065f3c530dbb02b5d92e35830490799759b4bac85c855a4a5dd5a0039 -1440x900 sha256 7e09440db22781b45f4c11173580fecfc01d5ef7dcf8792ddaecc255e6c709a1 -``` - -The independent reviewer reported no Critical issue. Its one Important race and -one Minor length-boundary issue are corrected above. The read-only follow-up -reviewed the final staged five-file effective diff, reported no Critical, Important, -or Minor finding, and returned **Ready to merge: Yes**, subject to normal required -checks and integrator disposition of the unrelated suite instability. - -PR #9 remains the bounded `GC-01` correction. The requested no-project composer -behavior is `GC-05`, which issue #5 and this handover explicitly exclude; it needs -its own issue, owner, branch, regression, and review. - -## 2026-08-30 — GC-01 post-merge verification - -PR #9 merged into `main` as `fae0852e284619c2912eeeb8ac3ebe156f45b026`. -GitHub closed issue #5 through the linked merge, and the remote -`fix/5-gc-01-quoted-mentions` branch was removed. - -Fresh Node 24 Linux checks ran against that exact merged-main tree: - -```sh -npm run test -w @launchpad/server -- src/project-group-mention.test.ts -# 1 file passed; 8 tests passed - -npm run typecheck -# web and server workspace typechecks passed - -npm run build -# web Vite production build and server TypeScript build passed -``` - -The in-app browser reported no available backend, so the exact merged-main Vite -page was exercised with the documented terminal Chromium fallback. At both -`1280x800` and `1440x900`, mouse, Enter, and Space produced -`@"Frontend Agent" Keep this draft\nincluding its second line`; focus returned -to the composer with the collapsed caret at `59..59`, and keyboard focus retained -a solid 2 px visible outline. During a deferred POST, both the mention control and -composer were disabled and programmatic activation did not mutate the submitted -draft. Exact 2,000-character insertion succeeded; the over-boundary attempt stayed -at 2,000 and displayed the explicit limit error. Each run issued exactly one -expected group-message POST and had no horizontal overflow, clipping, layout -overlap, console errors, page errors, or failed requests. - -The temporary screenshots were visually inspected and were not committed: - -```text -1280x800 sha256 980854CC1C489C91BE5EBAFD42B940044AEF167FABFE8FF13E2E65D546D7CEC6 -1440x900 sha256 507CC82FE4F8C43E23A72BD022FF7987EAA2EF4518C20AD9007D3C05159363E6 -``` - -The full `npm run check` was not rerun post-merge. Its latest pre-merge attempt -remains the explicitly non-green result recorded above: 557 tests passed, 2 -unchanged server tests failed under suite load, and 5 were skipped. This scoped -post-merge gate does not reclassify that unrelated process/shared-state -instability, and it does not close the separately owned `GC-02..07` work. - -## 2026-08-30 — CI-01 required pull-request checks and merge evidence - -Issue [#36](https://github.com/kyashp/shepherd/issues/36) was implemented from -current `main` on `test/36-ci-01-required-checks`. The branch was published before -edits and owned only `.github/workflows/pull-request-checks.yml`; product code, -assertions, timeouts, dependencies, shared evidence documents, credentials, and -repository rules were excluded from the implementation PR. - -### Workflow contract and local evidence - -The pre-implementation contract probe observed the expected RED because -`.github/workflows/pull-request-checks.yml` did not exist. Commit -`9501b95f952b5ba02d1c5413960999adcde362a3` added the smallest workflow: - -- `pull_request` for `main` plus `merge_group: checks_requested`; -- one deterministic job named `Required checks` on `ubuntu-latest` and Node 22; -- literal `npm ci` followed by literal `npm run check`; -- top-level `contents: read`, superseded-run cancellation, a 30-minute job bound, - no persisted checkout credentials, no package-manager cache, and no secret or - `.env` access; -- `actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1` - (`v7.0.1`) and - `actions/setup-node@820762786026740c76f36085b0efc47a31fe5020` - (`v7.0.0`) pinned to immutable release commits. - -Observed local evidence at the reviewed workflow bytes: - -```text -PowerShell workflow contract -PASS: trigger, permissions, concurrency, runner, timeout, immutable actions, -Node 22, npm ci, npm run check, and forbidden secret/env patterns - -actionlint v1.7.12 .github/workflows/pull-request-checks.yml -PASS; release checksum matched -6e7241b51e6817ea6a047693d8e6fed13b31819c9a0dd6c5a726e1592d22f6e9 - -npm audit --json -PASS: 0 vulnerabilities across 251 dependencies - -git diff --check -PASS - -independent CI/repository-administration review -PASS: no Critical, Important, or Minor finding -``` - -A clean Node 22 Docker execution on both unmodified `main` and the candidate -exposed the same existing Linux absolute-path redaction assertion in -`service.test.ts`; an additional baseline-only timeout did not recur. No test or -timeout was weakened. GitHub's hosted Ubuntu runner subsequently passed the literal -repository command, so the local discrepancy remains recorded rather than treated -as workflow evidence. - -### Hosted positive, controlled-negative, and restored-positive proof - -Draft [PR #37](https://github.com/kyashp/shepherd/pull/37) produced the stable -workflow/job context `Pull request checks / Required checks`: - -1. Representative commit `9501b95` passed hosted run - [33262643612](https://github.com/kyashp/shepherd/actions/runs/33262643612) in - 1m24s, including literal `npm run check`. -2. Temporary workflow-only commit `d9dcea9` appended `exit 1` after the unchanged - repository command. Hosted run - [33262766467](https://github.com/kyashp/shepherd/actions/runs/33262766467) - concluded failure in 1m34s, proving a controlled red candidate cannot satisfy - the same context. -3. Commit `edc240f42ab7398bb710a524859ecdfc816927c5` removed the temporary step and - restored the independently reviewed workflow byte-for-byte. Hosted run - [33262875107](https://github.com/kyashp/shepherd/actions/runs/33262875107) - passed in 1m29s. - -PR #37 merged into `main` as -`1f1fda7782b27e2077a505be5e5be8b413c7f446`. Its closing keyword automatically -closed issue #36; the issue was reopened because repository administration and -post-activation evidence remain. The remote implementation branch was removed. - -The next merged product change, [PR #16](https://github.com/kyashp/shepherd/pull/16), -passed the merged workflow's `Required checks` run -[33266134939](https://github.com/kyashp/shepherd/actions/runs/33266134939) before -merging as `403fc095b07d60e17de1cb3f82b4e16b6a778919`. This is post-workflow proof -that a real product PR can satisfy the context. - -Active draft [PR #25](https://github.com/kyashp/shepherd/pull/25) was briefly -closed and reopened solely to emit the supported `pull_request.reopened` event. -Its draft state, branch, and head `570982dc2766e57f38bb0327f3b906c53b2ed5f2` -were unchanged. The resulting `Required checks` run -[33267807007](https://github.com/kyashp/shepherd/actions/runs/33267807007) -passed in 1m43s, so activating the stable context will not strand that owner. - -### Deliberately pending repository administration - -The repository ruleset query still returns `[]`. After PR #25 passed, an activation -attempt using the narrow default-branch payload reproduced HTTP 404. Read-back of -the effective repository permission identified the cause: authenticated identity -`sanjey99` has `WRITE` but not `ADMIN`, while GitHub requires repository -Administration (write) for ruleset creation. CI-01 therefore remains open for: - -1. a repository admin to activate the default-branch rule requiring exact context - `Required checks` from GitHub Actions integration `15368`, with no bypass actors - and loose freshness; -2. ruleset read-back and a post-activation PR proof that a red required context - cannot merge; and -3. merge-group execution proof only if a merge queue is enabled. - -No repository rule was created or changed by the workflow or this evidence update. - -## 2026-08-30 — E2E-02 Worker candidate - -The Worker added a model/network-free real-browser hero journey on the audited -deterministic verifier fixture. It exercised 13 material stages at `1280x800` and -`1440x900`, from active Contracts through protected promotion and Project Group -summaries, with backend API, Git, persisted-store and bounded verifier-ledger -oracles. Focused Chromium passed twice (4/4 total), the full Chromium suite passed -12/12, and harness unit coverage passed 7/7. All 26 ignored screenshots were -visually inspected; document/body overflow, clipping and theme drift were absent. - -The journey also passed bearer-auth 401, keyboard/focus and evidence-tab controls, -same-base/distinct-branch candidate identity, 11/11/11 verifier -create/complete/remove operations, no-network/read-only verifier constraints, -public DTO/DOM/store/log canary scans, canonical protected output, outside-write -canary, reset restoration and exact port/process/container/root cleanup. It made -zero live/model calls and did not change production code, UI or CSS. E2E-02 remains -at 95% until independent Auditor review and hosted integration evidence; `GC-06` -remains open because lifecycle summaries are truthfully Shepherd-authored. - -## 2026-08-30 — F-01/02 Worker candidate - -The original two-case RED proved that typed Agent Runtime timeout and execution -failures both reached the Mission as `unknown`. The candidate introduces one -bounded typed Runtime error across the container and executor redaction boundary. -A timeout now persists Contract `execution_timed_out` with `agent_timeout`; a -non-timeout execution failure persists `execution_failed` with -`agent_runtime_error`. Both produce the same causal failure on the failed Plane, -logical Agent and failed Mission, release active project/Contract ownership, emit -bounded durable event details, survive store reload and public DTO conversion, and -leave collision/candidate/promotion state empty. Untyped exceptions remain -`unknown`; cancellation, verifier infrastructure and candidate behavior are -unchanged and no message regex was added. - -The RED 2/2 became GREEN 3/3 including the untyped control. Runner/executor/service -focused coverage passed 11/11, adjacent runner/executor/service/API/store coverage -passed 102/102, strict test typecheck passed, and two literal -`npm run check` runs passed server 606/606 with two opt-in skips, Web 17/17, launcher -3/3 and both builds. No live/model call, UI/theme change or schema migration ran. -F-01/02 remains at 95% pending independent Auditor and hosted integration evidence. -## 2026-08-30 — TST-13 bounded Agent Runtime failure candidate - -- **Branch/base:** `fix/f-01-02-runtime-redaction` from Auditor evidence - `b03b17f` (F-01/02 parent `685e4ff`); pushed before implementation. -- **RED:** non-zero Agent Runtime output selected parsed error/raw stderr as - `RuntimeExecutionError.message`. Executor secret/path redaction retained opaque - diagnostics, and Contract/candidate failure paths persisted that message through - Mission, Contract, Plane, Agent, events, state/reload and public DTO. -- **Correction:** `RuntimeExecutionError` constructs fixed bounded text from a - runtime-normalized closed kind and optional positive safe-integer timeout; its - public kind/deadline fields are non-writable. `ContainerCodexRunner.run` - reconstructs cancellation/typed errors and maps every other create/start/child/ - cleanup operational failure to fixed execution text. Executor and service - Contract/candidate boundaries reconstruct again before durable/public use. No raw - stdout/stderr, parsed failure, model output, path, command or cause is retained. -- **Causal evidence:** planted parsed-output, stderr, create-exit, synchronous spawn, - opaque benign, secret, private-path, hostile-kind and invalid-timeout canaries are - absent from Error message/string/stack/inspection/cause and Contract, Plane, - Mission, Agent `lastError`, events, raw store, reload and public mission DTO. - Candidate Runtime failure exhausts in `attention_required`, starts no promotion, - creates no promoted candidate and leaves the protected head at Mission base. -- **Observed checks:** runner 22/22; focused runner/executor/service 75/75; adjacent - service/verifier/model/config 226/226; strict Server test typecheck green; first - literal `npm run check` green (launcher 3/3, Server 607 passed + two explicit - skips, Web 17/17, production builds green). No live/model/network call ran. -- **Security review:** first read-only pass found create/spawn diagnostics and the - candidate path; second found hostile `kind` mutation. Both were corrected with - causal tests. Final read-only follow-up reports no remaining High/Medium finding - and a scoped PASS. Second literal `npm run check` is green (launcher 3/3, - Server 609 passed + two explicit skips, Web 17/17, production builds green). - Auditor U/I remain required. -## 2026-08-30 — TST-14 execution-home cleanup precedence candidate - -- **Branch/base:** `fix/f-01-02-private-home-cleanup` from Auditor evidence - `61b3ced` atop bounded Runtime chain `c7b5175`; pushed before edits. -- **RED:** execution-private-home `rm()` threw its raw opaque/path/OS diagnostic - from `finally`, overriding success, cancellation, typed timeout and typed execution - in all four controlled rows. -- **Correction:** executor records only whether a primary outcome failed, clears its - active/cancellation ownership, and always attempts exact scoped home removal. A - cleanup-only failure becomes fresh fixed typed execution failure; any primary - cancellation/timeout/execution remains authoritative. Raw cleanup error is neither - attached as cause nor persisted. Failed `0700` owner-scoped homes remain eligible - for bounded reconciliation rather than being followed outside their root. -- **Causal evidence:** 4/4 outcome rows exclude opaque, configured-secret, Mac path - and OS-code canaries from Error/string/stack/inspection/cause; inactive cancel - returns false; reconciliation removes exactly the retained home; a later distinct - execution succeeds and cleans. Contract state proves Mission/Contract/Plane/Agent, - event, raw store, reload, public DTO, real `GET /api/shepherd/missions/:id` response - and console error/warn capture are canary-free. Candidate cleanup failure exhausts - to attention, never starts promotion and leaves protected head at Mission base. -- **Observed checks:** executor including OPS-06/preflight 21/21; focused/adjacent - 108/108; strict Server test typecheck; first literal `npm run check` green with - launcher 3/3, Server 615 passed + two explicit skips, Web 17/17 and both builds. - No live/model/UI/network call ran. -- **Security review:** initial read-only review found no High/Medium and requested - explicit inactive-cancel, log-capture, HTTP and OPS-06 evidence; all are now covered. - Final follow-up reports no High/Medium or material evidence gap. A full-suite run - exposed and corrected one test-only overclaim: under contention, an unrelated - candidate can fail before executor cleanup, so the assertion now requires all - candidates terminal/no-promotion, at least one causal fixed cleanup failure and - universal canary absence. No timeout/product change was made. Two post-correction - literal checks pass identically (launcher 3/3, Server 615 + two explicit skips, - Web 17/17, strict types and builds). Auditor U/I remain required. -## 2026-08-30 — TST-15 bounded sentinel/reconciliation filesystem policy - -- **Branch/base:** `fix/f-01-02-sentinel-cleanup` from Auditor evidence `6eb20d0` - atop TST-14 `3afc452`; pushed before edits. -- **RED:** sentinel adoption open attached raw cause; validation/adoption close could - override bounded primary errors; failed unlink was swallowed; interrupted private- - home and preflight-workspace rm escaped raw errno/path/OS diagnostics. Independent - review then identified the adjacent pre-open lstat/chmod/readdir family. -- **Correction:** one internal `BoundedFilesystemError` policy emits only closed - stage/reason text for sentinel validation/adoption and private-home/preflight- - workspace reconciliation. It never retains raw cause/detail. Primary failure wins - over close/unlink double faults, cleanup-only fails closed, and all exact cleanup - attempts still run. Same-process failed sentinel unlink is remembered for exact - retry; rm failures retain the exact contained target. No broad delete, fallback, - symlink relaxation or public error code was added. -- **Causal evidence:** faults cover adoption open; existing-sentinel lstat/chmod; - pre-adoption readdir/chmod; validation close and read+close; adoption close-only and - write+close+unlink; a second failed pending unlink then success; interrupted home - and preflight-workspace rm. Opaque/secret/Mac/Linux/errno/path canaries are absent - from Error/string/stack/inspection/cause and service initialization Error/cause, - store and console logs. Every retained target is observed, retried and removed. -- **Residual:** pending sentinel ownership is process-local. After restart, an - invalid retained sentinel fails closed and may require operator cleanup. This is - intentionally not described as automatic cross-process recovery. -- **Observed checks:** executor 33/33 (also independently rerun); focused/adjacent - 120/120; strict Server test types; two literal `npm run check` passes, each with - launcher 3/3, Server 627 passed + two explicit skips, Web 17/17 and both builds. - No live/model/UI/network call ran. -- **Security review:** first pass found one Medium pre-open family and four evidence - gaps. After correction, final read-only re-review reports PASS with no High, - Medium or material gap; containment and symlink protections remain unchanged. - Auditor U/I remain pending. - -## 2026-08-30 — F-05 Worker candidate - -- **RED/correction:** a real add/add Git conflict was detected and aborted by the - Git boundary, but the service persisted generic `unknown/background_demo` and - left the integration Plane inspecting. The narrow correction maps the existing - typed conflict to fixed `git_conflict/integration_merge`, marks only the - integration Plane failed, and records bounded event evidence. -- **Boundaries:** ten validated repo-relative conflicts prove an exact total count, - an eight-path preview capped at 48 characters, and rejection of absolute, - traversal and control paths (backslashes normalize to `/`). No raw Git output, - host path or cause is persisted or exposed through the public Mission DTO. -- **State/cleanup:** source Contracts remain verified and inspectable; Agents are - released; candidates/collisions remain empty; protected HEAD does not move. Git - merge abort leaves the retained integration worktree clean. Deterministic reset - removes all retained Plane worktrees and branches while preserving repository - HEAD and an outside canary. -- **Observed checks so far:** causal 2/2; adjacent service, Git promotion, recovery, - store and API 110/110; strict production/test types; first literal `npm run check` - passed launcher 3/3, Server 666 passed + two opt-in skips, Web 17/17 and both - builds. After adding explicit reset and unsafe-path boundary proof, the second - literal gate passed launcher 3/3, Server 667 passed + two opt-in skips, Web 17/17 - and both builds. Independent Auditor `I` remains pending; no live, model, network - or UI-design call ran. - -## 2026-08-30 — F-04 Worker candidate - -The causal RED used the existing internal fault checkpoint to place a partial -managed destination immediately before initial Contract Plane creation. Plane -Manager correctly rolled it back, but the owning Contract remained queued and the -Mission persisted generic `unknown/background_demo`. The candidate recognizes the -existing `PlaneCreationError` without exposing its cause, persists fixed bounded -`worktree_creation_failure/plane_creation` evidence on the owning Contract and -Mission, releases the logical Agent/project, and records no Plane for a resource -that never completed creation. Executor and verifier calls remain zero; no -integration, collision, candidate or promotion state exists. - -The original RED became GREEN 1/1. A separate real-Git integration fault after -worktree attachment proves rollback of the partial worktree and `shepherd/` -branch, unchanged protected HEAD/file canary, and a fixed public error message. -Focused coverage passed 2/2; adjacent service/Git/recovery/API/store coverage -passed 107/107; strict test types and two literal `npm run check` runs passed -launcher 3/3, Server 663/663 with two opt-in skips, Web 17/17 and both builds. No -live/model/network/UI/schema change ran. F-04 remains 95% pending independent -Auditor, security and hosted integration evidence. - -## 2026-08-30 — F-06 Worker candidate - -- **Scope:** the representative Mission `running -> verifying` write after two - verified Contracts and before integration now uses `mutateRecoverably`. The - generic store primitive is not claimed as entity-aware recovery for arbitrary - mutations. -- **Journal contract:** the adjacent version-1 sidecar contains only an allowlisted - operation, Mission/two Contract/two Plane IDs, fixed stage, timestamp and SHA-256 - of the exact canonical sanitized bytes written by the shared serializer. It is - capped at 8 KiB, mode/owner checked where supported, opened no-follow, and uses - temp/write/file-sync/close/rename/parent-directory-sync. Unix/macOS directory - sync errors fail bounded; Windows retains file sync, atomic rename and digest - reconciliation but cannot claim the same sudden-power-loss directory guarantee. -- **Recovery:** old digest means the transition did not commit and startup records - exactly one bounded `persistence_error` attention event; changed digest must - match the committed `verifying` state or a prior exact reconciliation. Pending - recovery blocks ordinary mutations and event allocation. Agents are released, - Contracts/Planes remain verified, project attention remains active, and no - integration/candidate/promotion/protected-head mutation occurs. Reset after - cancellation removes the journal and retained Planes. -- **Fault evidence:** all six journal stages, six primary stages and two journal - removal stages are injected. Rename/directory-sync ambiguity, immediate recovery, - two restarts/no duplicate, concurrent mutation denial, corrupt/oversize/symlink, - unknown IDs, stale precondition and digest mismatch pass with bounded errors and - no secret/path/errno canary on public/store/Error/stack surfaces. -- **Observed checks:** store 34/34; focused persistence/recovery 23/23; adjacent - store/service/recovery/API 116/116; first literal `npm run check` passed launcher - 3/3, Server 700 passed + two opt-in skips, Web 17/17, strict types and both builds. - A second literal gate passed with the same counts. Independent - Auditor/security/hosted evidence remains. No live/model/network/UI-design call - ran. - -## 2026-08-30 — CHAT-03 unsafe and underspecified Contract intake - -- **Scope:** issue #81 strengthens the integrated general private-chat Contract - planner without changing the frozen UI theme. A request must end with one direct, - allowlisted action on a quoted authority-contained project artifact, the exact - bounded project-only `Safety:` statement, and one literal-content `Acceptance:` - predicate. Ambiguous, conditional, negated, approval-dependent, credential, - privileged, destructive, external/network and safeguard-bypass wording remains an - inert clarification and creates no Mission, Contract or Plane. -- **Recovery:** unsafe intent is accumulated rather than erased by incremental - follow-ups. Exact `Replace prior request:` starts a clean bounded draft; a complete - follow-up replaces only earlier vague drafts that contained neither an artifact nor - unsafe intent. The Agent remains startable/stoppable/deletable after clarification. -- **Runtime boundary:** the live preflight plants a fake parent credential canary and - scans `/proc/[0-9]*/environ` inside the actual Codex Linux sandbox. The unguarded - control could read the canary; the generated production preflight in the freshly - built Runtime image passed only after the sandboxed child could not recover it. - Visibility maps to fixed `credential_isolation_failed` evidence. -- **Observed deterministic checks:** focused planner/service 27/27; literal - `npm run check` passed launcher 3/3, Server 824 passed + two explicit opt-in skips, - Web 20/20, strict production/test type checks and both builds. Authenticated - Chromium passed 8/8 across exact 1280×800 and 1440×900 projects, covering the auth - collision, clarification/correction, lifecycle recovery, durable human review and - no document overflow. `git diff --check` passed. Independent security and UI - reviews passed with no High/Medium finding. -- **Live evidence and limitation:** the first broad command incorrectly discovered a - stale ignored recording worktree and is not counted. The corrected exact-source, - single-worker live command made the bounded provider attempt, reached Contract - execution, and failed after 35 seconds with `Contract result manifest is missing`. - No retry was made. This is separate Agent-output reliability work and means neither - this candidate nor `LIVE-01` claims an exact-head live Mission pass. - -## 2026-08-30 — PERF-01 Worker candidate - -- **Scope and environment:** this candidate is based on protected-main `baa6b2f`. - macOS `26.5.2` (`arm64`), Node `v26.5.0`, npm `11.17.0`, Playwright `1.62.1`, - and Chromium `151.0.7922.34` ran the deterministic compiled Server and real - Chromium UI. Docker was used only by the separately recorded ContainerVerifier - boundary test below. -- **Bounded RED:** the initial `npm run test:e2e:shepherd-performance` exited 1: - each natural-browser run reported `Expected length: 5; Received length: 2` for - `verification_started`, proving the old count was not the actual Contract - lifecycle. The focused causal test was then deliberately red with - `expected ... length of 3 but got 2` after both real scheduled candidate - executions arrived at its test-owned gate. The green assertion is exactly two; - it releases in `finally`, so the red case cannot strand a Mission. This removed - the non-causal verifier gate rather than adding timeout, retry, product, or UI - behavior. -- **Natural timing, one clean sample per viewport:** the ungated path measured the - earliest of exactly two `contract_started` events, emitted after both initial - `createContractPlane` calls return, as a conservative two-Plane-ready upper - bound; it does not call raw `Plane.createdAt` a worktree-complete boundary. It - also measured earliest `verification_started` to latest `verification_passed` - (exactly two of each), persisted collision → visible, and collision → - `promotion_completed`. At `1280x800`: 339 ms accepted → two-Plane-ready, 230 ms - Mission → two-Plane-ready, 334 ms verification, 391 ms persisted collision → - visible (PRD limit `<=1.5s`), 2,083 ms collision → promotion complete, and - 3,848 ms total. At `1440x900`: 412 ms, 257 ms, 320 ms, 74 ms, 2,187 ms, and - 4,167 ms respectively. -- **Instrumented concurrency proof (not a timing measurement):** the focused - `ShepherdService` test owns a wrapper around the deterministic executor. It - gates only `resolution_candidate` calls, records ISO start/completion times - without prompts, paths, or IDs, waits up to three seconds for exactly two real - scheduler arrivals, asserts no completion before release, then asserts two - parseable completions and `max(start) <= min(complete)`. Its bounded rejection - still enters `finally` to release background work. It passed 1/1 (62 filtered) - after the causal RED. - This test-owned injection is separate from the ungated browser path, so gate - delay cannot enter the natural timing samples. -- **Verifier lifecycle and isolation evidence:** the natural browser run asserts - eleven unique container names, each exact `create → start → complete → remove` - sequence, and an empty fixture container directory. Its run ledger records every - `create` request as `network=none` and `readOnly=true`; those are fixture command - records, not enforcement proof. Enforcement is separately observed with - `npx vitest run --config apps/server/vitest.config.ts apps/server/src/shepherd/verifier.container.test.ts -t "proves cleared secrets, no network, and a read-only candidate mount"`: - 1 passed, 8 skipped. That real ContainerVerifier boundary test rejects network - access and candidate-mount writes and confirms its cleared environment. Neither - check detects package downloads, so none are claimed. -- **Observed GREEN and screenshots:** - `npm run test:e2e:shepherd-performance:evidence` passed build, harness 7/7, and - Chromium 2/2. It intentionally uses the ordinary Playwright config, so this spec - remains included in the full browser harness. The reproducible evidence command - wrote the passing collision-visible and final-promotion screenshots at both - required viewports under `docs/ui-review/perf-01/1280x800/` and - `docs/ui-review/perf-01/1440x900/` (`01-collision-visible.png` and - `02-promotion-completed.png` in each); both required states were visually - inspected. `node --test tests/e2e/harness.test.mjs` also passed 7/7. -- **CI teardown-race RED/GREEN:** hosted Node 22 run `33316746584` exposed a - test-cleanup race after 805 passing tests: a managed temporary disappeared - after `lstat` and before `chmod`, which raised `ENOENT`. A deterministic - regression now removes a fixture at that exact boundary and reproduced the - same failure 1/1 before the fix. Cleanup tolerates only `ENOENT` from that - entry `chmod`; sentinel, containment, symlink, permission, and all other - failures remain strict. The focused regression passed 1/1, the complete - `service.test.ts` file passed 64/64, and a literal `npm run check` passed - launcher 3/3, Server 810 passed plus three opt-in skips, Web 20/20, all - workspace/test-source typechecks, and both builds. -- **Limitations:** local deterministic-fixture evidence is not a live-model - capacity measurement, hosted integrated rerun, package-download proof, or the - three clean rehearsals owned by `DEMO-REHEARSAL`. Gate `I` remains pending an - independent protected-main audit. The prior hosted failure is preserved above; - the corrected commit still requires a fresh hosted run. - -## 2026-08-30 — PERF-01 protected-main integration audit - -- **Integrated identity:** protected `origin/main` - `b193e5745661735c44e581ccdc10f2a1ce4692dc` is PR #77's merge commit; its - direct second parent is the reviewed correction - `332071d37295517721eb1360c501a6746535f5db`. The detached audit worktree was - clean before and after verification. -- **Focused causal checks:** the exact cleanup-race regression passed 1/1 with - 63 filtered tests, and the actual scheduled candidate-executor overlap proof - passed 1/1 with 63 filtered tests. -- **Integrated browser evidence:** the ordinary non-evidence performance command - passed build, harness 7/7, and Chromium 2/2 using the existing pinned read-only - browser cache. It did not download/copy/symlink a browser or set - `E2E_UPDATE_EVIDENCE`; tracked screenshots remained byte-identical. At - `1280x800`: conservative two-Plane-ready 323 ms, verification 303 ms, - persisted event → visible 488 ms, collision → promotion complete 2,073 ms, - and 3,712 ms total. At `1440x900`: 334 ms, 334 ms, 476 ms, 2,044 ms, and - 3,680 ms respectively. Both event-visibility samples satisfy the PRD - `<=1.5s` limit. -- **Full and hosted gates:** a literal `npm run check` passed all production and - test-source typechecks, launcher 3/3, Server 810 passed with three explicit - skips, Web 20/20, and both builds. Hosted exact-main run `33318509842` passed - `Node 22 / npm run check` in 2m54s. -- **Audit result:** independent Auditor returned READY with no Critical or - Important findings. PERF-01 gates `B` and `I` are passed. This remains - deterministic evidence, not a live-model capacity measurement, - package-download proof, or the three clean rehearsals owned by - `DEMO-REHEARSAL`. - -## 2026-08-30 — CHAT-03 protected-main reconciliation - -- The issue #81 candidate was merged locally with protected `origin/main` - `9696c6d`. The only textual conflict was the append-only `BUILD_LOG.md`; both the - CHAT-03 and protected-main PERF-01 histories are retained. Startup-settings, - performance, architecture, fixtures and screenshots from main were accepted - byte-for-byte; product files merged automatically. -- Focused intake/startup/composition coverage passed 33/33. Literal - `npm run check` passed all production/test type checks, launcher 5/5, Server 842 - passed with two explicit live skips, Web 20/20, and both production builds. -- Combined authenticated Chromium passed 10/10 at 1280×800 and 1440×900. The - issue #81 clarification, lifecycle and human-review journeys remained green; - the integrated performance journey completed in 2,343/2,388 ms with persisted - collision visibility in 157/101 ms. -- `git diff --check` and conflict-marker checks passed. No live request was repeated; - the earlier exact live result-manifest failure remains an explicit `LIVE-01` - limitation rather than being hidden by the deterministic integration result. -- Hosted `Pull request checks` run `33319816809` then preserved a causal RED: under - heavy suite contention, PERF-01 spent its three-second candidate-pair deadline on - earlier Mission setup and failed before both candidates arrived, while independent - hosted run `33319816797` passed the same repository head. The test-only correction - gives pre-candidate setup its own bounded 15-second allowance and starts the - unchanged three-second concurrency deadline only when the first real candidate - reaches the executor. Product scheduling, timeouts and retry behavior are - unchanged; a sequential scheduler still fails the pair deadline and releases the - existing gate through `finally`. The preserved row passed 10/10 consecutive - focused repetitions; the post-correction literal gate passed launcher 5/5, - Server 842 passed with two explicit live skips, Web 20/20, all strict typechecks - and both builds. - -## 2026-08-31 — issue #96 exact-main release-readiness remediation - -- **Identity and ownership:** branch `fix/96-release-readiness-audit`, draft PR #97, - protected-main base `f935fdb5581849f8377f20922e254c55d34e5de0`, tested product - commit `223a5fe00f977013d4bf5df6560016a1719c8d11`. Issues #45, #65 and - #89 were explicitly taken over because no other PR or branch was active. This is - candidate evidence; it is not protected-main integration or independent audit. -- **Initial failure evidence:** the exact-main Playwright matrix passed 34/38. - Reproduced causes included a Project Group controlled-input/caret race, Agent edit - hydration/custom-authority data loss, a one-pixel document scroll, and missing - explicit Settings icon names. Release review also confirmed unbounded durable - collections and partial Agent publication, missing tokenless Host/Origin and - public-bind boundaries, a bind-only/non-exact live harness, absent executable - coverage/Terraform gates, and Terraform runtime credentials entering the - plan/state path. -- **Corrections:** `2e7c915` bounds durable collections at 10,000, returns bounded - `507` capacity failures, makes Agent creation atomic, enforces tokenless loopback - Host plus same-origin Origin, and refuses a public bind without a strong token. - `69c12de` fixes the controlled composer and caret, labels Settings controls, - removes the footer overflow pixel, pins direct-Playground behavior, and improves - fake Runtime diagnostics. `223a5fe` fixes Agent edit hydration/rapid-toggle state, - expands functional browser coverage, builds exact-tree live Runtime/controller - images on a named volume with cleanup, adds executable Server/browser coverage, - adds pinned Docker Terraform validation, and transfers runtime credentials only - after apply over SSH into a mode-`0600` environment file. -- **Literal repository gate:** `npm run check` passed root Node tests 26/26, Server - 856 passed with 3 explicit opt-in skips, Web 20/20, every strict production/test - typecheck, and both production builds. No timeout/retry increase, skip, assertion - weakening, design change, or dependency vulnerability was used. -- **Clean coverage gate:** `npm run test:coverage` passed. Server V8 coverage: - statements 86.15% (7543/8755), branches 80.05% (5230/6533), functions 91.46% - (1446/1581), lines 88.03% (7161/8134). Browser Istanbul coverage: statements - 88.50% (924/1044), branches 80.18% (862/1075), functions 87.64% (305/348), - lines 92.37% (788/853). The checker requires every production file and all four - metrics at or above 80%, and restores the ordinary build after instrumentation. -- **Full browser gate:** ordinary one-worker Chromium passed 48/48: 24 functional - flows at both exact `1280x800` and `1440x900`. It covers auth/shell overflow, - Agent create/edit/start/stop/delete/sort, preset compatibility, Settings - persistence/reset/error recovery, direct Playground, Project Group, successful - and denied Shepherd Missions, loading/empty/reconnect/malformed/not-found states, - durable restart, verifier/runtime contracts, accessibility contrast and truthful - promotion evidence. Natural PERF-01 samples were 4,587 ms and 3,457 ms total, - with persisted-event visibility 960 ms and 612 ms respectively. -- **Terraform and live construction:** `npm run test:terraform` initialized and - validated a disposable copy with `hashicorp/terraform:1.9.8` and - `volcengine/volcenginecc` 0.0.58: `Success! The configuration is valid.` - `npm run test:shepherd:live:preflight` built the exact candidate application and - controller, passed both in-image dependency audits, created the named state - volume, and discovered exactly the one bounded live integration test under a - non-root controller. Temporary containers, images and volume were cleaned by the - wrapper. No model request or provider spend occurred. -- **Security and repository hygiene:** `npm audit --json` reported zero - vulnerabilities. `git diff --check`, tracked secret/state/generated-artifact - scans and bounded canary checks passed. No environment value, raw prompt/model - output, session identifier, Terraform state or provider cache was recorded. -- **Hosted candidate checks:** exact candidate/docs head `bb1a1df` passed - `Node 22 / npm run check` run `33389614355` in 2m59s and `Required checks` run - `33389614223` in 3m01s. -- **Explicit remaining evidence:** the external Ark turn was not executed because - it transmits repository-derived prompts and scoped code to the configured - endpoint and the managed executor requires separate informed approval for that - transfer. Independent UI gate `U`, issue #89 part-5 security review, - protected-main integration and the three complete demo rehearsals remain open; - local and hosted candidate success is not substituted for any of them. - -## 2026-08-31 — issue #96 protected-main integration closeout - -- **Identity:** PR #97 merged to protected `main` as - `53f252935f63f4bef8a36f17432fecd0de824181`; final PR head was - `14b69f230a043e3cc838ce0cc1c96af9f006047b`. Verification used a clean worktree - at the exact merge, not the earlier product or documentation candidate. -- **Install and repository gate:** `npm ci` installed 264 packages and reported - zero vulnerabilities. Literal `npm run check` passed root script/deploy tests - 26/26, Server 856 passed with 3 explicit opt-in skips, Web 20/20, every strict - production/test typecheck, and both production builds. -- **Clean coverage:** `npm run test:coverage` passed. Server V8 coverage was - 86.15% statements (7543/8755), 80.05% branches (5230/6533), 91.46% functions - (1446/1581), and 88.03% lines (7161/8134). Browser Istanbul coverage was 88.40% - statements (923/1044), 80.00% branches (860/1075), 87.35% functions (304/348), - and 92.37% lines (788/853). All four metrics and every production file remain - enforced; 24 instrumented browser flows passed and the ordinary build was - restored. -- **Full browser matrix:** ordinary one-worker Chromium passed 48/48: 24 functional - flows at both exact `1280x800` and `1440x900`. Natural PERF-01 measurements were, - respectively, 3,562/3,463 ms total; 566/563 ms persisted event to visible; and - 1,979/1,877 ms collision to promotion complete. Both visibility samples satisfy - the PRD `<=1.5s` bound. -- **Terraform and live construction:** `npm run test:terraform` passed with pinned - Terraform 1.9.8 and Volcengine provider 0.0.58. The exact-tree - `npm run test:shepherd:live:preflight` built the merged Runtime/controller, ran - the controller non-root with a named volume and engine socket, discovered exactly - one live integration test, and cleaned temporary resources. No model request ran. -- **Hosted integration:** protected-main `Required checks` push run `33396729636` - completed successfully on exact merge `53f2529`. -- **Explicit remaining evidence:** external Ark inference was not executed because - it transmits repository-derived prompts and scoped code and consumes live model - capacity; it requires separate informed approval. Independent UI gate `U`, issue - #89's independent security review, and three complete demo rehearsals remain open. - None is inferred from deterministic integration evidence. diff --git a/docs/DEVIATIONS.md b/docs/DEVIATIONS.md deleted file mode 100644 index 57e45ab..0000000 --- a/docs/DEVIATIONS.md +++ /dev/null @@ -1,59 +0,0 @@ -# Shepherd Deviations, Clarifications, and Environment Limits - -This is the hard completion ledger for material interpretations of -[`PRD.md`](PRD.md). It does not narrow the PRD and it does not convert missing -evidence into accepted behavior. Exact implementation status and ownership remain -canonical in [`TASKS.md`](TASKS.md); reproduced defects remain canonical in -[`FIXES.md`](FIXES.md). - -## Status contract - -- **Clarification** resolves an ambiguity without reducing required behavior. -- **Actual deviation** means required behavior or required acceptance evidence is - absent. Every actual deviation must name an open TASKS/FIXES row. -- **Environment limitation** identifies evidence that cannot honestly be claimed in - the current environment. It remains open when the PRD requires that evidence. -- **Permanent scope statement** restates an explicit PRD exclusion and is not work - to “fix.” -- **Resolved** requires implementation and the tests named by the owning task. A - backend-only or hosted-only gate cannot close a browser, live, or second-machine - requirement. - -The project is not complete while any row below is **OPEN** or **PARTIAL**. - -## Product-contract interpretations - -| Topic | Classification | Current status and evidence | Owning task(s) | -|---|---|---|---| -| Manifest ingestion exception | Clarification | **PARTIAL.** The PRD both protects `.shepherd/**` and requires the exact per-Plane `.shepherd/result.json` ingestion channel. Trusted code schema-validates and removes that file before staging; no `.shepherd/**` content may integrate or promote. Valid-path parser/service tests exist, but the required durable missing/malformed/omitted-key failure states and browser evidence remain incomplete. | `FM-01`, `E2E-04/05`, `SEC-REVIEW` | -| Interrupted work | Clarification | **PARTIAL.** The Mission enum remains authoritative. Startup reconciliation maps active work to `attention_required` with `execution_interrupted`; Contracts/candidates may use explicit terminal `interrupted` states. Backend recovery coverage exists, but the required kill/restart-mid-Mission browser journey and full failure-matrix evidence are open. | `E2E-08`, `FM-01`, `SEC-REVIEW` | -| Managed project boundary | Clarification | **PARTIAL.** The demo uses a separately managed Git repository beneath configured application data, never this source repository. Public browser/model input does not accept filesystem paths or shell commands. `E2E-02` now proves its audited hero-path Git/store/API/DOM correlation, but final mutation checks, complete scans across remaining flows, and independent final review remain open. | `SEC-REVIEW`, `DEMO-REHEARSAL` | -| Supported isolation profile | Clarification plus environment limitation | **PARTIAL.** Shepherd's Plane/verifier/no-network guarantees apply only to the local Docker/Colima/Podman path; host-process and ECS starter paths must report unsupported isolation rather than imply parity. Linux Docker gates and bounded stage/reason diagnostics are audited. The affected-host cause is now reproduced and named: a host share reaching the engine through a virtual machine cannot carry Codex's Landlock per-file access rights, so `host-bind` state cannot support the sandbox there and the gate correctly refuses to start. The launcher detects this through its own probes and switches to an engine state volume automatically, which restores the guarantees. | `OPS-06`, `LIVE-01`, `SEC-REVIEW` | -| Control-plane engine socket in container-volume mode | Clarification plus accepted trust decision | **SCOPED.** In `container-volume` mode the control plane runs inside the engine and is given the engine socket so it can start sibling Runtime containers. Socket access is equivalent to control of the engine, so it materially widens the control plane's authority; it does not weaken any Agent boundary, since Runtime and verifier containers keep non-root, read-only, dropped capabilities, no-network verification and the private-home denial. The control plane stays non-root and joins only the socket's group. `host-bind` mode, the default, grants no socket. A scoped socket proxy is the documented hardening if this profile is ever exposed beyond a local operator. | `OPS-06`, `SEC-REVIEW` | -| Completed Plane cleanup | Clarification | **RESOLVED AS POLICY, NOT AS AN IMPLEMENTED CLEANER.** Cleanup is permitted only after evidence capture and must retain persisted Plane metadata, Git lineage, bounded diff/verification evidence, and branch inspection. The current product does not ship automatic completed-Plane cleanup, and this document must not imply it does. The PRD does not require an automatic cleaner; `retainCompletedPlanes` remains the truthful current behavior. | No implementation task unless scope changes; recheck in `SEC-REVIEW`/final docs | -| Visual fidelity | Clarification plus actual evidence deviation | **OPEN.** `UI.jpeg` is a six-surface product reference rather than one literal composite viewport. Human-visible hierarchy, palette, typography, density, spacing and interactions still require the full six-surface/state review. Audited E2E-01, E2E-02, GC-01, and focused UI evidence at 1280x800/1440x900 cover important subsets, not full visual acceptance or “all laptop aspect ratios.” | `UI-GATE`, `E2E-03`–`E2E-08`, `DEMO-REHEARSAL` | - -## Sequencing interpretations - -| Topic | Classification | Current status and evidence | Owning task(s) | -|---|---|---|---| -| Failure matrix sequencing | Clarification | **OPEN.** F-01/02, F-04–06 and TST-13–24 are audited, closing typed Agent runtime/timeout, executor filesystem/config, initial Plane creation, Git-conflict and representative persistence-recovery boundaries. The complete matrix remains open for manifest, candidate timeout/retry, tie, polling, model-degradation and required browser rows. | `F-07`–`F-09`, `FM-01`, `UI-01`, `E2E-04`–`E2E-08`, `SEC-REVIEW` | -| Browser-journey sequencing | Clarification | **OPEN.** Backend paths can precede UI implementation, but no PRD journey is complete without its real browser assertions and screenshots. `E2E-01` and `E2E-02` are audited; harness/shell tests and source inspection do not close `E2E-03`–`E2E-08`. | `E2E-03`–`E2E-08`, `UI-GATE` | - -## Environment and assurance limitations - -| Limitation | Classification | Current status and honest reporting rule | Owning task(s) | -|---|---|---|---| -| Second environment / machine | Environment limitation | **OPEN.** Hosted GitHub Node 22/Docker runs are valid cross-environment evidence only for the exact `npm run check` workflow executed there. They are not a second-machine full demo rehearsal. Claim the latter only after a real second machine/state runs the judge flow. | `DEMO-REHEARSAL`, `DEL-02` | -| Ordinary-container tenancy | Permanent scope statement | **ACCEPTED.** Ordinary containers are not hardened hostile multi-tenant isolation; production OAuth/RBAC/multi-tenancy are explicitly out of scope in PRD 2.2 and 13. Do not market the local PoC as a multi-tenant security boundary. | Final `SEC-REVIEW` wording only | -| Live-model network egress | Clarification plus environment limitation | **PARTIAL.** The bounded reviewer smoke made exactly one external request and passed with `completed findings=2`; deterministic authority, secret scans and cleanup remained green. Current live Shepherd Mission/legacy continuity remain open. Default tests stay model/network-free. | `LIVE-01`, `SEC-REVIEW`, `DEL-02` | -| Secret-scan certainty | Clarification | **OPEN FOR FINAL ASSURANCE.** Scans can prove absence of configured secrets, planted canaries, exact known values, and recognized credential/private-path patterns—not unknowable arbitrary strings. This epistemic limit does not relax the PRD prohibition on secrets in source, store, prompts, logs, events, or DOM. | `SEC-REVIEW`, `DEMO-REHEARSAL`, `DEL-02` | -| Laptop coverage | Environment/evidence limitation and actual deviation | **OPEN.** The two required audit viewports are green only for audited rows; they do not prove all laptop aspect ratios or the full six-surface matrix. “All laptop aspect ratios” is operationalized by a documented representative matrix, which must be defined and executed before final visual claims. | `UI-GATE`, `DEMO-REHEARSAL`, `DEL-02` | - -## Completion rule - -Before submission, the Auditor must reconcile this file against current code, -`TASKS.md`, `FIXES.md`, final browser/live/security evidence, and the generated test -report. No OPEN/PARTIAL row may be silently relabelled as an accepted limitation. -If an actual PRD deviation remains, the project remains incomplete unless the user -explicitly revises the PRD. diff --git a/docs/FIXES.md b/docs/FIXES.md deleted file mode 100644 index 60cd809..0000000 --- a/docs/FIXES.md +++ /dev/null @@ -1,1279 +0,0 @@ -# Shepherd Defect Queue - -**Current integration branch:** protected `main`. Historical entries retain the -branch/SHA on which their evidence was observed. - -**Reconciled:** 2026-08-31, Asia/Singapore. Individual rows retain their own audit -status; this date does not self-certify candidate fixes. - -**Task ordering and dependencies:** [`TASKS.md`](TASKS.md) - -This file contains only reproduced defects or defects strongly evidenced by the -current source/tests and earlier bounded build-log reproductions. It is the Fixer -queue, not a second PRD. When an observation is only reported from another machine, -that limitation is explicit. - -## Fixer rules - -1. Re-run the exact failure contract before editing. If it does not reproduce, - preserve the report and record the missing condition; do not call it fixed. -2. Make the smallest coherent correction. Do not refactor unrelated code, weaken - schema/lifecycle/security assertions, bypass the sandbox, or change public/UI - contracts unless the supported root cause requires it. -3. Add the causal regression, run targeted and adjacent tests, then literal - `npm run check`. The auditor independently reruns the relevant PRD flow on the - integrated `main` SHA. -4. Preserve the accepted UI exactly as directed in `TASKS.md`. UI design is frozen; - edits are allowed only for indispensable functional clarity/data, causal bugs, or - accessibility, at both required viewports. Minimal fixes must not remove or - weaken intended functionality. -5. Update the defect row with before/after evidence, exact tests, confidence, commit, - and audit status. Anything below scoped 100% remains review-required. - -## Immediate queue - -### `REL-96` — exact-main release audit findings - -- **Evidence class:** issue #96 / merged PR #97, based on protected `main` - `f935fdb`; tested product commit `223a5fe`; integrated as `53f2529`. -- **Browser failures:** the first full matrix passed 34/38. Project Group's - controlled composer could lose the character committed in the same turn as a - mention action or move its caret; Agent edit could publish a blank/custom draft - before presets and Agent state hydrated, then erase edits on a rapid authority - toggle. A one-pixel shell footer margin created document scroll, Settings icon - buttons lacked explicit accessible names, and the direct Playground choice was - not pinned by the regression suite. -- **Security/durability findings:** durable collections grew without a fixed cap; - Agent creation could publish partial state; a tokenless server trusted arbitrary - Host/Origin values; a public bind could start without a strong application token; - and runtime credentials could enter Terraform variables, cloud-init, plans and - state. -- **Release-harness findings:** the live test forced host bind mounts and could not - cross the documented Docker Desktop sandbox boundary; it did not independently - build the exact candidate tree. Terraform validation was unavailable on hosts - without a local binary, and the repository had no executable coverage provider or - enforceable 80% threshold. -- **Correction/status:** **REMEDIATED + INTEGRATED** at protected-main merge - `53f2529`, from product head `223a5fe` plus the preceding - issue #96 commits. Controlled UI actions synchronously commit the latest draft and - preserve caret/hydration state without changing the accepted design. Durable - publication is capacity-bounded and atomic. Tokenless access is loopback Host plus - same-origin Origin only, public binding requires a strong token, and Terraform - receives runtime credentials only after apply through a mode-`0600` SSH transfer. - The live wrapper builds the exact tree and runs its non-root controller on a named - state volume. Coverage and pinned-container Terraform gates are first-class npm - scripts. -- **Observed closure evidence:** literal `npm run check` passed root 26/26, Server - 856 passed plus 3 opt-in skips, Web 20/20, strict types and both builds. Clean - Server coverage is 86.15/80.05/91.46/88.03%; exact-merge browser coverage is - 88.40/80.00/87.35/92.37% (statements/branches/functions/lines). Full Chromium is - 48/48 at exact `1280x800` and `1440x900`. Pinned Terraform validation and the - exact-tree zero-spend live Docker preflight pass; dependency audit reports zero - vulnerabilities. Protected-main workflow run `33396729636` passes on the merge. - External Ark inference and independent UI/security review remain explicit gates, - so this row is integrated but not independently audited. - -### `TST-30` — Candidate-cleanup fixture races first-use Runtime root adoption - -- **Evidence class:** full pre-push Server gate on issue #48 candidate `f3a9dc0`. - All candidates reached failed/no-promotion state, but none retained the expected - sanitized `Agent Runtime execution failed` cleanup result. -- **Failure contract:** the routed test executor bypasses the production startup - recovery path. Concurrent first-use candidates can therefore race private-root - sentinel adoption and fail before `runner.run` registers their private homes as - cleanup-fault targets. The row then measures setup adoption instead of cleanup. -- **Correction/status:** **RESOLVED + INTEGRATED** at protected-main merge `b05a4aa` - via PR #93; causal correction `69d82b4`. Call the - public executor preflight once and assert it occurred before candidate scheduling; - cleanup injection, timeout, and failure/no-promotion assertions are unchanged. - The exact row passed 10/10, executor file 72/72, full Server 845/3 skipped before - rebase, and the formal current-main campaign passed five literal gates at - `10c95da`. Exact-main local check passed Server 846/3 skipped plus all adjacent - gates, and protected-main workflow `33353622211` passed. Not independently audited. - -### `TST-29` — PERF-01 overlap proof spends its budget on full Mission setup - -- **Evidence class:** formal issue #48 run 4 on `bd77952` timed out at 5.176s - after three complete green gates. A promise start barrier still failed at 6.229s; - an `autoResolution:false` candidate-completion variant failed at 6.038s. -- **Failure contract:** the assertion is about bounded scheduler overlap, but the - five-second row builds a complete Git-backed Mission before reaching that - boundary. Under suite pressure the setup consumes the timing budget even when - candidate scheduling is correct. -- **Correction/status:** **RESOLVED + INTEGRATED** at protected-main merge `b05a4aa` - via PR #93; causal correction `f3a9dc0`. Move the - existing byte-equivalent `allSettledBounded` primitive to the canonical scheduler - module and prove two-start-before-release, completion-after-release, limit-one, - rejection, and input-order behavior directly. Adjacent 30-second real-Plane tests - retain completed-Mission, selection, promotion, and `promotion_completed` - coverage. No product timeout/concurrency/retry changed. Formal campaign 5/5 at - `10c95da`; exact-main local check passed Server 846/3 skipped plus all adjacent - gates, and protected-main workflow `33353622211` passed. Not independently audited. - -### `TST-28` — F-03 snapshot cleanup is observed through OS file watchers - -- **Evidence class:** issue #48 reproduced the previously logged fail-fast sibling - cleanup instability while the test relied on `fs.watch` to notice removal. -- **Failure contract:** the watcher is an extra OS resource and a lossy proxy for a - service-owned lifecycle boundary. Under full-suite contention it can miss the - removal or contribute descriptor pressure even though the snapshot owner's - `finally` is correct. -- **Correction/status:** **RESOLVED + INTEGRATED** at protected-main merge `b05a4aa` - via PR #93; causal correction `682d7d9`. The existing - optional fault-checkpoint seam emits one exact - `contract_verification_snapshot_removed` checkpoint only after owned cleanup - settles; both F-03 variants await the matching Mission/Contract checkpoint and - still require `lstat -> ENOENT`. A failing observer cannot mask the primary - verifier error. Both rows passed five consecutive focused repetitions and the - formal campaign passed 5/5 at `10c95da`. Exact-main local check passed Server - 846/3 skipped plus all adjacent gates, and protected-main workflow `33353622211` - passed. Not independently audited. - -### `TST-27` — Fixture Git inherits outer repository selector variables - -- **Evidence class:** controlled RED on issue #48. With outer `GIT_DIR` and - `GIT_WORK_TREE` set, the general-project fixture helper followed the decoy index; - the surrounding Shepherd repository could receive staged fixture paths. -- **Failure contract:** `git -C` does not override explicit repository selectors. - Raw `execFile("git", ...)` inherited the enclosing hook/session environment, so - a nested test could mutate the wrong index before asserting its repository. -- **Correction/status:** **RESOLVED + INTEGRATED** at protected-main merge `b05a4aa` - via PR #93; causal correction `682d7d9`. Fixture Git - receives only PATH plus fixed locale/noninteractive/no-config values, never ambient - selector variables, and destructive fixture setup first proves the selected - repository's real top level. The hostile-selector/decoy regression passed, the - normal pre-push gate no longer redirected staging, and the formal campaign passed - 5/5 at `10c95da`. Exact-main local check passed Server 846/3 skipped plus all - adjacent gates, and protected-main workflow `33353622211` passed. Not independently - audited. - -### `CRUD-01` — Clarification drafts permanently block Agent deletion - -- **Evidence class:** reproduced on `origin/main` and preserved as a causal service - RED. A ready or stopped Agent with no Contract, Mission, Plane, event, or run still - returned 409 after one or more Shepherd `clarification_required` prompts. -- **Failure contract:** deletion treated every Project Group message as durable - Shepherd history. General intake persists incomplete prompts as unbound human - messages under an inactive `agent-` Project, so an abandoned draft trapped - both the Agent and its workspace even though no execution/evidence existed. -- **Minimal correction:** discard only exact unbound `general-contract` - clarification messages plus their exact inactive managed Project. Keep the 409 - for every Contract, event, Mission, Plane, other message, malformed Project, or - orphaned state. Validate the sentinel, metadata identity, Git worktrees/branches, - and empty private Plane roots before deletion. Journal both managed Project and - workspace intent before database publication; reconcile against on-disk durable - state after restart, and serialize general-project journaling with deletion. - Preserve all UI/CSS. -- **Acceptance:** two clarification turns delete from the existing stopped-Agent UI; - the Agent workspace, exact managed repository/Plane root/metadata and database - draft state disappear; restart is clean. Durable history remains intact with the - specific conflict message. Run targeted/adjacent/full gates, authenticated - Playwright at both viewports, security and UI review, then integrate/recheck main. -- **Status:** **REVIEWED CANDIDATE** on PR #67 / issue #66. Causal lifecycle/project - tests pass 29/29, adjacent API/Shepherd 77/77, literal `npm run check` passes - launcher 3/3, Server 791 plus two opt-in skips, Web 18/18 and both builds, and the - browser journey passes 2/2 with no overflow. UI review reports no High/Medium; - final security review reports PASS/no High or Medium after four causal - persistence/race corrections. Same-OS-user pathname swap and sudden-power-loss - ordering for the Project journal remain Low. Protected-main integration remains. - -### `TST-24` — Persistence-recovery attention is visible before reconciliation quiesces - -- **Evidence class:** exact contention RED on corrected chain - `7d8483a3ef5998002dab6331bd53532640f953ec`. The row passed once and another - 18 consecutive invocations, then failed iteration 19 because the complete Mission - recovery intent remained present; a late queue operation also rejected with fixed - `recovery_pending`. -- **Failure contract:** reconciliation persists visible `attention_required` inside - `mutateForPersistenceReconciliation`, then separately awaits journal unlink, - parent-directory sync and pending-intent clear. The test waits only for visible - Mission state, so its null assertion and subsequent durable/reload/cancel work can - race the owned continuation. This is fixture ordering, not permission to treat - partially reconciled recovery as complete. -- **Minimal correction:** after attention becomes visible, wait for the exact intent - to become null and then await a test-owned no-op mutation sentinel on the original - Store before durable reads, reload, cancellation or teardown. This joins recovery - persistence, intent cleanup and queued background continuation. Use a direct owned - completion signal only if it proves the same ordering. No sleeps, retries, timeout - inflation, assertion weakening, suppression, cleanup catches or product changes. -- **Acceptance:** preserve the RED; exact row passes at least 30/30 with intent null - and no late/unhandled work. Keep one attention event, verified Contracts/Planes, - released Agents, active project, no collision/candidate/promotion/head mutation - and secret/path scans. Run TST-23/TST-22/F-06, strict/full and hosted Node 22. -- **Status:** **CLOSED / AUDITED** at `7d51ec6`. The row now waits on the exact - original Store recovery intent becoming null, then awaits a no-op mutation - sentinel before durable reads and teardown. It passed 30/30; the combined - Store/recovery/service slice passed 138/138, and two literal full checks each - passed launcher 3/3, Server 736 with two opt-in skips, Web 17/17 and both builds. - No product/Store behavior changed; hosted/Auditor integration remains pending. - -### `TST-23` — Plane-unwind reload races the original Store persistence queue - -- **Evidence class:** exact isolated Auditor RED on TST-22 checkpoint - `619e3ddd369d2dd8a0ce3b04134c0064c240142e`. The named TST-17 row's assertions - passed 1/1, but Vitest reported one unhandled `PersistenceBoundaryError` from the - original Store after the test had already observed attention and opened a reload. -- **Failure contract:** the service exposes its in-memory `attention_required` - transition before the queued persistence continuation has settled. The test waits - only for that visible state, then constructs a second `JsonStore` over the same - path. With TST-22's correct fail-closed marker authority, reload can observe the - original writer's active marker; teardown can also remove the case root before - the late rejection is observed, producing `cleanup_pending`, `ENOTEMPTY`, or an - unhandled rejection. This is test lifecycle ownership, not evidence that the - corrected Store protocol should permit concurrent independent writers. -- **Minimal correction:** attach any needed rejection observer immediately, retain - every existing TST-17 state/resource/security assertion, and after attention is - observed await a test-owned no-op mutation sentinel on the original Store before - constructing the reload Store or allowing teardown. Join/release in `finally` if - the row owns another deferred lifecycle. Do not add sleeps, retries, timeout - increases, rejection suppression, cleanup catches, or product/Store changes. -- **Acceptance:** preserve the exact RED; the row passes at least 20 consecutive - invocations with no unhandled rejection or late filesystem work. Prove the sentinel - is queued after every original continuation and before reload/root teardown; keep - Plane-unwind attention, durable reload, protected head/canary and raw-diagnostic - assertions unchanged. Run the combined TST-17/TST-22/F-06 slice, strict/full and - hosted Node 22. -- **Status:** **CLOSED / AUDITED** at `7d51ec6`. The exact test-owned no-op - Store sentinel is placed after attention observation and before reload. The row - passed 20/20; combined Store/recovery/TST-17/TST-20 coverage passed 138/138 with - no late rejection or retained artifact. TST-24 closed the distinct recovery-row - ordering race; full and hosted gates passed. No product or Store change exists. - -### `TST-22` — Cleanup markers do not form a crash-safe retry protocol - -- **Evidence class:** independent causal RED and security re-review of corrected - F-06/TST-21 candidate `f65681aa48a3bfd384d36fc9320ea63e045d3261`. - Reusing the exact double-fault fixture with the same `JsonStore` instance failed - 2/2 (database and journal) with fixed `cleanup_pending` instead of completing - exact cleanup. -- **Failure contract:** after a normal temp-unlink failure records a marker, - same-instance initialization deletes the tracked temp first but leaves its marker; - marker scanning then rejects the missing temp indefinitely. A crash during marker - creation/write/sync/close/directory-sync can leave an unmarked full-database temp - that restart ignores. Temp deletion followed by marker-unlink failure, or a partial - marker, also has no safe completion path. Repetitions can accumulate sensitive - serialized-state temps or permanently block startup. -- **Minimal correction:** implement one idempotent crash-safe state machine for exact - managed temp+marker cleanup. Accept every prefix of marker publication and - temp/marker removal on same-instance retry and restart, preserve the original - primary error, and converge without deleting unrelated files. Add narrow fault - checkpoints for marker open/write/sync/close/publication/directory sync and both - removals; do not weaken containment, no-follow, owner/mode/size, fixed errors, or - the representative F-06 recovery scope. -- **Acceptance:** database and journal matrices cover every cleanup prefix plus - primary double/triple faults, immediate same-instance retry and two restarts. - Exact pairs disappear durably; missing/partial markers, hostile symlinks and - unrelated matching-looking files remain safe and cannot brick recovery. No raw - secret/path/errno reaches startup/log/store/API surfaces; repeated fault/restart - creates no accumulation. Re-run TST-21/F-06, Plane-unwind stress, adjacent/full/ - security and hosted gates. -- **Status:** **CLOSED / AUDITED** at `7d51ec6`. The correction pre-registers - every sensitive temp through an fsynced fixed-schema marker inside an adjacent - owner-validated `0700` private directory. The same marker authority handles - temp-present and temp-missing removal prefixes, same-instance retry and two - restarts without overwriting an earlier intent. The 70-test Store suite covers - 12 publication checkpoints, eight removal checkpoints, double faults, repeated - same-instance writes, strict-schema/UUID ownership, hostile directory/marker/ - publication symlinks and unrelated files. Full/security evidence is recorded in - `BUILD_LOG.md`. TST-23/24 join the fixture-owned queues; local, independent - security and hosted gates pass. - -### `TST-21` — Recovery-journal reads and temp cleanup are not closed boundaries - -- **Evidence class:** independent source/security audit of unintegrated F-06 - candidate `6bc67b3272b530897149aa5a9507e46c2393453a`; focused persistence/journal - tests passed 10/10 repetitions but do not inject either double-fault class. -- **Failure contract:** `readRecoveryIntent()` converts `ENOENT` and symlink - `ELOOP`, but native open/stat/read failures such as `EACCES` or `EIO` escape - initialization with their raw configured path and operating-system diagnostic. - Separately, when a primary database or journal-temp operation has already failed, - a subsequent non-`ENOENT` temp unlink failure is deliberately suppressed. The - database temp contains the complete serialized state, is not journaled or - enumerated on restart, and repeated double faults can retain unbounded sensitive - artifacts. The journal writer has the same untracked-temp structure. -- **Minimal correction:** close every journal open/stat/read failure except the - exact absent-file case into fixed cause-free `PersistenceBoundaryError` evidence. - Preserve the primary write error as causal while explicitly tracking and retrying - cleanup of the exact managed database/journal temp, or otherwise proving bounded - removal without enumerating/deleting unrelated files. Do not expose native - causes/paths, swallow cleanup failure, weaken no-follow/containment/mode/owner - checks, broaden recovery to arbitrary store mutations, or alter the accepted UI. -- **Acceptance:** causal native open/stat/read injections expose no raw error, - `cause`, path or errno through startup/log/Error surfaces. Database and journal - primary+unlink double-fault rows preserve the fixed primary outcome, retain - truthful bounded cleanup evidence, and remove only their exact managed temp on - same-process retry and restart; repeated faults do not accumulate artifacts. - Re-run the complete journal-stage matrix, immediate and two-restart exactly-once - reconciliation, concurrent mutation/event lock, service/API/reload/security, - literal `npm run check`, and hosted Node 22. Unix/macOS errors must not be - swallowed; any Windows exception must remain narrowly platform-gated. -- **Status:** **CLOSED / AUDITED** at `7d51ec6`. Four recovery read-operation - faults return fixed cause-free `recovery_intent_read` evidence. Primary and journal - file-sync plus unlink double faults preserve the primary outcome and retain one - exact UUID temp plus a durable cleanup marker. Restart requires fixed marker - content/name, no-symlink, owner, mode and stage-specific size validation. A hostile - marker symlink fails closed without touching its outside canary; TST-22 completes - the crash-safe cleanup protocol. - -### `TST-20` — Fail-fast verifier sibling persists after test-root teardown - -- **Evidence class:** hosted final-head run `33282108035`, exact annotation at - `store.ts:173`, latest test `does not invoke a sibling verifier after - infrastructure terminalization`. -- **Failure contract:** the Mission promise rejects fail-fast while a backend sibling - remains blocked. The test releases that sibling and waits only one `setImmediate`; - it never joins the sibling's remaining verification/cleanup/store queue. `afterEach` - then removes the exact case root. Hosted Node 22 observed a late atomic-store rename - fail with ENOENT inside that removed root, emitted as an unhandled test error. -- **Minimal correction:** add a deterministic test-owned completion/join signal for - the exact sibling lifecycle and its final awaited store mutation before teardown. - Preserve production fail-fast behavior, typed infrastructure terminalization, - durable interrupted/verification_failed state, no late verifier invocation and - snapshot cleanup. Do not add sleeps, retries, timeout inflation, assertion - suppression, broad root-cleanup catches, or product behavior changes unless a - production lifecycle invariant is independently proven broken. -- **Acceptance:** preserve hosted RED; exact row stress and full suite under - contention; assert no pending sibling/store work before teardown; strict/full and - two exact-head hosted Node 22 gates pass with F-03/TST03/04 unchanged. -- **Status:** **CLOSED / AUDITED** at `cdcfa95`. Auditor exact row 30/30, - service/store 56/56, strict/full local gate and hosted Node 22 run `33282600354` - passed. Production files are unchanged. - -### `TST-19` — Integration identity is checked only after merge mutation - -- **Evidence class:** independent source/security review of corrected F-05/TST-18 - candidate `53c8415`. -- **Failure contract:** `mergeCommit` proves initial status is clean and records the - actual HEAD, but it does not compare the checked-out branch to the persisted Plane - branch or actual HEAD to the persisted Plane head before invoking `git merge`. - A clean integration worktree switched to a sibling branch/head can therefore mutate - or commit that branch before post-conflict inspection detects the mismatch. -- **Minimal correction:** pass the persisted expected head and branch into the Git - boundary and prove both, plus clean status, before any merge command. Use fixed - bounded errors without raw Git output; do not repair or mutate mismatched refs. -- **Acceptance:** real-Git branch-mismatch and head-mismatch REDs fail before mutation; - all managed branches/refs/worktrees, protected HEAD/canary and durable/downstream - state remain byte/identity unchanged; ordinary TST-18 conflict/cleanup/reset, - adjacent/full/security and hosted gates pass. -- **Status:** **CLOSED / AUDITED** at `f8d7f71`. Five identity mismatch rows and - four conflict/cleanup rows passed the real-Git matrix five consecutive times; - adjacent/full/security and hosted run `33281977834` passed. The remaining - multi-command same-host TOCTOU window is Low under the single-process managed-root - threat model and is not claimed eliminated. - -### `TST-18` — Merge-abort cleanup failure masks a detected Git conflict - -- **Evidence class:** independently injected cleanup double-fault on F-05 candidate - `a7b669b`, after a real add/add textual conflict was established. -- **Failure contract:** `GitClient.mergeCommit` enumerates and validates conflict - paths before abort, so enumeration or path-validation failure skips cleanup. If - `git merge --abort` throws, its raw error replaces the conflict; exit 128 is also - accepted without proving cleanup. `mergePlane` then inspects without asserting a - clean worktree/head. The Mission can become `unknown`, planted diagnostics can - cross the boundary, or a dirty/unmerged Plane can be mislabeled as the ordinary - clean conflict outcome. -- **Minimal correction:** preserve the conflict as primary, bound and discard the raw - abort cause, and expose truthful fixed cleanup state. A successful abort may retain - the clean conflict Plane; a failed abort must use explicit bounded attention/ - cleanup evidence and must not claim a clean worktree. Preserve exact Plane/branch - inspection and reset ownership; do not broaden Git cleanup or weaken path gates. -- **Acceptance:** causal real-conflict plus enumeration/path-validation, thrown abort - and accepted-nonzero abort REDs become green; exact clean/head state is checked; - primary Mission/Plane evidence remains `git_conflict/integration_merge`; cleanup - state is truthful; raw Error/cause/store/reload/event/API/log scans are clean; - protected HEAD/canary, verified Contracts, released Agents, no downstream work, - exact reset cleanup, ordinary ten-file/cap/path tests, adjacent/full/security and - hosted gates pass. -- **Status:** **FIXER CANDIDATE / Auditor pending.** The correction always attempts - abort before validating bounded paths, accepts only a successful abort, and proves - quiet `MERGE_HEAD` absence, clean status and unchanged HEAD. Real enumeration, - abort and post-inspection fault rows return a fixed cause-free boundary; the - service retains `git_conflict/integration_cleanup` Plane evidence and transitions - the Mission to `attention_required` without candidates or promotion. Focused - real-Git/service rows pass locally; full gate evidence is in `BUILD_LOG.md`. - -### `TST-17` — Second initial Plane creation failure leaves the first Plane live - -- **Evidence class:** independently reproduced RED and read-only security review of - F-04 candidate `5cc24f5`. -- **Failure contract:** the two initial Contract Planes are created sequentially. If - Plane 1 succeeds and Plane 2 fails, only Contract 2 receives the bounded creation - failure. Plane 1 remains durably `ready`, Contract 1 retains its `planeId`, and its - managed worktree and `shepherd/contract/*` branch remain attached after the Mission - is terminally failed. Executor/verifier/integration/candidates/promotion do not run - and protected HEAD is unchanged, but the no-Plane/resource-cleanup contract fails. -- **Minimal correction:** unwind every previously created Plane in this initial - creation batch, deleting only exact batch-owned durable associations, worktrees and - branches. Preserve the original second-Contract bounded failure and causal - precedence; do not broaden reset/cleanup or alter later lifecycle behavior. -- **Acceptance:** causal second-call RED becomes green; first-call destination and - real partial-Git rollback remain green; zero durable/physical batch Planes after - failure; Contract/Mission/event/API/reload evidence stays bounded; Agent/project - release, protected HEAD/canary, no downstream invocation, artifact cleanliness, - adjacent/full/security and hosted gates pass. -- **Observed correction:** candidate `fix/f04-plane-unwind` tracks only Planes - created by the current initial scheduling batch. A later creation failure destroys - those exact worktrees/branches in reverse order, removes only their durable Plane - rows, clears only their Contract `planeId` associations, and releases their Agents; - the original failed Contract and Mission retain fixed `worktree_creation_failure` - / `plane_creation` evidence. The second-of-two regression proves zero batch Plane, - worktree and branch survivors, unchanged protected HEAD/outside canary, reload - consistency and no executor/verifier/collision/candidate/promotion activity. If an - exact Plane cleanup fails, its record remains discoverable as failed, its Contract - is interrupted, all Agents are released, and the Mission enters existing - `attention_required` with `plane_unwind_failed`; the project remains active as - required by the nonterminal attention invariant. Cleanup evidence uses bounded - `worktree_creation_failure` at `plane_unwind`; F-06 `persistence_error` remains - unclaimed. Planted raw path/OS/secret cleanup diagnostics are absent from durable, - reload and public DTO surfaces. -- **Status:** **CLOSED / AUDITED** at `2cef988`. Auditor focused paths 3/3, real Git - 20/20, adjacent 174/174, literal full gate, independent security and hosted run - `33280187821` passed. A Low evidence limitation remains: the cleanup-double-fault - test mocks the complete destroy operation rather than each partial Git teardown - phase; retained branch metadata remains operator-discoverable and no false cleanup - is claimed. No UI/live/model call ran. - -`TST-13`–`TST-16` are **CLOSED / AUDITED** at `83cc1d0`. The complete -runner→executor→durable/public boundary and all 47 inventoried executor filesystem/ -configuration expressions passed the 31-row injected matrix, focused and full -repository gates, and independent security review. No High/Medium finding remains. -The restart-only invalid retained-sentinel case remains a Low, fail-closed manual -operator-cleanup availability residual; cross-process automatic retry is not claimed. - -### `TST-16` — Executor root/setup/enumeration filesystem failures remain unbounded - -- **Evidence class:** independent full-source security review of unintegrated chain - `8c7cfc1`; source-confirmed outside the corrected TST-15 named edges. -- **Failure contract:** raw native errors still escape from private-root mkdir/lstat/ - realpath and workspace realpath; interrupted-home/workspace readdir/lstat/realpath; - preflight mkdtemp/chmod/config write/root realpath; and execution mkdtemp/chmod/ - realpath/config write. Reconcile/startup can expose them through Error inspection - and `cause`; run failures can persist as arbitrary `unknown` messages through - Contract/candidate/store/event/Agent/API surfaces. -- **Minimal correction:** complete the executor-owned filesystem/config boundary - with closed fixed stages for root preparation, reconciliation enumeration, - preflight setup and execution setup. Preserve existing typed policy errors and - primary-over-cleanup precedence. Add causal mkdir/mkdtemp/lstat/readdir/realpath/ - chmod/config-write fault injection at reconcile/preflight/run and scan Error/cause/ - log/startup plus all durable/public surfaces. Preserve containment, retained- - artifact retry, TST-12–15, OPS-06 and runtime classification. No broad filesystem - refactor or raw cause. -- **Observed correction:** candidate `fix/f-01-02-filesystem-boundary` routes the - remaining root preparation, reconciliation enumeration, preflight setup and run - setup calls through fixed `BoundedFilesystemError` stages. The 31-row injected - operation matrix covers mkdir/mkdtemp/lstat/readdir/realpath/chmod/config write, - exact retained-target cleanup and bounded retry; TST-15 continues to cover open, - handle stat/read/write/sync/truncate/close, unlink and rm. A frozen 47-expression source - inventory detects newly added unreviewed executor filesystem/config call sites. - Planted opaque/secret/path/OS/config canaries are absent from Error/cause/stack/ - inspect, startup/log, Contract/candidate/store/reload/event/Agent/public DTO and - real HTTP response surfaces. Contract and candidate failures do not promote; - containment and symlink policy are unchanged. Focused executor 67/67 (including - independent security re-review), adjacent runtime/service/config/verifier 154/154, - strict test types and two literal checks pass locally; external model/live calls: 0. -- **Acceptance/status:** **FIXER + independent security review VERIFIED candidate / - Auditor integration pending.** The initial review's two Medium evidence gaps were - closed by the expanded call-site matrix and 47-expression inventory; re-review - found no remaining material issue. The existing Low restart-only invalid - sentinel operator-cleanup residual is unchanged; no cross-process retry is claimed. - -### `TST-15` — Sentinel and reconciliation cleanup paths expose raw filesystem errors - -- **Evidence class:** independent exhaustive executor cleanup review of unintegrated - chain `3afc452`; source-confirmed beyond the corrected TST-14 run-finally branch. -- **Failure contract:** sentinel adoption `open` retains raw error as `cause`; - validation/adoption `handle.close()` can override bounded primary errors; failed - adoption `unlink` is silently swallowed; interrupted private-home and preflight- - workspace `rm()` failures escape raw. These paths can expose private path/OS detail, - lose causal precedence or retain an invalid sentinel without an actionable error. -- **Minimal correction:** inject opaque/secret/path faults for sentinel open, - validation close, adoption close+unlink, private-home reconcile rm and preflight- - workspace reconcile rm. Discard raw causes; preserve bounded primary precedence; - emit fixed cleanup/reconciliation diagnostics when cleanup is the only failure; - retain unremoved owned artifacts for safe later retry. Prove String/stack/inspect/ - cause/log/startup surfaces clean. Preserve TST-12/TST-14, OPS-06 and all typed - runtime behavior; no swallowed cleanup or broad filesystem refactor. -- **Observed correction:** candidate `fix/f-01-02-sentinel-cleanup` applies one - internal closed stage/reason filesystem policy across sentinel validation/adoption - and interrupted private-home/preflight-workspace reconciliation. Raw open/lstat/ - chmod/readdir/read/write/close/unlink/rm failures never become a cause or field. - Primary bounded failures win over double cleanup faults; cleanup-only fails closed; - every exact scoped cleanup is attempted. Failed same-process sentinel unlink and - retained reconciliation targets retry exactly; containment, `O_EXCL`/`O_NOFOLLOW`, - direct-child and symlink gates are unchanged. A process restart with an invalid - retained sentinel remains fail-closed and may require operator cleanup; no - cross-process automatic retry is claimed. The matrix covers adoption open, - validation close/body+close, adoption close-only/write+close+unlink, repeated - pending unlink, pre-open lstat/chmod/readdir and both reconciliation rm paths. - Service initialize Error/cause/store/console surfaces are canary-free and retry - succeeds. Executor 33/33, focused/adjacent 120/120, strict types and two literal - checks pass (launcher 3/3, Server 627 + two explicit skips, Web 17/17, builds). - External calls: 0. -- **Acceptance/status:** **AUDITOR VERIFIED locally / integration held by TST-16.** - The named TST-15 five-edge/double-fault matrix passes. Full-source review found a - distinct remaining executor setup/enumeration boundary recorded as TST-16. The - restart-only invalid-sentinel behavior is fail-closed and retained as a documented - Low operator-cleanup/availability residual rather than another correctness task. - -### `TST-14` — Execution-home cleanup leaks and overrides causal failure identity - -- **Evidence class:** independent exhaustive security review of unintegrated - F-01/02 + TST-13 chain `c7b5175`; source-confirmed in executor `run()` finally. -- **Failure contract:** `rm(privateHome)` executes directly in `finally`. A raw - filesystem exception can expose opaque/private path/OS detail through Error - surfaces and override an otherwise bounded timeout, execution or cancellation - failure. Existing fault tests cover preflight home cleanup and runner container - cleanup, not this execution-home path. -- **Minimal correction:** causally inject execution-private-home cleanup failure; - retain every cleanup attempt but bound the emitted error. Define and test - precedence: existing cancellation remains cancellation; existing typed timeout/ - execution identity remains; cleanup-only failure becomes fixed typed execution - failure. Prove raw canaries absent from String/stack/inspect/cause, store/reload, - Contract/Plane/Mission/Agent/event/API/log surfaces and prove a subsequent safe - retry/reconciliation. Preserve TST-12, OPS-06, F-03 and no-promotion behavior. -- **Observed correction:** candidate `fix/f-01-02-private-home-cleanup` records - whether execution already has a primary outcome, always clears active/cancellation - ownership and attempts the exact private-home removal. A cleanup-only fault becomes - a fresh fixed `RuntimeExecutionError("execution")`; cancellation and typed timeout/ - execution remain authoritative, with no raw cleanup cause or field. The four-row - causal matrix proves Error/string/stack/inspection/cause redaction, inactive cancel, - owner-scoped failed-home reconciliation and a clean subsequent execution. Contract - and candidate flows prove fixed durable/event/store/reload/public and real mission - HTTP response output; candidate failures do not promote or move protected head. - Console error/warn capture is canary-free. Executor/OPS-06 slice 21/21, focused and - adjacent 108/108, strict test typecheck and first literal check pass (launcher 3/3, - Server 615 + two explicit skips, Web 17/17, builds). External calls: 0. -- **Acceptance/status:** **AUDITOR VERIFIED locally / integration held by TST-15.** - Auditor passed focused 81/81, adjacent 66/66, literal check and the four execution- - home precedence cases. A distinct sentinel/reconciliation cleanup family remains - open as TST-15, so the chain is not integrated. - -### `TST-13` — Arbitrary Agent Runtime stderr reaches durable/public failures - -- **Evidence class:** independent security review of unintegrated F-01/02 candidate - `685e4ff`; source-confirmed runner → executor → service propagation. -- **Failure contract:** a non-zero Runtime exit builds a typed execution error whose - message includes the last parsed error or raw stderr. Executor redaction removes - configured secrets and common paths but preserves arbitrary opaque content; - service then persists/returns it through Contract, Plane, Mission, Agent - `lastError`, events, state/reload and public mission DTO. Existing tests use clean - synthetic messages and do not plant an opaque stderr canary across these surfaces. -- **Minimal correction:** preserve only typed failure kind across the boundary and - expose fixed bounded public text (`Agent Runtime execution failed`); a timeout may - include only its validated numeric deadline. Add a causal real runner → executor - → service failure with opaque stderr, secret and path canaries absent from Error - message/stack/cause, durable/reloaded state, events, Agent and public DTO. Preserve - cancellation, untyped unknown, verifier/candidate mapping, F-03, OPS-06 and - authority/no-promotion behavior. No regex classification or broad redesign. -- **Observed correction:** candidate `fix/f-01-02-runtime-redaction` replaces every - Runtime diagnostic at the runner boundary with a freshly constructed typed error. - Its kind is normalized to the closed timeout/execution set, timeout text accepts - only a positive safe integer, and its public properties cannot be mutated. The - executor and both Contract/candidate service paths reconstruct the same bounded - failure before any durable/public use. Causal tests plant parsed-output, stderr, - create, spawn, opaque, secret, private-path and invalid-kind/timeout canaries and - scan Error/string/stack/inspection/cause, Contract/Plane/Mission/Agent, event, - store/reload and public DTO surfaces. Candidate failures exhaust without starting - promotion or moving the protected head. Focused 75/75 and adjacent 226/226 pass; - strict test typecheck and the first literal `npm run check` pass (launcher 3/3, - Server 607 with two explicit skips, Web 17/17, build green). External calls: 0. -- **Acceptance/status:** **AUDITOR VERIFIED locally / integration held by TST-14.** - Auditor passed focused 75/75, adjacent 66/66, literal check and this exact - runner-to-durable boundary. A distinct executor execution-home cleanup leak and - precedence defect remains open as TST-14, so the chain is not integrated. - -### `TST-12` — Executor preflight cleanup can expose raw filesystem cause - -- **Evidence class:** independent security review of unintegrated OPS-06 rebased - candidate `34477e8`; source-confirmed at `CodexShepherdExecutor.performPreflight`. -- **Failure contract:** executor mount cleanup throws a fixed message but attaches - raw `cleanupError` as `Error.cause`. An uncaught startup error can render that - cause, including private filesystem paths, planted values and OS diagnostics. - Runner-side typed cleanup diagnostics are bounded; this distinct executor path - is not causally covered, contradicting OPS-06's no-path/raw-detail claim. -- **Minimal correction:** executor/test only. Throw the fixed bounded cleanup - message without a raw cause (or route detail only to a proven redacted internal - sink). Add a causal injected cleanup error containing private path/secret text and - assert rejection/startup-visible output excludes it. Preserve cleanup attempts, - fail-closed startup, runner enums and every sandbox gate. No swallowed failure, - raw logging, broad refactor or compatibility bypass. -- **Observed correction:** executor-only candidate on - `fix/ops-06-preflight-redaction`. Executor mount-cleanup failure now rejects with - fixed `stage=cleanup reason=cleanup_failed` and never attaches the raw failure as - `Error.cause`. The causal test injects planted secret, private-path and OS text - and proves it is absent from message, string, stack, inspection, JSON and cause - surfaces while cleanup remains fail-closed and a bounded retry remains possible. -- **Acceptance/status:** **CLOSED / AUDITED** at integrated `68dbd59`. Focused and - adjacent regressions passed 95 plus one explicit live skip; literal check passed - Server 602 plus two explicit skips, Web 17/17 and launcher 3/3. Independent - security review returned no finding and hosted run `33274769957` passed. The - separate affected-macOS OPS-06 validation remains pending. - -### `TST-11` — E2E-02 candidate-evidence screenshots show metadata only - -- **Evidence class:** independent exhaustive semantic review of all 13 named - stages at both required viewports on unintegrated corrected chain `79da51a`. -- **Failure contract:** `09-selected-candidate-evidence.png` and - `11-rejected-plane-evidence.png` at both 1280x800 and 1440x900 show the selected - or rejected Plane header and metadata, but not the named Candidate verification - tab/evidence. The test asserts text attached below the internally scrolling - drawer, then captures without scrolling or intersection proof. Four of four - stage/viewport pairs therefore fail their visual claim even though hashes are - distinct and functional DOM assertions pass. -- **Manifest result:** the other eleven named stages expose their principal visible - marker in both viewports: Contracts active, Contract verification, collision, - candidates active, candidate outcomes, promotion start, completed overview, - promotion event final evidence, selected final evidence, Project Group lifecycle, - and protected-main promoted state. All 26 files have unique hashes after TST-10. -- **Minimal correction:** test only. For stages 09 and 11, scroll the exact - Candidate verification tab/evidence marker into the drawer and prove positive - intersection with both drawer viewport and browser before capture. Preserve the - already-visible stage-10 final evidence and TST-10 promotion event behavior. No - production UI/CSS/theme, sleep/retry/timing increase, hidden-only assertion, - fake state, or `GC-06`/`UI-02` overclaim. -- **Observed correction:** test-only candidate on `fix/e2e-02-drawer-evidence`. - Before stages 09 and 11, the journey now scrolls the exact selected or rejected - Candidate verification summary inside `.detail-drawer`, proves positive - marker/drawer/browser intersection, and requires that exact marker to be visible. - Stage 10's keyboard-selected final-promotion evidence and TST-10 are unchanged. -- **Acceptance/status:** **CLOSED / AUDITED** at integrated `338f1e4`. Auditor - passed four journeys and all 52 semantic observations: 13/13 named markers were - visible at both viewports and 26/26 hashes were unique. Full harness/check, - independent UI/security review, cleanup scans and hosted run `33273947769` - passed with no production UI/CSS/theme or timing change. - -### `TST-10` — E2E-02 promotion stage screenshot does not show promotion - -- **Evidence class:** independently reproduced from unintegrated candidate - `85550e0a6c6c8f2263375943b22271d72c814c05` after two focused runs at both - required viewports. -- **Failure contract:** `05-candidate-outcomes.png` and - `06-promotion-reverifying.png` are byte-identical at 1280x800 - (`66159d4f...`) and at 1440x900 (`f35e34c3...`). The Playwright assertion finds - “Started final authority and independent verification gate,” but that event is - below the internally scrollable contract pane, so capture 06 does not visibly - evidence its named stage. There are 24 distinct images, not 26. -- **Impact:** functional/API/Git/store/security assertions pass, but the visual - evidence and BUILD_LOG phrase “13 material stages” overclaim the screenshot - corpus. E2E-02 remains unintegrated. -- **Supported cause:** the test captures immediately after a DOM visibility check - without scrolling the promotion event into the visible contract-pane region. -- **Minimal correction:** test only. Scroll the exact promotion event card into - view and assert its rectangle intersects the contract pane before capture 06. - Do not change production UI/CSS/theme, introduce sleeps/retries, weaken the event - assertion, or fake a state. Preserve the truthful `GC-06` and `UI-02` exclusions. -- **Observed correction:** test-only candidate on - `fix/e2e-02-visible-promotion`. The journey now targets the exact persisted - `promotion_started` event, scrolls its card inside `.event-list`, proves positive - card/pane/viewport intersection, and asserts the stage-05 and stage-06 PNG bytes - differ. No production, UI, CSS, timeout, retry or sleep changed. -- **Acceptance/status:** **FIXER VERIFIED / AUDITOR PENDING.** The hero journey - passed twice at both viewports (4/4; 52 capture observations). All 26 final PNGs - were manually reviewed and have 26 distinct hashes; stage 06 visibly contains - the promotion-start card. Harness unit 7/7, full Chromium 12/12, strict test - typecheck and two literal `npm run check` gates passed. Cleanup, ignored-artifact, - diff, dependency, bounded-surface and UI-theme review found no issue. Hosted and - integrated Auditor evidence remain required. - -### `UI-04` — promotion surfaces display candidate verification evidence - -- **Evidence class:** fresh deterministic browser/API reproduction on integrated - `mock-main` `3846591`, using the bounded verifier fixture rebased as `d09e445`. -- **Failure contract:** the selected candidate has distinct non-null - `verificationEvidence.id` and `promotionEvidence.id`. A promotion-completed event - rendered **UI04 VERIFICATION EVIDENCE MARKER** and omitted the distinct promotion - marker. Screenshot: ignored repo-local - `.tmp/playwright-evidence/ui-04/promotion-shows-verification.png`. -- **Supported cause:** `EventEvidence` unconditionally chooses - `candidate.verificationEvidence`, including promotion events, and - `PlaneDetailDrawer` also renders only candidate verification evidence. The API - already supplies both evidence objects; no backend/schema change is required. -- **Minimal correction:** UI data selection only. Promotion-started/completed - events and the appropriate candidate/Plane promotion detail must use - `promotionEvidence`; candidate verification events retain `verificationEvidence`. - Reuse `EvidenceSummary`; do not change layout, styling, theme or backend evidence. -- **Observed correction:** frontend-only. Completed promotion events select and - label only final `promotionEvidence`; candidate events retain candidate evidence, - and promotion-started shows no premature final evidence. Resolution Plane detail - offers both stages in an existing-theme tablist with one/none fallback, safe - reset, full roving keyboard semantics, visible focus, internal scroll and managed - drawer focus/Escape/restoration. `EvidenceSummary` remains the sole renderer and - ignores planted evidence IDs/stdout/stderr/errors/private diagnostics. -- **Acceptance/status:** **RESOLVED + AUDITED** at `412a010`, **100% scoped**, - `T,C,B,U,I` 5/5. - Helper/component 4/4, Web 17/17, harness 7/7, focused browser 2/2 and full - Chromium 10/10 at both required viewports, strict/build and two final literal - checks passed. Screenshots and independent UI/security re-reviews passed with no - remaining finding. Hosted run `33271397185` passed. At this UI-04 checkpoint the - bounded verifier fixture prerequisite was integrated while `E2E-02` remained - incomplete; `E2E-02` was subsequently audited at `338f1e4`. - - -### `MR-02` — Settings implies an unavailable reviewer will run - -- **Evidence class:** reproduced in the real deterministic E2E harness on local - merge `1422fd6` at both 1280x800 and 1440x900; supported by production - composition and an independent security fallback. -- **Failure contract:** with no usable Ark reviewer configuration, - `GET /api/system` reports `arkConfigured=false` while - `GET /api/shepherd/settings` reports the persisted preference - `modelReviewEnabled=true`. The Security tab renders the enabled, checked copy - “Run advisory structured semantic review” with no unavailable/not-configured - capability or operational status. Keyboard toggles false then true and both real - PATCH requests succeed, but `index.ts` deliberately composes no reviewer, so the - enabled preference cannot cause a call or advisory/degraded event. -- **Impact:** the preference is durably correct, and MR-01 remains deterministic - and secure, but the operator-facing control implies behavior the running process - cannot perform. Silence is indistinguishable from “no findings.” -- **Minimal correction:** preserve the stored preference, expose a bounded - server-derived reviewer capability/operational state, and render truthful - unavailable/ready/degraded wording or control state using the existing Settings - visual language. Do not expose credentials, models, prompts, endpoints or probe - the provider from the browser; do not redesign or weaken MR-01's silent - unconfigured production composition. -- **Acceptance:** causal server/API tests for configured/unconfigured readiness and - persisted preference; real browser at both viewports proves unavailable cannot - imply a call, configured enabled/disabled semantics and PATCH persistence, and - advisory/degraded events remain visibly truthful; no X/Y overflow/theme drift; - security/UI fallback, literal check and hosted integrated gate pass. -- **Observed correction:** the candidate exposes only a reviewer-specific boolean - derived from the same fail-closed startup predicate used to compose the reviewer. - Settings preserves the stored preference but uses the existing disabled/locked - visual language and explicit **Unavailable** process-scoped copy when false; it - cannot issue PATCH. Configured mode retains normal mouse/keyboard PATCH behavior. - Server 12/12, Web 5/5, reviewer/API matrix 71/71, harness 6/6, Chromium - 8/8 (dedicated MR-02 2/2 at both viewports), strict test typechecks, two literal - checks, audit 0 vulnerabilities and independent security/UI reviews passed. No live - request ran and no credential/configuration-failure reason is public. -- **Owner/status:** **RESOLVED + AUDITED** at `577255e`; **100% scoped**, - `T,A,C,B,S,U,I` 7/7. Hosted run `33268567614` passed. The UI review noted - only a non-blocking evidence gap: stored-off has component rather than browser - screenshot coverage. - -### `TST-07` — GC-01 test violates strict cross-workspace ownership - -- **Evidence class:** deterministically reproduced on local integration merge - `c834c3907abe84fb0bd79250ac93c2bbf78c87c0`, before any `mock-main` push. -- **Failure contract:** `npm run typecheck:tests -w @launchpad/server` exits 2. - `apps/server/src/project-group-mention.test.ts` imports the Web TSX component and - Web helper. TypeScript reports TS6142 because the Server test config has no JSX - setting and TS6059 because `apps/web/src/pages/project-group-mention.ts` lies - outside Server `rootDir`. Literal `npm run check` therefore cannot pass. -- **Supported cause:** GC-01 moved Web formatter/component coverage under the Server - suite so the default test runner would discover it, but the repository's later - strict test-source gate correctly enforces workspace ownership. This is a test - packaging defect, not evidence of a product parser/UI failure. -- **Minimal correction:** relocate or split the regression into the correct Web and - Server test ownership so both pieces are discovered and strictly typechecked. - Preserve formatter cases, production parser round-trips including exact Agent-ID - fallback, multiline draft preservation, native in-flight disablement, and exact - 2,000/2,001 boundaries. Do not enable JSX or broaden `rootDir` in the Server test - config, add exclusions/suppressions, remove assertions, or change product code. -- **Acceptance:** preserve this RED; focused GC-01 and group-routing tests pass; - strict Server and Web test sources pass; Web type/build and literal - `npm run check` pass; Auditor then performs the full two-viewport Project Group - interaction/parser round-trip and hosted integration gates before GC-01 closes. -- **Observed correction:** exact TS6142/TS6059 RED reproduced. The full eight-case - formatter/parser/component test moved to Web ownership; Web now has explicit - Vitest and strict test-source configs/scripts, and root `test`/`typecheck` execute - both workspaces. Focused Web passed 8/8, adjacent Server routing passed 10/10, - strict Web/Server tests and Web production type/build passed, and literal - `npm run check` passed twice with launcher 3/3, Server 563/563 plus one unchanged - opt-in skip, Web 9/9 and both builds. Lock dry-run and audit reported zero - vulnerabilities. No product, Server JSX/rootDir or assertion change. -- **Audit closeout:** Auditor passed focused Web 8/8, full Web 9/9, Server - routing 10/10, both strict test typechecks, the full deterministic harness - (unit 6/6 and Chromium 6/6), literal `npm run check`, and the complete GC-01 - browser protocol 2/2. Hosted Node 22 run `33266624301` passed on integrated - `de3e631`; no product/UI/Server-config change belongs to this correction. -- **Owner/status:** **RESOLVED + AUDITED** at `de3e631`; **100% scoped**, - `T,C,I` 3/3. - -### `TST-05` — E2E-01 visual evidence is non-reproducible and overclaims the down state - -- **Evidence class:** independently reproduced while auditing unintegrated candidate - `592699d140145165c5ca0d9511478171e5051271`. -- **Failure contract:** a routine `npm run test:e2e:harness` passed its Node 3/3 and - Chromium 6/6 assertions but rewrote 16 of the 18 tracked E2E-01 PNGs plus the - unrelated tracked UI-03 1280 capture. Both `08-server-down.png` files remained - byte-identical, but visual inspection showed blank white canvases. The test only - proves that the original port is closed, catches the failed reload, and captures - the blank page without a DOM or visible-state assertion. The 1280 Create Agent - capture also does not show the primary action within the viewport, and the - journey does not fully prove actual Tab traversal, focus-visible treatment, or - lifecycle-action keyboard activation. -- **Impact:** ordinary successful verification leaves a dirty tree and the checked-in - images cannot be reproduced exactly. The evidence log calls a blank canvas a - visually inspected down state and does not prove that the full Create Agent and - keyboard journey is reachable. -- **Minimal correction:** keep routine generated screenshots under ignored `.tmp` - output, with a separate explicit deterministic review/update path for committed - evidence. Treat port closure as infrastructure evidence; do not invent or fake a - reconnect UI. At both required viewports capture and assert primary-action - reachability, actual Tab/focus-visible behavior, and keyboard activation of the - relevant lifecycle controls. Do not change production UI or its accepted design. -- **Acceptance:** causal regression demonstrates the prior tracked-file mutation; - routine harness unit/browser runs leave an exactly clean tree; an explicit bounded - screenshot-update command is documented and reproducible; the down step is - truthfully recorded as port-down rather than rendered app evidence; Create Agent - completion and keyboard/focus behavior pass at `1280x800` and `1440x900`; full - harness, literal `npm run check`, independent rendered review, and integrated/ - hosted gates pass. -- **Observed correction:** candidate routes default captures to ignored - `.tmp/playwright-evidence` and exposes `test:e2e:starter-kit:evidence` as the - explicit non-default docs update path. It removes the blank down-state canvas, - retaining only the proved closed-port assertion. Create is scrolled within the - existing form at 1280 and 1440, and Create/Stop/Start each passed actual Tab, - visible focus and Enter activation. Harness unit passed 6/6, Chromium passed 6/6, - all 16 journey stages were inspected, tracked screenshot hashes were byte-identical - before/after the ordinary run, and literal check passed twice. No UI/CSS change. -- **Owner/status:** `RESOLVED + AUDITED` at `f6df2d9`, evidence `284994d`; - **100% scoped**, `T,C,B,U,I` 5/5. Auditor passed three ordinary full harness runs, - explicit evidence 2/2, byte-clean tracked-image checks, exact 16-image scope, - rendered review and hosted run `33265640400`. - -### `TST-06` — E2E harness failure paths can retain or disclose sensitive evidence - -- **Evidence class:** independently source-confirmed in unintegrated candidate - `592699d140145165c5ca0d9511478171e5051271`; fault-path regressions are required - before claiming correction. -- **Failure contract:** secret values are passed directly into Playwright matcher - arguments and therefore may be rendered in assertion output. A retained - `runRoot` cannot be removed by a later idempotent `stop()` after a stop/restart - failure. Repository containment checks validate the selected reusable root but - do not canonically reject symlinked managed harness ancestors before `mkdtemp` or - recursive removal. Opt-in live Playwright failure traces/screenshots can retain - prompt or model output. -- **Impact:** a failing CI/local run may disclose a credential or live content and - may leave state/workspace artifacts behind; ancestor indirection weakens the - intended repository-confined cleanup boundary. -- **Minimal correction:** assert only secret-safe booleans or hashes; make stop - idempotence permit a later explicit cleanup of a retained root; validate every - managed ancestor canonically inside the repository before creation/removal; and - suppress, sanitize, or safely isolate live failure artifacts. Add causal unit and - injected-failure coverage. Do not broaden child environment ingress, deletion - scope, filesystem authority, production debug behavior, or live-call count. -- **Acceptance:** fault tests prove redacted matcher failures, retained-root cleanup - after restart failure, ancestor-symlink rejection before write/delete, and no - prompt/output/secret in bounded live failure artifacts. Existing run-root/ - workspace/symlink/outside-canary tests, harness unit/browser suites, literal - `npm run check`, independent security review, and integrated/hosted gates pass. -- **Observed correction:** candidate uses boolean-only sensitive-value assertions, - disables live trace/screenshot/video, and preserves exact live opt-in, no retry, - two-turn cap, loopback binding, bearer auth, environment allowlist and empty live - `SHEPHERD_MODEL`. Repository, `.tmp`, harness and run-root identities are checked - with lstat/realpath before allocation/removal. New fault tests reject a - repo-contained ancestor symlink without following it and prove a retained stopped - root can be removed after restart failure; fresh pre-spawn setup failure also - leaves no allocated root. Harness unit passed 6/6, strict test - typecheck and literal check twice passed, and no run root remained. No live call - was made; the prior separately bounded live evidence remains exactly 2/2 turns. -- **Owner/status:** `RESOLVED + AUDITED` at `f6df2d9`; **100% scoped**, - `T,C,S,U,I` 5/5. Auditor passed the causal 6/6 unit set three times, browser/full/ - strict/hosted gates and artifact/root scans. No High/Medium finding remains. Low - same-user TOCTOU and exceptional spawn/concurrent-mkdir residuals are documented - and do not broaden the local harness threat model. - -### `TST-09` — reviewer-only live gate inherits unrelated hosting validation - -- **Evidence class:** the sole authorized live command failed deterministically at - `loadConfig` before reviewer construction or network egress. -- **Failure contract:** a non-loopback `HOST` plus placeholder/short - `APP_AUTH_TOKEN` from local `.env` triggers production HTTP-server validation. - This isolated reviewer test starts no HTTP server. External reviewer/network - calls are 0; no live root or outcome artifact remained; no retry occurred. -- **Minimal correction:** test/launcher only. Force a safe loopback `HOST` for this - explicit process while still loading real Ark/SHEPHERD key, model, base URL and - the production reviewer configuration predicate/filter. Do not weaken production - non-loopback auth, edit `.env`, hide fatal reviewer configuration/auth, or add an - automatic retry. Add causal environment-precedence coverage if practical. -- **Observed correction:** test-only. The reviewer gate passes `loadConfig` a - cloned environment whose only override is loopback `HOST`; real Ark key/model/ - base URL, SHEPHERD model resolution and all other config remain intact. The - source environment is not mutated. Causal coverage proves production still - rejects the original non-loopback weak-token input and the isolated clone passes - the same reviewer predicate. Package-script gating, one worker, fatal reviewer - handling, retry 0 and the production sensitive-value filter are unchanged. -- **Acceptance/status:** **RESOLVED + AUDITED** at `35ec268`, **100% scoped**, - `T,C,S,L,I` 5/5. - Focused config/default-skip passed 27 plus one skip, TST-08 passed 20/20 and - 40/40, MR-03 matrix 165/165, strict tests and two literal checks passed (Server - 592/592 plus two live skips; Web 13/13). Independent security review passed - with no finding, as did dependency/diff/secret/artifact scans. The single - Auditor's corrected command made external request 1/1 and completed with two - bounded findings; hosted run `33270168480` passed. - -### `TST-08` — returned verifier evidence can race fixture teardown - -- **Evidence class:** literal `npm run check` RED on local MR-03 merge `3c878b3`; - isolated 1/1 and repeated 20/20 GREEN. -- **Failure contract:** Server reported 590 passed, two opt-in skipped and one - failed. `terminalizes returned Contract verification infrastructure evidence` - completed its behavior but `afterEach -> makeDeletable -> realpath` received - `ENOENT` for an exact sibling `.trusted-verification/verify-*` root removed during - traversal. MR-03 changes only the reviewer adapter/tests and is not on this path. -- **Supported cause:** the returned-infrastructure fixture does not block/join the - sibling verification snapshot. Fail-fast Mission rejection therefore permits - the sibling `withVerificationSnapshot` finally to overlap teardown, the same - causal class proven for TST-04 but an uncovered fixture row. -- **Minimal correction:** test fixture only. Reuse or narrowly generalize the - TST-04 two-arrival, early rejection observer and exact snapshot removal join. - Never swallow ENOENT, change the cleanup walker or product, add sleeps/retries/ - timeouts, or weaken state/no-promotion/security assertions. -- **Observed correction:** test fixture only. The returned-evidence verifier now - uses the existing two-arrival barrier, captures the exact sibling - `VerificationRequest.planePath`, and exposes bounded release/return joins. The - row observes rejection immediately, proves the Mission rejects while that exact - contained `verify-*` root still exists, arms the exact-basename removal watcher - before release, then joins Mission, sibling and removal in `finally` before - teardown. Product, cleanup walker and MR-03 code are unchanged. -- **Acceptance/status:** **RESOLVED + AUDITED** at `35ec268`, **100% scoped**, - `T,C,S,I` 4/4. - Exact row passed 20/20, both infrastructure rows 40/40, MR-03 matrix 164/164, - adjacent service/container/API/store/recovery 82/82, strict test typecheck and - two literal checks (Server 591/591 plus two opt-in skips; Web 13/13). Auditor - integrated hosted run `33270168480` passed; no cleanup/product weakening. - -### `TST-04` — F-03 fail-fast verification can race service fixture teardown - -- **Evidence class:** reproduced once inside the literal `npm run check` at - `e88dbef`; the exact isolated row immediately passed 1/1, demonstrating an - order-dependent full-suite condition rather than a deterministic assertion - failure. -- **Failure contract:** after all typechecks passed, Vitest reported 562 passed, - one skipped, and one failed. The failure was - `terminalizes Contract verification infrastructure failures without promotion or - sensitive diagnostics`. Its stack was - `afterEach -> removeServiceCaseRoot -> makeDeletable -> readdir`, where `readdir` - received `ENOENT` for - `.tmp/shepherd-tests/service-*/managed/planes/auth-demo/.trusted-verification/verify-*/src`. - The test's behavioral assertions were not the failing surface. -- **Supported diagnosis:** `runDeterministicDemo()` rejects on the first Contract - verification infrastructure failure. Each concurrent Contract runs inside - `withVerificationSnapshot`, whose `finally` removes its trusted snapshot. The - fail-fast rejection can therefore reach the test and `afterEach` while a sibling - snapshot's `finally` is still deleting the subtree that `makeDeletable` is - traversing. The full-suite RED plus isolated GREEN and the exact disappearing - trusted-snapshot path strongly support this race; the fixer must still capture - the sibling `request.planePath` and establish the removal/quiescence ordering in a - controlled causal test before editing. -- **Minimal correction:** test/fixture only. Record the sibling verification path - and explicitly join the Contract batch/snapshot cleanup before teardown, following - the existing TST-03 release/join pattern. Do not broadly ignore `ENOENT` in the - security-sensitive cleanup walker, add sleeps, extend timeouts, weaken assertions, - or change F-03 production orchestration. -- **Acceptance:** controlled RED proves teardown begins before sibling snapshot - cleanup completes; corrected original row passes repeatedly; entire - `service.test.ts`, strict test-source typecheck, literal `npm run check`, and - independent integrated/hosted gates pass. -- **Observed correction:** test fixture only. A controlled verifier records the - blocked backend `VerificationRequest.planePath` and uses the existing two-arrival - coordination so the frontend typed failure cannot precede that capture. After - the Mission rejects, the test proves the exact owned - `.trusted-verification/verify-` root still exists. It then arms - `fs.promises.watch` on that root's parent, releases and joins the sibling, and - requires an event for the exact basename followed by `lstat -> ENOENT` through - the existing five-second quiescence helper. `finally` joins the Mission, sibling, - and removal outcome before teardown. Exact row passed 20/20 in 28s; full - service/container-verifier slice passed 43/43 in 33.22s; strict test typecheck - passed; and literal `npm run check` passed twice in 39s/39s with launcher 3/3, - server 563/563 plus one opt-in live skip, all typechecks and both builds. The - security-sensitive cleanup walker and production code are unchanged. -- **Owner/status:** `RESOLVED + AUDITED` at integrated implementation `00c81ae`; - **100% scoped**, `T,A,C,I` passed 4/4. Auditor independently passed exact-row - repeats 20/20, adjacent 43/43, strict typecheck, two literal repository gates, - integrated focused 1/1, and hosted Node 22 run `33263688794`. E2E-01 is ready. - -### `TST-02` — deterministic recovery test becomes invalid after its fixed clock - -- **Evidence class:** reproduced twice: once inside `npm run check`, once as the - isolated recovery test. -- **Failure contract:** the post-CAS recovery fixture creates Planes with the real - wall clock, then injects `recoveredAt = 2026-08-29T12:05:00Z`. When run later that - day, reconciliation writes a Plane `updatedAt` earlier than `createdAt`. Observed - bounded values were `createdAt=14:05:54Z`, `updatedAt=12:05:00Z`; `JsonStore` - correctly rejected the invalid lifecycle with `Refusing to persist invalid - database state`. -- **Supported root cause:** the test mixes a fixed recovery clock with an - uninjected PlaneManager clock. This is a deterministic test time-bomb, not - evidence that production recovery should accept backwards timestamps. -- **Minimal correction:** inject the same deterministic clock into this fixture's - PlaneManager (or otherwise derive all fixture times from one injected clock). - Do not loosen `notBefore`, store validation, or recovery lifecycle rules. -- **Acceptance:** original isolated test passes; entire `recovery.test.ts` passes; - literal `npm run check` passes; auditor repeats on integrated `mock-main`. -- **Owner/status:** `RESOLVED + AUDITED` at integrated implementation `0cb431a`; - **100% scoped**, `T,A,C,I` passed 4/4. - -### `TST-03` — F-03 blocked-sibling regression is schedule-sensitive in hosted CI - -- **Evidence class:** reproduced on the required hosted Node 22 gate at exact - head `2ba5cb9`, run [`33261198788`](https://github.com/kyashp/shepherd/actions/runs/33261198788), - job `99123330844`, then reproduced deterministically with a disposable local fault - probe that held only the backend immediately before verifier entry and shortened - only the temporary test budget to one second. The probe produced the same timeout - and unhandled rejection. The unmodified integrated local gate passed 563/563 with - one opt-in skip and five subsequent isolated thrown-verifier runs passed 5/5, - establishing the schedule boundary rather than a UI regression or correction. -- **Failure contract:** the hosted full suite timed out - `atomically interrupts a blocked sibling after 'thrown verifier exception'` at - its explicit 30-second budget. Vitest also reported an unhandled - `ContractVerificationInfrastructureError` from the same Mission. Final hosted - counts were 558 passed, 5 environment-gated skipped, and 1 failed; builds did not - run. The five-skip hosted profile was unchanged. -- **Supported root cause:** the test starts `runDeterministicDemo()`, then awaits - `verifier.siblingEntered` before attaching `expect(run).rejects`. The frontend - fixture may throw and terminalize the Mission before the backend reaches its - verifier under suite contention, leaving `siblingEntered` unresolved and the - already-rejected Mission promise temporarily unhandled. The test also lacks a - `finally` that releases/joins the sibling if an assertion or timeout wins. This is - test orchestration debt; the UI-03 CSS and browser path do not touch it. -- **Minimal correction:** test/fixture only. Establish a deterministic two-arrival - barrier before the selected frontend failure is released, attach rejection - handling immediately, and unconditionally release and join every deferred sibling - in `finally`. Do not add sleeps, merely increase the timeout, swallow unhandled - rejection, weaken durable reload/no-promotion assertions, or change F-03 product - orchestration. -- **Acceptance:** preserve the hosted RED evidence; both parameterized boundary rows - pass causally; the thrown row passes repeatedly alone and under full-suite - contention with zero unhandled errors; literal local `npm run check` passes; the - final `mock-main` hosted `Node 22 / npm run check` passes with the expected - environment-gated skip profile; Auditor integrates and closes UI-03 `C`. -- **Observed correction:** test fixture only. A reusable two-arrival barrier now - holds the selected frontend failure until both Contract verifiers arrive. The - Mission promise gets a success/failure observer immediately before any gate is - awaited, and `finally` idempotently releases both gates and joins the Mission and - sibling. The durable failure/reload/late-return/no-verification-event/no-candidate/ - no-promotion assertions are unchanged. Both rows passed 40/40 across 20 isolated - invocations in 37 seconds; the full service/verifier slice passed 43/43; strict - test-source typecheck passed; and literal `npm run check` passed twice in 39s and - 40s with launcher 3/3, server 563/563 plus one opt-in live skip, and both builds. - No timeout, sleep/retry, suppressed rejection, production/UI edit, or weakened - assertion was introduced. Unmodified hosted run `33261491905` also passed and - corroborates intermittency. Auditor independently repeated both rows 40/40, - passed the 43/43 service/container-verifier slice, strict test-source typecheck, - the literal local repository gate, and integrated focused 2/2. Hosted Node 22 run - [`33262227553`](https://github.com/kyashp/shepherd/actions/runs/33262227553) - passed on integrated implementation `0b1c401`. -- **Owner/status:** `RESOLVED + AUDITED` at integrated implementation `0b1c401`; - **100% scoped**, `T,C,I` passed 3/3. UI-03 hosted closeout is restored and E2E-01 - is ready. - -### `F-03` — Contract verifier infrastructure failure strands active-looking state - -- **Evidence class:** causally reproduced on `fix/mock-main`. The planted verifier - exception surfaced its raw diagnostic while the Mission failed with code - `unknown`; both Contracts remained `verifying`, both Planes `inspecting`, and - both Agents `busy` with Contract ownership retained. A production-shaped returned - mandatory `infrastructure_error` reproduced a second path: both Contracts were - misclassified `failed_independent_acceptance`, Planes remained `inspecting`, - Agents remained owned/busy, and the Mission again failed as `unknown`. -- **Supported root cause:** the Contract verifier await had no infrastructure-error - boundary after durable verification state was entered, and the container verifier - intentionally represents launch/cancel/exit infrastructure failures as returned - evidence. Cancellation was also non-sticky between sequential checks and during - reserved container creation, allowing later work to start after terminalization. -- **Impact:** durable API/UI state lies about ongoing work and blocks safe recovery. -- **Minimal correction implemented:** the existing Contract verification boundary - now maps thrown errors and only returned mandatory `infrastructure_error` checks - to typed, bounded evidence; ordinary mandatory `failed` checks retain acceptance - failure semantics. - One store transaction fails the throwing Contract/Plane, interrupts every active - sibling Contract/Plane, releases all mission Agent/project ownership, and fails - the Mission. The Contract batch fails fast, makes bounded best-effort cancellation - calls, and rejects late sibling completion without allowing integration, - candidate creation, or promotion. Independent verification success remains owned - exclusively by the independent verifier. Target cancellation is sticky across - sequential checks and reserved create-to-start, repeated cancellation cannot - poison bounded ID reuse, and a terminalized sibling cannot invoke the verifier. -- **Observed acceptance:** focused service/verifier tests 8/8; adjacent service/API/ - verifier/executor/store/state-machine/recovery tests 185/185; literal - `npm run check` passed with launcher 3/3 and server 563/563 plus one opt-in live - skip. Fresh store reloads contained no active child ownership; late successful - returns produced no `verification_passed` event. Delayed-create/removal tests - proved no post-cancel container start and safe exact-ID reuse. Planted private - diagnostics were absent from durable state, public DTOs, and the store file. -- **Owner/status:** `RESOLVED + AUDITED` at integrated implementation `dc87553`; - **100% scoped**, `T,A,C,S,I` passed 5/5. Auditor independently observed the - focused 8/8, adjacent 185/185, and literal integrated repository gate; durable - reload/no-promotion, redaction, cancellation isolation, and exact-ID reuse - assertions passed. - -### `UI-03` — invisible authority radios create document-wide horizontal overflow - -- **Evidence class:** reproduced by the E2E-01 real-browser journey at both required - viewports on `ace01ae`; the first Create Agent no-overflow assertion failed before - Agent creation or any Runtime/model turn. -- **Failure contract:** after the authenticated user opens Create Agent and the four - recommended authority presets render, `document.documentElement.scrollWidth` is - `2299` at `1280x800` and `2579` at `1440x900`, rather than remaining within the - viewport. The page looks clipped because `.main-content` hides X overflow, but - the document invariant and keyboard/browser geometry remain incorrect. -- **Supported root cause:** the global `input { width: 100%; min-height: 38px; ... }` - rule also applies to `.preset-grid input`. That narrower rule makes the radios - absolute and transparent but does not reset their size. Browser diagnostics - observed four invisible `INPUT` elements, each exactly one viewport wide, with - right edges at `1589`, `1826`, `2063`, and `2299` in the 1280 case. Their grid - static positions cumulatively expand the root scroll area. -- **Independent audit:** Auditor reproduced the same document widths on integrated - `ace01ae`. At `1440x900`, the radio right edges were `1749`, `2026`, `2303`, and - `2579`; every radio was `1440x38`. Body width/height stayed within the viewport, - isolating the failure to document-root X geometry. Native semantics still work: - the checked Generalist radio is reached as one Tab stop, ArrowLeft moves focus and - selection to Verification, direct focus plus ArrowRight selects the next radio, - and clicking a wrapping label leaves exactly one radio checked. The fix must - preserve these observed behaviors. -- **Minimal correction:** in the existing `.preset-grid input` rule, bound the - visually hidden native radios. Explicitly neutralize the inherited width, - `min-height`, padding, border, and margin so the hidden box is locally bounded, - while preserving the label hit target, native radio semantics, checked selection, - keyboard order, and accepted appearance. Do not hide the symptom by weakening - the document-overflow assertion, clipping another ancestor, or redesigning the - form. -- **Acceptance:** reproduce RED first; then Create Agent at `1280x800` and - `1440x900` has document/body X/Y scroll sizes within client sizes, all four labels - remain clickable, Generalist remains the checked recommended preset, Tab reaches - the radio group as one native stop, arrow keys move focus/selection, screenshots - preserve the current theme, E2E-01 proceeds beyond its first gate, and literal - `npm run check` passes. Independent rendered `ui-reviewer` review and integrated - Auditor rerun remain required. -- **Observed correction:** the hidden native radio alone is now `1x1`, with inherited - `min-height`, margin, padding, and border neutralized. Document scroll/client width - is `1280/1280` and `1440/1440`; document/body Y invariants also pass. The visible - wrapping card receives the existing purple focus treatment through - `:has(input:focus-visible)`, rather than relying on an outline around a transparent - one-pixel control. Causal Playwright passed 2/2 and proves four accessible radios, - Generalist checked, one native Tab stop, arrow focus/selection, visible card focus, - every label click, exactly one checked radio, and bounded computed box styles. - Full browser harness passed 4/4. Literal `npm run check` passed launcher 3/3, - server 563/563 with one opt-in live skip, both typechecks, and both builds. - Screenshots `docs/ui-review/ui-03-create-agent/{1280x800,1440x900}.png` preserve - the accepted theme. No live/model call occurred. -- **Owner/status:** `RESOLVED + AUDITED` at integrated implementation `83954f7`; - **100% scoped**, `T,C,B,U,I` passed 5/5. Focused 2/2 and full 4/4 browser gates plus - harness unit 2/2 passed; screenshots matched and the local strict/full gate - passed. Unrelated TST-03 was corrected test-only at `0b1c401`, and hosted Node 22 - run `33262227553` passed. E2E-01 is ready. - -### `OPS-06` — macOS Docker Desktop live Shepherd preflight fails opaquely - -- **Evidence class:** strong collaborator report from macOS with a complete bounded - stack trace; not reproduced on this Linux audit host. -- **Failure contract:** production builds succeed, server selects live Shepherd, - then `CodexShepherdExecutor.performPreflight()` throws only `Live Shepherd Runtime - preflight failed`; process exits before listening. The no-key preflight failure is - collapsed to a boolean by `ContainerCodexRunner.isEphemeralAvailable()`, so the - failed filesystem/version/socket subprobe is unknown. -- **Impact:** a correctly configured collaborator cannot run the live demo, and the - message is not actionable. This is not evidence of an Ark credential failure. -- **Minimal correction:** first expose only a bounded safe stage/reason code; run - the exact preflight on the affected Mac; correct only the proven compatibility - mismatch. Preserve the non-root/read-only/home-denial/socket-denial/version gates - and fail closed. Never use `danger-full-access` or silently fall back from an - explicit live request. -- **Acceptance:** Linux plus macOS/container-engine regressions, full gate, security - review, and one sparse live startup/Mission smoke on the affected platform. -- **Observed correction:** the runner returns a closed typed availability result - instead of collapsing every failure to false. Safe stage/reason enums cover - container create/start, output validation and cleanup plus bounded probe classes. - Unknown/raw engine errors discard their message and become `engine_error`. - Non-root, read-only/tmpfs, workspace write, private-home denial, listen/connect - denial, exact version, bounded output/marker and owner cleanup remain mandatory; - cleanup failure overrides apparent success. -- **Reproduced cause (affected host, this repository's own preflight):** the - bounded diagnostics did their job. On the affected host `codex sandbox linux - --full-auto` cannot enforce Landlock **per-file** access rights on a host share - that reaches the engine through a virtual machine. Holding image, Codex - configuration and container flags fixed and varying only the workspace - filesystem: ext4 engine volume, image overlayfs and tmpfs all permit writes, - while the host share denies them. Inside the sandbox on that share the split is - parent-inode versus file-inode — `mkdir`, `rmdir` and `unlink` succeed, while - `open()` for read, write, create and truncate all return `EACCES`. The subprobe's - first redirection `: > /workspace/.shepherd-sandbox-probe` is therefore denied, - the sandbox command exits non-zero outside the mapped probe codes, and the runner - reports the catch-all `stage=container_start reason=sandbox_probe_failed`. This - is a compatibility mismatch, not a preflight defect: relaxing the gate would boot - the server and then hand every Plane an Agent unable to read or write its own - workspace. -- **Second, independent defect (both startup probes):** `scripts/start-local-poc.sh` - used `touch` for its bind-mount and Landlock write probes. On exactly the - filesystem where Codex then fails, `touch` exits 0 **and creates the file**, - because Landlock grants `MAKE_REG` while denying `WRITE_FILE`. Both gates were - certifying nothing and handed the failure to the server as an opaque crash. They - now write and read back bytes, and the Landlock probe commits through Git. -- **Observed correction (compatibility):** an opt-in container state volume. - `CONTAINER_STATE_ROOT` and `CONTAINER_STATE_VOLUME` are required together and - address every mounted root as a subpath of one named volume, a native engine - filesystem on every supported host; unset keeps host bind mounts byte-identically. - `volume-nocopy` is mandatory, because without it the engine copies the image's own - directory metadata over an empty subpath, replacing the non-root owner, and the - Runtime loses write access through plain permissions before the sandbox applies. - The independent verifier is translated too: left bind-mounted it would turn every - mandatory check into an infrastructure error and fail the promotion gate. A source - outside the state root throws; it never falls back to a bind mount. Measured on - the affected host, the **unmodified** preflight script then returns - `SHEPHERD_RUNTIME_PREFLIGHT_OK`, and a containerized non-root control plane - creates its workspace, starts the sibling Runtime and reads back what the - sandboxed Agent wrote. -- **Owner/status:** Fixer / `RESOLVED, INTEGRATED at b80af11` (PR #56); `A` and `S` - still open. Cause reproduced and corrected on the affected host. Causal tests cover - volume-mode mount construction, fail-closed containment, the previously - unvalidated shared Agent home, preflight shape, configuration resolution, - verifier translation and the executor canonicality assertion. The - `container-volume` startup smoke and the hosted Linux full gate (run - `33300759535` on exact head `b80af11`) are both recorded. No live/model call has - run. Adjacent `A` coverage is supplied by PR #68 and the independent `S` review - by PR #69; that review returned FAIL against `e6a5878`, which removed the - non-loopback `APP_AUTH_TOKEN` requirement in the same merge with no recorded - review. Its High finding is only partly closed — the guarded deploy script is one - of three documented compose entry points — and the remainder is carried into - `SEC-REVIEW`. - -## Confirmed defect inventory - -| ID | Evidence class and current failure contract | Minimal-fix boundary | Owner/status | -|---|---|---|---| -| `CRUD-01` | Reproduced: clarification-only human drafts created no Contract/Mission/Plane but caused the delete API to return the durable-history 409. Review also reproduced pre-/post-publication cleanup splits, a follow-up policy-journal race, and a direct-run/delete race. | Remove only exact unbound general clarification state; journal Project/workspace cleanup across database publication, reconcile from on-disk truth, serialize project operations, reserve direct-run lifecycle, and retain durable-history denial/accepted UI. | **REVIEWED CANDIDATE** at `171089b` on PR #67; final security PASS, `I` pending | -| `TST-25` | Reproduced on macOS at `b80af11`: `npm run test:e2e:harness:unit` fails 1 of 7 with `fake-codex: workspace identity must be canonical`. `tests/e2e/harness.test.mjs:38` builds its workspace via `mkdtemp(path.join(os.tmpdir(), "shepherd-fake-codex-"))`; on macOS `os.tmpdir()` returns a symlinked `/var/folders/...` path, so the deliberate `realpath` identity assertion at `tests/e2e/fixtures/fake-codex.mjs:69` correctly rejects it. Host-dependent, not intermittent: it passes where `os.tmpdir()` is already canonical, which is why no hosted run catches it — this target is not part of `npm run check`. No safety or data impact; it is a false failure on the presentation host. | Canonicalize the test's own temporary root before `mkdtemp`, matching the existing idiom at `tests/e2e/support/test-app.mjs:93`. Do **not** weaken or remove the fixture assertion: it is the `TST-06` canonical-ancestor hardening. Causal test: assert the harness still rejects a non-canonical workspace while the canonicalized fixture run passes. | **RESOLVED** at `e06357c` (PR #71, issue #70); discovered during `OPS-06` post-merge reconciliation at `b80af11`. The fix canonicalizes the test's own temporary root with `realpath` before `mkdtemp`; the fixture assertion is unchanged. | -| `SEC-01` | Reproduced against the real `createApp` at `bd9b093` with `APP_AUTH_TOKEN` configured and no `Authorization` header: `GET /api/system` returns 401 while `GET /%61pi/system` returns **200** and executes the handler. The `onRequest` hook decided whether to authenticate from `request.url`, the raw request target, while Fastify percent-decodes static path segments before route matching, so any encoded spelling of the `/api/` prefix skipped the hook and the router still resolved the request. Every route was affected including destructive ones (`POST /%61pi/shepherd/demo/reset` removes Plane worktrees and restores protected HEAD; `DELETE /%61pi/agents/` executed). Remotely reachable wherever the token is the only control, because `docker-compose.yml` binds `0.0.0.0` and publishes the port. Not introduced by any recent change; the existing auth tests only ever exercised canonical spellings, so 107 tests passed with the bypass live. | Decide the hook from the decoded target instead of the raw one, treating an undecodable target as protected rather than exempt, and keep the `/api/health` and `/api/auth` exemptions exact-match so a query string still fails closed. Do not widen the exemptions. | **RESOLVED** on `audit/49-sec-review-evidence`; causal test `protects API routes spelled with a percent-encoded prefix`; found by the `SEC-REVIEW` boundary audit | -| `TST-26` | Reproduced at `e552959`: `recovery.process.test.ts` fails 5/5 **in isolation on an idle machine**, 168.75s for 5 tests, each reporting `Timed out waiting for recovered` with empty stderr. Not host speed: raising the message timeout to 400s still timed out, and a direct probe showed the recover child exits **code 0**, sends **zero** IPC messages, and writes nothing to stderr or stdout. Cause is at `test-fixtures/recovery-process.ts`: `send({type:"recovered"...})` is followed immediately by `process.exit(0)`, but `process.send` is asynchronous, so the child can terminate before the IPC frame is flushed. The parent never receives the message, and because the exit code is 0 the harness's exit handler does not reject either, so it waits out the full timeout for a result that was computed correctly and never left the process. Passes on faster hosts and in Linux CI, where the flush wins the race — which is why it was previously recorded as a host-speed timing condition. | Exit from the `process.send` flush callback instead of the next statement. Separately, make the harness reject on a clean exit that never sent the awaited message, so the cause is reported immediately rather than as an anonymous timeout. Do not raise timeouts or add sleeps. | **RESOLVED** on `fix/48-recovery-ipc-flush`; 5/5 pass and the file drops from 168.75s to 52s; reverting the fixture fails 5/5 in 48s with `Fixture exited 0/null without sending recovered` | -| `SEC-02` | Reproduced over a real socket at `0ed41dd`: with `APP_AUTH_TOKEN` configured and no `Authorization` header, `GET /api/system` returns 401 while `GET http://127.0.0.1:PORT/api/system` returns **200 and reaches the handler**. HTTP/1.1 permits an absolute-form request target, and `request.url` is then the whole URI, which does not start with `/api/`, so the hook returned early while the router still matched the path component. Every `/api/` route is affected including the destructive demo reset. This is a sibling of `SEC-01` that the `SEC-01` correction did not close: that fix decoded the raw target but still tested the raw string. Four independent review lenses converged on it. **`app.inject` cannot express this request** — it normalizes the target — so the first regression test written for it reported a false pass. | Derive the decision from the parsed, decoded pathname (`new URL(request.url, base).pathname`), which handles origin-form, absolute-form and protocol-relative targets uniformly; keep the exemptions exact-match on the whole target so a query string or non-origin-form spelling of a public route still fails closed; treat an unparseable or undecodable target as protected. Test over a real socket, not `app.inject`. | **RESOLVED** on `fix/89-absolute-form-auth-bypass`; causal socket test `protects API routes requested in absolute form`; reverting to the raw-target test fails 2 cases, reverting to decoded-but-unparsed fails 1 | -| `SEC-03` | Reproduced at `0ed41dd`: `scripts/check-deploy-auth-token.mjs` gated its CLI entry point on `import.meta.url === \`file://${process.argv[1]}\``. That is not a URL comparison — a space, `#` or any non-ASCII character percent-encodes in `import.meta.url` — and on macOS the filesystem reports names in NFD while an argument is typically NFC, so even a correctly built file URL compares unequal. From a directory named `My Deploy Repo #1 é` the guard body never executed: no output, exit 0, and `deploy-existing-ecs.sh` proceeded to publish the Agent execution API on `0.0.0.0` with an empty token. The existing tests imported the module and never spawned it, so this shipped green through `npm run check`. | Resolve both sides through the filesystem (`realpath` of `import.meta.filename` and of `process.argv[1]`), which removes URL encoding and Unicode normalization from the comparison. Add a test that spawns the CLI from a directory whose name contains a space, a `#` and a non-ASCII character. | **RESOLVED** on `fix/89-absolute-form-auth-bypass`; causal test `the checker CLI refuses an empty token from a directory whose name needs escaping` | -| `SEC-04` | Source-evidenced at `0ed41dd`: `buildCodexArgs` appended the caller-supplied prompt, and on the resume path a stored thread id, as unseparated positional arguments — on the same argv that carries `--sandbox`. A prompt beginning with `-` is therefore parsed by the Codex CLI as an option. Demonstrated argv included `-cmcp_servers.x.command=...` and `-cmodel_providers...base_url=...` reaching the CLI as options. The repository already applies the `--` discipline to every Git invocation and feeds the ephemeral executor's prompt over stdin; the legacy Agent runner was the one path missing it. | Push `--` before the positionals on both the new-session and resume branches. | **RESOLVED** on `fix/89-absolute-form-auth-bypass`; `codex-runner` and `container-codex-runner` assertions updated to pin the separator | -| `SEC-05` | Reproduced at `0ed41dd` with the real `PlaneManager` in the integration fixture: mandatory promotion re-verification ran against the **live Plane worktree**, not the commit being promoted. `withVerificationSnapshot` had a fast path that byte-copied any `refs/heads/shepherd/*` worktree whose HEAD matched and which `git status` called clean — but that cleanliness test, `changedFilesSince`, and every authority check are **ignore-blind** (`--untracked-files=all` without `--ignored`; `ls-files --others --exclude-standard`). An Agent commits a `.gitignore` and writes files under it: they are invisible to the cleanliness test, to `validateChangedPaths` at import, at `commitPlane`, at the candidate authority check and at the gate's final authority recheck — yet they are copied into the verification snapshot, persist in the worktree, and are re-exported into the next execution workspace for that Plane. The tree the mandatory checks execute against was therefore a strict, agent-controlled superset of the tree being promoted. Ignore rules are agent-controlled, so this is a containment failure of the write-authority envelope itself. | Two independent corrections, each of which closes it alone: always materialize the exact commit for the verification snapshot, so the verified tree equals the promoted tree by construction; and make the authority queries ignore-aware (`--ignored=matching`, and drop `--exclude-standard`) so such paths are authority-checked like any other change and a Plane holding them is not reported clean. | **RESOLVED** on `fix/89-absolute-form-auth-bypass`; causal test asserts an ignored file under a committed `.gitignore` is absent from the snapshot; reverting **both** fixes reproduces, reverting either alone does not | -| `SEC-06` | The `OPS-06` `S` review's carried High, confirmed still present at `0ed41dd` and now closed. `docker-compose.yml` published `"${PUBLIC_PORT:-3000}:3000"` with no address prefix, binding every host interface, while `.env.example` ships `APP_AUTH_TOKEN=` empty and the bearer hook short-circuits entirely on an empty token. `README`'s quickstart is `docker compose up --build` against exactly that file, and told the reader that nothing else was needed to start — so the advice to set a token "for any deployment reachable beyond your own machine" never fired, because the reader had no reason to think the quickstart made it reachable. The guard that encodes this knowledge is invoked only from `deploy-existing-ecs.sh`, which the quickstart never runs. Realistic worst case on that profile: unauthenticated prompt-driven command and file execution in the container, read/write to the three bind-mounted host directories, use of whatever credentials `.env` supplies, and the destructive demo reset. On Linux the reachability is wider than operators expect, because Compose port publishing installs DNAT rules evaluated ahead of the filter chains where host firewall rules live. | Default the published address to loopback with an explicit opt-in — `"${PUBLIC_BIND_ADDR:-127.0.0.1}:${PUBLIC_PORT:-3000}:3000"` — mirroring `docker-compose.state-volume.yml`, which already does exactly this. An earlier decision rejected pinning to loopback because it would remove the ECS profile's intended reachability; a defaulted variable keeps that reachability as an explicit opt-in and makes only the default safe. Document it in `.env.example` and in both README paths. | **RESOLVED** on `fix/89-absolute-form-auth-bypass`; causal tests assert the resolved `host_ip` is `127.0.0.1` by default and `0.0.0.0` when opted in; restoring the unprefixed port fails both | -| `F-01` | Source-evidenced: Contract timeout may surface as failure code `unknown` instead of `agent_timeout`. | Typed timeout propagated through Contract/Plane/Agent/Mission/event/API/UI; no message-regex classification. | **RESOLVED + AUDITED** at `83cc1d0`; `T,A,C,S,I` 5/5; 100% scoped | -| `F-02` | Source-evidenced: Contract runtime errors can become generic `unknown`. | Shared typed stage error only; preserve candidate-specific handling. | **RESOLVED + AUDITED** at `83cc1d0`; `T,A,C,S,I` 5/5; 100% scoped | -| `F-04` | Source-evidenced: initial Plane creation can fail before durable stage evidence; later mapper is too late. | Evidence on owning Contract/Mission without inventing a successful Plane. | **AUDITED** at `2cef988`; TST-17 closed | -| `F-05` | Preserved RED proved a real textual conflict became `unknown/background_demo`. | Typed bounded Mission/integration Plane/event mapping; retain clean conflict Plane for inspection and remove it on reset. | **AUDITED** at `f8d7f71`; TST-18/19 closed | -| `F-06` | Preserved RED proved atomic rollback alone cannot leave recovery-visible evidence of the failed transition. | Exact-byte digest + bounded sidecar intent at the representative pre-integration transition; reconcile once without claiming an uncommitted mutation persisted. | **RESOLVED + AUDITED** at `7d51ec6`; TST-21–24 closed | -| `F-07` | Source-evidenced: candidate timeout state mapping is inconsistent and partly regex-based. | One typed timeout class and canonical state mapping. | Worker / ready | -| `F-08` | Source-evidenced: most non-authority candidate exceptions are retryable; second-failure coverage absent. | Retry only typed transient failures, once, from the immutable base. | Worker / ready | -| `GC-01` | Earlier reproduction proved buttons inserted bare `@Name With Spaces`, while the parser requires JSON quoting. | Resolved with parser-safe mention formatting, exact Agent-ID fallback, draft-preservation and two-viewport browser coverage; no parser weakening. | **RESOLVED + AUDITED** at `de3e631`; hosted run `33266624301` | -| `GC-02` | Current service/UI evidence: unmentioned message persists, but no bounded Shepherd action/reply occurs despite UI copy. | Use an existing schema-bounded Shepherd action; no free-form host/model authority. | Worker / ready | -| `GC-03` | Current service path only links an assignment to an already-created active Contract. | Add schema-validated targeted Contract creation under existing authority. | Worker / blocked by GC-02/05 | -| `GC-04` | Earlier reproduction: assignment returns conflict after the fast Mission finishes. | Remove the narrow timing dependency while keeping one mutation owner. | Worker / blocked by GC-03 | -| `GC-05` | Current UI source disables textarea when no project exists; earlier browser observation confirmed it. | Safe read-model initialization or explicit in-panel Mission-start action; preserve composer design. | Worker / ready with GC-02 | -| `GC-06` | Current lifecycle summaries use Shepherd sender; verified manifest-derived Agent summaries are absent. | Server-authored bounded summary only after verification, attributed to the real Agent ID. | Worker / blocked by targeted lifecycle | -| `MR-01` | Full bounded/advisory reviewer, degradation, deterministic independence, truthful capability UI and sparse live smoke passed through `35ec268`. | Keep advisory-only authority and bounded trusted inputs/outputs. | **RESOLVED + AUDITED**; 100% scoped | -| `MR-03` | Valid findings survive invalid peers with bounded dropped count; all-invalid degrades. Deterministic/security/live/hosted gates passed. | Retain per-finding isolation and schema/ref validation. | **RESOLVED + AUDITED** at `35ec268`; 100% scoped | -| `MR-02` | No-Ark browser/API RED showed an enabled “Run” toggle although the process composed no reviewer. The integrated fix publishes one fail-closed capability boolean and renders the preserved preference disabled with explicit **Unavailable** copy; configured PATCH remains functional. | Preserve preference and existing theme; expose no credential/model/endpoint/failure reason. | **RESOLVED + AUDITED** at `577255e`; `T,A,C,B,S,U,I` 7/7 | -| `ST-01` | Current config parses startup auto-resolution/max Planes, but `index.ts` does not pass them into `ShepherdService`. | Explicit initial-settings composition without overwriting later persisted settings. | Worker / ready | -| `ST-02` | Notification toggles persisted although no notification behavior consumed them. | Resolved by preserving stored values behind visibly Reserved/Unavailable native disabled controls; no delivery expansion. | **RESOLVED + AUDITED** at merge `d5df930`; `T,C,B,U,I` 5/5 | -| `SCH-01` | Current service invokes scheduler for one fixed initial batch without real busy/lock/active inputs. | Extend existing scheduler/service boundary for dependency waves; no architecture replacement. | Worker / blocked by SCH-02 | -| `SCH-02` | Cycles are rejected during scheduling rather than before graph persistence. | Call existing DAG validator before durable Contract creation. | Worker / ready | -| `UI-01` | Current detailed failure panel is attention-focused; ordinary failed Missions may hide typed detail. | Reuse existing failure/attention primitives; no visual redesign. | Worker / blocked by typed failures | -| `UI-02` | Current web type has optional `estimatedDurationMs`, but no server/domain producer exists. | Persist and serve trusted estimates, clearly distinct from actuals; preserve timeline design. | Worker / ready | -| `UI-03` | E2E-01 reproduced document widths of 2299/2579 on Create Agent because four transparent absolute preset radios retained global viewport-wide input sizing. | Resolved by bounding only the visually hidden preset-radio dimensions while preserving native semantics, labels, keyboard behavior, and accepted form visuals. | **RESOLVED + AUDITED** at `83954f7`; hosted closeout restored by TST-03 `0b1c401` | -| `TEST-TS` | Server production config deliberately excludes tests, which previously had no separate strict typecheck. | Resolved with a separate no-emit strict test project without changing production emit. | **RESOLVED + AUDITED** at `8995605` | -| `CI-01` | Repository previously had no required hosted repository gate. | Resolved with network/model-free Node 22 install/typecheck/test/build plus Docker verification; preserve protected-main policy. | **RESOLVED + AUDITED** at `cda2446`; hosted `33259565232` | -| `TST-05` | Candidate `592699d` routine harness run passed but modified 16/18 E2E PNGs plus an unrelated UI-03 image; the two stable down captures were unasserted blank canvases. | Resolved with ignored routine output, explicit review-update path, truthful port-down evidence, reachable Create action and real keyboard/focus coverage; no production UI/design change. | **RESOLVED + AUDITED** at `f6df2d9`, evidence `284994d` | -| `TST-06` | Candidate `592699d` passed secrets to matcher output, could not later clean a retained run root, did not canonically reject symlinked managed ancestors, and could retain live prompt/output in failure artifacts. | Resolved with secret-safe assertions, idempotent later cleanup, canonical ancestor confinement, disabled live artifacts and causal fault tests; no authority broadening. | **RESOLVED + AUDITED** at `f6df2d9` | -| `TST-07` | Local GC-01/current-main merge failed strict Server test typecheck with TS6142/TS6059 because a Server test imported Web TS/TSX outside its JSX/rootDir contract. | Resolved by assigning the complete regression to discovered, strictly typed Web ownership; no config weakening, assertion loss or product edit. | **RESOLVED + AUDITED** at `de3e631`; hosted run `33266624301` | - -## Assurance gaps that are not yet defects - -Missing Playwright journeys, screenshots, performance measurements, repeated-run -evidence, final security/UI reviews, sparse live smokes, rehearsals, and Phase 9 -documents remain tasks in `TASKS.md`. They become defects here only when an executed -gate produces a reproducible failure. diff --git a/docs/HACKATHON_EXTENSION_GUIDE.md b/docs/HACKATHON_EXTENSION_GUIDE.md deleted file mode 100644 index e4968c4..0000000 --- a/docs/HACKATHON_EXTENSION_GUIDE.md +++ /dev/null @@ -1,92 +0,0 @@ -# Three-day hackathon guide - -> This is the original Starter Kit extension guide. Shepherd is the selected -> Track 1 implementation. Start with [`TASKS.md`](TASKS.md) for its current -> status and [`PRD.md`](PRD.md) for its requirements. - -Teams receive a working Agent platform and build exactly one middleware track. -Rebuilding the UI, control plane, local Runtime, or ECS setup is out of scope. - -## Provided baseline - -- Browser Agent CRUD and Playground -- Persistent workspaces and Codex sessions -- One-line Docker, Colima, or Podman local Runtime -- Volcengine Ark model connection -- Optional Volcengine ECS deployment - -Local execution is the default judging path. Cloud deployment is optional. - -## Choose one track - -### Glass Box: trace and audit - -Make a Run diagnosable. - -Required demo: - -- Show correlated Run and step events in a timeline or tree. -- Include status, duration, errors, and available model usage. -- Redact secrets. -- Run one successful task and identify the failing step in one failed task. - -### Bouncer: identity and authorization - -Separate the human user from the Agent acting for that user. - -Required demo: - -- Create User A, User B, and an Agent principal owned by User A. -- Allow the Agent to read User A's mock resource. -- Deny access to User B's resource in the backend. -- Record the human, Agent, action, resource, and decision. - -A login screen without server-side authorization does not qualify. - -### Kill Switch: safety and sandboxing - -Contain one explicit dangerous action. - -Required demo: - -- Add a threat-specific policy or a stronger sandbox boundary. -- Block or terminate a malicious Run. -- Keep the protected asset unchanged and show cleanup. -- Run a safe task after containment. - -The Starter Kit's default CPU, memory, PID, and capability limits do not count -as the new control. - -## Three-day plan - -| Day | Goal | -| --- | --- | -| 1 | Start the POC, select one story, define the middleware contract, and complete the backend path. | -| 2 | Finish enforcement or instrumentation, add the minimum UI, and implement positive and negative cases. | -| 3 | Add tests, handle failures, finish the diagram, and rehearse the demo. | - -## Deliverables - -Only three deliverables are required: - -1. **Three-minute live demo:** show a real Agent Run and the middleware result. -2. **One-page architecture diagram:** show the middleware and trust boundary. -3. **Code repository:** include setup, tests, selected track, and limitations. - -## Evaluation - -| Category | Weight | -| --- | ---: | -| End-to-end middleware behavior | 40% | -| Technical design and integration | 25% | -| Verification and robustness | 20% | -| Demo and reproducibility | 15% | - -## Acceptance checklist - -- [ ] The README names one selected track. -- [ ] A reviewer can run the project from the documented command. -- [ ] Middleware executes in the backend or Runtime path, not only in the UI. -- [ ] The demo includes a positive and a failure, denial, or malicious case. -- [ ] Automated evidence covers the core event or policy decision. -- [ ] No secret appears in source, logs, traces, screenshots, or the browser. diff --git a/docs/LOCAL_POC.md b/docs/LOCAL_POC.md deleted file mode 100644 index fed53b3..0000000 --- a/docs/LOCAL_POC.md +++ /dev/null @@ -1,335 +0,0 @@ -# Local POC - -> This is the canonical startup, troubleshooting, and manual verification runbook. -> Current completion status and known gaps are in [`TASKS.md`](TASKS.md); do not -> convert an open task there into a pass based only on manual observation. - -The local profile runs the React/Fastify control plane on macOS or Linux and -starts every Codex turn in a disposable Docker, Colima, or Podman container. -Only the Volcengine Ark model API is remote. - -## Start - -Requirements: - -- Node.js 22+ -- Docker, Colima, or Podman -- An Ark API key and Responses-capable endpoint - -```bash -./scripts/start-local-poc.sh -``` - -The script safely reads the repository's ignored `.env`; configure -`ARK_API_KEY` and `ARK_MODEL` there before starting. It does not source `.env` -as shell code. - -Open . Press `Ctrl+C` to stop the server and remove this -instance's remaining Runtime containers. - -Force an engine by setting `CONTAINER_ENGINE=docker` or -`CONTAINER_ENGINE=podman` in `.env`. Colima uses the Docker CLI. - -### When the host filesystem reaches the engine through a virtual machine - -On a host where the container engine runs inside a virtual machine and shares the -host filesystem into it, that share cannot carry the Codex sandbox's per-file -access rights: directory operations succeed while every attempt to open a file -for reading or writing is denied, so an Agent could not read or write the -workspace it was given. Shepherd does not fall back to `danger-full-access`. - -**You do not need to configure anything for this.** The startup probes detect it -and the script switches to the container state volume by itself: - -``` -[local-poc] The Codex sandbox cannot govern a workspace on /Users/you/.volc-agent-launchpad. -[local-poc] Switching to the launchpad-state container state volume and retrying. -``` - -The volume is a native engine filesystem on every supported host. Set -`LOCAL_POC_STATE_MODE` explicitly to pin one layout and disable the fallback: -`host-bind` to fail loudly on a host that should work, or `container-volume` to -skip the host attempt entirely. - -The fallback builds and starts the control plane inside the engine using -`docker-compose.state-volume.yml`, so it also needs: - -- Access to the engine socket, which the control plane joins as a supplementary - group while remaining non-root. See [`DEVIATIONS.md`](DEVIATIONS.md). - -State lives in the `launchpad-state` volume rather than a host directory, so it -is not browsable from the host file manager; use `docker volume` and -`docker cp`. Switching modes does not migrate existing state: Plane worktrees -record absolute paths, so start the volume empty. - -## Preflight and deterministic demo configuration - -From the repository root: - -```bash -node --version # 22 or newer -npm --version -docker info # or: podman info -npm ci -npm run check -npm run test:coverage -npm run test:terraform -npm run test:shepherd:live:preflight -``` - -`test:coverage` enforces at least 80% statements, branches, functions, and lines for -both the Server and browser-owned Web source, and fails if a production source file -is missing from the report. `test:terraform` uses installed Terraform when available -or the pinned `hashicorp/terraform:1.9.8` image against a disposable module copy. -`test:shepherd:live:preflight` builds the exact working tree, checks the non-root -controller, named state volume, engine socket, Runtime image and live-test discovery, -then cleans up without contacting Ark. - -For the reliable no-model judge flow, keep secrets only in the ignored `.env` and -set: - -```dotenv -HOST=127.0.0.1 -SHEPHERD_EXECUTION_MODE=deterministic -SHEPHERD_DEMO_MODE=true -``` - -`APP_AUTH_TOKEN` is optional and empty by default; the server starts and serves -without one. Set it only if you want the browser unlock screen and a bearer -credential on every API route. - -The launcher parses `.env` as data; never source, print, screenshot, or commit it. -The deterministic Mission does not call Ark. `ARK_API_KEY` and `ARK_MODEL` are used -only by the optional live Agent/Shepherd paths. - -## Manual hackathon flow - -Use a fresh disposable data root for rehearsal. Start with -`./scripts/start-local-poc.sh`, and wait for the loopback URL. The unlock screen -appears only if you set an `APP_AUTH_TOKEN`; enter that same token if so. - -### 1. Positive Shepherd Mission - -1. Open **Settings → General → Reset demo state**. The reset preserves ordinary - Launchpad Agents. -2. Create `Frontend Auth Agent` with role/preset **Frontend**, then create - `Backend Auth Agent` with role/preset **Backend**. Both must be ready. -3. Open `Frontend Auth Agent`, enable **Route through Shepherd**, and send this - private prompt once: - - ```text - Implement the frontend authentication client using an HttpOnly session cookie. - ``` - - Confirm Shepherd says the prompt was captured as - `http-only-session-cookie` and is waiting for the Backend Agent. -4. Open `Backend Auth Agent`, enable **Route through Shepherd**, and send this - private prompt once: - - ```text - Implement the backend authentication service using a bearer JWT. - ``` - - The second compatible-role prompt atomically starts one Mission. Open - **Shepherd**; the former deterministic Agent/transport selectors must not exist. - The small Shepherd composer remains a managed-Agent fallback and is not used in - this primary flow. -5. Wait for `completed`. Verify the visible sequence: the two exact private prompts - become two durable Contracts → - isolated Contract Planes → independent verification → integration → the - `auth.transport` semantic collision → two resolution candidates → independently - passing cookie candidate and rejected bearer candidate → final re-verification → - protected promotion → Mission completion. -6. In the Contract stream, open **View evidence** for both source Contracts. Confirm - the complete bounded definitions show the chosen Agent/ID, objective and exact - transport, Mission/Plane, dependencies, semantic scope and claim, contextual - inputs, readable/writable/forbidden authority, expected artifact, acceptance - check/profile, manifest path, and timestamps alongside existing evidence. -7. Exercise **All**, **Contracts**, **Verification**, **Collisions**, and - **Resolution** filters. No view may expose a secret, absolute host path, raw model - prompt/output, session identifier, or unbounded verifier output. -8. Inspect the timeline, expand the collision, and open each Plane Tree detail. - Confirm short Git evidence, changed files, state, and verification evidence are - visible and that the drawer can be closed. Explain that the source Agent Planes - do not compete: the cookie and bearer **Resolution Planes** compete after both - verified source outputs are combined into the same integration commit. -9. Repeat visual checks at `1280x800` and `1440x900`. The document itself must not - scroll horizontally or vertically; only designated panes may scroll. Compare the - hierarchy and theme with [`UI.jpeg`](UI.jpeg). - -### 2. Settings and human selection - -1. Open **Settings → General → Reset demo state** and confirm the result. -2. Under **Execution**, change one timeout and **Maximum parallel Planes**, save, - refresh, and confirm the values round-trip; then restore them. -3. Disable **Automatic resolution**, save, and repeat the two private Agent prompts - from the positive flow with the preserved user-created Agents. -4. At `attention_required`, confirm the internal human-review ticket shows the full - durable collision/Mission reference. Only an independently passing candidate may offer - **Select verified future**. Select it and confirm completion through the same - promotion gate. Restore **Automatic resolution** afterward. -5. Notification controls must remain visibly **Unavailable/Reserved**, disabled, - unfocusable, and must not send a settings mutation. - -Startup composition for automatic resolution and Plane capacity is still tracked as -`ST-01`; do not claim that open task from a persisted post-start settings round-trip. - -### 3. Cancellation and Project Group - -1. Reset, start a Mission, and immediately choose **Cancel Mission**. Confirm the - durable `cancelled` state, retained evidence, released Agents, and no promotion. - The deterministic flow can finish before the click; if so, record the timing as - inconclusive rather than passing cancellation. -2. Open **Project Group**. Mention controls must preserve the existing draft, - keyboard behavior, focus, quoting, Unicode, and the 2,000-character boundary. -3. Treat unmentioned Shepherd action/reply, targeted Contract creation, and - manifest-derived Agent summaries as open until `GC-02/05`, `GC-03/04`, `GC-06`, - and `E2E-03` are audited. Record behavior that differs from those task rows. - -### 4. Optional bounded live Agent check - -This consumes real `ARK_MODEL` capacity and is not needed for UI inspection: - -1. Create one **Generalist** Agent named `Manual QA Agent`. -2. Send exactly one small task: `Create a dependency-free hello.js that prints - "Hello, Shepherd", add a Node test, run it, and report the exact test result.` -3. Send one follow-up: `Reply with only the exact greeting produced by hello.js.` -4. Confirm queued → running → completed, session continuity, and the expected file. -5. Stop with `Ctrl+C`, restart with the same data root, and confirm the Agent, - messages, Runs, and workspace persist. - -The live Shepherd Mission/reviewer continuity acceptance remains `LIVE-01`; one -legacy Playground run does not close it. - -### 5. Exact-tree live Shepherd gate - -First run the zero-spend preflight above. With the ignored environment file -configured, the bounded external gate is: - -```bash -npm run test:shepherd:live -``` - -This command is opt-in and must remain single-worker/no-retry. It sends -repository-derived Contracts, prompts, and scoped source content to the configured -Ark endpoint, so obtain authorization for that data transfer before running it in a -managed or reviewed environment. A passing preflight proves local construction and -isolation wiring only; it is not a substitute for the provider result. Record only -bounded outcomes and never attach raw prompts, model output, credentials, session -identifiers, or private paths. - -## Recording a defect - -Record the TASKS/PRD ID, exact commit, viewport/runtime, reproduction, expected and -actual behavior, frequency, safety/data impact, redacted evidence, and proposed -causal test. Never attach `.env`, credentials, raw prompts, absolute private paths, -or unbounded logs. - -## Data and Runtime - -Persistent state defaults to: - -- macOS: `~/.volc-agent-launchpad/` -- Linux: `.local/` - -Set `LOCAL_POC_DATA_ROOT` to use another directory, or -`LOCAL_POC_STATE_MODE=container-volume` to force all state into the -`launchpad-state` engine volume instead of on the host. - -Each turn mounts only the selected Agent workspace and Codex session directory. -Default limits are 2 CPUs, 2 GiB memory, 256 processes, dropped capabilities, -and `no-new-privileges`. - -Codex requests `workspace-write`. If the Linux kernel lacks Landlock, startup -warns and disables only the inner Codex sandbox. The outer container limits -remain active, but this fallback is not tenant isolation. - -## Rootless Podman on Linux - -This path requires no Docker or Compose. It supports Ubuntu 22.04/24.04, Debian -12, and veLinux 2. - -Install Podman: - -```bash -sudo apt-get update -sudo apt-get install -y podman uidmap slirp4netns fuse-overlayfs -``` - -Install Node.js 22 if needed. Inspect the downloaded setup script before -running it: - -```bash -curl -fsSL https://deb.nodesource.com/setup_22.x \ - -o /tmp/nodesource_setup_22.sh -less /tmp/nodesource_setup_22.sh -sudo -E bash /tmp/nodesource_setup_22.sh -sudo apt-get install -y nodejs -``` - -Check subordinate UID/GID ranges: - -```bash -grep "^$USER:" /etc/subuid -grep "^$USER:" /etc/subgid -``` - -If both are missing, assign unused ranges and log in again: - -```bash -sudo usermod --add-subuids 100000-165535 "$USER" -sudo usermod --add-subgids 100000-165535 "$USER" -``` - -Verify rootless Podman: - -```bash -podman info -podman run --rm docker.io/library/alpine:3.20 echo PODMAN_OK -``` - -`podman info` must report `rootless: true`. Set `CONTAINER_ENGINE=podman` in -`.env`, then start the POC: - -```bash -./scripts/start-local-poc.sh -``` - -This flow was verified on veLinux 2 with rootless Podman 4.3.1. A `vfs` storage -driver works but needs more disk space; keep at least 5 GiB free for a cold -build. - -## Common options - -Set optional values such as -`CONTAINER_RUNTIME_APT_PACKAGES='ca-certificates git ripgrep python3 build-essential'` -in `.env`, then run `./scripts/start-local-poc.sh`. - -For restricted networks, configure: - -- `CONTAINER_RUNTIME_BASE_IMAGE` -- `CONTAINER_APT_MIRROR` -- `CONTAINER_APT_SECURITY_MIRROR` - -Resource limits are controlled by `CONTAINER_CPU_LIMIT`, -`CONTAINER_MEMORY_LIMIT`, and `CONTAINER_PIDS_LIMIT`. - -## Troubleshooting - -Check Runtime readiness: - -```bash -docker info # Or: podman info -docker image inspect volc-agent-runtime:local -curl http://localhost:3000/api/system -``` - -If a bind mount is rejected, set `LOCAL_POC_DATA_ROOT` to a directory shared -with the container VM. On Linux, the startup script automatically uses the host -UID/GID and validates workspace write access. - -Remove only the default Runtime image: - -```bash -podman image rm volc-agent-runtime:local -``` diff --git a/docs/PRD.md b/docs/PRD.md deleted file mode 100644 index 988d036..0000000 --- a/docs/PRD.md +++ /dev/null @@ -1,441 +0,0 @@ -# Shepherd: Multi-Agent Kernel — Full End-to-End Implementation PRD (No-Compromise Edition) - -**Target executor:** Autonomous coding agent (GPT-5.6 Ultra / Codex or equivalent) -**Hackathon:** TikTok TechJam 2026 — Track 1: Agent Launchpad — Design and Build Lightweight Agent Middleware -**Starter repository:** https://github.com/RrankPyramid/CodeJam -**Document status:** Source of truth. Supersedes all prior Shepherd PRDs. -**Scope directive:** Every capability in this document is required. There is no P1/P2 tiering and no cut line. If a capability cannot be delivered as specified, the executor must stop, document the exact blocker with reproduction evidence, and surface it — never silently narrow scope, never fake behavior, never weaken an assertion to make a test pass. - ---- - -# 0. The Verification Doctrine (READ FIRST — governs every task in this document) - -This PRD imposes a mandatory working discipline on the executing agent. It applies to **every** feature, bug fix, refactor, UI change, and test. - -## 0.1 The Build–Verify–Test–Evidence (BVTE) loop - -No task is "done" when the code compiles or when the agent believes it works. Every task completes only through this loop: - -1. **Build** — implement the smallest coherent change for the task. -2. **Verify** — actually run the system and observe the expected output with your own tool calls: - - Start the real server, hit the real API with `curl` or a script, and inspect the real JSON response. - - For runtime behavior, execute the real container path and inspect real files, real Git state, real persisted JSON. - - For UI behavior, load the real page in a browser automation session (Playwright) and assert on the rendered DOM, and capture a screenshot. - - "It should work" is prohibited. Only "I ran X, observed Y, Y matches the specified expectation Z" is acceptable. -3. **Test** — encode the verified behavior as an automated test at the correct layer (unit, integration, container, or E2E) so it can never silently regress. -4. **Evidence** — append an entry to `docs/BUILD_LOG.md` containing: task, commands run, observed output (bounded/redacted), test file(s) added, and pass status. - -## 0.2 The Problem-Resolution Protocol - -When **any** problem is encountered — a failing command, an unexpected output, a flaky behavior, a UI misrender, a confusing Starter Kit behavior — the agent must: - -1. **Reproduce it deterministically** before attempting a fix. Record the exact reproduction command. -2. **Diagnose the root cause** by reading the actual code path, not by guessing. State the root cause in one sentence in the build log. -3. **Fix the root cause**, not the symptom. Weakening a test, adding a sleep, swallowing an error, or special-casing the demo input are all prohibited fixes unless the root cause genuinely is timing/config, in which case the log must justify it. -4. **Re-run the original reproduction** and confirm the expected output now occurs. Paste the before/after into the build log. -5. **Run the affected test suites** and confirm no regression. -6. **Add a regression test** if one did not already catch the problem. - -## 0.3 Verification asymmetry rule - -The more critical the invariant, the more hostile the verification must be. For the five kernel invariants below, the agent must write **negative tests that actively try to break them**, and those tests must fail if the protection is removed (mutation-check each one at least once by temporarily disabling the guard, observing the test fail, then restoring it — record this in the build log): - -1. An Agent can never self-certify a contract as verified. -2. Changes outside delegated writable scope can never be integrated or promoted. -3. The protected branch can never be updated except through the trusted promotion gate. -4. A resolution winner can never be hard-coded; swapping the fixture's invariant must flip the winner. -5. No secret (Ark key, tokens, `.env` contents) can appear in persisted state, events, prompts to verifiers, or the browser. - -## 0.4 UI/UX verification standard - -UI work is not exempt from verification. Every screen and component in Section 11 must be verified by: - -- **Functional E2E assertions** (Playwright): the specified elements exist, display real backend data, and update on polling. -- **Visual QA screenshots**: capture at 1440×900 and 1280×800, review each against the Visual Acceptance Checklist (11.7), and store screenshots in `docs/ui-review/`. -- **Interaction walkthroughs**: for each user journey in 11.6, drive it end to end in the browser and confirm every intermediate state renders (not just the final state). -- **Empty/loading/error states**: every list, stream, tree, and timeline must be verified in its empty state, loading state, and at least one error state — with screenshots. - -## 0.5 Honesty constraints - -- No hard-coded outcomes anywhere in the product path. -- No static UI standing in for real middleware behavior. -- No fabricated test reports; if something is untestable, it is documented as untested with the reason. -- Every claim in the README must be backed by a named test or a build-log evidence entry. - ---- - -# 1. Executive Summary - -Build **Shepherd: Multi-Agent Kernel** as middleware on top of the supplied Agent Launchpad Starter Kit. - -Shepherd solves one specific multi-agent infrastructure failure: - -> Two coding Agents can independently complete their tasks, pass their own local checks, and produce no Git textual merge conflict, while still making mutually incompatible assumptions about the same system. - -Shepherd delivers three hero primitives, in a causal chain the demo must make undeniable: - -1. **Agent Execution Contracts** — delegation becomes a typed, machine-verifiable contract (objective, dependencies, authority, expected evidence, acceptance criteria). An Agent cannot certify its own success. -2. **Semantic Collision Detection** — Shepherd detects incompatible behavioral/architectural claims between independently successful contracts, including conflicts Git textual merging cannot see. -3. **Speculative Conflict Resolution** — Shepherd forks competing reconciliation strategies into isolated execution Planes, executes and independently verifies each, and promotes only the objectively verified winner. - -Supporting primitives: Task Graph with Live Execution Timeline, Scoped Authority, Planes (Git-worktree-backed isolated worlds run through the existing container runtime), Shepherd Chat, Project Group Chat, and the Plane Tree. - -**The chain: Contract → Execute → Verify → Detect Collision → Fork Futures → Verify Futures → Promote Winner.** All of it real, all of it tested, all of it visible. - ---- - -# 2. Competition Alignment - -The Track 1 brief requires middleware that executes in a backend/Runtime/data/infrastructure path; a defined boundary with failure behavior; demonstrated normal and failure/denial/recovery cases; automated tests; reproducibility; no secrets; and preservation of the Starter Kit baseline (Agent CRUD, lifecycle, Playground, persistence, real model execution). - -| Criterion | Weight | Shepherd delivery | -|---|---:|---| -| End-to-end middleware behavior | 40% | Browser request → real contracts → real isolated Plane execution → real independent verification → real semantic collision evidence → real speculative resolution → protected promotion. Every link verified live and by automated test. | -| Technical design and integration | 25% | Inserted at existing Fastify / AgentService / AgentRunner / JSON-store seams; baseline untouched in behavior; typed domain; explicit trust boundaries. | -| Verification and robustness | 20% | Five mutation-checked kernel invariants; 19-category failure matrix implemented and tested; fail-closed everywhere; redaction verified. | -| Demo and reproducibility | 15% | One-command startup preserved; deterministic fixture; safe reset command; rehearsed 3-minute flow; complete README, architecture doc, and honest test report. | - ---- - -# 3. Product Positioning - -- **Name:** Shepherd: Multi-Agent Kernel -- **Pitch:** Shepherd converts Agent delegation into verifiable execution contracts, detects semantic conflicts between concurrently successful Agents, and resolves those conflicts by executing competing futures before promoting the verified winner. -- **Mental model for judges:** a transactional execution kernel for teams of coding Agents. The UI is mission control for the kernel — never pitch it as a dashboard. -- **Novelty claim:** not worktrees, task graphs, or chat individually — the causal composition **Execution Contract → Semantic Collision → Speculative Reconciliation → Verified Promotion**, integrated into this platform's real lifecycle. - ---- - -# 4. Goals and Non-Goals - -## 4.1 Goals (all required — no tiering) - -Shepherd must: - -1. Let one human coordinate multiple Agent instances through a single Shepherd control surface. -2. Turn assignments into durable typed Execution Contracts. -3. Run contract work in isolated Planes; Agents never directly mutate the protected project. -4. Enforce bounded Agent authority at the trusted control-plane boundary using actual diffs. -5. Independently verify contract outputs; Agent self-reports are informational only. -6. Represent each contract as a node in a live dependency graph with a scheduler. -7. Detect a real semantic conflict requiring no Git textual conflict. -8. Fork at least two distinct reconciliation strategies from the same immutable integration state. -9. Execute and independently evaluate the candidates concurrently. -10. Promote only when deterministic verification and safety checks pass; prefer no promotion over unjustified promotion. -11. Preserve failure evidence and stop safely (`attention_required`) when no candidate is objectively acceptable. -12. Support explicit `@Agent` routing in Project Group chat. -13. Provide a bounded model-assisted semantic reviewer **in addition to** the deterministic detector (never demo-critical; degrades explicitly on failure). -14. Support human selection when candidates are objectively tied. -15. Support Mission cancellation and bounded candidate retry. -16. Show estimated durations in the timeline, clearly labeled as estimates. -17. Expose everything through the UI specified in Section 11. -18. Preserve every Starter Kit baseline behavior. - -## 4.2 Non-Goals - -Production OAuth; multi-tenant identity; Kubernetes; distributed schedulers; multi-region; microVMs; general policy languages; rollback of external side effects; generic semantic-equivalence proofs; workflow editors; vector memory; marketplaces; Git hosting; general CI/CD; production RBAC; autonomous subagent hierarchies; agent social loops; cloud deployment for presentation value. Local Docker/Colima/Podman is the judging path. - ---- - -# 5. Executor Operating Directive - -Before changing code: clone/inspect the repository; read README and `docs/ARCHITECTURE.md`; run the baseline (`npm run poc`) and the full baseline acceptance test from the challenge brief (create agent → hello-world CLI task → follow-up → stop/restart → workspace persists); run `npm run check`; record any pre-existing failures in `docs/BUILD_LOG.md`. - -**Do not begin Shepherd work on a broken baseline.** If the baseline fails, apply the Problem-Resolution Protocol (0.2) to the environment first. - -During implementation: preserve baseline behavior; prefer focused changes; typed TypeScript throughout; validate all untrusted structured input with schemas; enforcement lives in backend/runtime/data paths; deterministic mechanisms preferred; document any material deviation from this PRD in `docs/DEVIATIONS.md` with rationale. - -Continuously: keep `docs/BUILD_LOG.md` current per the BVTE loop; commit in small, coherent, described commits; keep `npm run check` green at the end of every phase. - ---- - -# 6. Architecture Requirements - -## 6.1 Layers - -- **Experience Layer** — existing React app remains the shell; add Shepherd page, Project Group, event stream, timeline, Plane Tree, role/authority config (Section 11). Preserve Agent list, Create/Edit, lifecycle controls, legacy Playground, and existing visual design. -- **Existing Agent Control Plane** — `AgentService` keeps owning Agent CRUD, lifecycle, legacy Playground messages, legacy Runs. Do not turn it into Shepherd. -- **Shepherd Control Plane** — a dedicated `ShepherdService` (or equivalently factored modules) owning Missions, Contracts, the DAG, scheduling, Planes, authority, verification orchestration, claims, collisions, resolutions, winner policy, promotion, events, and interruption state. -- **Agent Runtime Boundary** — reuse `AgentRunner`/container runtime. Shepherd executes a logical Agent against a specific Plane workspace via a distinct **execution identity** (independent session, cancellation, and container per contract/candidate; candidates never resume a shared Codex thread). -- **Verification Boundary** — a separate verification runner: disposable container, candidate Plane mounted, **no Ark key, no Codex session directory, no network**, bounded CPU/memory/PID/time/output, destroyed after use. -- **Git / Plane Boundary** — the protected repository is controlled solely by Shepherd's Git manager. Agents work in worktrees. Only the trusted promotion path updates the protected branch. All Git operations are argv-based `execFile` with sanitized refs, bounded output, and timeouts. - -## 6.2 Trust boundaries - -Untrusted: browser input, model output, Agent-written files, result manifests, semantic-claim content, candidate code, code executed during verification, model-assisted analysis output. - -Trusted: schema validation, contract lifecycle transitions, authority intersection, Git/Plane control, actual changed-file inspection, verification interpretation, deterministic collision rule, deterministic winner policy, promotion, persistence transitions. - -Every trusted decision must be implemented server-side and covered by a test that attempts to subvert it from the untrusted side. - ---- - -# 7. Core Domain Model - -Type names may adapt to repository conventions; semantics are mandatory. All entities persist in the extended JSON store with a versioned migration; existing Agent/message/Run data must survive (verified by a migration test on a captured pre-migration fixture store). - -## 7.1 ShepherdProject -ID, display name, repository location, protected branch, current protected head commit, timestamps, active mutating Mission (nullable). One active project is sufficient; one **mutating Mission at a time** is enforced and tested. - -## 7.2 Mission -ID, project ID, original user intent, base commit, contract IDs, dependency edges, collision IDs, resolution IDs, state, timestamps, attention/failure reason. States: `planning, queued, running, verifying, collision, resolving, completed, failed, cancelled, attention_required`. Every transition emits an event; illegal transitions are rejected and tested. - -## 7.3 AgentRole -Optional persistent Agent metadata: `Frontend | Backend | Verification | Generalist`. Editable via Create/Edit Agent. - -## 7.4 ScopedAuthority -Durable per-Agent envelope over project filesystem scope: readable, writable, forbidden path patterns. Contract authority is intersected: **ContractAuthority ⊆ AgentAuthority** (tested with adversarial patterns). A resolution candidate may receive broader — but still explicit and bounded — authority spanning both original scopes. - -Path engine requirements (all negative-tested): normalization; rejection of traversal (`..`), absolute host paths, and null bytes; forbidden overrides writable; `.shepherd/**`, `.git/**`, and secret paths always protected; matching is deterministic and documented. - -## 7.5 ExecutionContract -contract ID, mission ID, Agent ID, title, objective, contextual inputs, dependency IDs, semantic scopes, authority scope, expected artifacts, acceptance specification (mandatory + optional checks), Plane ID, result-manifest location, lifecycle state, timestamps, error info. - -Lifecycle: `created → queued/blocked → running → agent_completed → authority_validation → verifying → verified` with explicit failure states at each step. **No path exists from `agent_completed` to `verified` that skips authority validation and independent verification** — enforced structurally and mutation-tested (0.3 invariant 1). - -## 7.6 ContractResultManifest (`.shepherd/result.json` inside the Plane) -schema version, contract ID, summary, changed/produced artifacts, semantic claims, evidence references, Agent-declared test outcomes (informational), notes. Schema-validated on ingestion; malformed/missing manifests are explicit failure states with preserved evidence. - -## 7.7 SemanticClaim -canonical key, value, scope, mode (at minimum `exclusive`), evidence references into real project artifacts. - -**Robustness requirement (demo-critical):** claim keys and values pass through a server-side normalization table (trim, lowercase, canonical aliases — e.g., `jwt`/`bearer`/`bearer-jwt` → `bearer-jwt`) so trivially different spellings of the same claim still collide. The contract prompt envelope additionally pre-declares the expected canonical claim key(s) for the contract, and Shepherd cross-checks manifest claims against the declared keys; a contract whose manifest omits its declared key enters `attention_required` rather than silently passing. Both behaviors are tested. - -Evidence validation before a claim may participate in a collision: referenced files exist inside the Plane; paths remain inside the project boundary; no secret/control-plane paths; bounded description length; where practical, confirmation that referenced files were changed by or are materially relevant to the contract. Invalid evidence → explicit rejected-claim state, never silent acceptance. - -## 7.8 Plane -Git branch + worktree + base commit + purpose + execution identity + authority envelope + persisted state + verification evidence. Kinds: `contract`, `integration`, `resolution`. Worktree lifecycle (create/inspect/diff/destroy) is wrapped in a tested `PlaneManager`; leaked worktrees are detected and cleaned by reset. - -## 7.9 SemanticCollision -collision ID, mission ID, semantic key/scope, left/right contract IDs, left/right claims, per-side evidence, human-readable reason, detection mechanism (`deterministic` | `model_assisted`), resolution strategy IDs, state, timestamps. - -## 7.10 ResolutionCandidate -candidate ID, collision ID, strategy description (exact canonical value it makes true), Plane ID, state, independent verification evidence, changed-file/diff summary, result, selection/rejection status, retry count. - -## 7.11 ShepherdEvent -timestamp, type, summary, actor, correlation IDs (mission/contract/agent/plane/collision/candidate), bounded safe details. Event types cover at minimum: mission created; contract created/blocked/started; agent completed; authority accepted/denied; verification started/passed/failed; claims loaded; claim rejected; collision detected; resolution started; candidate created/passed/failed/retried; candidate selected; tie escalated; promotion started/completed; mission completed/failed/cancelled; execution interrupted; model-review degraded. Events never contain secrets, raw prompts, or unbounded output (redaction tested). - ---- - -# 8. Kernel Behavior Requirements - -## 8.1 Contract creation -Contracts originate from: Shepherd chat Mission decomposition (constrained, reliable parser — if free-form planning proves unreliable during verification, the structured assignment path is the primary path and the planner degrades to suggesting a structured plan the user confirms); explicit `@Agent` assignment in Project Group; and the deterministic demo Mission definition. All three paths are implemented and E2E-tested. - -## 8.2 Contract prompt envelope -The runtime prompt for a Shepherd-managed execution contains: logical Agent identity and role; contract ID; exact objective; supplied context and dependency outputs; readable/writable/forbidden scope; expected outputs; the declared semantic claim key(s); the result-manifest schema and requirement to write it; instructions to make the smallest coherent change, not to claim unverified success, and not to modify `.shepherd/**` or other protected metadata. Never include Ark keys or control-plane secrets (asserted by a test that scans generated prompts against known secret values). - -## 8.3 Scheduler and Task Graph -Contracts form a DAG. A contract runs only when: mission active; dependencies satisfied; the Agent's execution identity is free; the project mutation lock permits; Plane concurrency limit not exceeded. Failed required dependencies block downstream contracts with a visible, evidenced `blocked` reason. Cycle detection rejects cyclic dependency definitions at creation. All scheduler rules unit-tested; concurrency verified with a real two-contract parallel run. - -## 8.4 Integration stage -When a compatible verified group exists: create an integration Plane from the Mission base; merge verified contract branches with argv Git; record textual conflicts if any (explicit `git_conflict` state — implemented and tested even though the demo avoids it); load manifests; run collision detection; freeze the integration commit as the immutable base for resolution. - -## 8.5 Deterministic collision rule (demo-critical) -A collision exists iff: same Mission; both contracts independently `verified`; both contain a claim with the same canonical (normalized) key; both marked `exclusive`; normalized values differ; both claims carry valid evidence; dependency semantics do not establish supersession. Exhaustively unit-tested including near-miss cases (same values, non-exclusive mode, invalid evidence, superseding dependency). - -## 8.6 Model-assisted semantic reviewer (required, never demo-critical) -A bounded structured model review compares objectives, manifests, claims, changed files, and diff summaries to flag equivalent keys with different naming or likely incompatibilities. Output is schema-validated; on any failure it produces an explicit `degraded_analysis` event — never a fake "safe". The deterministic detector alone must carry the live demo; a test verifies collision detection succeeds with the model reviewer disabled. - -## 8.7 Speculative resolution -On a validated collision: generate two explicit strategies (reconcile to left value; reconcile to right value — each states the exact canonical value it makes true); fork two resolution Planes from the same immutable integration commit (verified: identical base SHA, no shared mutable state, independent sessions); execute both through the real runtime, concurrently; independently verify each against the project acceptance criteria plus all relevant original contract criteria. - -## 8.8 Winner policy (deterministic, mutation-tested) -- Exactly one candidate passes all mandatory checks → select it. -- Both fail → select none; `attention_required`; evidence preserved. -- Both pass → apply predeclared objective tie-breakers only; if still tied → human selection UI (Goal 14); an LLM opinion is never the sole tie-breaker. -- Prefer no promotion over unjustified promotion. - -**No hard-coded winner:** a dedicated test modifies the fixture invariant so the opposite candidate passes and asserts the selection flips (0.3 invariant 4). - -## 8.9 Final promotion gate -Immediately before promotion: re-check candidate authority against actual diff; re-run mandatory acceptance checks; confirm protected branch head equals expected head (if moved → stop, preserve evidence, `attention_required`); confirm the selected candidate matches the persisted decision; promote via the trusted Git path only; persist the promotion event. The losing Plane remains inspectable. Every sub-check has a negative test. - -## 8.10 Independent verification runner -Disposable container; candidate Plane mounted; no Ark key; no Codex session dir; no network for the deterministic fixture; bounded CPU/memory/PID/time/stdout; clear exit code/duration; destroyed after use. A test asserts the verifier environment contains no secret variables and no network reachability (attempt an outbound request from inside; expect failure). All mandatory checks must pass for `verified`; optional checks add evidence only. - -## 8.11 Cancellation and retry -Mission cancellation stops scheduled/running work safely, cancels only the targeted execution identities, preserves evidence, and lands in `cancelled`. A failed candidate may retry once (bounded) with a fresh Plane from the same integration commit; retries are evidenced. Both are E2E-tested. - ---- - -# 9. Persistence, Events, and API - -## 9.1 Persistence -Extend the JSON store with a versioned migration; pre-existing data survives (fixture-based migration test). Mutations remain serialized/atomic at store level. Interrupted in-flight work never becomes `completed` after restart: startup reconciliation marks it `interrupted/attention_required` (tested by killing the server mid-Mission at multiple points and restarting). No secrets persisted (scanning test over the store after a full demo run). - -## 9.2 API (adapt names to Fastify conventions; all schema-validated; all covered by API tests) -Read: Shepherd state, Mission detail, event polling (since-cursor), Project Group messages, Plane/collision/candidate detail. Write: send Shepherd message / create Mission, send Project Group message, cancel Mission, human tie-break selection, demo reset (explicit dev/demo mode only). The browser can never submit arbitrary server filesystem paths (negative-tested). Reuse the starter's existing auth/demo-token boundary. Polling (~1s) preferred over WebSockets. - ---- - -# 10. Demo Fixture (deterministic, network-free) - -A tiny dependency-light authentication project using Node built-ins: - -- Frontend contract → bearer-JWT client auth; claim `auth.transport = bearer-jwt`. -- Backend contract → HttpOnly session-cookie auth; claim `auth.transport = http-only-session-cookie`. -- The contracts modify **different files**, so Git merges without textual conflict (asserted by a test). -- Each side passes its own local acceptance checks (asserted). -- A project-level security invariant (e.g., token/credential must not be readable by client script) objectively distinguishes the two reconciliation candidates. The verification result — not a strategy name — determines the winner; flipping the invariant flips the winner (8.8 test). -- No package installation or network during the fixture run; runtime image pre-built. - -**Demo reset command:** resets only Shepherd demo state; recreates the fixture repo at its known initial commit; removes stale demo worktrees/branches safely; never deletes arbitrary user paths (guard-tested with a hostile path config); leaves unrelated Launchpad data alone. - ---- - -# 11. UI/UX Specification (every item verified per 0.4) - -## 11.1 Sidebar -Retain the dark sidebar and `Create Agent` button. Above `YOUR AGENTS`, add in order: **SHEPHERD** → Shepherd; **GROUP CHAT** → Project Group; then existing Agent cards. - -## 11.2 Shepherd page — Left column: Execution Contract Stream -Real polled events with contract IDs, Agent names, timestamps, state pills, collision alerts, candidate results, promotion events, compact evidence expanders. Filters: All / Contracts / Verification / Collisions / Resolution. Shepherd message composer at the bottom. New events visible within ~1–1.5s of persistence (measured in an E2E test). - -## 11.3 Shepherd page — Right column top: Live Execution Timeline -Minimal Gantt: rows per Agent/contract; dependency order; queued/blocked/running/verifying segments; collision marker; candidate resolution segments; completed/failed states; actual start/end times; estimates clearly labeled "est.". Driven by real Mission/contract state only. - -## 11.4 Shepherd page — Right column bottom: Plane Tree -Renders real persisted Plane/Git lineage (main → contract Planes → collision → integration → Resolution A/B with verified/failed/selected/promoted badges). Hover/click details: purpose, branch, short base/head SHA, assigned Agent or strategy, changed-file count, diff summary, verification result, status. A test asserts the tree matches `git worktree list` / branch reality. - -## 11.5 Project Group, Agent page, Create/Edit -Project Group: human + Shepherd + Agents; unmentioned messages route to Shepherd; `@AgentName` creates/targets a contract; Shepherd posts lifecycle summaries; Agents post concise real completion summaries from their manifests. No uncontrolled agent chatter. Agent page: preserve legacy Playground; add current-contract badge, Plane link, role display. Create/Edit: role selector + authority presets with an advanced section; the demo never requires typing glob rules live. - -## 11.6 User journeys (each driven end-to-end in Playwright with screenshots at every stage) -1. Baseline journey: create Agent → Playground task → follow-up → stop/restart (regression). -2. Mission journey: submit Mission → contracts appear → Planes appear → both verify → integration → collision → resolution planes → winner → promotion → final state. -3. `@Agent` journey: targeted contract from Project Group. -4. Failure journey: contract with unauthorized change → authority denial visible with evidence. -5. Attention journey: both candidates fail → `attention_required` with preserved evidence. -6. Tie journey: objective tie → human selection UI → promotion of chosen candidate. -7. Cancellation journey: cancel mid-Mission → safe durable `cancelled` state. -8. Restart journey: kill server mid-Mission → restart → interrupted state visible, nothing falsely green. - -## 11.7 Visual Acceptance Checklist (applied to every screenshot in `docs/ui-review/`) -Cream/off-white surface, dark sidebar, purple primary accent, green success, red failure/collision; restrained borders/shadows; starter typography; consistent spacing rhythm; no neon/gradients/particles/3D/excess animation; no truncated or overlapping text at 1280×800; loading, empty, and error states styled (never raw/unstyled); state pills readable; long IDs truncated with full value on hover; the judge should recognize the starter kit immediately. Any checklist failure is a defect and enters the Problem-Resolution Protocol. - ---- - -# 12. Failure and Recovery Matrix (all implemented, all tested) - -Each category must produce a durable, visible, evidenced state — never a generic error, never a falsely green UI: - -Agent timeout; Agent runtime error; missing result manifest; malformed manifest; invalid semantic evidence; omitted declared claim key; unauthorized file change; failed independent acceptance; worktree creation failure; Git textual merge conflict; semantic collision; candidate timeout; single-candidate failure; all-candidate failure; objective tie; final re-verification failure; protected branch moved unexpectedly; verification infrastructure error; server restart mid-Mission; persistence error; UI polling interruption (UI reconnects and reconciles); model-reviewer failure (degraded state). - -For each: an automated test triggers the condition (fault injection where needed) and asserts the resulting state, event, and UI representation. `attention_required` is preferred over unsafe automatic recovery. - ---- - -# 13. Security Requirements - -- Never expose/persist: Ark API key, AK/SK, bearer tokens, Codex credentials, `.env` contents, unrelated host env values. A repository-wide and store-wide secret scan runs in CI/check and after the full demo run. -- Redact sensitive verification/log output before storing/displaying (tested with planted canary secrets that must not survive into events, store, or DOM). -- Semantic evidence may not reference secret/control-plane paths (negative-tested). -- No model-generated host shell execution; Git via argv `execFile`; acceptance commands run only inside the bounded disposable verifier. -- Sanitize branch names/IDs; bound all subprocess output and time. - ---- - -# 14. Performance and Demo-Time Targets (measured, not assumed) - -- Event persistence → UI visibility ≤ 1.5s (measured in E2E). -- Plane creation near-instant for the fixture (measured; log the number). -- Fixture verification completes in seconds (measured). -- Candidates execute concurrently (verified by overlapping timestamps). -- Zero network/package downloads during the fixture run (verified by the no-network verifier and a run log check). -- Collision → resolution → promotion well under two minutes; the full judge narrative fits comfortably in three (rehearsed and timed at least three times; timings recorded in the test report). - ---- - -# 15. Judge-Facing Demo Flow (the system must support this exact story) - -1. **Mission** — human asks Shepherd to implement the demo auth flow; two contracts appear, assigned to different Agents; Mission/contracts/Planes/timeline visible immediately. -2. **Independent work** — both Agents run in different Planes, make real changes, write manifests, pass local acceptance; both show locally verified. -3. **No Git conflict** — branches integrate textually clean; visibly explainable. -4. **Semantic collision** — `bearer-jwt` vs `http-only-session-cookie`; high-salience stream event; Plane Tree shows the integration point. -5. **Speculation** — two resolution Planes fork from the same commit; both visibly execute. -6. **Objective verification** — one candidate passes all mandatory checks; the other fails a real security/integration condition; evidence shown. -7. **Promotion** — deterministic selection, re-verification, head-consistency check, promotion; loser remains inspectable. -8. **Proof** — final protected state, green verification, event trail, and the legacy Agent page still works. - -Closing line: “Shepherd turns multi-Agent concurrency from a group chat into a controlled execution kernel: contract, detect, speculate, verify, promote.” - -Timing plan: 0:00–0:25 problem; 0:25–0:55 Mission + contracts; 0:55–1:20 independent verification; 1:20–1:40 no-Git-conflict → collision; 1:40–2:25 speculative candidates; 2:25–2:45 winner + promotion; 2:45–3:00 proof + summary. - ---- - -# 16. Implementation Plan (dependency order, with mandatory verification gates) - -Every phase ends with a **Gate**: the listed verifications performed and logged, phase tests green, `npm run check` green, and a build-log entry. Do not proceed through a failed gate. - -## Phase 0 — Baseline Lock -Run baseline + full acceptance flow + `npm run check`; record environment and pre-existing issues. -**Gate:** baseline evidence in build log; zero product changes. - -## Phase 1 — Walking Skeleton of the Hero Chain (fake agents, real kernel) -Before any live-model work, implement the entire kernel chain driven by deterministic fake agent executors that write real files/manifests into real worktrees: contracts → real Planes → real diff/authority checks → real verification containers → real collision detection → real candidate forking → real verification → real winner policy → real promotion into a real protected branch. -**Purpose:** the hero property is proven end to end with zero model variance before model integration multiplies risk. -**Gate:** an automated end-to-end kernel test passes using fake executors; the 8.8 winner-flip test passes; all five kernel invariants have their mutation checks recorded. - -## Phase 2 — Domain + Persistence Hardening -Full domain model, versioned migration, restart reconciliation, event stream. -**Gate:** migration test on captured fixture store; kill-and-restart tests at ≥3 mid-Mission points; secret-scan of store. - -## Phase 3 — Live Agent Runtime Integration -Replace fake executors with real Codex-in-container execution per Plane with distinct execution identities; prompt envelope; manifest ingestion; claim normalization + declared-key cross-check. -**Gate:** a real two-Agent Mission produces a real collision from real model executions at least twice consecutively; prompt secret-scan test; independent-session verification (candidates provably do not share threads). - -## Phase 4 — Scheduler, Integration Stage, Failure Matrix -DAG, concurrency, blocking, integration Plane, and every Section 12 category with fault-injection tests. -**Gate:** full failure-matrix suite green; parallel execution demonstrated with overlapping timestamps. - -## Phase 5 — Resolution Live + Cancellation/Retry/Tie -Live speculative resolution, concurrent candidates, retry, tie → human selection, cancellation. -**Gate:** journeys 5–7 (Section 11.6) pass headlessly; winner-flip test re-run against live path. - -## Phase 6 — API + UI Complete -All Section 11 surfaces on real data; polling; filters; Plane Tree from real Git state. -**Gate:** all eight Playwright journeys green with screenshots; Visual Acceptance Checklist applied to every screenshot; empty/loading/error states captured. - -## Phase 7 — Model-Assisted Reviewer + Group Chat polish -Bounded structured reviewer with degraded-state handling; `@Agent` routing; Agent summaries. -**Gate:** reviewer-disabled collision test still green; degraded-state test green. - -## Phase 8 — Demo Hardening -Reset command with hostile-path guard tests; pre-built image; timing measurements; three full timed rehearsals from a clean reset, including one on a machine/state other than the primary dev environment if available. -**Gate:** three consecutive clean full-demo runs logged with timings; reset-safety tests green. - -## Phase 9 — Feature Freeze + Post-Build Deliverables -No feature work past this point. Then, from the as-built system: - -- **A. `docs/SHEPHERD_ARCHITECTURE.md`** — Mermaid diagrams generated from real code: system/component view; Launchpad integration; labeled trust boundaries; browser→runtime flow; Mission/Contract lifecycle; Plane lifecycle; scheduling; collision path; resolution sequence; verification boundary; winner+promotion; persistence relationships; failure handling. One diagram explicitly optimized as the hackathon one-page diagram. Mermaid syntax validated with local tooling; regenerate if code changes later. -- **B. Final generated test suite** — after a testing-gap analysis of the as-built system, covering: starter regression; domain/state; persistence/migration; authority; path safety; task graph; Plane isolation; protected-branch invariants; contract execution; manifest validation; independent verification; claim validation; deterministic collision; candidate independence; winner policy; promotion; no-winner; interruption/restart; API; UI; fault injection; secret/redaction; reset safety; complete E2E demo flow. Run → inspect every failure → fix product defects (never weaken assertions) → rerun until stable → run the complete suite ≥5 consecutive times to detect flakiness → remove/fix flaky tests by root cause. Default suite requires no live Ark calls; a separate live-runtime smoke path covers what inherently needs it. -- **C. `docs/SHEPHERD_TEST_REPORT.md`** — exact commands, environment, categories, pass/fail, failure modes exercised, container/browser coverage, repeated-run results, known untested limitations with reasons, credential-requiring checks, final `npm run check` status, demo rehearsal timings. Nothing fabricated. -- **D. README update** — name, track, problem/rationale, one-sentence design, three primitives, architecture summary, setup, run commands, demo reset, exact demo steps, validation/test commands, links to A and C, security notes, honest limitations, future work. Preserve starter setup instructions. -- **E. Final audit** — no hard-coded winner; no static/fake evidence; no secrets in source/store/browser; no large stray artifacts; no broken starter behavior; no dead debug endpoints; no duplicate abandoned implementations; no stale docs; no failing tests; no reset hazards; no promotion bypass; no code change after reports without revalidation. - -**Gate:** all five deliverables exist, are consistent with the code, and the full suite + `npm run check` + one final clean demo run are green on the final commit. - ---- - -# 17. Definition of Done - -Complete only when **all** are true: - -**Baseline** — starter launches; Agent CRUD, legacy Playground, real execution, session continuity, workspace persistence all work; `npm run check` passes. - -**Kernel** — real Mission/contracts/Planes; real Agents execute in Planes; manifests required; authority checked against actual diffs; independent verification decides success; two locally-verified Agents expose a semantic collision with no textual Git conflict; evidence references real artifacts; two strategies fork from one immutable base; candidates execute and verify independently; no hard-coded winner (flip-test proven); failed/ambiguous resolution never promotes; winner re-verifies; head consistency checked; only the verified selected candidate reaches protected state. - -**UI** — all Section 11 surfaces exist on real data; collision, speculation, and promotion are visually obvious; all eight journeys pass; visual checklist clean. - -**Robustness** — every Section 12 category tested; interruption durable; unsafe scope cannot promote; secrets clean; reset safe; no falsely green UI; five kernel invariants mutation-checked. - -**Discipline** — `docs/BUILD_LOG.md` reflects the BVTE loop throughout; `docs/DEVIATIONS.md` lists any deviations with rationale; all Phase 9 deliverables complete and truthful. - -**Honest limitations to document** — one project / one mutating Mission; single-process JSON store; ordinary containers are not hardened multi-tenant isolation; semantic detection guarantees the implemented structured-claim protocol (normalized keys + declared-key cross-check), not universal program-semantic conflict detection; model-assisted analysis is best-effort; scoped authority guarantees unauthorized changes cannot be promoted, not that an Agent cannot physically write inside its disposable Plane; external side effects are outside the transaction model; candidate verification depends on declared acceptance-criteria quality; local PoC is the judging path. - ---- - -# 18. Final Executor Instruction - -Implement the complete chain — **Contract → Execute → Verify → Detect Collision → Fork Futures → Verify Futures → Promote Winner** — with the walking skeleton first, live integration second, and verification woven through every step per Section 0. Never mark anything done that you have not personally run and observed producing the specified output. Never fake, never weaken, never skip a gate. When blocked, reproduce, diagnose, fix the root cause, prove the fix, and log it. The finished system must be demonstrable from a clean reset, three times in a row, inside three minutes. diff --git a/docs/SHEPHERD.md b/docs/SHEPHERD.md deleted file mode 100644 index a94d34f..0000000 --- a/docs/SHEPHERD.md +++ /dev/null @@ -1,358 +0,0 @@ -# Shepherd: Multi-Agent Kernel - -This document describes Shepherd's as-built design and trust boundaries. - -For current implementation status, defects, confidence, pending tests, task IDs, -and agent workflow, use [`docs/TASKS.md`](TASKS.md). For run instructions, use -[`docs/LOCAL_POC.md`](LOCAL_POC.md). If a status statement here conflicts with the -task ledger, the task ledger wins. The product requirements remain authoritative in -[`docs/PRD.md`](PRD.md), while -[`docs/BUILD_LOG.md`](BUILD_LOG.md) is immutable historical evidence for the commit -and phase named in each entry. - -## Current release-readiness snapshot - -Protected `main` is currently `53f2529`, the merge of issue #96 / PR #97. Its -tested product commit was `223a5fe` and its final PR head was `14b69f2`. A clean -worktree on the exact merge passes the literal repository check, an enforced 80% -coverage gate, 48/48 functional browser flows across exact `1280x800` and -`1440x900` viewports, pinned Docker Terraform validation, dependency audit, and the -exact-tree zero-spend live Runtime preflight. Protected-main workflow run -`33396729636` also passes on the merge SHA. Exact commands, counts, coverage, -failures, and limitations are in -[`SHEPHERD_TEST_REPORT.md`](SHEPHERD_TEST_REPORT.md). - -The integration removes the previously documented macOS host-share blocker from the -live test harness by using a named state volume and a non-root controller that -builds the current tree. The external Ark inference itself has not been executed in -this audit because it sends repository-derived prompts and code to the configured -provider and requires separate informed approval in the execution environment. -Independent UI review (#45), independent security review (#89), and three complete -demo rehearsals also remain explicit evidence gaps; none is inferred from the local -or hosted integrated matrix. - -### Historical 2026-08-30 snapshot (retained) - -The estimates and candidate identities below record the earlier campaign state for -historical context. They are not the current release verdict; `TASKS.md` and the -test report above are authoritative. - -The canonical delivery branch is protected `main`. PR #53 promoted the verified -campaign through protected review at merge `5ccd0f1`; that exact merge passed the -post-integration repository gate recorded in `BUILD_LOG.md`. The latest product -feature in the campaign is PR #40 source `3d1a041`. The deterministic kernel, strict -persistence/API boundaries, live isolated Runtime adapter, Agent roles and scoped -authority, cancellation/retry/selection/reset controls, Project Group lifecycle -storage, and all six requested UI surfaces are implemented. - -Reviewed candidate PR #57 (`e1fe067`) improves the primary deterministic demo -without claiming protected-main integration: users create Frontend and Backend -Agents, opt each private chat into **Route through Shepherd**, and describe the two -incompatible transports in their own words. The exact bounded prompts become two -durable Execution Contract objectives and feed the existing verified -Plane/collision/resolution/promotion kernel. The former Shepherd Agent/transport -selectors are removed. Literal checks, the two-viewport browser journey, and -independent security/UI re-reviews pass; `TASKS.md` records the remaining integration -gate and keeps the separate Project Group journey open. - -Stacked candidate PR #59 extends that private-chat route beyond the fixed auth -phrasing. Shepherd is now the default for every Agent role, while a visible toggle -retains direct Playground chat. Incomplete requests are stored only as clarification -drafts; no executable entity exists until the user supplies a concrete change, -writable project-relative artifacts, and explicit `Acceptance:` evidence. Confirmed -requests run as one authority-bounded Contract through an isolated Plane, strict -manifest ingestion, independent verification, integration, final re-verification, -protected-head compare-and-swap promotion, and exact verified-artifact sync to the -Agent workspace. This does not claim free-form DAG decomposition or complete the -separate Project Group issue #41. - -This is a strong Track 1 proof of concept, not a full-PRD completion claim. Current -hackathon-submission completion is **82%**. The core middleware demonstration itself -is **90% demo-ready** because the primary deterministic journey is functional and -browser-verified; the remaining percentage is concentrated in Project Group's full -work path, one judge-visible denial, final live/stability/security gates, rehearsal, -and submission artifacts. The broader PRD intentionally retains additional work -after the hackathon cut. `TASKS.md` remains authoritative when status changes. -The 82% figure is a dependency- and rubric-weighted estimate of the required -hackathon work packages; it is not the raw ratio of audited full-PRD ledger rows. - -| Hackathon completion dimension | Weight | Evidence completion | Contribution | -|---|---:|---:|---:| -| Core trusted middleware and preserved starter behavior | 50% | 96% | 48% | -| Judge-visible normal, collision, human, and denial journeys | 20% | 80% | 16% | -| Integrated live, security, stability, performance, and rehearsal gates | 20% | 65% | 13% | -| Architecture, test report, README, and final evidence reconciliation | 10% | 50% | 5% | -| **Current minimum-cut completion** | **100%** | | **82%** | - -The evidence-completion values are rounded judgments against the acceptance gates -listed in `TASKS.md`; future updates must change the underlying gate evidence, not -just the percentage. - -### Implemented and demonstrable Track 1 features - -| Capability | Backend behavior and evidence | Current confidence | -|---|---|---:| -| Preserved starter platform | Agent create/edit/start/stop/delete, Playground messages, Runs, workspaces, session continuity, persistence, and local container execution remain functional. | 95% | -| One-command local PoC | The launcher reads `.env`, localizes Docker-default paths, builds the Runtime and application, performs mount/startup checks, and serves the authenticated local UI. | 95% | -| User-selected specialists | Reviewed candidate PR #57 lets a user prompt Frontend and Backend Agents separately in private chat. Server-side bounded transport parsing, restart-safe prompt records and serialized intake bind both exact prompts to one Mission; role, readiness, authority, idempotency and deletion races are revalidated before execution. | 98% candidate; integration pending | -| General private-chat Contract intake | PR #59 is integrated and makes Shepherd routing the default for all roles. Issue #81's integration-verified correction additionally fails closed on unsafe, ambiguous, negated, conditional, privileged, credential, external/network and destructive wording; it requires an exact project-only safety boundary, a direct quoted artifact, and literal acceptance evidence. Clarifications create no executable entity, unsafe intent remains sticky, and explicit replacement permits safe recovery. Confirmed work continues through scoped authority, isolated Git, strict manifests, independent verification, final CAS promotion and exact artifact sync. | 100% scoped deterministic integration | -| Execution Contracts | Shepherd persists and displays Agent, Mission, Plane, objective, dependencies, semantic scope/claims, contextual inputs, scoped authority, artifacts, acceptance profile/checks, manifest path, and timestamps. | 96% | -| Isolated Planes | Each Contract and candidate executes in its own Git worktree from a trusted immutable base; Agents receive Git-free authority-filtered exports rather than protected repository access. | 94% | -| Independent verification | Registry-owned, credential-free, no-network checks inspect the exact committed output. Agent-authored manifests cannot self-certify acceptance. | 95% | -| Semantic collision detection | Independently valid frontend cookie and backend bearer outputs yield an `auth.transport` collision even when ordinary Git integration is clean. | 98% | -| Competing resolution futures | Cookie and bearer Resolution Planes fork from the same immutable integration commit, execute independently, and must pass the same project invariant. | 96% | -| Evidence-derived promotion | Deterministic selection uses persisted verification evidence; the winner receives final authority inspection, independent re-verification, expected-HEAD comparison, and compare-and-swap promotion. The loser remains inspectable. | 95% | -| Human escalation | Disabled/non-unique automatic resolution produces durable `attention_required` evidence and an internal human-review ticket. Only independently passing candidates can be selected manually and promoted through the same gate. | 92% | -| Durable audit and recovery | Typed lifecycle events, redaction, request idempotency, serialized schema-validated persistence, cancellation/reset, restart classification, Plane cleanup, and representative crash recovery are implemented. | 93% | -| Bounded model assistance | `SHEPHERD_MODEL` may perform one validated advisory semantic review. It cannot verify, choose, execute arbitrary commands, or promote; deterministic logic remains authoritative and degrades explicitly when review fails. | 90% | -| Middleware observability UI | Contract stream, execution timeline, Plane tree, collision/candidate evidence, Project Group lifecycle, Settings, and private Agent chat expose real backend state rather than static success screens. | 90% | -| Automated assurance | Exact issue #81 integration evidence includes launcher 5/5, Server 842 passed plus two explicit live skips, Web 20/20, strict production/test type checks, both builds, and ten combined browser journeys across both required viewports. Independent UI/security review passed with no High/Medium finding. The separately attempted exact live Mission failed because the Agent result manifest was missing, so this evidence does not claim live end-to-end completion. | 98% deterministic; live gate open | - -Confidence is scoped to the recorded deterministic/local evidence. It is not a claim -that the open exact-head live, final security, stability, and rehearsal gates passed. - -### Pending but feasible before the end of today - -These are the minimum remaining submission items, not every optional PRD extension. -They are feasible today with three to four non-overlapping owners, prompt review, -stable CI, and a working live provider/Runtime. Exact ownership and acceptance gates -are in the linked issues and `TASKS.md`. - -| Work package | Required outcome | Estimate | -|---|---|---:| -| [Project Group journey #41](https://github.com/kyashp/shepherd/issues/41) | Bounded unmentioned Shepherd reply, click/type targeted Contract creation, verified manifest-derived Agent summary, and the full two-viewport E2E journey. | 2–4 h | -| [Failure matrix #42](https://github.com/kyashp/shepherd/issues/42) and [visible denial #43](https://github.com/kyashp/shepherd/issues/43) | Complete the demo-critical typed failure proofs, then visibly deny an unauthorized diff with retained evidence and no promotion. | 2–4 h | -| [Startup composition #44](https://github.com/kyashp/shepherd/issues/44) | Make automatic resolution and maximum Plane concurrency startup settings causally control `ShepherdService` while preserving later persisted choices. | 0.5–1 h | -| [UI gate #45](https://github.com/kyashp/shepherd/issues/45) and [performance #46](https://github.com/kyashp/shepherd/issues/46) | Verify—not redesign—all required surfaces/states at both viewports and record judge-path latency/overlap. | 2–3 h | -| [Live/host gate #47](https://github.com/kyashp/shepherd/issues/47) | One bounded exact-head live Shepherd Mission, legacy continuity, and presentation-host compatibility when applicable. | 1–2 h plus provider latency | -| [Stability #48](https://github.com/kyashp/shepherd/issues/48) and [security #49](https://github.com/kyashp/shepherd/issues/49) | Five consecutive literal gates, final trust-boundary/canary review, and causal fixes for any High/Medium finding. | 2–4 h plus fixes | -| [Demo rehearsal #50](https://github.com/kyashp/shepherd/issues/50) | Three clean reset-to-completion runs under three minutes with the normal and human/denial story. | 1–2 h | -| [Submission package #51](https://github.com/kyashp/shepherd/issues/51) | One-page architecture, exact test report, final README, reconciled docs, and dead/debug/artifact review. | 2–3 h | - -Serial execution is approximately **13–23 hours**. With dependency-aware parallel -work, the realistic elapsed estimate is **6–10 hours**, with **8–12 hours** reserved -for CI, live-provider, or integration corrections. This is feasible today but not -guaranteed; feature work must freeze early enough for security, stability, and three -actual rehearsals. - -Additional PRD work such as arbitrary dependency-wave scheduling, extended failure -journeys, duration estimates, mid-Mission restart UI reconciliation, and broader -retry/cancellation matrices is valuable but not required for the minimum Track 1 -submission cut. - -### Track 1 rubric assessment - -This grading uses the weights in `TECHJAM.md`, observed repository/browser evidence, -and the no-middleware starter behavior as the baseline. It is a dated internal -assessment, not an official judge score. - -| Track 1 category | Weight | Current score | Evidence and deductions | -|---|---:|---:|---| -| End-to-end middleware behavior | 40 | **34/40** | The complete deterministic Contract → Plane → verification → semantic collision → competing futures → re-verification → promotion/human-review path is real backend behavior and browser-visible. Deducted for unfinished full Project Group action/reply, judge-visible unauthorized denial, and current exact-head live Mission. | -| Technical design and integration | 25 | **23/25** | Strong trusted-kernel placement, typed contracts/state, authority intersection, Git/workspace isolation, credential-free verifier, deterministic model containment, persistence and CAS promotion. Deducted for fixed hero scheduling and startup-setting composition gap. | -| Verification and robustness | 20 | **18/20** | Large causal suite, strict types/builds, real Git/container boundaries, recovery/security tests, two-viewport journeys, independent reviews, hosted CI. Deducted until the final integrated security review and five consecutive stability runs pass. | -| Demo and reproducibility | 15 | **10/15** | One-command launcher, runbook, polished evidence UI, reset/manual selection, and verified browser hero exist. Deducted for missing three rehearsals, final live/host gate, architecture page, exact test report, and final README freeze. | -| **Weighted total** | **100** | **85/100** | Strong competitive prototype with concentrated, actionable submission gaps. | - -**Current confidence of winning: 74/100.** The solution is unusually deep and -defensible for Track 1: the Agent cannot self-certify, semantic conflicts are -resolved through evidence-backed parallel futures, and protected promotion is owned -by trusted middleware. Winning confidence is below the rubric score because judging -also depends on competitor quality, clarity, timing, and live-demo reliability. - -If issues #41–#51 pass exactly as written, projected rubric performance is -**92–95/100** and projected winning confidence is **84/100**. Novelty confidence is -**91/100**: the combination of typed Agent Contracts, independently verified -semantic claims, same-base competing resolution Planes, and final CAS promotion is -materially more distinctive than ordinary multi-Agent chat or task routing. - -## Accepted design contract - -Shepherd is a trusted execution kernel placed beside—not inside—the starter `AgentService`. - -```text -Human / UI - ↓ validated plan or trusted demo definition -Shepherd control plane - ↓ typed Execution Contracts -isolated contract Planes - ↓ actual-diff authority validation -credential-free independent verification - ↓ normalized, evidence-backed claims -deterministic collision detection - ↓ competing resolution Planes from one immutable SHA -credential-free independent candidate verification - ↓ deterministic winner policy or human tie decision -final re-verification + expected-HEAD promotion gate - ↓ -managed protected branch -``` - -### Model responsibilities - -- `ARK_MODEL` runs logical coding Agents in their isolated contract/candidate Plane. -- `SHEPHERD_MODEL` is reserved for bounded structured planning and best-effort semantic review. When configured, Mission orchestration calls the bounded reviewer once after verified Contract integration and before deterministic collision detection. -- Model output is always untrusted. It cannot certify verification, choose a winner by opinion, submit shell commands, mutate the protected branch, or bypass authority. -- Deterministic collision detection carries the demo-critical guarantee. Model-assisted review may raise advisory findings and emits an explicit degraded event on failure. - -The deterministic executor remains available as an explicit, labelled mode and proves -the kernel independently of model variance. In live mode, each Contract and resolution -candidate uses a fresh `ARK_MODEL` Codex turn. Historical Phase 3 opt-in evidence -records two live Missions, each containing two Contract and two candidate turns; see -the exact scoped entries in `BUILD_LOG.md`. This does not replace the open exact-head -continuity gate in `LIVE-01`. The composed -`SHEPHERD_MODEL` reviewer smoke made exactly one external request, completed with two -validated findings, and preserved the deterministic outcome. Adapter normalization -and reviewer authority containment are audited. The separate current live Shepherd -Mission and legacy-continuity gate remains open as `LIVE-01`. - -Recovery remains deterministic across the Phase 2 and Phase 3 boundaries. No LLM is -called during startup classification, evidence validation, interruption mapping, -cleanup, or trust adoption, and no model opinion can turn interrupted work green. - -### Deterministic responsibilities - -Trusted server code owns schemas, state transitions, scope intersection, actual Git-diff inspection, manifest ingestion, evidence validation, acceptance-profile lookup, no-network verification, collision predicates, candidate base equality, winner rules, final re-verification, protected-head comparison-and-swap, persistence, redaction, and event ordering. - -### Security boundary - -- Agents receive only generated execution identities and authority-filtered, Git-free - exports; they never receive a trusted linked Plane worktree or protected Git - metadata. -- A live Codex control process necessarily receives the scoped Ark credential and - bridge access to call the configured provider. Its generated shell policy inherits - no credential, and startup proves sandboxed spawned code cannot listen or connect. -- The verifier receives no model/API key, application token, Codex session, Docker socket, unrelated host environment, or network. -- In `container-volume` mode the control plane itself is given the container engine - socket, which is equivalent to control of the engine; the verifier boundary above - is unchanged. Every Agent and verifier mount becomes a subpath of one named - volume, containment is asserted against the canonical path so a symlink cannot - redirect it, and an escaping source throws instead of reverting to a bind mount. - Recorded as an accepted deviation in `docs/DEVIATIONS.md`. -- Browser and model inputs select trusted identifiers; neither can provide host paths or executable commands. -- `.shepherd/result.json` is the sole Agent-written control artifact exception and is never promoted. -- Unsafe or ambiguous outcomes stop in an evidenced non-green state. - -## Deterministic Mission flow (Phase 1) - -1. Shepherd creates or reuses only its sentinel-marked managed fixture repository and records the immutable protected-branch base SHA. -2. Two Contracts receive intersected Agent/Contract authority and separate trusted Git worktrees. Each executor receives a separate authority-filtered, Git-free export with an opaque execution identity; the executors run concurrently and write project files plus a result manifest. -3. Trusted code imports the export into its Plane only after rejecting unsafe file types/metadata and proving the actual imported diff stays within authority. It then validates the manifest, removes the control artifact, and creates a trusted commit. -4. The independent verifier materializes a fresh read-only snapshot of that exact commit and runs only registry-owned commands in disposable containers. Passing mandatory evidence—not the Agent report—moves each Contract to `verified`; independently observed project facts must also corroborate semantic claim values before collision detection. -5. A clean integration worktree merges both commits. Normalized exclusive claims for `auth.transport` conflict despite no textual Git conflict. -6. Cookie and bearer reconciliation Planes fork from the same integration SHA and execute concurrently. Project-level verification objectively distinguishes them. -7. The deterministic policy selects from persisted evidence. The chosen Plane is re-checked for authority, re-verified, compared with the persisted decision and expected protected HEAD, then promoted through one trusted compare-and-swap path. -8. The loser remains inspectable, every transition is persisted as a bounded event, and any unsafe/ambiguous result stops without promotion. - -The public API returns logical IDs, short Git evidence, and domain state, but strips host repository/worktree/workspace paths. The approved `.shepherd/result.json` relative control path may appear as declared evidence; it is not a host path and is absent from every promoted commit. - -## Live Plane execution (Phase 3) - -At startup, `auto` resolves to live only when the container Runtime and usable Ark -Agent configuration are both present. `live` is an explicit fail-closed request; -`deterministic` remains the stable no-model kernel/demo mode. The resolved mode is -reported by the application. - -Before accepting live work, Shepherd reconciles only exact installation-owned -Runtime containers and private artifacts, then runs a credential-free preflight. The -preflight requires `codex-cli 0.111.0`, a non-root read-only-root container, and the -inner `workspace-write` sandbox. Inside that sandbox it proves `/workspace` is -writable, `/codex-home` is not, and TCP listen/connect operations are denied. A failed -or partially cleaned preflight prevents startup. The issue #81 candidate also plants -a parent-only fake credential canary and scans readable process environments from -inside the real Codex sandbox; visibility fails startup with bounded -`credential_isolation_failed` evidence. - -For each Contract or resolution candidate: - -1. Trusted code creates a new authority-filtered, Git-free execution export and a - versioned bounded prompt envelope. -2. Shepherd creates a unique private `CODEX_HOME` below its sentinel-guarded root and - writes a minimal secret-free Codex config with a key-free shell environment. -3. A disposable container is created with only that export and private home mounted. - The prompt is absent from argv and is sent on standard input to - `codex exec --ephemeral --json --sandbox workspace-write - --skip-git-repo-check -C /workspace -` after attaching by immutable container ID. -4. Exactly one fresh thread-start event is required. No prior session is resumed or - shared. The raw thread ID is hashed, checked for reuse, discarded, and only the - SHA-256 fingerprint is persisted privately. -5. The ordinary trusted import, actual-diff authority, independent verification, - collision, candidate, re-verification, and protected-head CAS gates remain - authoritative. Candidate verification must also corroborate the implemented - semantic target against its persisted strategy. -6. The private home, execution export, and exact-owner container are removed on - success, failure, timeout, cancellation, and restart reconciliation. - -The Codex control process needs bridge networking to reach Ark. Model-authored shell -processes remain inside the preflight-proven inner sandbox. The acceptance verifier is -a different credential-free, session-free, no-network container and never relies on -the Agent's own report. - -## Durable recovery model (Phase 2) - -The JSON store is a single-server-per-data-root design. Within that process, mutations -are serialized and each publish is schema-validated, scrubbed, written through a -unique exclusive temporary file, synced, and atomically renamed. Running multiple -servers against one data root is unsupported and must be prevented operationally; it -is not presented as distributed durability. - -On startup Shepherd first validates its installation nonce/marker, managed-root and -project sentinels, canonical Agent workspaces, Plane roots, Git registration, protected -ref, checked-out branch, index, and worktree. It never selects a repository or Plane -from persisted path text. Any ambiguity is made durable and startup aborts rather than -silently adopting state. - -The only recoverable promotion gap is represented by a durable `promoting` Candidate -with passing promotion evidence linked to its verified resolution Plane. That evidence -must repeat exactly the candidate's trusted mandatory suite. The observed protected -HEAD must be that Plane's immutable HEAD and a descendant of the persisted expected -HEAD; the server-derived resolution branch/worktree must be registered, clean, and -exactly checked out. All other movement is untrusted and leaves the Project fenced for -explicit reset/recovery. - -Verifier cleanup uses a persisted installation nonce plus configured Runtime identity. -The separate establishment marker makes a missing nonce after first boot a hard error, -while a first upgrade can establish both records once. These files and all Shepherd -identity metadata are bounded regular files opened with no-follow and non-blocking -semantics. - -## Configuration - -Real secrets belong only in ignored `.env`. - -| Variable | Purpose | -| --- | --- | -| `ARK_API_KEY` | Credential for the configured OpenAI-compatible Responses API. | -| `ARK_MODEL` | Coding Agent model. | -| `SHEPHERD_MODEL` | Bounded planning/advisory-review model; defaults to `ARK_MODEL` when empty. When its configuration passes the adapter-aligned readiness gate, Mission orchestration injects one advisory review after verified Contract integration. | -| `ARK_BASE_URL` | Responses-compatible API root. | -| `APP_AUTH_TOKEN` | Optional shared bearer boundary for loopback-only development. Empty permits only loopback Host values, no cross-origin browser Origin, and CLI-style no-Origin loopback requests. A public bind fails startup without a 24+ non-placeholder URL-safe token. Any configured token is enforced on every protected `/api/` route with a length-checked constant-time comparison. | -| `PUBLIC_BIND_ADDR` | Optional explicit public listener address used by Compose/deployment profiles. It participates in the same fail-closed public-bind/token check as `HOST`; it cannot be used to publish a tokenless service. | -| `RUNTIME_PROVIDER` | Starter Agent runtime (`local-process` or `container`); Shepherd verification always uses its independent container boundary. | -| `CONTAINER_STATE_ROOT` | Optional. With `CONTAINER_STATE_VOLUME`, addresses every mounted state root as a subpath of one named volume instead of a host bind mount, so the Agent sandbox can govern its workspace on a host whose filesystem reaches the engine through a virtual machine. Required together; a half-configured pair fails at startup, and a source outside the root throws rather than falling back to a bind mount. | -| `CONTAINER_STATE_VOLUME` | Optional. Name of that volume. Mounts are emitted with `volume-nocopy=true`, without which the engine serves an empty subpath using the image's own `/workspace` ownership and the Runtime loses write access before the sandbox is applied. | -| `SHEPHERD_ROOT` | Sentinel-guarded managed fixture repositories and Plane worktrees; defaults below `APP_DATA_DIR`. | -| `SHEPHERD_CODEX_HOME_ROOT` | Sentinel-guarded parent for one private, ephemeral live-Plane `CODEX_HOME` per execution; must be inside `APP_DATA_DIR` and separate from shared Agent and managed Shepherd roots. | -| `SHEPHERD_EXECUTION_MODE` | `auto`, `live`, or `deterministic`. `auto` selects live only with usable Ark configuration plus the container Runtime; explicit live fails closed otherwise. | -| `SHEPHERD_DEMO_MODE` | Enables the fixed, path-free demo Mission and reset controls. | -| `SHEPHERD_AUTO_RESOLUTION` | Startup default for evidence-derived automatic selection, composed into `ShepherdService`. Seeds a pristine store only while the persisted value is still the factory default, so a later Settings update stays authoritative. | -| `SHEPHERD_DELETE_COMPLETED_PLANES` | Retention startup control. The current UI/service keeps completed Planes inspectable; final cleanup behavior remains subject to evidence-retention requirements. | -| `SHEPHERD_MAX_PARALLEL_PLANES` | Startup Plane-capacity setting, composed into `ShepherdService`. Minimum 2, matching the persisted schema, `updateSettings` and the API; defaults to the persisted default. Seeds a pristine store only while the persisted value is still the factory default, so a later Settings update stays authoritative. | -| `SHEPHERD_CONTRACT_TIMEOUT_MS` | Maximum contract execution duration. | -| `SHEPHERD_CANDIDATE_TIMEOUT_MS` | Maximum candidate execution duration. | -| `SHEPHERD_VERIFICATION_TIMEOUT_MS` | Maximum duration accepted by the independent verifier. | -| `SHEPHERD_VERIFIER_IMAGE` | Pre-built no-network verification image; defaults to `CONTAINER_RUNTIME_IMAGE`. | -| `CODEX_SANDBOX_MODE` | Must resolve to `workspace-write` for live Shepherd execution; startup preflight proves its filesystem and socket restrictions. | - -No configured secret value is documented, persisted into Shepherd state, sent to the verifier, or rendered in the browser. - -## Evidence and further documentation - -- `docs/BUILD_LOG.md` — executed commands and bounded observations. -- `docs/DEVIATIONS.md` — accepted clarifications and material deviations. -- `docs/TASKS.md` — authoritative current status, completion cut, tasks, and agent workflow. -- `docs/LOCAL_POC.md` — startup, troubleshooting, and exact manual demo runbook. -- `docs/TECHJAM.md` — Track 1 competition context, judging, and deliverables. -- `docs/ui-review/` — inspected UI evidence by viewport and journey. -- `docs/ARCHITECTURE.md` — integrated as-built component/trust-boundary diagram. -- `docs/SHEPHERD_TEST_REPORT.md` — exact candidate commands, failures, results, and limitations. diff --git a/docs/SHEPHERD_TEST_REPORT.md b/docs/SHEPHERD_TEST_REPORT.md deleted file mode 100644 index a4658dc..0000000 --- a/docs/SHEPHERD_TEST_REPORT.md +++ /dev/null @@ -1,102 +0,0 @@ -# Shepherd release test report - -**Observed:** 2026-08-31, Asia/Singapore - -**Protected-main base before remediation:** `f935fdb5581849f8377f20922e254c55d34e5de0` - -**Tested product commit:** `223a5fe00f977013d4bf5df6560016a1719c8d11` - -**Integrated merge:** `53f252935f63f4bef8a36f17432fecd0de824181` - -**Delivery:** [issue #96](https://github.com/kyashp/shepherd/issues/96) / -[merged PR #97](https://github.com/kyashp/shepherd/pull/97) - -This report records commands actually observed in a clean worktree on the exact -protected-main merge. It does not claim independent security/UI review, a paid -provider request, or a complete demo rehearsal. - -## Environment - -| Component | Observed version | -|---|---| -| macOS host | `26.5.2` / `arm64` | -| Node.js | `v26.5.0` | -| npm | `11.17.0` | -| Playwright | `1.62.1` | -| Docker client/server | `29.6.1` / `29.6.1` | -| Terraform validator | pinned `hashicorp/terraform:1.9.8` container | -| Volcengine provider | `volcengine/volcenginecc` `0.0.58` | - -## Final observed matrix - -| Gate | Result | Scope | -|---|---:|---| -| `npm run check` | Pass | root Node tests 26/26; Server 856 passed and 3 explicit opt-in skips; Web 20/20; strict production/test typechecks; Web and Server production builds | -| `npm run test:coverage` | Pass | Server: 86.15% statements, 80.05% branches, 91.46% functions, 88.03% lines. Browser: 88.40% statements, 80.00% branches, 87.35% functions, 92.37% lines. Every production source file is required; all four thresholds are 80%. | -| full Playwright matrix | Pass, 48/48 | 24 functional flows at both `1280x800` and `1440x900`, one worker, normal non-instrumented production build | -| `npm run test:terraform` | Pass | formats, initializes, and validates a disposable module copy with the pinned Terraform image; working tree is not populated with provider state | -| `npm run test:shepherd:live:preflight` | Pass | builds the exact merged Runtime and non-root controller images, uses a named state volume and engine socket, discovers exactly one live test, and cleans temporary resources; no model request | -| `npm audit --json` | Pass | 0 vulnerabilities | -| `git diff --check` and bounded secret scan | Pass | no whitespace error, tracked credential, state, or generated Terraform artifact found | -| hosted protected-main workflow | Pass | `Required checks` push run `33396729636` completed successfully on exact merge `53f2529` | - -The clean coverage run executes the complete Server suite first, then rebuilds the -Web app with browser instrumentation and runs 24 Chromium flows. It restores the -ordinary production build before exit. The browser release matrix was then run -separately at both required viewports, so the 48/48 result is not an -instrumentation-only observation. - -## Failures found and corrected - -The first exact-main browser matrix passed 34/38. The audit then reproduced and -fixed the underlying defects rather than weakening assertions: - -- Project Group could lose a fast typed character or move the caret because a - controlled input update raced the mention action. -- Agent edit could render before authority presets and Agent state had hydrated; - a rapid custom-authority toggle could then erase edited values. -- the accepted shell could acquire a one-pixel document scroll, and Settings icon - buttons lacked explicit accessible names. -- durable collections were unbounded and Agent creation could partially publish; - capacity now fails with a bounded `507` and creation is atomic. -- a tokenless server had no loopback Host/same-origin Origin boundary, and public - binds could start without a token. -- the live gate forced host bind mounts, did not build the exact working tree, and - could not cross the documented macOS Docker Desktop sandbox boundary. -- no executable coverage provider/threshold or reproducible Terraform validator - existed. -- runtime credentials could enter Terraform input, cloud-init, plan, and state. - -Causal regression coverage was added for each corrected behavior. The accepted UI -theme and layout were preserved. - -## Explicitly incomplete evidence - -- **External Ark inference:** not executed in this audit. The live command sends - repository-derived prompts and code to the configured Ark endpoint. The local - execution environment requires a separate informed approval for that data - transfer. The zero-spend exact-tree Docker preflight passes, so the earlier - host-share sandbox-probe blocker is no longer the current blocker. -- **Independent review:** issue #45's read-only UI review and issue #89's required - independent security review cannot be self-certified by the author of this - remediation. The deterministic UI and security regressions pass locally. -- **Rehearsal/delivery:** three clean timed demo rehearsals and any genuinely - available second-machine run remain separate evidence work. This report does not - infer them from automated tests. - -## Reproduction - -```bash -npm ci -npm run check -npm run test:coverage -PLAYWRIGHT_BROWSERS_PATH=/path/to/browser-cache \ - ./node_modules/.bin/playwright test --config=playwright.config.ts -npm run test:terraform -npm run test:shepherd:live:preflight -npm audit --json -``` - -The live provider gate is intentionally omitted from the default sequence. Run it -only with the documented opt-in, configured ignored environment file, bounded test -scope, and authorization to send repository-derived payloads externally. diff --git a/docs/TASKS.md b/docs/TASKS.md deleted file mode 100644 index db8b89d..0000000 --- a/docs/TASKS.md +++ /dev/null @@ -1,320 +0,0 @@ -# Shepherd Completion Task Ledger - -**Canonical implementation branch:** protected `main`. - -**Latest protected-main integration:** `53f2529` (PR #97), closing issue #96's -exact-main release-readiness remediation. The tested product head was `223a5fe`; the -final PR head was `14b69f2`. A clean post-integration worktree at the exact merge -passed the repository, coverage, browser, Terraform and zero-spend live-preflight -gates, and protected-main workflow run `33396729636` passed on that SHA. Independent -UI/security review, external Ark inference and demo rehearsals remain separate open -evidence. Exact observations are in `BUILD_LOG.md` and -`SHEPHERD_TEST_REPORT.md`. - -**Reconciled:** 2026-08-31, Asia/Singapore - -**Requirement authority:** [`PRD.md`](PRD.md) - -**Runbook:** [`LOCAL_POC.md`](LOCAL_POC.md) - -**As-built design:** [`SHEPHERD.md`](SHEPHERD.md) - -**Track 1 brief:** [`TECHJAM.md`](TECHJAM.md) - -**Reproduced defects:** [`FIXES.md`](FIXES.md) - -This is the canonical entry point and work queue for the protected-`main` completion -campaign. The PRD still defines the required scope; this ledger does not narrow it. -`DEVIATIONS.md` records interpretations and environment limits, `FIXES.md` records -reproduced defects, and `BUILD_LOG.md` preserves exact historical evidence. - -## Working contract - -- `READY` means an owner may begin now. `BLOCKED` names the dependency. - `HELD_EXTERNAL` means an open external PR/branch already owns the work and the - worker/fixer must not edit it. `AUDITED` requires independent end-to-end evidence - on the exact integrated `main` SHA. -- The worker implements the smallest coherent task, adds causal tests, records - exact evidence in `BUILD_LOG.md`, then updates completion confidence and test - counts. The auditor independently reruns the task and adjacent PRD flow before - setting `AUDITED`. The fixer takes only entries in `FIXES.md` and preserves the - named failure contract. -- No product task is complete at confidence below 100. Scoped 100 means every - listed acceptance gate for that row passed; it does not claim unknown defects are - impossible. -- Do not call a branch implementation integrated until its commit is an ancestor of - `origin/main` and the post-integration gate passes. -- Default tests are model/network-free. Use live Ark capacity only for the two - explicitly labelled sparse live gates. - -Before editing, follow the ownership workflow in the root `AGENTS.md`: check issues, -PRs, remote branches, and worktrees; claim one task; immediately push its narrow -branch; record owned files and exclusions; then open a linked draft PR when there is -a comparable commit. The integrator alone merges sibling work. True stacks must name -their parent and merge order. - -A task is ready only when its issue names the ID, PRD references, current and -expected behavior, acceptance gates, owned files, exclusions, dependencies, and test -plan. It is done only after the smallest coherent implementation, causal tests, -targeted and adjacent checks, the applicable `C/B/S/U/L` gates, independent review, -integration into `origin/main`, and an exact integrated rerun are recorded. - -Use this intake shape for a newly discovered defect: - -```text -TASKS/PRD ID; assessed commit; viewport/runtime; reproduction; -expected; actual; frequency; safety/data impact; redacted evidence; -proposed causal acceptance test; known ID or NEW -``` - -## Hackathon-ready completion cut - -All incomplete rows remain PRD work. The following subset is the minimum required to -call the repository presentation-ready; “additional” below means optional only for -the hackathon cut, not removed from the PRD. - -### Required before submission - -- **Exposed product flow ([issue #41](https://github.com/kyashp/shepherd/issues/41)):** - `GC-02/05`, `GC-03/04`, `GC-06`, and `E2E-03` so the - visible Project Group surface performs real bounded work rather than dead-end chat. -- **Truthful failure story:** `FM-01` - ([#42](https://github.com/kyashp/shepherd/issues/42)), then `UI-01` and `E2E-04` - ([#43](https://github.com/kyashp/shepherd/issues/43)), - denial journey, while preserving every broader failure row for full PRD follow-up. -- **Advertised controls ([issue #44](https://github.com/kyashp/shepherd/issues/44)):** - `ST-01`; settings shown in the demo must causally compose. -- **Baseline Agent lifecycle ([issue #66](https://github.com/kyashp/shepherd/issues/66)):** - integrate `CRUD-01` so an abandoned clarification draft does not permanently - trap its Agent while durable Shepherd evidence remains protected. -- **Judge evidence:** `UI-GATE` ([#45](https://github.com/kyashp/shepherd/issues/45)), - `PERF-01` ([#46](https://github.com/kyashp/shepherd/issues/46)), the remaining - `OPS-06` host gate ([#47](https://github.com/kyashp/shepherd/issues/47)) and - `LIVE-01` ([#65](https://github.com/kyashp/shepherd/issues/65), split out of #47 - because it cannot run on the affected host), - `STABILITY` ([#48](https://github.com/kyashp/shepherd/issues/48)), `SEC-REVIEW` - parts 4-5 ([#89](https://github.com/kyashp/shepherd/issues/89), successor to the - closed [#49](https://github.com/kyashp/shepherd/issues/49)), and `DEMO-REHEARSAL` - ([#50](https://github.com/kyashp/shepherd/issues/50)). `OPS-06` also requires a - passing rerun on the actual presentation - host when that host is the affected macOS environment. -- **Submission package ([issue #51](https://github.com/kyashp/shepherd/issues/51)):** - `DEL-01`–`DEL-05`, including the one-page architecture, - exact test report, final README, reconciled documents, and final cleanup review. - -### Additional full-PRD work after the hackathon cut - -- `F-07/08`, `F-09`, the remaining `FM-01` failure variants, and `E2E-05`–`E2E-08`. -- `SCH-02` and `SCH-01` for arbitrary validated DAG waves beyond the fixed hero flow. -- `UI-02` for trusted duration estimates distinct from actual timing. -- A second-machine rehearsal when it is genuinely available and is not the selected - presentation host. - -## Requirement and code navigation - -| Need | Start here | -|---|---| -| Workflow, status, and evidence discipline | PRD 0; this working contract; `BUILD_LOG.md` | -| Goals, architecture, domain, kernel, API, persistence | PRD 4–10; `SHEPHERD.md`; P0 rows below | -| UI surfaces and journeys | PRD 11; required-product and P1 rows; `UI.jpeg` | -| Failures and recovery | PRD 12; failure/recovery rows; `FIXES.md`; `DEVIATIONS.md` | -| Security | PRD 13; `SEC-REVIEW`; `SECURITY.md` | -| Performance and judge flow | PRD 14–15; `PERF-01`; `DEMO-REHEARSAL`; `LOCAL_POC.md` | -| Final gates and deliverables | PRD 16–17; `STABILITY`, `LIVE-01`, and `DEL-01`–`DEL-05` | - -Primary implementation areas: - -- Mission scheduling/state/resolution/promotion: `apps/server/src/shepherd/{service,state-machine,scheduler,resolution,promotion-gate}.ts` -- Runtime, manifest, authority, and verification boundaries: - `apps/server/src/shepherd/{codex-executor,prompt,manifest,authority,verifier,model-reviewer}.ts` -- Git/demo/recovery: `apps/server/src/shepherd/{git-client,plane-manager,demo-project,recovery}.ts` -- Persistence/API/composition: `apps/server/src/{database-schema,database,store,agent-service,app,index,config}.ts` -- UI: `apps/web/src/{App,Shell,api,types,shepherd-hooks}.ts` and - `apps/web/src/pages/`; shared styling is `apps/web/src/styles.css`. - -## UI freeze - -The current UI theme and layout are accepted. Preserve the charcoal sidebar, -cream/off-white surfaces, restrained purple accent, green/red semantic colors, -typography, spacing, borders, and interaction patterns. UI edits are allowed only -to add required clarity/data or fix causal behavior. Reuse existing components and -CSS. Do not redesign. Every material UI correction must be browser-checked at -`1280x800` and `1440x900` against [`UI.jpeg`](UI.jpeg), with no document-level X/Y -scrolling. - -## Baseline at this snapshot - -| Check | Observed result | Verdict | -|---|---|---| -| Environment | Node `26.5.0`; npm `11.17.0`; Playwright `1.62.1`; Docker client/server `29.6.1` | Recorded on merge `53f2529` | -| Workspace typecheck | Both server and web passed during `npm run check` | Pass | -| Root script/deploy tests | 26/26 passed | Pass | -| Server suite | Merge `53f2529`: 856 passed, 3 explicit opt-in skips | Pass integrated | -| Web unit suite | 20/20 passed | Pass integrated | -| Persistence/recovery closeout | `TST-23` 20/20; `TST-24` 30/30; Store 70/70; combined boundary 133/133 | Pass | -| Production build | Web and server production builds passed | Pass | -| Coverage | Server 86.15/80.05/91.46/88.03%; browser 88.40/80.00/87.35/92.37% (statements/branches/functions/lines) | Pass integrated; all four metrics >=80% and every production file required | -| Dependency audit | `npm audit --json`: 0 vulnerabilities | Pass | -| Script syntax | `bash -n` launcher and Node launcher syntax passed | Pass | -| Full browser matrix | 48/48: 24 functional flows at both `1280x800` and `1440x900` | Pass integrated; independent `U` remains | -| Terraform | Pinned Terraform `1.9.8` plus Volcengine provider `0.0.58` initialized and validated a disposable copy | Pass integrated | -| Live Runtime preflight | Exact-tree Runtime/controller build, non-root controller, named volume/socket, one test discovered, cleanup | Pass integrated; zero model requests | -| Hosted protected-main gate | `Required checks` push run `33396729636` passed on merge `53f2529` | Pass integrated | -| External live/model gate | Requires explicit informed approval to send repository-derived prompts/code to configured Ark | Not run | - -No model request was made during the issue #96 release audit. Earlier bounded live -evidence remains attached to its exact task rows; it is not generalized to the open -external portion of `LIVE-01`. - -## Integration and external ownership holds — do not assign - -| ID | PRD | Status / owner | Current external work | Integration requirement | -|---|---|---|---|---| -| `MR-03` | 8.6, 12 | **AUDITED** at `35ec268` | Invalid findings are dropped individually with bounded count while valid peers survive; all-invalid degrades. Auditor passed MR matrix 165/165, TST-08 stress, full harness/check/security, exactly one external reviewer request (`completed findings=2`), deterministic outcome/advisory assertions, cleanup, and hosted run `33270168480`. | **100% scoped**; `T,A,C,S,L,I` 6/6; audited | - -No product-code workstream is externally held. `MR-01` is integrated and -independently audited for its full bounded reviewer scope after MR-03 and the sparse live gate. -Historical -`feature/shepherd-phase-*`, merged startup/reset/UI branches, and remote branches -without an open issue/PR are not active ownership claims. - -## Acceptance gate codes - -| Gate | Required evidence | -|---|---| -| `T` | Causal targeted test(s), including the original RED reproduction where applicable. | -| `A` | Adjacent service/API/persistence/recovery tests. | -| `C` | Literal `npm run check` passes without weakened assertions or hidden worker overrides. | -| `B` | Real Playwright/DOM journey at both required viewports with screenshots and intermediate states. | -| `S` | Secret/store/API/DOM scan and read-only security review where trust boundaries change. | -| `U` | Read-only UI review after rendered evidence; all high/medium findings resolved. | -| `L` | Explicit opt-in sparse live Runtime/model smoke; credentials and raw prompts remain undisclosed. | -| `I` | Integrated `origin/main` SHA rerun by the auditor, with task row and build log updated. | - -## P0 — restore a trustworthy green baseline - -| ID | PRD ref | Status / owner / dependencies | Evidence and required acceptance | Confidence; gates passed; audit | -|---|---|---|---|---| -| `TST-02` | 0.2, 16 Phase 9B, 17 | **AUDITED** at integrated implementation `0cb431a`; test fixture only | Worker and Auditor reproduced the fixed-clock cause. Auditor verified candidate and integrated trees: isolated test 1/1, full recovery 17/17, literal `npm run check` with launcher 3/3, server 555/555 plus one opt-in skip, and both production builds. Exact diff is one test clock injection plus evidence docs; production/UI/security files and lifecycle validation are unchanged. | **100% scoped**; `T,A,C,I` passed (4/4); audited | -| `TST-03` | 0.2, 12, 16 Phase 9B, 17 | **AUDITED** at integrated implementation `0b1c401`; test fixture only | Hosted RED run `33261198788` and a controlled pre-verifier hold proved the scheduling race. The two-arrival barrier, early rejection observer, and unconditional release/join preserve the typed failure and durable reload/late-return/no-promotion assertions. Auditor independently passed both rows 40/40, the service/container-verifier slice 43/43, strict test typecheck, the literal local gate (launcher 3/3, server 563/563 plus one opt-in skip, both builds), and integrated focused 2/2. Hosted Node 22 run `33262227553` passed the final implementation gate. No timeout, sleep/retry, assertion weakening, rejection suppression, or product/UI change. | **100% scoped**; `T,C,I` passed (3/3); audited | -| `TST-04` | 0.2, 12, 16 Phase 9B, 17 | **AUDITED** at integrated implementation `00c81ae`; test fixture only | Preserved full-suite RED: `afterEach -> makeDeletable -> readdir` received `ENOENT` beneath a sibling `.trusted-verification/verify-*/src`. The correction records the exact blocked backend snapshot, proves Mission rejection precedes its removal, arms an exact-basename watcher before release, requires `lstat -> ENOENT`, and unconditionally joins Mission/sibling/removal before teardown. Auditor independently passed the exact row 20/20, service/container-verifier slice 43/43, strict test typecheck, literal `npm run check` twice (563/563 plus one opt-in skip and both builds), and integrated focused 1/1. Hosted Node 22 run `33263688794` passed. No cleanup suppression, sleep/retry/timeout increase, assertion/sentinel/path/symlink weakening, or product/UI change. | **100% scoped**; `T,A,C,I` passed (4/4); audited | -| `TST-08` | 0.2, 12, 16 Phase 9B, 17 | **AUDITED** at `35ec268`; test fixture only | Exact returned row passed 20/20 and paired infrastructure rows 40/40 independently. The exact contained snapshot is joined through removal without cleanup suppression, timing inflation, assertion weakening or product change; full/hosted gates passed. | **100% scoped**; `T,C,S,I` 4/4; audited | -| `TST-09` | 0.2, 16 live gate, 17 | **AUDITED** at `35ec268`; test-only env clone | Only reviewer-test `HOST` is cloned to loopback; real provider configuration, predicate/filter and fatal handling remain. Config 27/27, MR 165/165, full/security/hosted passed. Command attempt two made external request 1/1 and completed with two bounded findings; no retry/artifact/root leak. | **100% scoped**; `T,C,S,L,I` 5/5; audited | -| `TST-07` | 0.2, 16 Phase 9B, 17 | **AUDITED** at integrated implementation `de3e631`; test packaging only | Exact TS6142/TS6059 RED was preserved. The complete eight-case file moved from Server to Web; explicit Web Vitest and strict test-source configs/scripts make both workspaces execute and typecheck under the root gate. Auditor independently passed focused Web 8/8, full Web 9/9, adjacent Server routing 10/10, both strict test projects, lock-backed clean install with zero vulnerabilities, literal `npm run check` (launcher 3/3, Server 563/563 plus one opt-in skip, Web 9/9 and both builds), and hosted Node 22 run `33266624301`. Server JSX/rootDir, product code and assertions are unchanged. | **100% scoped**; `T,C,I` passed (3/3); audited | - -## P0 — failure and recovery correctness - -| ID | PRD ref | Status / owner / dependencies | Evidence and required acceptance | Confidence; gates passed; audit | -|---|---|---|---|---| -| `F-01/02` | 12: Agent timeout/runtime | **AUDITED** at `83cc1d0` | Typed timeout/execution identity, fixed public messages, complete cleanup precedence and the executor filesystem/config boundary pass durable Contract/candidate/API/store/reload/log and no-promotion checks. No model/UI call was required. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-13` | 0.3, 12, 13 | **AUDITED** at `83cc1d0` | The closed runner→executor→durable/public boundary rejects parsed output, stderr, container, hostile typed, secret and path diagnostics while preserving fixed execution/validated timeout identity. | **100% scoped**; `T,C,S,I` 4/4; audited | -| `TST-14` | 0.3, 12, 13 | **AUDITED** at `83cc1d0` | Execution-home cleanup preserves cancellation/timeout/execution primary outcomes; cleanup-only is fixed typed failure, exact retained-home retry succeeds, and public/durable surfaces remain bounded. | **100% scoped**; `T,C,S,I` 4/4; audited | -| `TST-15` | 0.3, 6.1, 12, 13 | **AUDITED** at `83cc1d0` | Sentinel and reconciliation open/handle/unlink/rm edges are cause-free and bounded with exact same-process retry. Restart with an invalid retained sentinel remains a documented Low fail-closed/manual-cleanup availability residual. | **100% scoped**; `T,C,S,I` 4/4; audited | -| `TST-16` | 0.3, 6.1, 12, 13 | **AUDITED** at `83cc1d0` | All 47 executor-owned filesystem/config expressions were manually inventoried; the 31-row injected matrix plus Contract/candidate public/durable proof passed. Independent security review found no High/Medium issue. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `F-03` | 12: verifier infrastructure | **AUDITED** at integrated implementation `dc87553` | Preserved REDs cover thrown diagnostics, returned mandatory `infrastructure_error` misclassification, sequential-check cancellation, and reserved create→start/repeated-cancel ID poisoning. The integrated correction atomically terminalizes the batch for thrown or returned mandatory infrastructure failure, preserves ordinary acceptance failure, releases ownership, blocks late invocation/integration, and makes exact-target cancellation sticky with bounded cleanup/reuse. Auditor independently passed the corrected regressions 8/8, adjacent service/API/recovery/store/state-machine/verifier coverage 185/185, and the literal integrated gate with launcher 3/3 plus server 563/563 and one opt-in live skip; both builds passed. Durable reload/no-promotion, exact target isolation, same-ID cleanup, bounded public/store output, and unchanged UI/workflow/dependency scope were inspected. | **100% scoped**; `T,A,C,S,I` passed (5/5); audited | -| `F-04` | 12: worktree creation | **AUDITED** at `2cef988` | First/second initial Plane creation failures persist bounded owning Contract/Mission evidence. Successful unwind removes only current-batch durable/physical resources; cleanup failure retains truthful failed Plane/interrupted Contract evidence under attention without masking the primary failure. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-17` | 0.3, 6.1, 12 | **AUDITED** at `2cef988` | Second-of-two failure leaves zero durable/physical batch Planes, planeIds, worktrees or branches. Cleanup double-fault retains bounded exact recovery evidence, releases Agents, preserves active-project attention invariant and protected HEAD, and emits no raw cause or false cleanup claim. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `F-05` | 8.4, 12: Git conflict | **AUDITED** at `f8d7f71`; final stability restored by `cdcfa95` | Real conflict, cleanup attention, pre-merge identity and reset contracts passed local, security and both hosted gates. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-18` | 0.3, 8.4, 12 | **AUDITED** at `f8d7f71` | Mandatory abort and truthful bounded cleanup evidence pass. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-19` | 0.3, 8.4, 12 | **AUDITED** at `f8d7f71` | Five pre-mutation identity mismatch rows preserve all target/source state. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-20` | 0.2, 12, 16 Phase 9B, 17 | **AUDITED** at `cdcfa95`; test-only | Immediate rejection observation, unconditional release, exact backend lifecycle join and queued store sentinel prevent teardown with pending persistence while preserving fail-fast and durable assertions. | **100% scoped**; `T,C,I` 3/3; audited | -| `F-06` | 9.1, 12: persistence error | **AUDITED** at `7d51ec6` with TST-21–24 | Representative running→verifying recovery uses exact-byte digest and bounded journal; uncommitted/ambiguous writes reconcile once, pending recovery locks unrelated mutations/events, and no downstream promotion occurs. Crash-safe temp authority and deterministic fixture joins passed local, security and hosted gates. No arbitrary-mutation recovery is claimed. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-21` | 0.3, 9.1, 12, 13 | **AUDITED** at `7d51ec6` | Journal read faults are fixed/cause-free; database/journal double faults converge without raw detail or unrelated deletion. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-22` | 0.3, 9.1, 12, 13 | **AUDITED** at `7d51ec6` | Owner-validated `0700` private namespace plus pre-published fixed-schema marker makes tested publication/removal prefixes idempotent across same-instance and two restarts. Store 70/70, combined 133/133, security 0 High/Medium and hosted `33286090602` passed. | **100% scoped**; `T,A,C,S,I` 5/5; audited | -| `TST-23` | 0.2, 9.1, 12, 16 Phase 9B | **AUDITED** at `7d51ec6`; test-only | A no-op original-Store sentinel joins Plane-unwind persistence before reload/teardown; Auditor passed 20/20 without late work. | **100% scoped**; `T,C,I` 3/3; audited | -| `TST-24` | 0.2, 9.1, 12, 16 Phase 9B | **AUDITED** at `7d51ec6`; test-only | Exact intent clearance plus a no-op original-Store sentinel joins reconciliation before durable evidence/teardown; Auditor passed 30/30. | **100% scoped**; `T,C,I` 3/3; audited | -| `F-07/08` | 8.11, 12: candidate timeout/retry | `READY`; Worker | Timeout mapping is inconsistent and retry eligibility is too broad. Retry only typed transient failures, exactly once, from the immutable base; cover second failure/no second retry; `T,A,C,I`. | **55%**; 0/4; not audited | -| `F-09` | 8.11, 12: repeated cancellation | `READY`; Worker | Promotion race coverage exists; explicit repeated service/API cancellation idempotence is absent. Preserve evidence and exact cancellation identities; `T,A,C,I`. | **70%**; 0/4; not audited | -| `FM-01` | 7.6–7.7, 8.9, 12 | **AUDITED FOLLOW-UP CANDIDATE** at `471f5e8` on [PR #74](https://github.com/kyashp/shepherd/pull/74), after [PR #72](https://github.com/kyashp/shepherd/pull/72) merged as `2e40581`; [issue #42](https://github.com/kyashp/shepherd/issues/42) | The merged six-case matrix preserves exact bounded Mission/Contract-or-Candidate/Plane/event evidence through service, API and reload, plus stored and actual Git protected-head immutability. Integrated scoped coverage passed 187/187 and literal `npm run check` passed launcher 3/3, Server 808/808 plus three skips, Web 19/19, all types and builds. Independent audit then found final re-verification asserted only `promotion_started`, not its causal attention event. Follow-up RED was 5 pass/1 fail; `471f5e8` adds fixed event code/stage and exact durable/API transition assertions, passes matrix 6/6, adjacent 187/187, the same literal gate, and independent fix-round audit with no remaining blocker. UI remains E2E scope. | **99% scoped**; `T,A,C` passed (3/4), `I` pending PR #74 integration; independently reviewed | - -## P0 — required composed product behavior - -| ID | PRD ref | Status / owner / dependencies | Evidence and required acceptance | Confidence; gates passed; audit | -|---|---|---|---|---| -| `CRUD-01` | 4.1.2, 11.1, Track 1 Agent CRUD | **REVIEWED CANDIDATE** at `171089b` on [PR #67](https://github.com/kyashp/shepherd/pull/67), [issue #66](https://github.com/kyashp/shepherd/issues/66) | The reproduced delete conflict classified unbound `general-contract` clarification drafts as durable history. The candidate permits only exact inactive `agent-` Projects whose references are human-authored, unbound clarification messages; Contracts, events, Missions, Planes, other messages, and malformed/orphaned state still return the specific 409. Exact Project and workspace cleanup is identity-validated and journaled across the database boundary. Injected pre-publication and post-rename durability-unknown failures converge on restart from on-disk Agent/Project state; racing Shepherd follow-up and direct-run requests cannot strand journals or launch work after deletion reserves the lifecycle, and an active run is cancelled/joined before success. RED plus four security counterexamples became green; lifecycle/project 29/29, adjacent API/Shepherd 77/77, literal check (launcher 3/3, Server 791 passed + two opt-in skips, Web 18/18, strict types/builds), and authenticated Chromium 2/2 at 1280x800 and 1440x900 pass. Independent UI and final security reviews passed with no High/Medium finding; no Web/CSS delta. Two documented Low same-host/power-loss residuals remain. Protected-main integration rerun remains. `T,A,C,B,S,U,I`. | **98% scoped**; `T,A,C,B,S,U` passed (6/7), `I` pending; not audited | -| `GC-01` | 4.1.12, 11.5–11.6.3 | **AUDITED** at merge/fix `de3e631`; source `main` `662a7e7` | Parser-safe buttons preserve the draft and exact Agent routing for simple, spaced, escaped quote/backslash, Unicode, NFKC and unsafe-name ID-fallback cases. Auditor passed focused Web 8/8, full Web 9/9, Server routing 10/10, clean install/audit, both strict test typechecks, and a real-browser 2/2 protocol at 1280x800 and 1440x900 covering mouse/Tab/Enter/Space, focus-visible, caret, multiline draft, exact 2,000/2,001 boundaries, in-flight disable/no duplicate, parser ID round-trip, no document/body X/Y overflow, and no private output. Full harness passed unit 6/6 plus Chromium 6/6; literal check passed launcher 3/3, Server 563/563 plus one opt-in skip, Web 9/9 and both builds; hosted Node 22 run `33266624301` passed. Independent UI fallback found no GC-01 theme or accessibility regression; the accepted internally scrollable page requires scrolling the composer into view when the runtime banner is present, and disabled-button visual distinction remains a Low `UI-GATE` review item. This row does not claim `GC-03/04` lifecycle behavior. | **100% scoped**; `T,A,C,B,U,I` passed (6/6); audited | -| `ST-02` | 11.5, 12 | **AUDITED** at integrated merge `d5df930` | PR #13 was merged to `main` as `d27dea6` and then merged into `mock-main` without product-code conflict. Notifications remain deliberately undelivered; the Settings surface now labels the capability **Unavailable** and every preserved preference **Reserved**, with three native disabled controls. Auditor passed focused rendering 1/1, web type/build, two-viewport real-browser semantics/no-PATCH/no-overflow, full harness unit 2/2 plus Chromium 4/4, and literal `npm run check` with launcher 3/3, server 563/563 plus one opt-in skip, strict typechecks and both builds. Independent rendered fallback review returned READY/no scoped findings; the configured `ui-reviewer` role was unavailable. No notification integration, public API/schema, persistence, or theme change. | **100% scoped**; `T,C,B,U,I` passed (5/5); audited | -| `MR-01` | 4.1.13, 8.6, 12 | **AUDITED** through `35ec268` | Bounded reviewer consumes trusted verified summaries/refs, validates output, remains advisory-only, degrades truthfully and cannot alter deterministic authority. Provider-free, MR-03 partial, browser/security, one-request live and hosted gates passed. | **100% scoped**; `T,A,C,B,S,U,L,I` 8/8; audited | -| `MR-02` | 4.1.13, 8.6, 11.5, 12 | **AUDITED** at `577255e` | The server exposes only `shepherdModelReviewConfigured`, derived from the same fail-closed startup predicate used to compose the reviewer. Settings preserves the stored preference but renders a native disabled control plus explicit **Unavailable** process-scoped copy when false; it issues no PATCH. Configured mode retains normal mouse/keyboard PATCH behavior. Auditor passed reviewer/config/service 173/173, Settings 5/5, adjacency 100/100, harness unit 6/6 and Chromium 8/8, literal check (launcher 3/3, Server 588/588 plus two opt-in skips, Web 13/13), audit/scans and hosted run `33268567614`; no live call. | **100% scoped**; `T,A,C,B,S,U,I` passed (7/7); audited | -| `OPS-06` | 6.1, 8.10, 17 baseline | **COMPATIBILITY INTEGRATED** through `53f2529`; original implementation `b80af11` ([PR #56](https://github.com/kyashp/shepherd/pull/56)) | The bounded diagnostics and volume-aware Runtime path pass on the affected macOS host. The carried compose-exposure High was closed as `SEC-06`: the base profile defaults publishing to loopback while preserving explicit `PUBLIC_BIND_ADDR` opt-in, and public effective binds require a strong token. PR #97 additionally makes the exact-tree live gate use a named state volume and non-root controller, eliminating the host-share sandbox-probe blocker without weakening sandbox, cleanup or credential boundaries. Historical implementation and review detail remains in `BUILD_LOG.md`; external model execution is owned separately by `LIVE-01`. | **100% scoped**; `T,A,C,S,I` passed; integration verified, not independently audited | -| `TST-12` | 0.3, 6.1, 13 | **AUDITED** at `68dbd59` | Executor correction discards raw mount-cleanup cause and throws fixed bounded cleanup stage/reason. A planted failure proves message/String/stack/inspect/JSON/cause surfaces contain no secret/private-path/OS detail; cleanup continuation, fail-closed cache reset/retry and primary typed diagnostic remain. Focused/adjacent, strict/literal, independent security review and hosted run `33274769957` passed. | **100% scoped**; `T,C,S,I` 4/4; audited | -| `GC-02/05` | 8.1, 11.5–11.6.3 | **AUDITED CANDIDATE** on [PR #64](https://github.com/kyashp/shepherd/pull/64), [issue #41](https://github.com/kyashp/shepherd/issues/41) | Explicit initialization creates only the fixed idle auth-demo Project: no Mission, Contract, Plane, shell, model or executor run. Unmentioned bounded text persists with a bounded Shepherd reply. Duplicate/replayed IDs are deterministic, including cross-route concurrency. Focused and full checks, security/DB hostile-state coverage, two-viewport browser evidence and independent review passed; protected-main integration remains. `T,A,C,B,S,U,I`. | **100% scoped**; 7/7 passed; audited candidate | -| `CHAT-01` | 4.1.2, 6.1, 11.5, 11.6.2 | **INTEGRATED** at `cd82ec4`, reviewed at `e1fe067`; [PR #57](https://github.com/kyashp/shepherd/pull/57), [issue #55](https://github.com/kyashp/shepherd/issues/55) | A user creates Frontend/Backend Agents and sends each exact assignment in its private chat with **Route through Shepherd**. Server-side bounded parsing accepts one HttpOnly-cookie and one bearer-JWT assignment, persists both restart-safely, atomically/idempotently binds them to one Mission and two authority-intersected Contracts, and reuses the verified Plane/collision/resolution/promotion pipeline. Agent deletion/intake races serialize without archive/state drift. Legacy Playground remains available; route mode cannot leak across Agents; old Shepherd Agent/transport selectors and CSS are removed; the fallback composer remains visible without page overflow. Literal check passed with Server 742 plus two opt-in skips and Web 18/18; focused authenticated Chromium passed 4/4 at both viewports, including keyboard route opt-in, Frontend→Generalist isolation, Backend verified status, exact Contract objectives, full evidence and container/document overflow gates. Independent security and UI re-reviews passed with no blocker. Protected-main integration is done at `cd82ec4`; the exact post-merge `I` rerun remains before issue #55 can close. `T,C,B,S,U,I`. | **98% scoped**; `T,C,B,S,U` passed (5/6), `I` pending; not audited | -| `CHAT-02` | 4.1.2, 8.1, 11.5–11.6.3 | **INTEGRATED** by [PR #59](https://github.com/kyashp/shepherd/pull/59), [issue #58](https://github.com/kyashp/shepherd/issues/58) | Every Agent role defaults to Shepherd-managed chat with a visible direct-Playground opt-out. A bounded deterministic planner requires a concrete objective, writable project-relative artifacts and an enforceable whole-statement `Acceptance:` predicate. Missing or unenforceable fields remain an inert clarification draft; sufficient input enters the scoped Contract, isolated Plane, independent verification and CAS-promotion pipeline. Issue #81 below hardens this already-integrated intake against unsafe and adversarial wording. | **100% integrated baseline**; superseded for intake-security evidence by `CHAT-03` | -| `CHAT-03` | 4.1.2, 8.1, 11.5–11.6.3, 13 | **INTEGRATION-VERIFIED** for [issue #81](https://github.com/kyashp/shepherd/issues/81) on branch `fix/81-contract-intake-clarification` | Private-chat intake now fails closed unless the terminal request has one direct, allowlisted action on a quoted authority-contained artifact, the exact bounded project-only `Safety:` statement, and one literal-content `Acceptance:` predicate. Secret/credential, external/production/network, privileged, destructive, safeguard-bypass, conditional, negated, approval-dependent and ambiguous requests stay clarification-only and create no Mission, Contract or Plane. Earlier unsafe intent remains sticky until exact `Replace prior request:` recovery; a complete follow-up may supersede only earlier vague drafts that named no artifact and had no unsafe intent. The UI gives exact corrective syntax without design changes. Live Runtime preflight also proves a parent-only credential canary cannot be recovered from `/proc/*/environ` inside the actual Codex sandbox. After reconciliation with protected `main` `9696c6d`, focused intake/startup/composition passed 33/33; literal `npm run check` passed launcher 5/5, Server 842 passed + two opt-in skips, Web 20/20, strict types and both builds; combined authenticated Chromium passed 10/10 at 1280×800 and 1440×900, including the integrated performance journey. Independent security and UI reviews passed with no High/Medium finding. An explicitly constrained live Mission reached execution but failed its separate result-manifest contract; this row therefore does not close `LIVE-01`. `T,A,C,B,S,U,I`. | **100% scoped deterministic integration**; 7/7 gates passed; live end-to-end remains open | -| `GC-03/04` | 8.1, 11.5–11.6.3 | **AUDITED CANDIDATE** on [PR #64](https://github.com/kyashp/shepherd/pull/64), [issue #41](https://github.com/kyashp/shepherd/issues/41) | A leading mention of a ready Frontend or Backend Agent captures exactly one fixed authentication transport. A complementary opposite-role request creates the existing deterministic two-Contract Mission with server-owned objectives and authority; cross-intake pairing is rejected. The real mention-button → request → Contract → evidence browser journey passed at both required viewports without adding shell/model authority or changing the frozen design. `T,A,C,B,S,U,I`. | **100% scoped**; 7/7 passed; audited candidate | -| `GC-06` | 11.5 | **AUDITED CANDIDATE** on [PR #64](https://github.com/kyashp/shepherd/pull/64), [issue #41](https://github.com/kyashp/shepherd/issues/41) | Project Group Agent messages are appended only after the bound Contract is verified and use the exact persisted manifest summary. V2 validation rejects wrong sender, target, Contract, summary, non-verified state or absent manifest; causal nonterminal fixtures and legacy pre-summary compatibility pass. `T,A,C,B,S,U,I`. | **100% scoped**; 7/7 passed; audited candidate | -| `ST-01` | 6 configuration, 11.5 | **INTEGRATED** at `a8d2266` (PR #73), [issue #44](https://github.com/kyashp/shepherd/issues/44) | `SHEPHERD_AUTO_RESOLUTION` and `SHEPHERD_MAX_PARALLEL_PLANES` were parsed and then discarded: `ShepherdServiceOptions` had no field for either and the only production construction passed neither, so both advertised controls were inert. The gap was masked in E2E because the harness sets values equal to the persisted defaults. The candidate adds both options, passes them from resolved configuration, and extends the pristine-store seeding block so a later operator change stays authoritative across restarts — seeding applies only while the persisted value is still the factory default, and the residual case (an operator explicitly choosing the factory default is indistinguishable from one who never chose) is documented on the predicates rather than hidden. It also closes a real boundary contradiction: the env schema accepted `min(1)` while the persisted schema, `updateSettings` and the API all require 2, and its default of 4 made the persisted default of 2 unreachable. Eight causal tests, each verified by mutating the guard it covers; evidence in `BUILD_LOG.md`. Stated behaviour change: `SHEPHERD_MAX_PARALLEL_PLANES=1` previously booted because the value was discarded and now fails at `loadConfig`, and a host that never set the variable moves from a nominal 4 to the 2 it actually ran with. Integrated at `a8d2266`; hosted exact-head gate on `3087b69` is run `33322423938`. `T,A,C,I`. | **100% scoped**; `T,A,C,I` passed. `I` rerun performed on integrated `a62e29b`: hosted exact-head gate run `33324819058` succeeded, and the ST-01 surfaces passed locally. **The rerun was SELF-PERFORMED by the author of the implementation, not by an independent auditor**, so this row is explicitly NOT `AUDITED`: this ledger reserves that for independent end-to-end evidence. An independent rerun is still owed. | -| `SCH-02` | 8.3 | `READY`; Worker | Reject DAG cycles before Contract graph persistence using the existing validator; `T,A,C,I`. | **50%**; 0/4; not audited | -| `SCH-01` | 4.1.6, 8.3 | `BLOCKED` by `SCH-02`; Worker | Service schedules only one fixed initial batch. Implement dependency waves using real Agent occupancy, mutation lock, active Plane count/capacity, failure blocking and downstream re-evaluation; prove overlap. `T,A,C,S,I`. | **35%**; 0/5; not audited | -| `UI-01` | 11.2, 12 | **AUDITED** at merged `fbc937f` via [PR #75](https://github.com/kyashp/shepherd/pull/75); [issue #43](https://github.com/kyashp/shepherd/issues/43) closed | Ordinary failed Missions reuse the frozen attention panel to expose the precise denied Contract code/stage, durable state, full-ID affordance and explicit no-promotion outcome. The merged tree matches the independently reviewed candidate bytes; fresh integrated literal check, Web 20/20 and the required two-viewport journey passed with no CSS/layout change. `T,C,B,U,I`. | **100% scoped**; `T,C,B,U,I` passed (5/5); audited | -| `UI-04` | 11.1–11.3, 12 | **AUDITED** at `412a010` | Promotion-completed events select/label `promotionEvidence`; candidate events retain candidate verification and promotion-started claims none. Drawer exposes both safe stages with complete roving/focus lifecycle and internal scroll. Auditor passed fixture 7/7, Web 17/17, focused browser 2/2 twice, full Chromium 10/10, literal check, private-field/security/UI review and hosted run `33271397185`. Frontend/CSS/tests only; no backend/schema/live change. | **100% scoped**; `T,C,B,U,I` 5/5; audited. The fixture prerequisite integrated here; `E2E-02` was subsequently audited at `338f1e4`. | -| `UI-02` | 4.1.16, 11.3, 14 | `READY`; Worker | UI has an optional estimate renderer but backend produces no `estimatedDurationMs`. Persist/serve a trusted clearly labelled estimate distinct from actual timing. `T,A,C,B,U,I`. | **20%**; 0/6; not audited | - -## P1 — browser, cross-surface and assurance gates - -**Issue #96 integration overlay:** PR #97 merged as `53f2529` and extends the -existing rows without rewriting their earlier audit history. `UI-GATE` passes an -expanded 48/48 matrix at both required viewports, including Agent edit hydration, -Settings recovery, full CRUD/lifecycle, runtime-contract and error-state coverage; -independent `U` remains. `SEC-REVIEW` integration bounds durable retention, makes -Agent creation atomic, protects tokenless loopback/same-origin access, refuses a -public bind without a token, and removes runtime credentials from Terraform -input/cloud-init/state; the required independent part-5 review remains. `LIVE-01` -has a passing exact-tree named-volume Docker preflight on the affected host; the -external provider turn remains unexecuted pending informed approval for sending -repository-derived payloads to Ark. Deterministic protected-main `I` passed on the -merge; neither `U` nor external `L` is inferred from it. - -| ID | PRD ref | Status / dependencies | Required acceptance | Confidence; gates passed; audit | -|---|---|---|---|---| -| `UI-03` | 0.4, 11.1–11.2, 11.7 | **AUDITED** at integrated implementation `83954f7`; hosted closeout restored by `TST-03` at `0b1c401` | Create Agent's transparent preset radios inherited global viewport-wide input sizing, expanding document width to 2299/1280 and 2579/1440. The integrated correction bounds only the hidden radio box and adds a theme-matched visible card focus outline. Auditor independently passed focused Chromium 2/2, full browser 4/4 and harness unit 2/2 at both required viewports; document/body X/Y, exact neutralized 1x1 boxes, accessible group/names, Generalist default, one Tab stop, arrow focus/selection, visible 2px outline, all label clicks and exactly one checked radio passed. Regenerated screenshot hashes matched the committed images; visual review preserved layout/theme. Integrated local check passed. Hosted run `33262227553` passed after the unrelated schedule-sensitive TST-03 fixture was corrected without touching UI code. | **100% scoped**; `T,C,B,U,I` passed (5/5); audited | -| `E2E-HARNESS` | 0.4, 16 Phase 6 | **AUDITED** at integrated implementation `5b152a0` | Auditor independently verified the candidate and integrated SHA: allowlisted child environment with no `.env` or ambient Ark/model ingress; required bearer auth; bounded fake Codex/container fixtures, readiness, logs, termination, port and run-root cleanup; ignored artifacts; no production debug route or UI/runtime change. Node harness passed 2/2 and Chromium passed 2/2 at exact `1280x800` and `1440x900`; regenerated screenshot hashes matched, document/body X/Y overflow was absent, and both images preserved the accepted clean-shell UI. Literal `npm run check` passed launcher 3/3, server 555/555 with one opt-in live skip, typechecks and both builds. This foundation does not satisfy `E2E-01`–`08`, populated/composer states, accessibility, or `UI-GATE`. `T,C,B,S,I`. | **100% scoped**; `T,C,B,S,I` passed (5/5); audited | -| `E2E-01` | 11.6.1, 17 baseline | **AUDITED** at integrated implementation `f6df2d9`; evidence `284994d` | Auditor independently passed harness unit 18/18 and Chromium 18/18 across three runs at both required viewports, plus the explicit evidence path 2/2. The authenticated create → exact artifact/test 2/2 → two-turn same fake session → port-down → restart-continuity journey passed with 401/auth, disabled active composer, exact persisted/API/DOM/log/path checks and actual Tab/focus-visible/Enter Create/Stop/Start. All 20 ephemeral images and the 16 committed journey images were reviewed with no clipping, overflow or theme drift. Strict test typecheck and literal check passed; ordinary runs left tracked evidence byte-identical. The prior bounded live gate remains exactly two ARK turns, no retry, one real Codex thread, artifact test 2/2, restart/security/cleanup pass and no Shepherd call; it was not repeated. Hosted run `33265640400` passed. `C,B,L,S,U,I`. | **100% scoped**; 6/6 gates passed; audited | -| `TST-05` | 0.4, 11.6.1, 11.7 | **AUDITED** at `f6df2d9`; evidence `284994d` | Default screenshots route only to ignored `.tmp/playwright-evidence`; explicit `test:e2e:starter-kit:evidence` wrote exactly the intended 16 E2E-01 files and no blank-down or unrelated evidence. Port closure is infrastructure evidence only. Three ordinary harness runs left tracked screenshot hashes unchanged. Both viewports proved inner-scroll Create reachability plus actual visible keyboard focus and Enter activation for Create/Stop/Start. Independent rendered fallback returned READY with no findings; configured `ui-reviewer` was unavailable. No production UI/CSS/theme change. `T,C,B,U,I`. | **100% scoped**; 5/5 passed; audited | -| `TST-06` | 0.3, 11.6.1, 13 | **AUDITED** at `f6df2d9` | Boolean-only secret assertions, live trace/screenshot/video off, exact live opt-in/two-turn/no-retry cap, loopback/auth/allowlisted environment and empty live `SHEPHERD_MODEL` passed review. Managed repository/`.tmp`/harness/run-root identities are lstat/realpath checked before allocation/removal. Causal tests reject a repo-contained ancestor symlink, prove later cleanup of a retained stopped root after restart failure, prove fresh setup failure leaves no root, and preserve reusable-root rejection. Harness unit 18/18, strict typecheck, literal check and hosted run `33265640400` passed; no run roots, credentials, private paths or live artifacts remained. Configured `security-reviewer` was unavailable; Auditor review found no High/Medium issue. `T,C,S,U,I`. | **100% scoped**; 5/5 passed; audited; documented Low local TOCTOU/exceptional-concurrency residuals remain outside the harness threat model | -| `E2E-02` | 11.6.2, 15 | **AUDITED** at integrated chain `338f1e4` | Authenticated real-server deterministic hero proves Contracts/isolated Planes, independent verification, exact semantic collision, concurrent candidates from one immutable base, cookie pass/bearer fail, objective selection, distinct final re-verification, protected promotion, retained loser, Project Group lifecycle and reset/cleanup. Auditor ran four journeys and inspected all 52 stage/viewport observations: 13/13 named claims are visible at both viewports and 26/26 final hashes are unique. Full harness passed unit 7/7 plus Chromium 12/12; literal check passed launcher 3/3, Server 592 plus two explicit skips, Web 17/17, strict types and builds. Independent UI/security fallback returned READY; hosted run `33273947769` passed. Shepherd summaries remain truthful (`GC-06` open); no `UI-02` estimate or live/model behavior is claimed. `C,B,S,U,I`. | **100% scoped**; 5/5 gates passed; audited | -| `TST-10` | 11.6.2, 15 | **AUDITED** at `338f1e4` | Exact `promotion_started` is scrolled into `.event-list`, positively intersects pane/browser and differs bytewise from stage 05. Auditor verified it in all four focused journeys, full harness/check, independent review and hosted run `33273947769`. | **100% scoped**; `T,C,B,U,I` 5/5; audited | -| `TST-11` | 11.6.2, 15 | **AUDITED** at `338f1e4` | Exact selected/rejected Candidate summaries are scrolled into the drawer and positively intersect drawer/browser before capture. Auditor verified stages 09/11 in all four journeys while stage 10 final evidence, TST-10, keyboard/focus and security assertions remained intact. The 52/52 semantic manifest, 26/26 unique hashes, full harness/check, independent review and hosted run `33273947769` passed; no product/UI/theme/timing change. | **100% scoped**; `T,C,B,U,I` 5/5; audited | -| `E2E-03` | 11.6.3 | **AUDITED CANDIDATE** on [PR #64](https://github.com/kyashp/shepherd/pull/64), [issue #41](https://github.com/kyashp/shepherd/issues/41) | Authenticated Chromium passed the real Project Group initialization and mention-button → typed request → targeted Contract → verified Agent summary → Contract evidence journey 2/2 at `1280x800` and `1440x900`, including server-owned objective, `src/frontend/**` authority and document/body overflow checks. Focused UI/security review passed; protected-main integration remains. `C,B,S,U,I`. | **100% scoped**; 5/5 passed; audited candidate | -| `E2E-04` | 11.6.4, 12 | **AUDITED** at merged `fbc937f` via [PR #75](https://github.com/kyashp/shepherd/pull/75); [issue #43](https://github.com/kyashp/shepherd/issues/43) closed | The integrated real compiled service attempts an out-of-scope `policy.json` change, rejects it at Contract authority, reloads through the production server, and proves typed visible denial, unchanged stored/actual protected heads, zero Candidates/integration/promotion, keyboard/focus, bounded evidence and no overflow. Fresh integrated Chromium passed 2/2 at both required viewports; literal check and independent UI/security review passed. The two isolated candidate-time starter-kit harness failures remain unrelated and documented. `C,B,S,U,I`. | **100% scoped**; `C,B,S,U,I` passed (5/5); audited | -| `E2E-05` | 11.6.5, 12 | `READY`; Worker; failure UI prerequisite completed by `UI-01` at `fbc937f` | Both candidates fail → durable `attention_required`, preserved evidence, no promotion; `C,B,S,U,I`. | **55%**; 0/5; not audited | -| `E2E-06` | 11.6.6 | `BLOCKED` by `FM-01` | Real service tie → human verified choice → trusted promotion; `C,B,S,U,I`. | **40%**; 0/5; not audited | -| `E2E-07` | 11.6.7 | `BLOCKED` by `F-09` product behavior | Cancel mid-Mission → durable cancelled, released Agents, no promotion; `C,B,S,U,I`. | **55%**; 0/5; not audited | -| `E2E-08` | 11.6.8, 12 | `BLOCKED` by restart/reconnect product composition | Kill/restart mid-Mission → reconnect/cursor reconciliation, interrupted visible, no false green/duplicates; `C,B,S,U,I`. | **50%**; 0/5; not audited | -| `UI-GATE` | 0.4, 11.1–11.7 | **INTEGRATED** through `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97), [issue #45](https://github.com/kyashp/shepherd/issues/45); earlier causal UI fixes `bbc7c81`; independent `U` remains | The real-server Playwright matrix now covers 24 functional flows at both exact viewports: the six PRD surfaces plus auth/shell, full Agent CRUD/lifecycle/edit hydration, Settings persistence/reset/recovery, direct Playground, Project Group, successful/denied Shepherd Missions, loading/empty/reconnect/malformed/not-found states, durable restart, verifier/runtime contracts, contrast and truthful promotion evidence. Exact merge `53f2529` passed 48/48 with no document-level overflow; Web 20/20, coverage, strict types/builds and protected-main run `33396729636` pass. The accepted design was preserved. `C,B,U,I`. | **95% scoped**; `C,B,I` passed (3/4), independent `U` pending; not audited | -| `PERF-01` | 14 | **AUDITED** at integrated implementation `b193e57` via [PR #77](https://github.com/kyashp/shepherd/pull/77); [issue #46](https://github.com/kyashp/shepherd/issues/46) | The independent protected-main audit passed the deterministic compiled-service/real-Chromium journey 2/2 at `1280x800` and `1440x900`: conservative two-Plane-ready 323/334 ms, exact verification 303/334 ms, persisted event → visible 488/476 ms (limit `<=1.5s`), collision → `promotion_completed` 2,073/2,044 ms, and 3,712/3,680 ms total. The actual candidate-executor overlap proof and cleanup-race regression passed 1/1 each; harness passed 7/7; literal `npm run check` passed launcher 3/3, Server 810 with three explicit skips, Web 20/20, all typechecks and builds. Hosted exact-main run `33318509842` passed. Tracked screenshots remained unchanged. The evidence is deterministic, not a live-model capacity, package-download, or three-rehearsal claim. `B,I`. | **100% scoped**; `B,I` passed (2/2); audited | -| `TEST-TS` | 16 Phase 9B | **AUDITED** at integrated implementation `8995605` | Separate strict no-emit server test-source config is enforced by root `typecheck`/`check`; production emit config is unchanged. RED evidence covers 14 errors across 4 test files (4 implicit callback types, 5 invalid Vitest matcher generics, 4 stale promotion fixtures, 1 stale verifier fixture), then 2 nullable fixture values exposed after matcher typing was restored. Auditor confirmed no suppression, broad exclusion, compiler weakening, blanket `any`, assertion weakening, product/UI change, or dependency churn. Candidate and integrated strict test-source checks passed; both production typechecks/builds passed; affected suites passed 73/73; literal candidate and integrated gates passed with launcher 3/3, server 563/563 and one unchanged opt-in live skip, plus both production builds. | **100% scoped**; `T,C,I` passed (3/3); audited | -| `CI-01` | 0.1, 16, 17 | **AUDITED** at workflow `cda2446`; hosted run `33259565232` succeeded | `required-checks.yml` uses supported official checkout/setup-node actions, Node 22, lockfile-backed npm cache, `npm ci`, Docker availability, and literal `npm run check`; it triggers every PR, pushes to protected `main`, and merge-queue `checks_requested`. Token permission is only `contents: read`; checkout credentials are not persisted; no `.env`, secrets, artifacts, privileged actions, or live/model path is configured. Independent local validation passed Docker 29.7.2 and launcher 3/3 plus server 555/555 with one opt-in skip. Hosted Node 22.23.2/npm 10.9.8 and Docker client/server 28.0.4 passed locked install, launcher 3/3, server 551 passed/5 environment-gated skips, typechecks, 40-module web build and server build. Stable job check: `Node 22 / npm run check`. Administrator must require that check on protected `main`; this external rule change is not performed by agents. `C,I`. | **100% scoped**; `C,I` passed (2/2); audited | -| `SEC-REVIEW` | 0.3, 13, 17 | **PARTIAL, REMEDIATION INTEGRATED** through `53f2529`; independent acceptance tracked in [issue #89](https://github.com/kyashp/shepherd/issues/89), successor to [#49](https://github.com/kyashp/shepherd/issues/49) | Parts 1-3 are evidenced at `bd9b093`. The seven-lens part-4 review confirmed 19 findings; its five Highs (`SEC-02`–`SEC-06`) are fixed with causal coverage. PR #97 closes the remaining concrete release-audit findings by bounding durable collections, making Agent publication atomic, enforcing tokenless loopback Host plus same-origin Origin, requiring a strong token for every effective public bind, and keeping runtime credentials out of Terraform input/cloud-init/state. Exact merge `53f2529` passes the deterministic security regressions, dependency audit, coverage, Terraform validation and protected-main workflow. Issue #89 remains open because the required independent part-5 security review cannot be self-certified; four documented Low findings also remain review-visible. `C,S,I`. | **90%**; concrete High/Medium remediation and `C,S,I` integrated, independent acceptance pending; not audited | -| `STABILITY` | 16 Phase 9B | **INTEGRATED** at protected-main merge `b05a4aa` via [PR #93](https://github.com/kyashp/shepherd/pull/93), [issue #48](https://github.com/kyashp/shepherd/issues/48); immutable campaign candidate `10c95da` | The first `bd77952` sequence was truthfully reset after run 4 exposed PERF-01's full-Mission timing harness. Four causal corrections isolate inherited Git selectors, post-cleanup F-03 observation, scheduler overlap, and candidate-cleanup preflight without sleeps, timeout/retry increases, hidden workers, suppression, skips, or weakened assertions. Candidate `10c95da` passed five separate literal `npm run check` gates: launcher/deploy 12/12, Server 846 passed / 3 documented skips, Web 20/20, all typechecks and both builds on every run; Server durations were 149.16, 145.77, 144.00, 145.19, and 137.87 seconds. A fresh literal exact-main check at `b05a4aa` passed the same counts with Server duration 140.70s; protected-main workflow `33353622211` also passed. `C,I`. | **100% scoped**; `C,I` passed (2/2); integration verified, not independently audited | -| `LIVE-01` | 16 Phase 3/7/8 | `PARTIAL`; external provider turn awaits informed approval; [issue #65](https://github.com/kyashp/shepherd/issues/65), split out of #47 | Reviewer sub-gate is satisfied: command attempt two made exactly one external request and completed with two bounded findings while deterministic outcome/security/cleanup stayed green. PR #97 removes the affected-host bind-mount blocker: exact merge `53f2529` builds the current Runtime and non-root controller, uses a named state volume plus engine socket, discovers exactly one bounded live integration test, and cleans temporary resources. The zero-spend preflight passes on the affected macOS host. Current live Shepherd Mission and legacy continuity still require the explicitly approved external Ark turn; preflight is not substituted for model evidence. `L,S,I`. | **70%**; `S,I` and construction preflight pass, external `L` pending; not audited | -| `DEMO-REHEARSAL` | 14–15, 16 Phase 8 | `BLOCKED` by all demo-critical rows; [issue #50](https://github.com/kyashp/shepherd/issues/50) | Three clean reset-to-completion judge flows under three minutes, including clean no-op reset and initialized reset; second machine/state if genuinely available. `B,S,I`. | **0%**; 0/3; not audited | - -## P2 — feature freeze deliverables - -| ID | PRD ref | Status / dependencies | Required acceptance | Confidence; gates passed; audit | -|---|---|---|---|---| -| `DEL-01` | 16 Phase 9A | **INTEGRATED** as [`ARCHITECTURE.md`](ARCHITECTURE.md) at `39cd800` via PR #60; [issue #51](https://github.com/kyashp/shepherd/issues/51) was prematurely closed after this one deliverable | As-built one-page architecture and judge-facing Mermaid were rendered and validated. The filename differs from the older prospective name, but all current links use the integrated path. | **100% implementation/integration**; independent final package review not claimed | -| `DEL-02` | 16 Phase 9C | **INTEGRATED** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97) | [`SHEPHERD_TEST_REPORT.md`](SHEPHERD_TEST_REPORT.md) records the exact base/product/merge heads, commands, failures, post-integration counts, coverage, browser/container/Terraform scope, and explicit live/review/rehearsal limitations. | **98%**; `C,I` passed; independent final package review not claimed | -| `DEL-03` | 16 Phase 9D | **INTEGRATED** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97) | README documents reproducible coverage/Terraform validation, credential-safe Terraform deployment, and links the exact report without removing starter setup. | **85%**; frozen-state integration complete, independent final package review pending | -| `DEL-04` | 0.1, 16 Phase 9E | **INTEGRATION RECONCILIATION** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97); prior consolidation audited at `5a38d37` | `TASKS.md`, `SHEPHERD.md`, `LOCAL_POC.md`, `FIXES.md`, `BUILD_LOG.md`, README and the test report distinguish protected-main, candidate, live-external, independent-review and rehearsal evidence. | **98% overall**; protected-main reconciliation passes, independent document audit pending | -| `DEL-05` | 16 Phase 9E, 17 | **PARTIAL INTEGRATED** at `53f2529` via [PR #97](https://github.com/kyashp/shepherd/pull/97) | Dependency, tracked-secret, generated-artifact, exact-tree Docker, Terraform, coverage, complete browser and hosted integration checks pass. External live inference, independent security/UI review, demo rehearsals and broader optional PRD rows remain. | **75%**; `C,B,S,I` pass, `L,U` pending; not audited | - -## Count and current verdict - -- **71 tracked work items:** 40 fully audited and 31 not fully audited; no external - hold items across P0/P1/P2. -- **Ready non-overlapping assignments:** `F-07/08`, `F-09`, `FM-01`, `GC-02/05`, - `ST-01`, `SCH-02`, and `UI-02`, subject to the ownership check above. `PERF-01` - remains blocked by the completed Project Group and visible-denial journeys. -- **Presentation-host caveat:** protected `main` no longer has the historical - bind-mounted `LIVE-01` construction blocker. The exact-tree zero-spend preflight - passes on the affected host. The external Ark request remains a separate consent - and evidence boundary. -- **Current completion verdict:** incomplete. Merge `53f2529` closes the - deterministic browser, coverage, Terraform, release-harness, identified security - and protected-main integration gaps, but independent `U`, external `L`, and three - rehearsals remain explicit. The older 82% estimate is retained only - in `SHEPHERD.md`'s labelled historical snapshot and is not reused as a current - metric. diff --git a/docs/TECHJAM.md b/docs/TECHJAM.md deleted file mode 100644 index 6a25058..0000000 --- a/docs/TECHJAM.md +++ /dev/null @@ -1,157 +0,0 @@ -# TikTok TechJam 2026 — Track 1 Brief - -> Source: [TikTok TechJam 2026 Tracks & Problem Statements](https://bytedance.larkoffice.com/wiki/DNtSwxgeciCS2nkiUefc5qqtnkf) -> Source page last updated: 25 August 2026; retrieved 25 August 2026, -> Singapore time. The source password is intentionally not stored here. - -This repository targets **Track 1 — Agent Launchpad: Design and Build Lightweight -Agent Middleware**. [`PRD.md`](PRD.md) is Shepherd's implementation contract; -[`TASKS.md`](TASKS.md) is the current completion ledger. - -## Workshop - -The Track 1 workshop and Q&A was scheduled for Friday, 28 August 2026, -1:00–1:45 p.m. Singapore time (GMT+8), in -[Lark Meeting 484622806](https://vc-my.larkoffice.com/j/484622806). - -## Goal - -Teams receive a functioning platform where users can create, run, stop, edit, test, -and delete AI agents. The challenge is to add one meaningful infrastructure -capability between its existing components—not rebuild the product. - -Useful middleware can control what an Agent may do, record what it did, recover from -failure, manage cost, coordinate multiple Agents, or strengthen isolation and -safety. Depth, architecture, integration, and evidence matter more than feature -count. - -The extension must remain functional and testable without breaking Agent CRUD, -lifecycle controls, Playground chat, persistence, or model execution. - -## Starter Kit and extension boundary - -The starter repository is [RrankPyramid/CodeJam](https://github.com/RrankPyramid/CodeJam). - -| Area | Provided | Team responsibility | -|---|---|---| -| Product | React UI, Agent list/forms, lifecycle controls, Playground, run status | Preserve the baseline; add only enough UI to reveal middleware behavior. | -| Control plane | Fastify API, validation, asynchronous Runs, `AgentService`, JSON persistence | Integrate the real middleware decision into a trusted backend path. | -| Runtime | Codex CLI, persistent sessions/workspaces, disposable local containers | Insert middleware at the execution boundary that owns the decision. | -| Infrastructure | Docker, Colima, Podman, Compose, optional ECS/Terraform | Use the smallest path that proves the idea; cloud is optional. | - -Valid seams include the Fastify boundary, `AgentService`, `AgentRunner`, execution -data model, persistence layer, and Runtime. Teams may add events, principals, -policies, lifecycle behavior, provider adapters, memory controls, reliability -mechanisms, or coherent coordination behavior. - -The starter remains a single-user proof of concept. Its optional bearer token is -not user identity or authorization, its JSON store is single-process, and ordinary -containers are not hardened multi-tenant isolation. - -## Required engineering qualities - -- Preserve Agent CRUD, lifecycle actions, Playground chat, persistence, and model - execution. -- Execute the middleware in a trusted backend, Runtime, data, or infrastructure - path. Static screens and hard-coded success responses do not qualify. -- Explain which component owns each decision or event, what crosses each boundary, - and how failures are handled. -- Demonstrate normal behavior and one relevant failure, denial, degradation, abuse, - or recovery case. -- Add automated tests for the middleware itself, not only its UI. -- Never commit or display API keys, Volcengine AK/SK values, passwords, bearer - tokens, or unredacted sensitive payloads. -- Prefer the local Docker/Colima/Podman judging path. ECS is optional and does not - increase the score by itself. - -In scope are a focused middleware story, its supporting backend capabilities, -minimal UI, schemas, protected fixtures, controlled failures, policy decisions, -reliability mechanisms, and contract-focused refactors. Rebuilding the whole -product, production OAuth, a commercial cloud platform, a general policy engine, -microVM infrastructure, or multi-region deployment is unnecessary unless central -to the selected idea. - -## Representative middleware directions - -- Identity, scoped delegation, authorization, approvals, and attributable policy - decisions enforced by the server. -- Correlated traces, audit history, timing/status, failure diagnosis, redaction, - resource signals, and visual timelines or trees. -- Explicit layered architecture with replaceable provider/runtime contracts. -- Threat modeling, least privilege, redaction, allowlists, typed schemas, target - scoping, timeouts, limits, containment, and residual-risk reporting. -- Multi-Agent coordination with shared state, routing or turn rules, attributable - history, and timeout/recovery behavior. -- Lifecycle reconciliation, failure recovery, human approval, budget control, - provider abstraction, versioning, rollback, or another coherent middleware story. - -Shepherd selects the multi-Agent coordination and reliability direction: trusted -Execution Contracts, isolated Git Planes, credential-free independent verification, -deterministic semantic collision detection, parallel resolution futures, and a -protected evidence-derived promotion gate. - -## Baseline and validation - -The supported local baseline requires macOS or Linux, Node.js 22+, npm 10+, one of -Docker/Colima/Podman, an Ark model API key, and a Responses-capable endpoint. -Shepherd's current command is documented in [`LOCAL_POC.md`](LOCAL_POC.md). - -The baseline acceptance flow is: create an Agent; submit a real small coding task; -verify its completed response and artifacts; send a follow-up and verify session -continuity; stop/restart; and verify workspace persistence. - -The required repository validation command is: - -```bash -npm run check -``` - -## Demo and deliverables - -The live demonstration must create or select a runnable Agent, execute a real task, -show at least one real model/file/tool/sandbox/data/infrastructure action, expose the -middleware behavior and evidence, demonstrate a relevant failure or recovery, and -leave the platform understandable and controllable. Mock external services are -acceptable; a static UI is not. - -| Deliverable | Requirement | -|---|---| -| Three-minute live demo | One real Agent run, normal middleware behavior, and one failure, denial, degradation, abuse, or recovery case. | -| One-page architecture diagram | Middleware, data flow, trust boundary, and enforcement/instrumentation/recovery point. | -| Code repository | Setup, problem/rationale, design, automated tests, demo steps, limitations, and no secrets. | - -## Judging - -| Track 1 category | Weight | -|---|---:| -| End-to-end middleware behavior | 40% | -| Technical design and integration | 25% | -| Verification and robustness | 20% | -| Demo and reproducibility | 15% | - -## Submission checklist - -- A reviewer can start the repository from the documented command. -- Agent creation, a real task, follow-up continuity, and restart persistence work. -- Middleware executes outside the UI and exposes evidence through the product. -- The demo includes a normal path and a relevant failure/recovery path. -- `npm run check` passes and core middleware behavior has automated evidence. -- The architecture diagram identifies the trusted decision and promotion boundary. -- The demo completes within three minutes and has been rehearsed from clean state. -- No secret appears in source, Git history, logs, traces, screenshots, browser - storage, or the presentation. - -## Simple-to-technical bridge - -Track 1 asks for the missing rules and control system around an AI Agent. In -technical terms, the solution intercepts requests or execution events at a trusted -boundary, applies an operational mechanism, persists correlated evidence, exposes -minimal APIs/UI, and tests an allowed path plus a denial, failure, or recovery path. -The central architecture question is: **which trusted component must own this -decision so that an Agent cannot bypass it?** - -## Track 1 links - -- [Official problem statement](https://bytedance.larkoffice.com/wiki/DNtSwxgeciCS2nkiUefc5qqtnkf) -- [Workshop meeting](https://vc-my.larkoffice.com/j/484622806) -- [Starter repository](https://github.com/RrankPyramid/CodeJam) diff --git a/docs/superpowers/plans/2026-08-30-ui-gate.md b/docs/superpowers/plans/2026-08-30-ui-gate.md deleted file mode 100644 index b5a1479..0000000 --- a/docs/superpowers/plans/2026-08-30-ui-gate.md +++ /dev/null @@ -1,420 +0,0 @@ -# UI-GATE Audit and Evidence Implementation Plan - -> **For agentic workers:** REQUIRED SUB-SKILL: Use `superpowers:test-driven-development` for every behavior change and `superpowers:verification-before-completion` before reporting completion. Execute each task in order and stop if an ownership recheck finds overlapping active work. - -**Goal:** Add a reproducible, accessibility-aware UI quality gate for issue #45 that exercises all six PRD surfaces at 1280×800 and 1440×900, records reviewable evidence, and fixes only causal gaps discovered by the gate. - -**Architecture:** Add one Playwright journey spec plus a small test-only audit helper module. The journeys use the real local server and database for positive product claims; route interception is limited to delaying or failing real reads so loading and recovery states are deterministic. Product changes remain narrow and are made only after a failing assertion demonstrates the gap. - -**Tech stack:** Node.js 24, Vitest/Node test runner already used by the repository, Playwright, React, TypeScript, CSS, GitHub Actions. - -**Approved spec:** `docs/superpowers/specs/2026-08-30-ui-gate-design.md` - -## Global constraints - -- Work only in `C:\Users\sanje\shepherd\.tmp\worktrees\ui-gate-45` on `test/45-ui-gate`. -- Before every product edit, fetch/prune and confirm that no active PR owns the target file. -- Do not edit `apps/web/src/pages/AgentPage.tsx` while issue #78 owns it. If the gate exposes an Agent-page defect there, preserve the failing evidence and coordinate instead. -- Do not edit backend startup, auth-boundary, recording, or contract-intake files owned by issues #44, #47, or #81. -- Do not edit `package.json`. Register the new spec in the existing Playwright configuration only. -- Keep default tests network- and model-free. Use the deterministic local Shepherd API. -- Store ordinary run output under `.tmp/playwright-evidence/ui-gate/`. Commit only bounded review evidence under `docs/ui-review/ui-gate/`. -- Treat the candidate UI gate as complete only after the exact branch is green in hosted CI. Keep the final integration gate and independent usability review pending until their owners complete them. - -## Task 1: Add reusable audit helpers with unit coverage - -**Files:** - -- Create: `tests/e2e/support/ui-gate.mjs` -- Modify: `tests/e2e/harness.test.mjs` - -### Step 1: Write failing pure-helper tests - -Import the proposed helpers from `./support/ui-gate.mjs` in `tests/e2e/harness.test.mjs` and add Node tests for: - -- `contrastRatio('#ffffff', '#111827')` returning a value greater than 15. -- `contrastRatio('#8773e8', '#0b1020')` meeting the 3:1 non-text threshold. -- `normalizeEvidenceStage('08 Shepherd / loading')` returning `08-shepherd-loading`. -- `uiGateEvidencePath('1440x900', '08 Shepherd / loading')` ending in `.tmp/playwright-evidence/ui-gate/1440x900/08-shepherd-loading.png`. -- Rejection of a stage containing only punctuation so accidental path traversal or empty names cannot create evidence files. - -Run: - -```powershell -node --test tests/e2e/harness.test.mjs -``` - -Expected RED: the module or exports do not exist. - -### Step 2: Add minimal exported stubs - -Create `tests/e2e/support/ui-gate.mjs` with these exports and no unused abstraction: - -```js -export function contrastRatio(foreground, background) {} -export function normalizeEvidenceStage(stage) {} -export function uiGateEvidencePath(viewportName, stage) {} -export async function assertNoDocumentOverflow(page) {} -export async function assertScrollOwner(locator) {} -export async function assertMinimumContrast(locator, minimum) {} -export async function assertVisibleFocus(page, locator) {} -export async function assertSafeUiGateSurface(locator) {} -export async function assertNoSensitiveCanaries({ page, responses, logs }) {} -export async function captureUiGate(page, viewportName, stage) {} -``` - -Re-run the focused Node test and confirm it now fails on behavior, not import resolution. - -### Step 3: Implement the pure functions - -- Parse three- and six-digit hex colors and `rgb()`/`rgba()` computed colors. -- Convert sRGB channels to relative luminance and compute `(lighter + 0.05) / (darker + 0.05)`. -- Normalize evidence stages to lowercase ASCII kebab-case and throw when normalization is empty. -- Resolve evidence paths from the repository root exported by `tests/e2e/support/test-app.mjs`; validate viewport names against `1280x800` and `1440x900`. - -Run the Node test until it is green. - -### Step 4: Implement the Playwright assertions - -- `assertNoDocumentOverflow`: compare document and body scroll width/height with the viewport, allowing at most one CSS pixel for rounding; all intentional overflow must belong to a named internal pane. -- `assertScrollOwner`: verify a designated region is actually scrollable when its content exceeds its box and that the document width does not change after setting `scrollTop`/`scrollLeft`. -- `assertMinimumContrast`: read computed foreground/background colors, walk through transparent ancestors, calculate the ratio, and include the selector plus observed colors in failures. -- `assertVisibleFocus`: focus the locator and require either a non-zero outline or box shadow plus an accessible name. -- `assertSafeUiGateSurface`: reject executable descendants and inline event attributes in user-controlled content, matching the existing safe-DOM audit style. -- `assertNoSensitiveCanaries`: inspect public DOM text/attributes plus bounded captured API responses and browser/server logs for auth tokens, raw prompts, private filesystem paths, and seeded secret canaries. Never print a matched secret in the failure message. -- `captureUiGate`: create the output directory and save a full-page PNG using the normalized path. - -Add focused unit coverage for color parsing and path validation where it remains pure. Avoid duplicating Playwright behavior in mocks. - -### Step 5: Verify and commit - -Run: - -```powershell -node --test tests/e2e/harness.test.mjs -npm run typecheck -w @launchpad/web -git diff --check -``` - -Commit subject: `test(45): add bounded UI gate audit helpers` - -The commit body must record the helper boundary and the exact observed checks. - -## Task 2: Cover the shell, authentication, Agents, Settings, and not-found states - -**Files:** - -- Create: `tests/e2e/ui-gate.spec.mjs` -- Modify: `playwright.config.ts` -- Potentially modify after a demonstrated failure: `apps/web/src/pages/SettingsPage.tsx` - -### Step 1: Register one dedicated project spec - -Add `ui-gate.spec.mjs` to the existing `testMatch` array in `playwright.config.ts`. Do not add a script or dependency. - -In the spec, reuse `prepareHarnessRoot`, `startTestApp`, `isPortOpen`, and `AUTH_TOKEN` from `tests/e2e/support/test-app.mjs`. Start one deterministic app per worker, create isolated browser contexts for both required viewports, and remove only the temporary harness root owned by this spec. - -### Step 2: Write the clean-shell journey before product edits - -For each viewport, assert this sequence: - -1. Hold the first real `/api/auth` request, navigate to `/`, and capture `01-auth-loading`. -2. Release it and submit without a token; assert the required-token instruction remains associated with the input. -3. Enter an invalid token and assert the visible server-backed `Authentication required` error; capture `02-auth-error`. -4. Unlock with `AUTH_TOKEN`; assert the sidebar landmarks, current-route state, keyboard focus, and no document overflow. -5. Open Agents with an empty database; assert the empty state and capture `03-agents-empty`. -6. Open Create Agent; assert the initial disabled primary action and capture `04-agent-create-disabled`. -7. Create a real Agent with an 80-character name, verify text wrapping and no horizontal document overflow, then capture `05-agent-long-content`. -8. Visit its Agent page, exercise Edit Agent and the real stopped/started lifecycle controls using the existing public flow, and assert visible state changes. Treat existing lifecycle/denial specs as the deeper business source of truth. -9. Open Settings; assert every reserved/unavailable control plus save/discard actions are visibly and semantically disabled when unavailable, and capture `06-settings-disabled`. -10. Navigate to an unknown route; assert the not-found recovery link and capture `07-not-found`. - -Use role/name selectors. Apply `assertMinimumContrast` to representative primary text, muted text, active navigation, errors, and disabled controls. Apply `assertVisibleFocus` to navigation, form controls, and recovery actions. - -### Step 3: Add a failing Settings tab keyboard assertion - -Assert that the Settings tablist: - -- has exactly one tab with `tabindex="0"`; -- moves selection and focus with ArrowLeft/ArrowRight; -- supports Home/End; -- relates each tab to a `tabpanel` through `aria-controls`/`aria-labelledby`. - -Expected RED on current main: tabs expose `role="tab"` and `aria-selected`, but do not implement roving focus or tabpanel relationships. - -Do not fix it yet; preserve the focused failure for Task 5. - -### Step 4: Verify the test boundary and commit - -Run the focused spec at both configured viewports. The journey should pass until the intentional Settings assertion and should produce bounded diagnostics. Confirm no assertion requires an edit to `AgentPage.tsx`; if one does, document and coordinate it instead of editing the file. - -Commit subject: `test(45): cover clean shell and Agent UI states` - -## Task 3: Exercise every Shepherd surface and recovery state - -**Files:** - -- Modify: `tests/e2e/ui-gate.spec.mjs` -- Potentially modify after a demonstrated failure: `apps/web/src/pages/ShepherdPage.tsx` - -### Step 1: Add deterministic loading, empty, and reconnect coverage - -For each viewport: - -1. Hold the initial real `/api/shepherd/state` response, open Shepherd, assert `Connecting to the Shepherd kernel…`, and capture `08-shepherd-loading`. -2. Release the response; assert `No execution events yet`, `Timeline waiting`, and `No Planes yet`, then capture `09-shepherd-empty`. -3. Allow a confirmed state, fail exactly one subsequent state read with HTTP 503, and assert `Showing the last confirmed state · reconnecting automatically` while the prior state remains visible; capture `10-shepherd-reconnecting`. -4. Release interception and assert `Kernel online` returns without a reload. - -Interception may delay or fail the real read only. It must not fabricate a successful state payload. - -### Step 2: Create a real Mission and inspect the six Shepherd surfaces - -Start the repository's deterministic demo Mission through the real API/UI path already used by `tests/e2e/shepherd-hero.spec.mjs`. Wait for real persisted state that includes the collision, candidates, promotion/evidence, and retained-loser state required by the PRD, then assert: - -- sidebar/navigation remains usable; -- contract stream events render and filter controls change the visible subset; -- the timeline has a bounded `.timeline-scroll` owner; -- the Plane tree renders nested `button.tree-node` controls and retains usable focus; -- opening a Plane produces a named `dialog` drawer; -- drawer evidence tabs are keyboard-operable and content is safe DOM; -- Escape closes the drawer and restores focus to the activating tree node without trapping the keyboard; -- Project Group entry points remain discoverable. - -Capture `11-shepherd-active`, `12-shepherd-filtered`, and `13-plane-drawer`. - -### Step 3: Add the failing full-identifier assertion - -Locate a visibly shortened Plane ID and require its full identifier to be programmatically available through an accessible description or `title` attribute. - -Expected RED on current main: the shortened `` text has no full-value affordance. - -Preserve this failure for Task 5. - -### Step 4: Verify and commit - -Run the focused Shepherd journey at both viewports and the adjacent existing Shepherd specs to confirm the new gate reuses, rather than replaces, their deeper behavioral coverage. - -Commit subject: `test(45): exercise every Shepherd UI surface` - -## Task 4: Cover Project Group initialization, recovery, and message states - -**Files:** - -- Modify: `tests/e2e/ui-gate.spec.mjs` -- Potentially modify after a demonstrated failure: `apps/web/src/pages/ProjectGroupPage.tsx` -- Potentially modify after a demonstrated failure: `apps/web/src/styles.css` - -### Step 1: Write the uninitialized and loading assertions - -Using the real Agent created in Task 2: - -1. Open Project Group before initialization and assert `No Shepherd project yet`. -2. Assert the composer and member mention controls are semantically disabled and visually distinguishable from enabled controls; capture `14-group-uninitialized`. -3. Initialize the Project Group through the existing real flow. -4. Hold the first real `/api/shepherd/projects/:id/group-messages` read, assert `Loading real group messages…`, and capture `15-group-loading`. -5. Release the read, assert `The Project Group is quiet`, and capture `16-group-empty`. - -### Step 2: Write recovery and sending assertions - -1. Fail exactly one subsequent group-message GET with HTTP 503. -2. Assert the reconnect banner contains the returned error plus `retrying automatically`, and that last confirmed content remains visible. -3. Let polling recover and assert the banner disappears without a reload. -4. Hold a real group-message POST after submission. While it is pending, assert the composer, send action, and mention controls cannot produce a second action. -5. Release the POST and require the persisted message to appear after the real read path. -6. Submit long unbroken content within the public limit and verify wrapping plus internal scrolling without document overflow. -7. After recovery and another poll, assert the persisted message is neither duplicated nor replaced by stale content. -8. Assert a Project Group message does not silently create a Mission. - -Capture `17-group-reconnecting` and `18-group-message`. - -### Step 3: Add failing compact-control and identifier assertions - -- Compare enabled and disabled member-mention button styles and require a non-color-only disabled distinction. -- If the real message includes a shortened Contract ID, require the full identifier to be available through `title` or an accessible description. - -Expected RED on current main: disabled mention buttons lack a distinct visual treatment; shortened Contract links may also lack a full-value affordance. - -### Step 4: Verify and commit - -Run the focused Project Group journey at both viewports plus `tests/e2e/project-group-contract-flow.spec.mjs`. - -Commit subject: `test(45): cover Project Group recovery states` - -## Task 5: Make only the causal product fixes demonstrated by the gate - -**Files:** - -- Modify: `apps/web/src/pages/SettingsPage.tsx` -- Modify: `apps/web/src/pages/ShepherdPage.tsx` -- Modify if the failing assertion requires it: `apps/web/src/pages/ProjectGroupPage.tsx` -- Modify: `apps/web/src/styles.css` -- Modify tests only to correct an invalid assumption, never to weaken the acceptance criteria. - -### Step 1: Recheck ownership - -Fetch/prune and inspect open PR files. Stop if any active owner now includes one of the four product files. Record the overlap in issue #45 rather than editing through it. - -### Step 2: Implement Settings roving tabs - -Keep the visible Settings design unchanged. Add stable tab and panel IDs plus a small local keyboard handler: - -```ts -function selectAdjacentTab( - current: SettingsSection, - key: 'ArrowLeft' | 'ArrowRight' | 'Home' | 'End', -): SettingsSection -``` - -- Set the active tab to `tabIndex={0}` and inactive tabs to `-1`. -- On ArrowLeft/ArrowRight, wrap through the ordered tabs; Home selects the first and End the last. -- Update selection and move DOM focus to the new active tab. -- Add `aria-controls` to tabs and `role="tabpanel"`, `id`, and `aria-labelledby` to the active panel. -- Do not change click behavior, labels, or visual hierarchy. - -Run the Settings slice of the UI gate. Expected GREEN: the preserved keyboard assertions now pass. - -### Step 3: Expose full values for shortened identifiers - -- In `ShepherdPage.tsx`, add the full Plane ID to the existing shortened ID element, preferring `title={plane.id}` unless an accessible description is clearer in context. -- In `ProjectGroupPage.tsx`, if the gate found a shortened Contract link, add `title={message.contractId}` without changing the visible compact label. -- Do not add copy buttons or redesign the rows in this issue. - -Run the corresponding focused slices. Expected GREEN: full-value assertions pass. - -### Step 4: Distinguish disabled compact mention buttons - -Add a scoped rule for `.group-members button:disabled` that changes opacity and cursor while retaining readable contrast. Do not increase the existing compact chip size or globally restyle disabled buttons. - -Run the Project Group slice. Expected GREEN: semantic disabled state and non-color visual distinction both pass. - -### Step 5: Run adjacent verification - -Run: - -```powershell -npm run test -w @launchpad/web -npm run typecheck -w @launchpad/web -npm run build -w @launchpad/web -npm run build -w @launchpad/server -npx playwright test tests/e2e/ui-gate.spec.mjs -npx playwright test tests/e2e/settings-model-review.spec.mjs tests/e2e/ui04-audit.spec.mjs tests/e2e/shepherd-hero.spec.mjs tests/e2e/project-group-contract-flow.spec.mjs -git diff --check -``` - -If a Playwright command does not select the intended tests through the repository config, run the exact configured project names shown by `npx playwright test --list` and record the corrected command. - -Commit subject: `fix(45): close UI gate accessibility gaps` - -## Task 6: Produce bounded evidence and the audit record - -**Files:** - -- Create: `docs/ui-review/ui-gate/AUDIT.md` -- Create: `docs/ui-review/ui-gate/1280x800/*.png` -- Create: `docs/ui-review/ui-gate/1440x900/*.png` -- Conditionally modify after an ownership recheck: `docs/BUILD_LOG.md` -- Conditionally modify after an ownership recheck: `docs/TASKS.md` - -### Step 1: Generate the evidence set - -Delete or replace only files under the branch-owned `docs/ui-review/ui-gate/` directory. Run the dedicated gate with `E2E_UPDATE_EVIDENCE=true` so its 18 named stages are copied from temporary output into both committed viewport directories. Ordinary runs must continue writing only to `.tmp/playwright-evidence/ui-gate/`. - -Verify: - -- every expected stage exists at both sizes; -- PNGs are non-empty and have the declared pixel dimensions; -- no trace, video, server log, auth token, private path, or raw prompt is included; -- bounded DOM/API/log canary scans passed without echoing sensitive matches; -- the total evidence set is bounded and reviewable. - -### Step 2: Inspect the rendered UI - -Use the in-app browser workflow to open the local app at 1280×800 and 1440×900. Inspect representative loading, empty, error, long-content, disabled, active, drawer, and reconnect states. Confirm screenshots agree with the live DOM assertions and with `docs/UI.jpeg`. - -Record visual findings in `AUDIT.md`; do not infer visual quality from selectors alone. - -### Step 3: Write the WCAG and design audit - -`AUDIT.md` must include: - -- branch commit, test command, date, Node/browser versions, and viewport matrix; -- a table mapping all six PRD surfaces to evidence filenames and assertions; -- keyboard results for global navigation, Settings tabs, filters, Plane tree, drawer tabs/close, Project Group composer, and recovery links; -- focus visibility and logical-order observations; -- accessible names, roles, selected/expanded/disabled state, landmarks, dialogs, and live status/error findings; -- measured contrast pairs and thresholds, including disabled and error treatments; -- overflow/scroll-owner checks and long unbroken content results; -- loading, empty, error/reconnect, disabled, and not-found state results; -- the compact mention-chip target exception and its rationale; -- screen-reader testing limitations stated explicitly—DOM semantics are not a substitute for manual assistive-technology validation; -- design critique for hierarchy, consistency, density, and fidelity to the current Launchpad UI; -- candidate gate status, independent usability review status, and final integration status as separate fields. - -### Step 4: Run candidate gates - -With Node 24 active, run: - -```powershell -node --test tests/e2e/harness.test.mjs -npm run test -w @launchpad/web -npm run typecheck -w @launchpad/web -npm run build -w @launchpad/web -npm run build -w @launchpad/server -npx playwright test tests/e2e/ui-gate.spec.mjs -npm run check -git diff --check -git status --short -``` - -The known Windows launcher limitation may still prevent the local aggregate `npm run check`; if so, preserve the exact failure, confirm the individual substantive gates locally, and require hosted CI on the exact commit before calling the candidate green. - -### Step 5: Update shared ledgers only when safe - -Recheck open PRs immediately before touching `docs/BUILD_LOG.md` or `docs/TASKS.md`. - -- If another active task owns either file, leave it untouched and state the deferred ledger update in the PR. -- Otherwise add a concise issue #45 candidate-evidence entry, without marking independent usability or final integration complete. - -Commit subject: `docs(45): record UI gate candidate evidence` - -## Task 7: Open the draft PR and request independent gates - -**Files:** No code changes expected. - -### Step 1: Final branch verification - -Use `superpowers:verification-before-completion`. Review the exact diff from `origin/main`, check for unrelated files, run the focused/adjacent gates again if any code changed after Task 6, and confirm the worktree is clean. - -### Step 2: Push and open the linked draft PR - -Push every commit to `origin/test/45-ui-gate`. Use the repository PR-description skill and open a draft PR targeting `main` with: - -- `Closes #45` only if repository convention allows a draft to carry the closing keyword; otherwise `Relates to #45` until ready; -- HANDOVER replacement reference: `docs/TASKS.md` issue `UI-GATE`; -- approved design and implementation-plan links; -- owned files and explicit exclusions; -- six-surface acceptance matrix; -- exact tests and whether each was local or hosted; -- links to both viewport evidence directories; -- known limitations and deferred shared-ledger edits; -- separate `C/B/U/I` statuses, with only directly observed candidate/browser gates claimed and independent usability/final integration left pending. - -### Step 3: Verify hosted CI on the exact commit - -Wait for the draft PR's hosted checks. If they fail, use `superpowers:systematic-debugging`, reproduce the smallest failure, add a causal regression where applicable, and repeat the relevant local and hosted gates. - -### Step 4: Request independent review - -Request a reviewer who did not implement the change to perform the usability gate against the evidence and live flow. Do not self-approve that gate. Keep final integration pending until issues #44 and the E2E/integration owners have landed and the gate has been rerun on updated `main`. - -### Step 5: Report the candidate outcome - -Report: - -- PR URL and exact head commit; -- candidate UI gate result; -- local and hosted verification evidence; -- causal fixes made; -- any findings deferred due to file ownership; -- independent review and final integration status. diff --git a/docs/superpowers/plans/2026-08-31-issue-48-stability.md b/docs/superpowers/plans/2026-08-31-issue-48-stability.md deleted file mode 100644 index e215258..0000000 --- a/docs/superpowers/plans/2026-08-31-issue-48-stability.md +++ /dev/null @@ -1,387 +0,0 @@ -# Issue 48 Stability Campaign Implementation Plan - -> **For agentic workers:** REQUIRED SUB-SKILL: Use `superpowers:test-driven-development` for each behavior change and `superpowers:verification-before-completion` before commits, pushes, pull-request updates, or completion claims. Execute the tasks in order and keep every observed command result in the issue evidence packet. - -**Goal:** Remove the reproduced sources of suite instability, recheck the previously recorded service rows without weakening them, and produce a trustworthy five-run `npm run check` campaign for GitHub issue #48. - -**Architecture:** Keep the fixes at their causal boundaries. Fixture Git commands receive a deliberately curated child-process environment so an enclosing hook cannot redirect them. Verification-snapshot tests synchronize through the service's existing fault-checkpoint seam after the owned snapshot has been removed, rather than consuming OS file watchers. Scheduler overlap is proven directly at the shared bounded-batch primitive instead of through a full Git-backed Mission. The candidate-cleanup fixture establishes the executor's shared private root through its public preflight before concurrent runs, isolating the cleanup phase that the test claims to exercise. No product behavior, public API, UI, dependency, retry count, assertion strength, or timeout changes. - -**Tech stack:** TypeScript, Node.js, npm workspaces, Vitest 4, Git, GitHub Actions. - -**Spec:** GitHub issue #48; `docs/PRD.md` section 16, Phase 9B; `docs/TASKS.md` row `STABILITY`. - -## Progress - -- [x] Task 1: Isolate fixture Git commands from enclosing hook state. -- [x] Task 2: Replace snapshot-removal file watchers with a lifecycle checkpoint. -- [x] Task 3: Recheck and causally isolate the historically sensitive service rows. -- [x] Task 4: Run adjacent and full server verification on the revised candidate. -- [x] Task 5: Commit the causal fixes and open the linked draft pull request. -- [x] Task 6: Run the formal five-consecutive-check campaign. -- [ ] Task 7: Independent readiness review. - -## Global constraints - -- Work only in `/Users/sanje/code/shepherd/.tmp/worktrees/issue-48-stability` on `test/48-stability-campaign`, based on `origin/main@a2a464d6be697ab949b254944b81c355a9be5403` after PR #94 integrated. -- The issue is assigned to `sanjey99`; ownership is recorded in issue comment `#issuecomment-5472521900`; the branch is already published to `origin`. -- Recheck issue #48, open pull requests, remote branches, and worktrees before each new file-ownership expansion. Stop if another active owner claims an overlapping file. -- Keep the accepted UI frozen. This plan does not modify web code or visual evidence. -- Do not alter production timeouts, Vitest timeouts, retry counts, suite concurrency, assertions, or skip lists. A green result obtained through those mechanisms is invalid for #48. -- Keep default tests network- and model-free. Never print credentials, prompts, session identifiers, private environment values, or unbounded logs. -- Preserve the current `test.each` coverage for both policy values and both F-03 failure variants. -- Treat the five-run sequence as formal evidence only when every run uses the same commit and current `origin/main`. If either SHA changes, restart the sequence from run 1. -- Do not merge the branch. Integration and the post-merge gate belong to the integrator. - ---- - -## Task 1: Isolate fixture Git commands from enclosing hook state - -**Files:** - -- Modify: `apps/server/src/shepherd/general-project.test.ts` -- Reference only: `apps/server/src/shepherd/recovery.test.ts` - -### Step 1: Preserve the deterministic RED evidence - -The pre-implementation reproduction has already been observed on the unchanged branch: - -- `general-project.test.ts` alone: 8/8 passed. -- Full server suite in a normal shell: 843 passed, 3 skipped. -- The same policy-interruption row under inherited outer `GIT_DIR` and `GIT_WORK_TREE`: 1/1 failed and staged `policy.json` in the enclosing Shepherd repository. - -Record this exact contrast in `docs/BUILD_LOG.md`; do not manufacture a second enclosing repository mutation merely to repeat RED. - -### Step 2: Add a hostile-environment regression test first - -Import `vi` from Vitest and add `vi.unstubAllEnvs()` to the existing teardown path. Add one focused test modeled on the poisoned-Git-selector regression in `recovery.test.ts`: - -1. Create a managed project fixture and a separate decoy Git repository inside the test-owned temporary directory. -2. Point inherited `GIT_DIR` and `GIT_WORK_TREE` at the decoy with `vi.stubEnv`. -3. Ask the fixture helper for the managed repository's top level and stage a fixture-owned file. -4. Assert that the returned top level is the real path of the selected managed repository. -5. Assert that the selected repository contains the expected staged path and the decoy repository remains clean. - -Run: - -```bash -npx vitest run apps/server/src/shepherd/general-project.test.ts -``` - -Expected RED: the current raw `execFile("git", ...)` helper follows the inherited selector variables, so repository identity or staging ownership is wrong. - -### Step 3: Add one curated fixture Git helper - -Replace direct uses of the promisified raw Git executor with a local helper whose public shape is: - -```ts -async function runFixtureGit( - repositoryPath: string, - args: readonly string[], -): Promise -``` - -Invoke Git as `git -C ...args` with a bounded buffer and timeout. Pass a new environment object containing only the process values the child needs: - -- `PATH` -- `HOME=/nonexistent` -- `LANG=C` -- `LC_ALL=C` -- `GIT_CONFIG_NOSYSTEM=1` -- `GIT_CONFIG_GLOBAL=/dev/null` -- `GIT_TERMINAL_PROMPT=0` - -Do not spread `process.env`; omitting `GIT_DIR`, `GIT_WORK_TREE`, `GIT_INDEX_FILE`, and related selector state is the security and isolation boundary. Return trimmed stdout and allow command failures to retain their normal diagnostics. - -### Step 4: Assert nested repository identity before destructive fixture operations - -Add a small assertion helper that compares: - -```ts -await realpath(repositoryPath) -``` - -with the resolved result of: - -```bash -git -C rev-parse --show-toplevel -``` - -Call it before the policy interruption tests stage or commit fixture paths. A mismatch must fail before Git mutates any index. Keep the existing assertions that prove the interrupted write is cleaned before its commit. - -### Step 5: Turn the focused test GREEN - -Run: - -```bash -npx vitest run apps/server/src/shepherd/general-project.test.ts -npm run typecheck -w @launchpad/server -git diff --check -``` - -Expected GREEN: all general-project rows pass, including the hostile-selector regression, and the enclosing Shepherd repository remains clean. - ---- - -## Task 2: Replace snapshot-removal file watchers with a lifecycle checkpoint - -**Files:** - -- Modify: `apps/server/src/shepherd/service.ts` -- Modify: `apps/server/src/shepherd/service.test.ts` - -### Step 1: Write checkpoint-driven F-03 tests before production code - -Remove `watch` from the `node:fs/promises` imports and remove `waitForOwnedPathRemoval`. Extend the two test verifiers' sibling-capture promise values from a bare path to: - -```ts -{ - contractId: string; - snapshotPath: string; -} -``` - -For each F-03 test, create one promise before constructing the service. Its `faultCheckpoint` observer resolves only when all three conditions hold: - -- the checkpoint is `contract_verification_snapshot_removed`; -- the checkpoint context belongs to the current Mission; -- the checkpoint context contract ID equals the captured sibling contract ID. - -Keep the existing sequence: observe the primary failure, capture the blocked sibling, release the sibling verifier, await its return, await the exact cleanup checkpoint, then assert the sibling snapshot path returns `ENOENT`. The promise replaces only watcher-based observation; it does not replace the filesystem assertion. - -Run: - -```bash -npx vitest run apps/server/src/shepherd/service.test.ts -t "removes the sibling verification snapshot after F-03" -npm run typecheck -w @launchpad/server -``` - -Expected RED: the new checkpoint literal is not yet part of the service contract and no production path emits it. - -### Step 2: Extend the existing checkpoint type - -In `service.ts`, add: - -```ts -"contract_verification_snapshot_removed" -``` - -to `ShepherdFaultCheckpoint`. Do not add a new event bus, public response field, or runtime dependency; the existing optional `faultCheckpoint` test seam is sufficient. - -### Step 3: Emit the checkpoint only after owned cleanup settles - -Wrap the existing `planeManager.withVerificationSnapshot(...)` call in a local async function with `try/finally`. In the `finally` block, await: - -```ts -this.checkpoint("contract_verification_snapshot_removed", { - missionId: mission.id, - contractId: contract.id, -}); -``` - -The checkpoint belongs after `withVerificationSnapshot` settles because `PlaneManager` removes the snapshot in its own `finally`. Preserve the verifier result and exception unchanged. Use the same scoped IDs already passed to `contract_verification_snapshot_ready`. - -If the optional checkpoint observer itself throws while a verifier exception is already active, preserve the verifier exception as the primary failure and attach the observer failure only through the repository's existing diagnostic mechanism; a test seam must not mask product behavior. - -### Step 4: Turn the F-03 tests GREEN without watchers - -Run the focused command five separate times, followed by adjacent verification tests: - -```bash -npx vitest run apps/server/src/shepherd/service.test.ts -t "removes the sibling verification snapshot after F-03" -npx vitest run apps/server/src/shepherd/service.test.ts -t "contract verification snapshot" -npm run typecheck -w @launchpad/server -git diff --check -``` - -Expected GREEN: both F-03 variants pass without `fs.watch`, the snapshot-removal assertions remain intact, and no `EMFILE` or unhandled-rejection warning appears. - ---- - -## Task 3: Recheck the two historically sensitive service rows - -**Files:** - -- Inspect first: `apps/server/src/shepherd/service.test.ts` -- Modify only after a deterministic RED demonstrates a causal defect: `apps/server/src/shepherd/service.test.ts`, `apps/server/src/shepherd/service.ts` - -### Step 1: Run each row repeatedly on the fixed branch - -Run the PERF-01 overlap row and attention-required fixture-cleanup row five separate times each: - -```bash -npx vitest run apps/server/src/shepherd/service.test.ts -t "PERF-01 proves real scheduled candidate executor intervals overlap before release" -npx vitest run apps/server/src/shepherd/service.test.ts -t "cancels tracked attention-required Missions before fixture cleanup" -``` - -Record every result. Passing repeated focused runs establishes that the previously logged failures do not currently justify unrelated edits. - -### Step 2: Apply only a demonstrated causal synchronization fix - -PERF-01 did fail during formal campaign run 4 after five focused passes and three complete green campaign runs. The service row timed out at 5.176 seconds while 843 peer server tests passed. A deferred start barrier alone retained the original full-Mission completion assertions but still timed out under a fresh full-suite run at 6.229 seconds. Disabling auto-resolution and awaiting exact candidate completion/attention also remained over budget at 6.038 seconds. These RED results prove that a Git-backed Mission lifecycle cannot be the timing harness for a five-second scheduler-overlap assertion under representative suite pressure. - -Move the existing production `allSettledBounded` primitive from `service.ts` to the canonical `scheduler.ts` module without changing its implementation or callers. Replace the expensive service-level PERF row with a scheduler-boundary test in `scheduler.test.ts` that: - -1. passes two distinct candidate IDs to the same exported bounded batch primitive used by `ShepherdService`; -2. dispatches each item through a test executor with promise barriers for both-started, release, and both-completed; -3. asserts two start timestamps exist while completion remains empty before release; -4. releases both operations, awaits the real batch result, and asserts two fulfilled results plus two completion timestamps; -5. proves the latest start timestamp is no later than the earliest completion timestamp; -6. retains a separate limit-one assertion so the moved primitive still enforces its concurrency cap and input-order result contract. - -Remove the service-test-only `CandidateExecutionIntervalExecutor` and its full-Mission PERF row after the scheduler-boundary RED/GREEN test exists. This isolates the performance contract rather than reducing it: the exact start-before-release/completion-after-release assertions move intact to the production scheduling primitive, while the adjacent 30-second real-Planes tests continue to prove completed Mission, selected/promoted candidate, and `promotion_completed` behavior. Do not extend any timeout or change suite concurrency. - -If attention-required cleanup fails, add a test-owned lifecycle barrier at the exact point the tracked Mission finishes cancellation and await that barrier before fixture removal. Preserve the terminal-state and cleanup assertions; do not add retries or sleeps. - -After either demonstrated fix, rerun the failing row five separate times and run all adjacent lifecycle tests. If neither row fails, leave their code unchanged. - ---- - -## Task 4: Run adjacent and full server verification - -**Files:** none unless a new deterministic defect is exposed. - -### Step 1: Verify the complete server suite - -Run: - -```bash -npm test -w @launchpad/server -npm run typecheck -w @launchpad/server -git diff --check -git status --short -``` - -Expected GREEN: 843 or more passing server tests, only the three documented skips, zero unhandled-rejection warnings, and no unowned files or staged fixture artifacts. - -### Step 2: Review the causal diff - -Inspect the complete diff and confirm: - -- no timeout, retry, concurrency, skip, or assertion weakening; -- no UI or dependency changes; -- fixture Git selectors cannot escape the fixture repository; -- the removal checkpoint is emitted after cleanup and cannot alter normal production behavior; -- all temporary repositories and snapshots remain test-owned. - -Run `npm audit` and record the observed result before committing. - -### Step 3: Isolate candidate cleanup from first-use root adoption - -The normal pre-push server gate exposed one more representative-load failure in -`keeps candidate cleanup failures bounded and prevents promotion`: all candidates -were failed and promotion remained blocked, but none retained the expected -sanitized Runtime cleanup message. The row passed alone, indicating a scheduling -race rather than a deterministic assertion mismatch. - -The live executor prepares and validates one shared private-home root inside every -candidate `run()`. This routed fixture bypassed the production executor recovery / -startup path, so concurrent first-use candidates could race sentinel adoption and -fail before `runner.run` registered their private homes as cleanup-fault targets. -Initialize that shared boundary through the executor's public `preflight()` before -candidate scheduling and assert exactly one preflight occurred. Do not change -sentinel production code, cleanup injection, failure assertions, or the test -timeout. - -Preserve the observed RED/GREEN evidence: - -- RED: the new preflight-count invariant observed `0` before fixture initialization. -- GREEN: the exact row 10/10, the executor file 72/72, production and test - typechecks, and the full server suite with 845 passed / 3 skipped. - ---- - -## Task 5: Commit the causal fixes and open the linked draft pull request - -**Files:** the Task 1 and Task 2 files plus this plan. - -### Step 1: Commit the implementation packet - -Use the repository commit format with subject: - -```text -test: harden stability campaign fixtures -``` - -The body must summarize both root causes and list the focused checks actually observed. Push without bypassing hooks. The normal pre-push hook must pass with the new Git-environment isolation; do not use `--no-verify` for this implementation push. - -### Step 2: Open a draft PR against `main` - -The draft PR must include: - -- `Relates #48` and TASKS ID `STABILITY`; -- PRD section 16 / Phase 9B; -- owned files and explicit exclusion of UI/product feature work; -- base `main` and exact branch SHA; -- the two root causes and why the fixes are causal; -- acceptance criteria and the five-run test plan; -- current focused/full checks, with the formal five-run campaign still pending. - -Post the PR URL and current SHA to issue #48. Do not mark the issue complete at this stage. - ---- - -## Task 6: Run the formal five-consecutive-check campaign - -**Files:** - -- Modify after the campaign: `docs/BUILD_LOG.md` -- Modify after the campaign: `docs/FIXES.md` -- Modify after the campaign: `docs/TASKS.md` - -### Step 1: Freeze and record the candidate identity - -Fetch and prune. Record: - -```bash -git rev-parse HEAD -git rev-parse origin/main -git status --short -``` - -Confirm the worktree is clean and no overlapping PR has appeared. The branch SHA and `origin/main` SHA become the campaign identity. - -### Step 2: Run the exact full gate five times - -Run this command five separate times, without edits, commits, dependency changes, Docker state changes, or branch changes between runs: - -```bash -npm run check -``` - -For each run, record start/end time, duration, server pass/skip counts, web pass count, build result, warnings, branch SHA, and `origin/main` SHA. Any failure or SHA change resets the count to zero after the causal issue is resolved. - -### Step 3: Record bounded evidence - -Add `FIXES` entries for: - -- fixture Git environment isolation under enclosing hooks; -- deterministic verification-snapshot cleanup observation without OS watchers. - -Add a bounded `BUILD_LOG` campaign table for runs 1–5. Update the `STABILITY` row in `TASKS` with branch evidence and distinguish candidate coverage from post-integration status. Do not claim the issue integrated or closeable until the branch is merged and the required updated-`main` gate is observed. - -### Step 4: Commit and push the evidence packet - -Use subject: - -```text -docs: record issue 48 stability evidence -``` - -Run `git diff --check`, the relevant documentation checks, and the normal pre-push hook. Update the draft PR with the exact run table and candidate SHA. - ---- - -## Task 7: Independent readiness review - -**Files:** review-only unless a finding requires a causal correction. - -Ask the selected quality specialist for a critical review of the final branch against issue #48 and Phase 9B. The review must check: - -- correctness and failure preservation in both fixes; -- absence of masking tactics; -- adequacy of regression coverage; -- exact-SHA integrity of the five-run campaign; -- accuracy of `TASKS`, `FIXES`, `BUILD_LOG`, the draft PR, and issue evidence; -- remaining integration and post-merge gates. - -Address every critical/high finding with TDD, rerun the affected gates, and restart the five-run sequence if the candidate SHA changes. Leave the draft PR ready for integrator review; do not merge it or close #48 yourself. diff --git a/docs/superpowers/plans/2026-08-31-issue-96-release-readiness.md b/docs/superpowers/plans/2026-08-31-issue-96-release-readiness.md deleted file mode 100644 index c38ea24..0000000 --- a/docs/superpowers/plans/2026-08-31-issue-96-release-readiness.md +++ /dev/null @@ -1,189 +0,0 @@ -# Issue 96 Release Readiness Implementation Plan - -> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. - -**Goal:** Resolve every concrete product, security, test-harness, infrastructure-validation, and documentation defect reproduced by the exact-main audit. - -**Architecture:** Preserve the frozen UI and existing public contracts. Add fail-closed capacity and request-boundary helpers, constrain live gates structurally, move cloud secrets to a post-provision SSH bootstrap outside Terraform, and make every correction observable through causal tests before implementation. - -**Tech Stack:** Node.js 22+, TypeScript, Fastify, React, Vitest, Playwright, Docker, Terraform 1.6+. - -**Spec:** `docs/PRD.md` sections 0.3–0.4 and 11–17; umbrella issue #96 with linked issues #45, #65, and #89. - -## Global Constraints - -- Preserve the accepted UI theme and layout; only minimal functional/accessibility corrections are allowed. -- Default tests must remain network- and model-free. -- Live gates stay opt-in, single-worker, retry-free, bounded, redacted, and current-tree-only. -- No credential may enter Terraform state, cloud-init user data, process arguments, persisted state, DOM, or logs. -- Every production behavior change starts with a failing regression test. -- `npm run check`, the two-viewport Playwright matrix, coverage, audit, and Terraform validation must pass before push. - ---- - -### Task 1: Durable collection admission - -**Files:** -- Create: `apps/server/src/collection-capacity.ts` -- Modify: `apps/server/src/database-schema.ts` -- Modify: `apps/server/src/agent-service.ts` -- Modify: `apps/server/src/shepherd/service.ts` -- Test: `apps/server/src/collection-capacity.test.ts` -- Test: `apps/server/src/agent-service.test.ts` - -**Interfaces:** -- Produces `appendWithinCapacity(collection, values, label)` and `DurableCapacityError` with HTTP status `507`. -- Consumers use the helper before every top-level durable append; no existing evidence is evicted. - -- [ ] Write boundary tests proving an append at 9,999 succeeds, an append past 10,000 fails without mutation, and an Agent capacity failure creates no workspace. -- [ ] Run the focused tests and observe the expected RED at the real append paths. -- [ ] Implement bounded admission and replace top-level durable `push` calls. -- [ ] Run focused Store, Agent, Shepherd service, API, and schema tests GREEN. - -### Task 2: Tokenless request and public-bind boundary - -**Files:** -- Modify: `apps/server/src/config.ts` -- Modify: `apps/server/src/config.test.ts` -- Modify: `apps/server/src/app.ts` -- Modify: `apps/server/src/app.test.ts` -- Modify: `docker-compose.yml` -- Modify: `scripts/deploy-existing-ecs.test.mjs` - -**Interfaces:** -- Tokenless mode is valid only for a loopback external bind. -- Tokenless API requests require a loopback `Host`; requests carrying `Origin` require an exact same-origin loopback origin. - -- [ ] Add failing config tests for a direct non-loopback bind and Compose public bind without a token. -- [ ] Add failing real-app tests for hostile `Host`, hostile `Origin`, `Origin: null`, and allowed same-origin/no-Origin loopback requests. -- [ ] Implement external-bind validation and the tokenless request hook before route handling. -- [ ] Run focused config, app, and Compose behavior tests GREEN. - -### Task 3: UI interaction and accessibility regressions - -**Files:** -- Modify: `apps/web/src/pages/ProjectGroupPage.tsx` -- Modify: `apps/web/src/pages/SettingsPage.tsx` -- Modify: `apps/web/src/styles.css` -- Modify: `tests/e2e/ui-gate.spec.mjs` -- Modify: `tests/e2e/starter-kit.spec.mjs` -- Modify: `tests/e2e/starter-kit.live.spec.mjs` - -**Interfaces:** -- Mention insertion commits text and caret synchronously before subsequent keyboard input. -- Settings numeric inputs expose exact accessible names. -- The direct Playground tests explicitly select direct mode without changing the product default. - -- [ ] Add/retain failing Playwright assertions for exact mention content, numeric-control roles/names, direct-mode routing, and Create Agent viewport containment. -- [ ] Run focused tests at both viewports and observe the four audit failures. -- [ ] Use synchronous React state flush for mention insertion, add explicit numeric labels, select direct mode in legacy tests, and add the minimum scroll clearance needed for the Create action. -- [ ] Run focused browser tests GREEN at `1280x800` and `1440x900`. - -### Task 4: Current-tree-only live gates - -**Files:** -- Modify: `package.json` -- Modify: `apps/server/vitest.config.ts` -- Modify: `tests/e2e/starter-kit.live.spec.mjs` -- Modify: `tests/e2e/support/test-app.mjs` -- Test: `tests/e2e/harness.test.mjs` - -**Interfaces:** -- Vitest live commands run with `--root apps/server` and paths relative to that root. -- The legacy harness resolves a bare Codex executable through the allowlisted `PATH`, while an explicit path remains exact. - -- [ ] Run the existing model-review list command and capture duplicate worktree discovery as RED. -- [ ] Add a failing executable-resolution harness test and a list assertion that exactly one live file is selected. -- [ ] Constrain both package scripts/config and implement bounded executable resolution. -- [ ] Verify one listed model-review test and one listed runtime test without making a live request. - -### Task 5: Volume-aware live Runtime gate - -**Files:** -- Create: `Dockerfile.live-test` -- Create: `scripts/run-live-runtime-gate.mjs` -- Create: `scripts/run-live-runtime-gate.test.mjs` -- Modify: `apps/server/src/shepherd/live-runtime.integration.test.ts` -- Modify: `package.json` - -**Interfaces:** -- The host wrapper runs the test control plane in a disposable test image with a named state volume and the container-engine socket. -- `liveConfig()` accepts only the wrapper-provided canonical state root/volume and places all mounted roots beneath it. - -- [ ] Add wrapper argument/environment tests that fail until the named-volume, cleanup, env-name-only, one-attempt contract exists. -- [ ] Add a config-focused RED proving the live test no longer clears valid volume settings. -- [ ] Implement the disposable runner image/wrapper and volume-root layout. -- [ ] Run the zero-spend preflight, then the single authorized live Runtime gate once with no retry. - -### Task 6: Enforced 80 percent coverage - -**Files:** -- Modify: `package.json` -- Modify: `package-lock.json` -- Modify: `apps/server/vitest.config.ts` -- Modify: `apps/web/vitest.config.ts` - -**Interfaces:** -- `npm run test:coverage` produces bounded text/JSON reports and enforces at least 80 percent statements, branches, functions, and lines for covered production modules. - -- [ ] Run `npm run test:coverage` and observe the missing-script RED. -- [ ] Add pinned `@vitest/coverage-v8` and workspace coverage commands with explicit source inclusion and live-test exclusions. -- [ ] Run coverage, add causal unit tests for uncovered behavior rather than exclusions, and repeat until all thresholds pass. - -### Task 7: Secret-free Terraform provisioning - -**Files:** -- Modify: `deploy/volcengine/main.tf` -- Modify: `deploy/volcengine/variables.tf` -- Modify: `deploy/volcengine/cloud-init.yaml.tftpl` -- Modify: `scripts/deploy-volcengine.sh` -- Create: `scripts/deploy-volcengine.test.mjs` -- Modify: `package.json` -- Modify: `README.md` - -**Interfaces:** -- Terraform provisions only infrastructure and public repository metadata. -- The deploy script transfers `.env.production` over SSH after cloud-init and installs it mode `0600`; secret values never become Terraform inputs or command arguments. - -- [ ] Add a behavior test with fake Terraform/SSH/SCP commands proving secrets are absent from Terraform environment, generated plan inputs, and command arguments. -- [ ] Run the test RED against the current `TF_VAR_ark_api_key` and cloud-init path. -- [ ] Remove secret Terraform variables/user data and implement post-provision SSH bootstrap with strict key-file validation. -- [ ] Run script tests, shell syntax checks, and credential canary scans GREEN. - -### Task 8: Pinned Terraform validation - -**Files:** -- Modify: `package.json` -- Create: `scripts/validate-terraform.mjs` -- Test: `scripts/validate-terraform.test.mjs` - -**Interfaces:** -- `npm run test:terraform` uses local Terraform when compatible, otherwise pinned `hashicorp/terraform:1.9.8` through Docker with no credentials. - -- [ ] Run the missing validation command RED. -- [ ] Implement version selection, read-only repository mount, isolated plugin cache, `fmt -check`, `init -backend=false`, and `validate`. -- [ ] Run the pinned validation command GREEN. - -### Task 9: Complete browser, security, and repository verification - -**Files:** all changed files. - -- [ ] Run focused RED/GREEN tests for every task. -- [ ] Run `npm audit --json` and inspect zero High/Critical results. -- [ ] Run `npm run test:coverage`, `npm run test:terraform`, full `npm run test:e2e:harness`, and `npm run check`. -- [ ] Inspect both viewport screenshots, console errors, accessibility names, and document/body overflow. -- [ ] Run `git diff --check` and a tracked secret scan. - -### Task 10: Truthful evidence and delivery - -**Files:** -- Modify: `docs/TASKS.md` -- Modify: `docs/SHEPHERD.md` -- Modify: `docs/LOCAL_POC.md` -- Modify: `docs/FIXES.md` -- Modify: `docs/BUILD_LOG.md` -- Create or modify: `docs/SHEPHERD_TEST_REPORT.md` - -- [ ] Update only statuses supported by the fresh commands from Task 9; keep independent `U`/`S` and second-machine evidence open when not independently observed. -- [ ] Commit using the repository conventional format with Summary, Root cause, Fix, and Testing evidence. -- [ ] Push the branch, open a draft linked PR for #96/#45/#65/#89, inspect CI, and update the PR/issue evidence. diff --git a/docs/superpowers/specs/2026-08-30-ui-gate-design.md b/docs/superpowers/specs/2026-08-30-ui-gate-design.md deleted file mode 100644 index 3f09f2d..0000000 --- a/docs/superpowers/specs/2026-08-30-ui-gate-design.md +++ /dev/null @@ -1,200 +0,0 @@ -# UI-GATE Audit and Evidence Design - -## Context - -Issue #45 is the final global UI gate for PRD sections 0.4 and 11.1–11.7. It is -not a redesign. The accepted Launchpad theme and layout are frozen, and existing -journey suites already prove several narrow flows. The missing deliverable is one -auditable matrix showing that the complete PRD UI remains functional, accessible, -truthful, responsive, and visually coherent across the two required viewports and -the required non-happy-path states. - -This branch is an audit-first candidate. Final completion remains blocked until -issue #44 and the remaining prerequisite E2E work are integrated. Evidence produced -before then is candidate evidence and must be regenerated on the exact integrated -head before the `I` gate can pass. - -## Goals - -- Verify the six PRD UI surfaces at `1280x800` and `1440x900`. -- Exercise real empty and populated product states plus loading, error, disabled, - and reconnect behavior where those states apply. -- Prove keyboard reachability, focus visibility and restoration, accessible names, - roles and state, required text/non-text contrast, long-identifier handling, - designated-pane scrolling, and zero document/body X/Y overflow. -- Generate a deterministic, opt-in screenshot corpus under - `docs/ui-review/ui-gate/` without changing evidence during ordinary test runs. -- Turn every product defect found by the audit into a causal failing assertion - before applying the smallest coherent correction. -- Preserve the existing UI design and every security, persistence, API, and - deterministic behavior boundary. - -## Surface Inventory - -The six surfaces follow PRD section 11 rather than the number of application -routes: - -1. Sidebar and primary navigation. -2. Shepherd Execution Contract Stream. -3. Shepherd Live Execution Timeline. -4. Shepherd Plane Tree and its detail drawer. -5. Project Group conversation and composer. -6. The Agent experience: Agent page plus Create/Edit configuration. - -Authentication, Agents-list, Settings, and not-found views are adjacent starter-kit -regression surfaces. They will be exercised where they provide a required state -(for example authentication loading/error or Settings disabled controls), but they -do not replace any of the six PRD surfaces. - -## Recommended Architecture - -Add one dedicated Playwright UI-gate suite and a small test-only support module. -Register the suite in the existing `playwright.config.ts`; do not add a dependency, -new production endpoint, debug route, or package script while active branches own -`package.json`. - -The support module owns repeated audit mechanics only: - -- exact viewport and document/body overflow checks; -- designated-scroll-owner checks; -- keyboard traversal and visible-focus checks; -- accessible name, role, state, and relationship assertions; -- computed color parsing and WCAG contrast calculations; -- safe screenshot routing and evidence naming; -- public DOM/API/log secret and private-path canary scans. - -The spec owns user journeys and expected product behavior. It starts the existing -compiled application with `startTestApp()`, uses authenticated public APIs to -create genuine product state, and drives the UI with role/name locators. Real -backend state is required for all positive product claims. Request interception is -permitted only to hold or fail an actual polling/bootstrap request so that loading, -error, and reconnect UI can be observed deterministically; it must not fabricate a -successful Mission, Contract, verification, candidate, or promotion result. - -## State and Evidence Matrix - -The suite will divide coverage into independently reviewable journeys: - -### Clean shell and Agent configuration - -- Authentication connecting, required-token, invalid-token error, and successful - unlock states. -- Empty Agents list, Create Agent, validation-disabled submit, populated Agent - page, Edit Agent, stopped/started Agent controls, and long-name/ID behavior. -- Sidebar navigation, current-route state, keyboard activation, and focus-visible - styling throughout. - -### Shepherd surfaces - -- Empty/loading/error/retry states before any Mission exists. -- A real deterministic Mission furnishing populated Contract Stream, Timeline, - Plane Tree, collision, candidate, promotion, evidence, and retained loser state. -- Contract filters, evidence disclosure, tree-node activation, drawer focus trap or - contained tab order, Escape close, and focus restoration. -- Internal scrolling belongs to the stream, timeline/tree region, or drawer; the - page itself must not acquire X or Y overflow. - -### Project Group and disabled/reconnect states - -- Empty/uninitialized Project Group, initialized group, disabled composer or - mention target, real bounded request lifecycle, and long content. -- A polling request is deliberately held to expose loading/reconnecting copy, then - released to prove reconciliation without duplicate messages or stale state. -- A polling request is deliberately failed to expose a bounded user-facing error, - followed by successful retry/recovery against the real server. - -### Adjacent regression states - -- Settings tabs, locked/unavailable controls, save/discard disabled states, labels, - and visible focus. -- Not-found recovery navigation. -- Existing Agent lifecycle and denial journeys remain the causal source of truth; - the UI gate may call them as adjacent gates but will not copy their business - assertions into a second divergent implementation. - -Every evidence stage is captured at both viewports. Ordinary runs write only below -`.tmp/playwright-evidence/ui-gate/`; setting `E2E_UPDATE_EVIDENCE=true` writes the -reviewed corpus below `docs/ui-review/ui-gate//`. - -## Accessibility and Visual Review - -The automated audit targets WCAG 2.1 AA: - -- `1.3.1`, `4.1.2`: semantic headings, landmarks, labels, roles, names, values, - selected/expanded/disabled state, and dialog/tab relationships. -- `1.4.3`: at least `4.5:1` for normal text and `3:1` for large text. -- `1.4.11`: at least `3:1` for meaningful UI component boundaries and focus - indicators. -- `2.1.1`, `2.4.3`, `2.4.7`: keyboard operation, logical order, visible focus, - drawer close/restoration, and no keyboard trap. -- `2.5.5`: `44x44` CSS-pixel targets where the product presents touch-oriented - controls; compact desktop-only controls require a documented exception rather - than a fabricated pass. -- `3.2.1`, `3.3.1`, `3.3.2`: predictable focus behavior, identified errors, and - input instructions. - -Headless semantics are not a substitute for an actual screen-reader pass. The -candidate report will state that limitation and request an independent read-only -UI/accessibility review on the final screenshots and latest reviewable commit. -No `U` claim is made by the implementation owner. - -Visual review compares every committed screenshot with `docs/UI.jpeg` and the -frozen design contract: charcoal sidebar, cream surfaces, restrained purple -primary accent, green/red semantic colors, existing typography/spacing, restrained -borders and shadows, readable pills, no unstyled states, and no overlap or -truncation without a title/accessible full value. - -## Test-First Correction Policy - -The initial audit may fail. For each failure: - -1. Reduce it to one causal Playwright or component assertion and observe the - expected RED result. -2. Confirm the production change that would make the assertion green. -3. Apply the smallest correction in the existing component or CSS primitive. -4. Re-run the focused assertion, its adjacent journey, both viewports, and relevant - Web tests. -5. Preserve the accepted layout and avoid unrelated cleanup. - -If a required correction touches a file owned by issue #78 or another active task, -stop and coordinate; do not expand ownership. The initial excluded files are -`apps/web/src/pages/AgentPage.tsx`, `apps/web/src/types.ts`, the deterministic/live -recording specs and configs, `package.json`, issue #44 startup/settings backend, -issue #47 authentication/OPS files, and issue #81 Contract-intake files. - -## Planned Files - -- Create `tests/e2e/support/ui-gate.mjs` for reusable audit mechanics. -- Create `tests/e2e/ui-gate.spec.mjs` for the state/evidence journeys. -- Modify `playwright.config.ts` only to register the new spec. -- Add reviewed PNG files below `docs/ui-review/ui-gate/` only during the explicit - evidence run. -- Modify production UI or CSS files only after a causal RED finding and only when - no active owner holds them. -- Defer shared `docs/TASKS.md` and `docs/BUILD_LOG.md` edits until current active PR - ownership clears or coordination is recorded. - -## Verification and Completion - -Candidate verification consists of: - -- focused support-module unit tests; -- the dedicated Playwright suite at both exact viewports; -- relevant Web component tests and strict test typecheck; -- Web and Server production builds required by the real compiled harness; -- public DOM/API/log and screenshot safety checks; -- an explicit evidence run and screenshot-by-screenshot accessibility/design - review; -- the literal repository `npm run check` in hosted Node 22 CI. - -The Windows worktree cannot establish a literal local baseline because Node cannot -spawn the npm/shell shims used by the launcher tests (`ENOENT`/`EFTYPE`) and Docker -is currently offline. This is recorded as environment evidence, not treated as a -product pass. The exact base commit `b193e57` has a successful hosted -`Node 22 / npm run check` job. The candidate must obtain its own hosted green job. - -Issue #45 can close only after its blockers integrate, the branch is updated from -current `origin/main`, all evidence is regenerated on that exact head, an -independent reviewer resolves every High/Medium finding, protected integration -passes, and the integrated SHA is rerun. Until then the branch and draft PR must -say `C/B/U/I pending` or claim only the gates actually observed. diff --git a/docs/ui-review/baseline/1280x800.png b/docs/ui-review/baseline/1280x800.png deleted file mode 100644 index 05851a7d4858c8f422d8ad159272aa39f447e134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150636 zcmYIvRal#A(>3l|v^WKdySuv++yaH-6e}*lp*R%x;?m;oRw(YS#oZl}{OoV<_xk4` z$w3aDTV~d*wdVPzp(c-sMuG+d1B0okAfp8XgZTCn{sRi!+gBIYQz;A#4veCVq_$V~ zsXwZj&hJ(z|L}O1)VtJBxe%mr|=5{TOQ1?GwQ9|LI$F*=`rAePZG+kLRri0rlA# z{jdA{n}UfhJA;8?VX~RTB3@H&qp3k*Z}IyZvQiKZeQ{_)5g!cf1L&Ci6UDoOz?b5q zW`Vt-AdRgdQBstLZw~x>kYYzQc)yQvkA6~7kTA;2C!XRU$T}bVuWXlMhqiTOXt=9S zX^~yM*kAJPrjtB>vjciIcP23xCa}dr9W;M~crC3)9TbmtQp~X>%GVI#B|ck~*E#0Q|bUtbrG+C0D)HZTMLlnGE2hh`B>8B%~MRO ze_vCzM1}eVnXW+aB)>Bf1pdqSDWy*p5%yyaBVZiMn{5T*mcL2H?~N(l+ySn5r{awe z?iz@}v3)v^Nnsq}ibe5RcR*WVK893fk#;k&$KA*9$r= zccf|*zCZ!&M)G?SiHQC*?1L8 z!4HL?$~=B`yyP#aX|?{stt)|Jfh#6irj?5+WuV1|1W4&*Rs=KN`CTV-kcN)0T^hrn zw2iGGWRE1oIpP2q-pxKOL# zm5Gx1iHiIQuhGO2`+)V!afIJC1Kd=r+P8|c&Oa~{dC~UA^|`A2s%=y_{*+z`%31RI znkw9eNdp`UOL=F>#_h)aEaecLkO+MSW=Lx3e|L$zWnDc*Uk7$w7sjju#F zB|cBIq!o5eEq%09r0??K-%jY+A8CP@)BNsq%CHnGBn$R>?Db_p@Nf48n&Vpvd=#Pj z&A(f4K>WBDco3bXb%qxD$gNxf{*YBs$r^Fy<+{4Y0P)~xQU~G&sQ#wHdiCkKIg0>Q z!WilQ8%3}`DuOC%U}3Zr(ku4CGE9bjh|nZvT9}V{+JH$Oa$;sag=>kC_=-UZ*ZJrp zC#}TqnZNP@AGkDh0>ji!W`oM75<~B!cd#W_{$wpiO1*rxtEm9Hk|x|&7Udr{^wGC} zT%upJtyPz>fB{L;eqx)Nq$001R`WlqFffVHOMj*aTBP%)!XWnBf}eZCS~l{tYKdbC&%QxD-k zF~?xumLR3A6t_F4;!G_e_Qb!tZ{)M%9Qkiu^6NyE_3xwiT++h*~q4Q4T*O1 zkrWF(zh!Xjeu=TEeAl4@v=gR?1R9qmz?{D$;%0@)kuPmx_#;|%?+>a~rZH9Z3q?MC zK<3exc;Cm3QWGmWYxyD%D^4?30_)=dI@P{TX)1r+7fRY{LbF@#x#u@#|3oqnmE)t^ zt8uM^%%f3Dwnzlkg>9<&Hx%F%hNSVFcu3K;mO6l0WRhMOHC4H`<(Kd>?AfIOp>ndW z;vdP=wYDG1nUq!hw;6kdIJWx@JJ`zj>;!aPFe71+Ko}h9p8~-U$;F_?WEArBCxpMV zrQE(>BD1|Me(2`J6e^R?WlN6dm&*NNGds;QUEFFj@M4$kRG!{zuzR!+e!<5ko2x{f zp~dW6ahlD~wXFlhW9rH&C1Bc8sB;6|GNez47j(-+=RI^+DYehi7@Gb*+cmB5-&V0} z0YG>ms1NF*=V_tZ=$se})aBbLwA6^JjV(a=E3N@RQ;CW$&u zLNz-5L$a{|Uh<{vj}J#d%fYA-jf&zVY&AcrWlxyLbSNbd_%C~OKHT<6Ej3aq(6%~2 zV#?JQ9)9-!K#h1=l+RHD6M? zFTRPD?^fQM(*ZMx5F}#?r3+w6$4ss;KNRPcJ>a89(;)p<5fljE%JC=^qPR)-6(+vD ziWSHDeGry_;K(Q~jm1+xProFKP%LeIPg8yv&Zwc5OM|%;rC72kUAlj=K26RfW&73> zWdx|zsh!epXfVHw&#G4!1HXS{UxB&R2eJhS+p2$j{@vTj7Dhp_!5!j|S`2kPZW7b- zE3|@%qaR%~=1WrZ?_XtoY=M4}RteE*P565bkgj;TXRn3@1i~j9y?aKU5uH8m|G&f~ zB$S8eu;@KTfWeXdf&fF;hbdE0ZcTNISv331V>C6#Eoh;g!YTQstbpo$A*EzRW5usQ z7`za5xy7$}6<8Q5fMUt3oMCNi70(pr>5K+d-0#$WxyJYgHwqVejLd z^P;TmaU2D!3t>j+;K1M>gj!%XcZdbYgG%ZddJqsLP&IZvC;*5&bNi- zo33bJpb}CXoTCiFGVOBN`@o&y>#(mozVHrfU;Lnm48PF8kuN&c?K6}yK_9;*fgY8OO6A-HiRBxSJl*A+XlX+oJo6bErmI-840_sOl-jL zQw_i2HFX9av%}Zf!epUL3aDlg{1&l8+W1)F_o55Q_ds!Irgc-F zQ%FYOb8EO0Pib?p&Z7;S_1H*jIGhhv!^1y*3Y65VErKH}fDakc#y%1b`gWAllPf2c zh!LvQtm{)T029K9L|i%}t}uxar78>GCIMk2+J7S?DI-0VsL&XLEj)p)?0_|iv_{{%BF>b0Ny zG|#?Z=W`u`Rcliq?+w>2rv}w3&}!nJ!#^kPVo3G5p}oqz2*0wxFe4g~3H^5(eIb2x zQ?EZkYQ=+6yv1zGDhz8`n_*J{sCCnmQfQ&fDsXj2>KHZMEl5Tj=HS!7?b6lAAa`^| zD`27>H--!w{6c$@rPUWPi>@LdQAPDgf5#J#6WW5J?_Yt(L;nhq36)Zw{Y%yg(!Cb=1R2qX) zm4k+cf5mjt639%O_GWm0yTS)vYMz>h1xbI!v{vgIEYfU!ehRUf0v(dR&kYmHt*Hqz zUl-oetW_eWOrtkVUAaXW)>sxt;~S)CWjthV2QfA!s^@{Gz@%&NR?#CY`e!BsYwap4 z?6A@om>0uTH*j;`C6DIk(yIj#HIo9Dwk|cdNO8I7#Ei%p8CQ=6ufkU(KhKWjDfv@- z|735PPn8GLa-0*Ty*Ke}6vr747aIh>gR@&>KLn2>h)g}H#af~{+x4--iXUN$ar0_e z*s54h6;b@eci`NrLHmcAgdysRGw2Zf5K>E#I0h+evw{%H=D1CB;nOm zPJQ`Y;i*}icgqf3tL(?$!Vd**r^K3VqOH1^%-b0;4yW`V?6H zu6pzp-Eo1rwHmiGslBNH{AqPIh%t1Cc(hcao{=xlrv812BC?g3x1AS#%|ZA998MWL zvtQC9TjETEMC>?~$@Uz^G`Sz+bR%yzIxm0H;c!9sUkv@YI;A;l=FSy-(w}#3C{s+5 z_jH%V9Yeu~%{~{rx4VV2NcF5Id)3vo{>gl_5Pe`EGHrWy)l|O?fIyw25ry*N4xQ$ml;P zGKr4>)p|U!&&NZTiYmZo{6{&Nr9%`7Udg7Uq#(gB6U;eWqe4=fpZwvs15%QKG#5gd z&q*HZDecB@eOx1O(?t7LeOaL^ptx@`_3lb4guv{4dW`&NokJA0tbRz{cmkN31oOs@pvGfc)AYcOSJhF` zhsMW22NlurQoe^y`qG4I2hMjZtMFfs@Eu5cBwxb>p3m~HOQ%1E^R$eo0Q#f9lfaFJ zS644kB7Fd6Mu1713WG$a3dwAT;kj`1KjwWFX|w?Xla)PV$%@i(f4 z5oo1#W0g8==V)cWLuF4<7ZTW(wK9@`)GXK~G;)X5R_6oKaBPGk41t-z8uok|b!ee3 z##^Spn0tO?SPsv%O6g@xx|v#^*?ACT;IjOEdU*Mk6jw@t<3uxP zusRo%F%V2uF6aD@&V;79ik%IaLXeOPovUf=kOwHh2`@hJmQa=!X!iRi<&sQ)h zPjcZUP&K?G-U{-g=a8s)I~TYvPdH!3L`D=+m?s3z;^ZcFxwOZfAi!JAB*c#SSO|N8 z!1ttg4aZ9NNAxl1pc~SnH0=vG9zMFYbHnC;@HnPa4H6Y+K%9~f7FP$HM)&hL=(h@K_^2$VteWm?(efkP&szG2R=v^$ zrwY+cel&%{ND034;gKttPp;Zz>OWo;9o}t(A2;&h2O-@w;p6D@xjVm%O1zZ9f6w1I z*(bm~Ks+hSDF;n0?_}k7t7E{&8BxN?iuzOb|V8CiUScAk9FoFdm zQ<#&3{BYq^zS-rrx6qa{ZPR|!d6J=J>d}`v_*j?eAa_3uHlxVZ?m(RQ4?YV(`LOMe z33WmEB7)3!(^yr71vdsoUy|lp+6D3@z_;Hf6<0xMVt`xrGamnEFzNMmm3lXrW;~Uo zWEah1$T+RcPJe~*hN3S@Cm^e6sKj**@Vhwnp*aFGDcQ(1P^%V?`f%i)zPL*i>+jG@ zHboU7K%VTlgvtEw+^Wm<`9-A-%oLcHm9RjZh~^ylniT^+o?C2WWMp9wfB0!cub#e% zH-0Qc9Dg^ZKbGQv`=VNOjdBSkMxFRml#xNpA8)yL-_`1P#7uf|a_Hbnig#u0v6ye; z086_V#K`n3OcrSNrY8Lp;r@l1?AU&D$ambSI@9Z%&QDM{c1j`-wVl;Z9ADnb4TY zBuqv7l_`l$p)gr9@$%Yq+ZIQZu#MbtxvopYgG^bF1Z-}&IlThS?oVW&f@z)tK1~DF zD>^!kz+K>Ap*rC0|7UeKe$FxB_wA$|jK0W3W<1fCO)un~u6TpV8_#L@P z7m(E2n#RKQIZHH=F`_91w(EZyVRk-F<&*I^PE0X~vnN}%^_iMVHq3jUB#?b1@dROp z(2YaxM~nJ?M)B~cz~VE4XdK%RLikg1*j%(dCBPuU3jt?O02E@&CFx)g4Liv9`Mb_8 zrB_UqN=8%|8$tSZkO32W;#+F3Qe_39$VpDI=p>qJeMA1()zJc)qxFgULEc+$wmd6w zi?%RZqk2p6$Jc#CRHUXk%SUW0w|a?%PLk#W1EQ|sO_}0vF??I+E}mPj>*uIB@eTMD zT_;d1+jO8kQ&nR%c4SxY=uW$I1>aUc*&W_JtcGb&Q|2c}gIHKKRS0iAkmXhAD0?|i z47?l9a}nQesqvJ`^XM1GjYq7VTI;K)KmPuyuC_O)!sIHJhmgc%7$D!0zwzELjV24Ac*d`djCFIQ$>S7t z_Jokoq>g-l9PGZ5kG6yKyOG{c4W$B$3?Dw*lqS;H3!_cSp4|c{b7~1#*v^Mq%m@IQY^!Y-R1p8*EQnz z&_BDLT82V2p0XAhBEcV%0Q5lb<51agRn&XZgJ3q=+YJFcZ^;r=Jr~vYCB~G56e9it zKT!G4PI3gE+lKL~w$79S6ZID*glcqA3&}A4|@>Gdk6o>InNvFlzwj7 zh}52cW0nR}OLAiF&`|Y{j9by6ukeAnbrDm}VFo3k_7ht6NsurKI<{`UAuA$EPvoj+ zJ5^;{h41MAZjDs)oG@bF#;S{;g??$Dc0r5c6&^qQbh*&w`{IPT@MOos2=ep1B1`)6 z_Dw7sqbUcAsA`h#l5qQ9_sDM=n5XPo^{cbEhOyZpFvylKKMMEais zN!wtMHle@dhjl~dKTL7+Aw`%mTj{_g=`N^mp|2!jYZLYKMlsR43cfP?yDDoCk`Bd% z9btI}{0?~L11}%LAN+ck;TgJFDiSE{0Gh;SM4@%dT-crtH{Q@#giFlH;;xzApw>?n z+`fSCTiY*O(}8s=nS}v~L5EHMY@ILK`|n$tILTVS=t7v2I98^xg$1g4vZ+u^$GUNcFm8m&jEKYO(iJnB04)nSIWHoq)2<_aS)^@zw9U`SVUoksE> zcG7&q-i=YzYbK+LX<}+)J7{y6u)=%gb77e1E>@u2?=HB04J8@VcTvVu5jlz)SRZE% z(lZ(eGH4$K$-T3>Pq#n!xw^Z{G6jO0C$qH>B49pqci-<^_I-l%Gj!5w z6ynmqk=;-3W*lzsbX9_*zR{OP#WGYdQlv9AU3s^5by$x09W{+1b6bk*5p_{(h=X&N(SRPpIMTtTsH%p<%_b!B)_7d|eNWAM{%W@8qiNBuxVkw3 zyC~ZVz+Km^YSiZs>S+NMXPfDlYsx60!9GRpAUNkexHu%&xg;lMzK*J!kpXIeAC{cV z1H28cFa{0ZXCRiJz$xzp?`btb1u5i3-jiE*OC1b7J<+w6678m;W5u9d%$ULX#MVWq z=ZO~!nD518h?ce~vZ~tFNxE)=`LJZS%CMeI{iDv`Y*l^9#^ zOIDEfhb$X#>T0?&!znrUSq%l7Lo(6bUbIiir%|{Jxge_(;j!|Hu;A`&*dhNDBABDY zp7LedU4bwOa)CRa_f@!xGvQ`6vHxtR=K8&{oqvzES|c>jDr5os2^r;&9vT0w-wrXZ z#ZVc{jmWndjE%b~b+_f}8@=%*^!9d!=#|(T{G&DsWTbdhKySiM!CK6wPt!B=+3Q4{ zm;1cn7g&_a_mMW1Tg|qL%k@KJnc~G|?e|x|vsPT~_Kgi`JP@t*CZ6Mg;;nu=_9uFx z9uGw43T2Ix(97TjCuO+LlvZ8lq`>|7Spfz%!q zcMaWcC{0~PE`QyON~}8>3!I_H3tB_|-h1o${nd;A>0^6$^WbmMi_rYxizf7RetTHl z&v&|kD;eamM|b?RJg@h$qV-r0dVwzPJ1`1fgn9=QjO>5#hJdc)K~NM0n9y*ty96+7Ub#UM+8PH^RVg}xDUDwKnGtHqn&#(=zw3M zrKul*gd$y@B-uwyJ~*Khm?I$WZYZcYqw(VdZ#*X^ypAgZxbKq~1=xI<>2i-ot=uV_v=p|W4eqZr|IczzEW)kMcN`@&fT zot0pjBk^O*;Z4LCl%rLMW_~Pgq6JbB0(9Scd!vN-#hs(=*tlx8%{OHyrY(4J0skx* z$pv!_WwS-udHTtv;_$6$h}RT`Vw3Z%Gb0`J$Pi+%O0^(PP;kF&mkZXo-Qh*2eK`w1 zUUst=!4znBognJ=zd0Q#I1k6nT4f?K=4Sr!&Qlmlq}B?d?}qesa5~ywbiee@JIQhK3$@S0F6VJVrfwz1ZbS5?2RytoZX>0pPhpeBS~=rU zLXCC4v&X!c%K*ZFzvq-D>`mTj_Lw(R+MyY9n@{`+Wt@ z&$@EoPu)mX^Ia`Jw{XPa0+jsum_SQ^gy71%#}d^1*zX$SGm%WK)(BJ<(cSe6OkCi) zAXHwAi0>c^RdWkA45~>aLt&|UNEJV{Of(5U#J@8DF~zr}4F8#|DoKvDY(mfEG@UT? z9;lv*V4RIWB`7)a`+*G@X{r6b|2fv3YcD44tWJ{G%+UP<&$U&*oYjZWbqZt;O{XS5T4w)qNbr;za^4EG3JdAgz z!Si_{`S0B4p&H-eG^e&ZJm~$hFS)hg{A`70;X7aE_P6;09_J1CYUl6AC7)$2tuQ-@=i(2VCpP2M} z6&JfXVu!l8JDRAu^AZKQt)zlZb{_qDO-XYfuO0&KBY*)nL(0e5W2KWBTIruzw9Ln| zGjw3?lp!aD`~mw5@&0#z4gc#KIi&Rj6W+lE;U>M7qDf9?Bo+DMYv;{)Ov*y;h|PEu zW&E(q74vPn$4Y_7NW7+tH;NJ&u38TE4umMz!vG5mjtahw`d_M*@1;FRwQaghl_cha zV0m(Mm3s$pXpyJBnnk%zTS4S>!DxH*ChltZdP8kv2098LOjOt$HstBs!+eUBCL zrm&V|?4zlPpIFcJxJ;umLyv~>^Ns}7vMHmjT98p{5T%*UsW)spdWvku#-4cNAnoRN z6ZcJrD@1nUobDBFMGoN1rh<_=vcQELd;2Uh&4yn;JUsceg}R5Cm?~9pevjBgt&bWD z-j7s9*JZwwGg>b}I(W62)jfF4%+4+l6WL^1(a>A;-+Rphx%Lx1#(f%6zaIasD(r1Q z+V-QO%w{TIGX<5a+tRX}n4^1KLo4F) z$`snX?B3_r_C?|-ZGG)ro9OeBmGzCIM$A|Z3)z3^Fgmx2FVKAhE`gTm-7DE}b%6$z zSRN92Iu#wVDgkF+vTq#hRfK+!JutCtHs87!^0ApeF%)ck=M+VOg zn~YlbW&ken-ASOBt!Ph!CF-dS{&D`yX{1=QYO|4y;;4d0V;o%Zm%6S)e-@QBwW_L| zSvgo&EN{1^SJA+N4Vm|_jT5P#m2eK5s9b}g&O{ zo^$WwU)nZneT|VUz5P`c1#`(4rX0dN9GEM!}qN?lQsnWZX$$BzJqsc0yx{Ktyqu1YaAnWq-ng8LJ%GG(n z(Z)yIL$y<-a51X({Y>cdJ?pHi9VK)^UAIBU)ceJHUpoUWX=i6Z^N^5GiXVZBgg5s> zem}iZDw@{Z;{SYO78bZ4wOBwUTxP;dS`AJU9h1wOS;g4)Xn3?a^}NSy9O!U~5hE(<>BDB|n};wH+OiESxt4sk+2dX;)(1oE=!B!4_y zmzp^V?o>ps$96HJ36o#Ye0zevpp+q-;=!|2UKCDb(AkZepgWw3jM$F{56=r8my@Gu zcd25j6STSwP)y?py@@8#x9Sgx+)kv=L4bF@HQ12KBT&G6Q?>kFTXOsDQNM#G`oJBX zAI#8Q5}{hUxNmSj_NHN%gPTP#niY|1x-dv-{#3an_17;)8&@m>y<9DWTN!C1&Aa5k zSj}!bjY}*k~k>(lj>M zd91P@smj(kN-nCctv|#EB>Jq7;5lj<=yG?UG<}TH&M8v(*8-&HLeV>hdqm1=(D)hN z+Rf3jRS~J;F8fDSvSh84{mlS}&Lz8&r+e#K1QL*^N0R?xkoD79$uH8%`c0OEFbI$S zrI5FbpB|wK{<|4@`m@DX7p2c=9}syzcf9dum#Ej#QL``s zq`8?vb+pvwe}hB%f*Z)u=6=Gz$ibq%$2AvyFD0+4;H1u49MMA&h>u~*#9Cr(cE=Wa zPEpdHO7@}4UiE7L^X#rHip)%|O3W!qEEX@2M6-?P@rGWTW=}h^o9*RumGL;=kK5x+ zN0D3s#iCb%VV2R{ukU;j^fnX`=~EiJyM?PDsk8xmMJkkW%*UKCK(>MnlZp1xIvqjN zjK0hpt9b#f^ExPaqdASgl~w!ei1py>-yL3V_H@IhHjm%WgMvgct=IN%HEd2-%-ut< z(!%$Qdz2q2Y&C+I_q0zmy4aJQRh5HQ+3h(?v?z_UV!Un0`|us;z}yZ6QLg?Bhdof~ zJURfiYAMvLyQ_;DUN~P|bJka9H@BM)@}6^7j(jxc=zLbcaCAJ(<#l=MU7Y0&9G|ki zQxXu!R|&=I_A{#|+P2~@K-Rj_%eR8uOyuv{E2(YCT$i7Kuev_~Cr56TIY@?`U&kjH z^|GS0pVIXB=72^9jaxV3Be}C0Jmx+#AKok}GM`&o$bd!YV0IWszVj|l(14O1p}STR z;xGiazD58xf1+PYtEcEV*xKY&TWk>(VB#DFwxIh}EmX5r%%feZ+S@Hy&Eu}!TWK2! z#UIVi1WB9re7xHrn_CS$ykTE5Q{wX+-fu&7hHfB_l&&WvK`*uUrBL!QK0D!)C#;&H zm(GyR)`APE%-*I_3?;#PD!=*S^9y&pGz0l4RJ& zfB%Z+ftZJEmjL;{8Ezo-U!ER04k|Hvf}Kqe1=!pT6X61w-)%RC3?9UfAs@!@HNfmz z=NW!~Z~n{y5=(vHIYPK79z2k0zxxoFDk5{`r5Rl^ChQv{eX&rzHa9@p{OdeyzA?^9 z$ajNL7IPBv=!;!tAILddI=?%|7GPCh>fj;$vcLJdXnkS&OqlI@W-TVjZ{6RS*M6iN ze~PvtL*}Rto}xJ+ZHuvxhq5CvP|H`>Mq}h%;%<&@>zQPd9kk- z*MpX_bpqy7Ew9l;xtw>=@ z_-47cgGgdH#~Q9ewE^poVl*UP^zJm`pvYD#VeH5oKQ9RIhJ|*+=`ZBYTvF&4Crxvk30Q z-Yxq)E^PB!duZ-mj(o6LGFaRI@POmQA&}?e9PHOsc~DZe1VwvU_QUsXh%?qtC`29# zu5H_8cc|mAxZIMQWHmyHK#sNVdi(+PDp3?oH__EK)in^^3r1Wt7Va(~jzb`Wd;Kx# zi&)wE^y9^;Iw+j3*?%kRWIaHqb*mZla(~-zR5M7_b(=WJw#TaDF&qzh?pGfD>m}tG zYcuk zeBxbvBpBO~FP_+=pVj9bl-kGjcCkL!<80-cw_h1E}*EHNa3;!wW|zgIMP}xGqENA3Loh1 z`-rRlI_ykrAyOMop+6>edoYE6(sL|bq0+e#g+J<79hlMp7u5aCdwJj z?Gg2b(7`c&G4fY6RicdFpQ^51VGv{=Q5KVZ<0XsE-GXqUGW>jeG;M)m=yY-WQL^C; z+Mnv(Z!+aC{CCAcSN&PmWQZ#4^zE)Hfc`a-e)Wm;&9f{Eum$2mtLS;T&$vsri4mN6I5$hyjy_EgYTxPgM2T9Xp@#$Flu8% z(ZiQlY;8FcQf6lL0A_Fo(Zl8Xgq$w{`2;KI2xp)P7%S9O z6W#)a(%2zX^GOh4ZMzIp4@cQYP;xu;3ApNub^EnzR?ACCabg!Wk+;2I+KcQrIMdxs z@0zYdi{g8{uctwCkIUA{#~wA9Psh{KZPuWxyW>-Kzuj!3F88>b*7m<)Z`|`@KiPE0 z-rVIj-x16XdhKD64-~y7ogFQOJ^(3m+Wp*&?rzabbSd_)=c<8irqjb&3+(Gt0-%lQ z{y@@2@y8uuO2@#yHcq!$x}K{6n&-F-@b5U4998abdp(5o9A#5pir0q%PAkPr8`%+& z{(%si9;&<_nXCuJnIvQdF~!^8aZJn?8fH15jE}b`wYG;nw$JLBM8$>}8~{s9G-si! z9xBg-iYDY#qL(c&;pz{_9Sz%^D3{Q|kMMpAa=sIWvMW=Wa0v_r!C;Zqx8e1~!YalN z!+}qzs!KpCD_`f66vQjC8DADt^@!R7X%@5$&I6@C6Ihw5Quynax!4j7SKCz|%;6mD z_&-5T&%%(J>V~RN((Kol)>{S*1+!F7K@&np4W}Z3x$EQ?JTnvmE#7(;i~w$V_0eBm zKib9OcuXsPMk%Ta{GcD|%zB6DLW!*As?%hDj!!zUp_ zJp#+rN=^s;UejC3RG0m==fl-RfVf0dtvnTqd(_}}&M;>txPul4YbC^*+lKU%7NfZs zq^Kdnv56Pwp!!bB-7Ij*%d8u8e53w0ojx5Dv=v#VHAV9ve||HmfEa00so) z_6N8PPj?BkAkbcg&zqLwJzSnm*$r8jJLNMMDqcK|AnFZ8zv$7na0rQXuVpPkF>+ZP zB41LRo)@)Rj#vA$lC>5*Jmx}F5*%~{nA62_2kT$|?jR-<}h*Sr|pxX4pcEUV#% zTzPv~_c4pv6~`UGI=R46m-=nrdgIxLH#@c+ZL|#pmA#O;V#j8szCwbEPwY=fNHSLn zuq4@7Dk->Kj_DRb$C++L467#H&sV+_UVi>(6X7NI1A-|QgL5jaX1(+1`*G$$?d!28 zsbY_pNxUa~j*d}M9@Cd2nFfpg$D36-rW6Vd{+hjl>zJUI2W*h1zp&-x>jV(QN5seC zy_HzH=(J(Hm~5hL!Y%sO`A10@--1}@Zf`^m$=vxDw>s9!pSb~hj?L^s^v0TBmM$@7 zLG)v$HB_a4mwoN=Fdj4RFwu!@Fj{;MuH^%um-Us4i%kSN>N#R3D@KIlHZMDv&0^_h zr2w(+N6*FR;?RYaJ!OgjzpKpgMod*xX4RbL!}{hi(j5Z9yOqW>W4}fI?*8rXt9l@C zR5{Rd{8+XddPB~g^sRRyr}9KUdO}EHJB+8F%Pbm?40a`qbMLCh;k!w`Yl=cO|31kBD_gkqYbHSX^v#+XR80S7@cTI}yP$K);*Ztul? zn{9`+JE1+ke%$YZ*Qbs5&p>?IqMjoIKj+=oMP23-E8q+LrxDJA@0A7#A0zkL2$nDgkSxAFx@~IbrO$6@H+whUSc4ZR!ROs{u$F{uZa8l7L^>K@hfvVu6*W_AlT<@h8ZW`1wAW@pt{l zHKX?V^2HMCg~drD4Z7%)IWTnH^#MsYs^r&6+82{S90&ey|`1=Ku_V3E;oN+yFeHl!%74%I!^eB`0QRGn@15m8r1l7Qnom zTo9f!W*9*{>4_pMQTY<`*0KhpUdbcUHvnBfv8a6fy2TQCSC*OX@bTEs_m)4*6kW8~ zd&<|(Sflh^>y&ST6BTFWb@y@#fGtDZ z3F{!&ebVpY-hIZPD$%O1}LVeF`_n?N0Yt#F$E*J-e(CmAY_>I?2XveEB)O)=;;JJ{9 z?@YBrxaFu-9CYsbu(c=Nanfq_AabxJ4Sf4k-ph5RZ{aaEJM=FR^lUP|%JCHT(C;LS z()1yEv+8TWOygNI^yPOJ<>ptad=9u8h)4cLZE%$=Tbnz5U~gd5)Q4L_`rH}vK=)e?N{ch6 ziqaM%W8_F(*JAcgK+j8-IbX+&X=a~5Askee$~H(=7^&!_#`rZ=FC)wKSgj(3dVUy!@w4AkdEE@@b$5W@!E068HiftN>8?^yp-%E3FEilR>cuNZ4 zAuSlt_V)PE;qqeM6ErKer^kpu@CD*0kn{AMQI|LLwIGwEOS84z{OUmLbT}UKWO1=^ zyyDBsO3%{9CE_Mz+0&ZabfL`+Ag#F_tF-Q}d|}d-m2-LX(j~k&FGRWsJ=}!u1g$X0 z@UxiKJ*}|c?h(kREWRE?s>hksr$)usJWkj}I~%BRdqg?~hN$;JUM&-q1KAg^cgX1L zLX8Vz&TniiQ=tCKQ~!xmCgYvw7B~zDKJ+Q=S{J5-46<(e>iSP=@7S>&SgAj~g1g%TK5aj&3#a+*y$z;1 zr+dt1%Iorv8S1Cnoqc3$@m5j2FWDm%Njmj=oeAcV`tBR-1U&KVz`fR_61M)+S1IOg zIt%QA^leL84EfiM2&U>d&qM@xpDjy2b;D2Z^Xu_piuuBIbh?agluOIYJz`gP`cpgj zm@OBIKg;h%@Uvul?FZj9L0qmXh2>LOfy+AnH)G$CB_(P*QA@*qqhiD!C?smd!pdpo zrGH|~mOqevj=?!{;}R`u^eKM2iMZw zuD@;v^%lY7kjh%v+ z-*0EDKl8(*K2N$_o)a8x2)wysa$T^jy5NW9ZmSdlHvzH0-KJ@ z+V3;R$iQH!R|6tl?~bY=!wjiW07T`d*Y?w7Sjso>WbL!6$uG8U_mqu|XH{gpcN!iO z?*a86^pEZWm|wjP>WzXw>h8qjH>A7~!X1Knw<;qJ)#XHE9xFRcwApb+Qtt5YgH0t1 zU;emQs+S0zn_l0sLv4niee^!CQgFL}+V)%*)~hy~ab3QB0z5j6ma=5)?POqP9cMo0 z!}cfJSLf`vGUxj2Vb+hzl&_E(F0D7%3euFmQKsh+I}Kyehqj|IQ`^mzIkT}Q7jTrS z<7rxbX`5iO9+2a6i*K3#`V8->^*Ux_*2$8S9pQRYk1xn|A{~)`lS6jioRpva0M2Xt z)u6-MZE&nDDW&b#m-Pu7lExEc1`G*5^@bPlZ_v~EL7F2a&r@BPjw!y9`p_!&+I8Vu zwF6Q5S2AB+b^apVU=}=hZgo>T4!A4s)bEPLAoriR;~uo;{{pIPMMk4H5q4YK(7S*x zU!O^na~bCnB->(??R68<3+$4q;W56wNUMjvzRAcYF>4EZkwTZLrp%a$t8|w3>~5%v ztebZq>Q~V;#8)g;x$-6!`{U^kC$y^fpw-OT;!?f=uEk3fX1;m^?>TuHJp4jXvAVSB z+mx1}X#lx?m4FR1?k94Y{bJh*7}wa417_g}uKG8XX?pXLPS*Yd!WKd{k#$WM6X5G> zI&4*#=Rkct{nMhf6ixA}L#)}kK54g3K4raRYJZTdJhV5#l|4$2e`9tyJT&u#>Y_T5NI@JLa^oNYcyZ5zD zkJ6;IG9GVgENZqo9dLPV!G3-;gunyRcXv5y_Z0%OxmHYM@S8ulje36VgQ0H!G-Gg( z&1t@ykbMrmbNZ=&|H&lsei7WA>AlgHNgkcIvfuXSXS&bTo}1c; zpXc~@_0FzRc7)*%@9Qcnhw%5lHuLh$@p^Z*oi9^vwt27Xf$n$gI~S?k7pp<98_20u zZj`~FPag&6>j~AM<5ujnjkag-K;TPH4uH__cvGy)EcL~qv?<)MtF!s&N*#FHvMK#$ z>#-MA`HWyZQB`Ia4D4IPTYAt7DL4H6g+xfV+O(gQmV2+-9nw^C&j%y=x-<_Gg=Cp< zTMNRz5J+y`@4de}f6tn=l9_YPbDq8T=d`T~(X2Q48TKZbQ<1DLG$brmRJ66JpUF*> zX6R{P22nB(dG)Fky_OZ&^uCJ}!Le}u>+s)4`WLDy#j&+|Y|ae7iNblvziK!e%d4OK zN3wps6PVGBhCgYjy)fk}F5r2Rv)0Yvg50*D-)aGc`ZmK4od^y=5SjHtt=+ibEbHom zK51s-`#>GQ(_pmCW|lDh4-8MsI)DTRN3^eXy#S|{yUAxBezTvsF7FVc>_XtnO0@*~ zQUwZ+EjR-CAmiKWYmq|&75W&A9a?A?fg%m2c^F`9?^3yK$7@P=*`_!(GM&_J6d>14r*%Cfp-&mC8ibLDv^W6rtdfKs7AY9jA9I@&MkLD6DVh-hIIvDKn$M>sHUf>Uw(`Woh}N_2Pojc~iufF`ZE~DPQ<% zW2?`Q0~`&nDVD#vp&o8&o;5}nWD{{c$Vr$G6|<_8{`Innc;)(S-26Ykd<2|%r%ZBG z`Cbhdu0q@niHL7;$!c+LC0+qG+b^Q-oaXipE7t9oFWyP*2f^Fmb{iYJ;HP=KfU8lE z8-uYYHwY@gJqBAYOoA2br^fOev^l}qd=3Qw9SzacHmeJO~!FJyE*T0;PUiJ;FHcd=i$CsP^r{u2DRq%sCD}N0MhPHQC97m`qU=pD{qV2jL zq*`n-izkk&nH`u7liQ7_v~|`pk^ek}{de;4EaS1C-*VJP$ZbreMR2qEUyQ;Ht|v>g zJI9jB>aoh0qG>K10v$J@CyL|JTphP35ei!`D~zD^CztbzE2XQ@;0v(NT{oZmhugZ+ ztPM(58nrYXBrR!|cO6RzKUv`YMXupg+4+?`zlcjKiv>8^lMr!7qWVkgV413v`h9kgD#4TA!FxnoQ{v%q4B0zyu2~CC=WglYQ^xNpUvSUx zgBvM}6#6!n^v2^=m0Y+xvO^-ZzH+yYZig0|cgm2UaH^`r=LZs}H75;PzAU^Sz8F(v z+w2zpj9ubxUm=J4*nwZxxPA1JRKR65lW{XaWt5S+{IaoPm9;vf=lAp+@dq-XfS$D11rvZhu9aub z^AzjE43|C(9Z_?O*EiYqgt)5G#A8xJ`K$G=s>M?C4>&T^A$vR*F8!+ z!Yr4UX2*2>19n9ZZ+G%Vul4_Z-}K#ZZ9FcHPV?2~?y%C({PX0HNjdEw)_LnHtoC?6>8_Hm6})i_1wCp`#D?)mCN-ud@%*JNQ8@6e7UUJA zAm_L19;@wlPv^rBVkpYg2VSH?N!#C8S@s{3X2;zem;(ap+s#%m4zqP`HfEu8fS>X& zJA+xvC|aakf|YIesVnZ)i$r^%hov-sT)VNgwjHNx&wG-21Af5uWu@Gd#s5UGk3x4HLAM{JG@JznEYxcGcl2}xe8Youg05O-BL1Wz;Q3viI6m*BuS zqdD^ALLz1Ir+}_E`jIe_3D_KUb1k!ZVlPi}uP2T)gK;^Hej-CP)M zAC&`K2j{DVUwc)vC4$^!c@nuS8BX)Iq&>5%JZ+KOp4jbDk z+W|M*dCKM@1mGyK4=s5Od1Wo;ixV#yvla(BnyT467kNTfn#6kt&}58H5$x!_oz0Ni z?@kk2+o{lvrTq^*V1Fmje7uC;Po~dKr(i>j3_`O^sJReYnN%8&m+p8g>3F*5LP58X zkkAtFzI^O?yO)iP$-r%0R@~>&rWXUJY{*m86V!Y>F03RGp_&GX3*iY38B&1}SRU$N zBOZPVRyh)@DfjTS!+!Rbv^yVl`k|68z;}PLVu;cav0}D0)dGt%=Gbm?yuVEQv_?pU zo-%H2*Zag+?pY36YqcpZ=o8x4AT^q#b=oI5K54BlTP|+&Tz?!Az8ls!sm8z+N~%Zn zP}SyP+amDxBBS9Zhr^;38QSeLMAvnUsR`bCownKe@Kl~Yl}!rp)M$hly4}p4p0>HN z6|0(JFtb;tG|^HIp~t%$RIBUj7T|J)1PT4nV$oFpwr86JwVTJMqn=NsKVL+o z|55u;>{xLis)bg3=(^K^VFY*;T3IHPb8{sq!Br@uiFqALgg@pbeoY0mDvt}-yhDHh z9(KsxOw8Zcq|n2CM!c%4PW_(bQ>X*dO!@rE$g~Q9~#f0uE{4EXWEq!!Sr}c7WaQb8qRRQpyyZ=-G5n2C^v5 z{7;|DT6dMBQZ@D&uKu-X$H~3tAvm>|jF%_-s5Pb}+IyTAr=M-mW(l~m!8#yohFH?` z@bJ*nOrEraw@xMIO#zmRK;~L=5M&F)jDSZ`-0*%7R%=BsAw!{sN#c_ z?b;kdZ&xSht97juIf{LL1{`EHZPXAb$Qr%)d$%^8or90S<9*AIFZxs-|BQkYKQEu5 z)w8?00&6?a#_@a9FaQt*W_CFB=(`(gbFnCRTz!X zKn)N!5qCA`{Uq9K=mVfVqsC!eRU%;7smy9TQ>=((rN(u=2*+J{zWMpMb5e!+=XXJ? zv9+%^v`evGp7;$;0b3GW{w+RFYv1|yry5*u+V0ZRN2+0W#vq^Qc+L&DsNd5Xg>o@x zRVrWpb&NY^==6%!!bQiyQz=$eh4)^Hqs8jtruVE6T%-frBOUd6gnZHXJMbBCr|)U6 zap%*vNbz{4z6Pd)dt>^dL)B<1G`L@)TB#Z{oNZ9E=c(=Ya?RdNinxY0s}H{?hD=X%2u{*u*6 z&GSV{*>|Y_((?9MFR31xPly{E^Gz=T@1zxqKYk_sw#Kd4F(^HVrZ#_P8pShs<-`gF z`uYK&Pr=hn7ZVpAuNN>LaJm;6y!NC$PdAc-G??)=>ufz$?)FT97oFZ)pFQm+evj;o zkB?uW8gdMuEdi|no*w;w6VMOOuCzeScU{P2I(&kzlbuGP?>)eqcvdPDhR@*ibz;H+ zk_HExD5;PO*;-w*>blvPxS))Urt=F=;gR!}ZL~Py*D_A0ohYfrS^OSTS)3R?glIfG z6V|7lGSB&KD@{C;8Dfr*x-W^2mI0l)zcEBiB{cCAHQ%X=*7dOdc~`xYR&Oi3Ao|^R zrjJNm(DNhclaliP}_8TO=!J5 zyK zFpxM*y{I&CTlGEA8HxTBNF-^AMMYVz`jwZVcLYR2LM2uDmRCClL12LrR$R(uCVMBu zV=P+suSKtlBRExW2xbB#!xs0^`h|HAL>kjzc?_oRtFFWo9Lew4HLArpkr?O&vvnPE zCZZp_>b1uCkGnLN!U1A5x;K+|y2=>IFd&2YIVpmh7PJ!>NS|T=nt4dKWf%UiAxt-t zfSWh&#Nm6?UA$nwiSd|}ubS?>%(pmE_GZO{tkSsIOc9oPsLFLWaa5uYEUGda$iOU& z_1ZK0>hA6?`_+bo%3~|;>)wz;HQ$(W?%dTkY3hEW8Lc~CN+YjFJ4mC~h3gPEHyNMD z<+7`)Fl6sJKpa$HzUa#hOb|F3)~+zWx3bEf09hEXv=ZLt1`P+y*Uo`^x? zhd4Ib=g3ChjuyA^i0Vkan#-c$b!yIbW8+#IRVPTNR<*VvEbuGOO++p@6;%1M2#er? zl`uHCH+gvc%M#FsT(98YaKn!hGoHsFI?oQnZCXwS{O~^jk@EJtuINT?d#8}@&g|PJ z@Jbz^C&Nyn#rHg-+EL&xp?(zFMi zYb=BB<~n9v)`lB)@q^i?#kv&c(lnvt|J~$ih|ytyb~cT$JXQB zo1*JQShDfcIdr5Lc1?=MvAH&tWyo)OGIxAa{k`F*u;|S`4t(76kz~=}v7ft(XLPaJ z2$W=(Z81M<#n}NXqCB|v+Ppr_epxri(&2`$#ut_^I#t=ZG?QE5Ri}#k!-Bpps)%W- zb@yvjgAOlT7dZ{v9#V-<1s3a?Ig^zCWwC7Jk+b!lBgzKeML0>&~ zpqT9BRh|s=EGzL@xm~`YV$;Vxrneev+-zfhisIgA%gx)Iel2eh%~GVsasmNl)i3@_rbDr0+#R{9@5W!3VNCsDcpHIv3KX}6Uv zuf+ye`EIL~6?=*2&_l`+6o|YP6KZ2+p3k|SE#AWHFM3PIWVx1?LZ0X~3fjW?hR4m=Xh9st3g5Pj7JSY@rx+II_- zx!1_Sm@%*X7&LES|fCl8bm?!-?ZS+jee#qo~e+Sh@8W@-WX&%oW&+&7_JM z+ho0?R#~48X6at@TU-H=I_H49Z+f9pYB4wJC8QYICOM8n%lKH3lryz9Mh{}iRVplL|lFG^I|Wk{oqpc zzTD}jqbn{3SOvfd|3F77_insFKbw=I$24nO5-!u2&4lIhLmhMGjQ|@C&fOz~=pK^%!}c-?UoubvNAi$9|Llw@;1>cg-7u#chXoQ1EmA?CNq;*NCD7 zz~WFEQe}Vn+I69Y5_FR^ObL4F4;AKyKE*gvEMA@Afo@H1pYb%$^_m<s+`nyR-7vm6z1R#seTW(@_dQt}b;h*d&3E;du zqW&PmxXpchz>xEM{v_yXQ-Z%(csz5SGA$F<=Vk+@G1~%9_{=k(cgr5d8^_ zR^}APne`}chiZ7aqGDj7X6FhEn8uWKA8CJC=Z%%jWTy+@>*hK<2Iaikn@Fc2Y-_4( z*#Rk4jN&i?;Vze@S$7agUrK0j8HoswHoM0HzbeQ_Ntynea3DQ^4?vJTkc!ES;=(x* zqx1D2-SI<(Xxj*XfADbD`Ah7@y4Ew2mP3>5;#PufyTdvy9h~Sqayq5QMMQIOgN9o;tVT}m4~erD>o#npMN*Y ziY_R$t`_{;@l)ZEkBA?_%|$IaUa>?Mq4Zfhgf8VM8)^Q2+-LTAkiNXEj=tP=*B=z{ z)6hRukfPG~@ziPKW(`VwxcP83%H&z~c&7@0D7XgPRYa(k|AaZG1?(PzuA?Rmv|UFY zNmWNMN(AA%#*YI!;vd`9XVHCynC_ z^1NIWzOYI%&a!mBr3&&`9C>1?zO1_wOQ>$W8@OSIRCXMa;sH0}j4=Biv}8O%v4&~^ z_kFL=95*(Wu*QAi54}-}o?nU#eXq5we%Sk5&Tn>3RrQU3U4=ikr@);ayRTiD*4*T6 z4o97ycRK%AhCXC#@J-wNzTOt_4|pPVq!Oo!EH2d1a3IQwd-ZGHcRrbk25ke`y`yFK zwNoI!v;7Mhae6lJ6MoSyK~D@`~e&W9P_Kp@5v&fB7$ zEH2&Jo8XOyZfak^=8D!Rn*PCTdraH9)Y;!67~41L{{N7Jf^HWEuuF=6;!X>FF7mFF zi=x-qzOQvX?rt$zo#e&ihurdmT#xWA5!Dq*sr0}R{c2|0(Z?>OmtCF@P8-25NGvx( z-~5BN?3XNWzK(U0Ey}>|ybSx8kv}R8IaS3@NL*3fJuEB!~R*`RNSW(al9aU`AssXk+{XGz4uGiE{sXf7RuO_Ju#JE-x?{e@+Vzd7gj#cve#K zt}(ln8s@gCp%`%8%J`UX#nlloZBd+b=Ig&aFcE+3>32YAl`JKzHQ3}-{k^I7aV&M7 z7#E=dkVzajV4{Iz*x%5V7x+9E49_ozz13TX9@$B_u40tc=O^TVMrXdv3~e!SoYJBV5(3i7SAKtjfA<9SqG zAn9z>7AP?kV!UH3V~X)hS}FRB4fo`1x9QRL=UnE1mjxur#Bra zPhPq2E|6u$bhvceR!|7Phj5KU$b8ue!t7?2uB%fvpI2JSVl)#~JYDH|Lm)`)7dR?? zD1;E4u7_0=>T2NXtu^n$4$1F2DAvjbwmkx)5VC7P-}Gg%r$;KU-KO`&QygL1#A3HA ziY(>eW*UeuaXe=oLtO;8ul05korFlENj{PPN(3OYx}_4f2hT_F`H_g8bnZ} zdYF<-A~?8lafIAlfrf^57V&0qX>l!M;J~7p-t2^Dn=c(~ z!M|KQfEHf&Y@&!)wcg$54shQEY_!DDMl`tH2R#jBbj{M;g~~CLw;&;4dwQc=qbPZ` zQUlRazx)Ymh&&!KH_FIfFDH!@-+F(^;N*zXQal- zk}oHrlAd-s>tJ|vy4`Ldlng^LUy-&GJv{JHB-n+UhcGd)AL3(Y>Ibi%1I(LPH-yPi zA=n;*wbL8l+M9B<#gfI&lWEtTOA#V72}vk{`tsC)N4Q_f+0#wHUx$O&4gUU}n(N() zTGUIi1iiQ$yw9UvCSRe2x==Lpeasn46b;)*45mOEy1QI;=vNrBpKwj*Z2IyqHxtIM zu>bl+j5)SF$gJt@r@|jpmQi(bJpDqrTVSnjZywY=B0f|#z{kdCEG04A_U0}!xS+>dTi0&DjV@6AOF ztUllHjzHcAFXO4ys%9Sy%eNMxXb{PtHqXx3)H3ZhCp_S>xU#L-{JqCY<6mWl!#d*k z%1i2&By^g4ZjI{4_n3)rtOKa|-@-L#piAaMJcWW@3?4qJ!Q}9gzgcvi&up zXjKS(%Q1VT0*PmO>*Q^<`KRKcv-!T#=jz4NC;Whu0#K)s7}i^y%-h+};Yb`Q>}y8T z&;TBtq>KniHZ%&jUy4K|f_;k$p4NE66}L^Kv9Kk`37!{hey{uL01cMZvjlAIr)-Yr zi0*z0(RXlbA?TuWtMlt`T@0+vnd1wPkjyY+00-?kkFUP(NL=_e9g!5j51tZ?#a7sr zlD4eKa7szW$ETN&TtqHykJQw-`odur4*=3qAS|fx_Yc=~h`}kT#(NNiSeLpR|3h>* zf9aaXmMSDth!vG*SqNOuuK6Bgg+)3>i4TRe@Sm=5DE$9sA-j5UME-VIX+`sz*T(Lu z3n^y+C0G^1vgxw)Np_`T&7tJdb|(UZbSSd+X%?1@zm0b2I7UA5zJu2d4gP%2$_Z7QKVssWL8|w~*7e?yf{w zCca9{0<50nK%O^e*=g76W`sBaYlYdFNmDYa?MKhk?vtF*7uDpb&f9ilT4Vo{{(5ck zmV;y8PIv~C=!nRL<6i^9GVBhU^k=7ierXHWuu>{p>TjC%=zv{jgYBHh!!;zX!$Njv z>0<`)Q?%_+`M!3l4>}nHOgq4n?&dVuXDZ~H5qfJc7Ok-)u%dcr}(Hk`WdWE+wK1J9GL6@N}w zRV*(;LO`GU8D1p<2~GqlM4BkL>E3?+#B;%8u*H~ld)lVhaXSP=BL7_}XF23r0=3wY zB?q5Nd6^4*A*lJW{n4lgCw9dtBNV32gu>hz<+^Y#t}g5>mC=uW}>3=d-dx z$~`@I1<6Qe?%x7(c|VRE>beHWU3$7`!`80~BFALY#9MQFZm-O)!qmRiR;Jm_R&kx3 zboCit()$gEtNGZvoCrylaS@AT<3rJEMbgyWirzz!w?5TYAOF`s_}?Yyx1|srLxp*+ zQ?=^aKlPG%^6I!j?s&(x>|3~~*7u_D`_mX?{?jg`GOOTwMI1zIV>d8_t$Y9_U6)zl=zNPZ=9g@gK=iAo&o_*p7lt&~(Kwy3pAU8&LR6@t35R|H2iK*^&qyZzFoH~j zn!!?jd~{ME3kWWM+V0<%fsfETaESpe`lD+N6tR*2-xV!WqM%ZPBX9QWaS!*``#bLz zw=JR_8?;en)pX@$ka3tYLpAS9D0`P)XQHcpzX}0f5(p-5{?~B$3^bM z?<8X(^KR;hD)LRw@x)$1`YqjHXSd#uKjmlt>+t$ z-w`$b#qsxjC(?zt4*7}AbF)2b)KEp@lS}a5BlM=kuYPAKH#VJ*%lp8chD3-&aQlEq z23M{wmBJF|6rxZdA$bW59JnTb(=_W=<`hRF{Hspu?JRx0!j|W6tdYNh^@WJ?6U;NE zva>0IvC5`1=f!|zbp}gQ`@oATf+opowk%66_!j zC*e7dMo~Wp16OPs+cLLkY(#t@jb07QxS8em?oTW?4EY=6WwK7SUxTk{M99yaP+`=` z3H?i?n))>t?ahCH09-l z*cR(@NuKGP-6o5dCX;?VKzqo`^Fv0Uc=lD?%U1jZL|*G3peeb|*k={>cg4_tTWT`R zVx5uddi=|9YK)lLKUFa19f^s@Nc))3W3V+NDq32Y4@@Ptb?e)v*xc?Q!?2dgF~(|JV@l4Mt+x|8HP% zMDq%w_2S!!!Zc1AM$$S5qYI+;2xbl5E)Ovyy8abB8heDxdbSxB^ydOYBrA1O_Ka{% zZ&u4PVf_IE0Tv_DM`m%jo)Hq_6ajH+-Pzydy(#?GtZlz%l5L3Wiq+l_@2~y&BZk_!cfBP^S6ZqVa2Ygym8xNGZG08U#~ALa^sW zJ?J?c$ynaoe7V3yJF?MzMyCh!Dq#$4L(e8;mgsddND*|_;Q64?r@Cw=O=Fb~^8UMe z;||TP31xX$p`OP7;a92n-}Wgj8Q}aSV#1%qPvGrKToOh1#>&7yff18nwBagEQEBdn zzDXhU^_Q$o^6yzguRtjmO{h2c97#mf`KBis;ULDA+LnC7(;TQkg0oeRU#`<=oXzQO z!pNQDg&~;4Z^Rl~K{Gdx`uT|`#~q^pCuxv4aRT^+9rRXVa3b##~?>ednF50qF-rWOztVOxRYdKaXHB9 ze5aCJ361-|>v9tU#QLUb(L1>kV*N0i*9q6`G5KnZdk?G}GQR{MJUF;-?fmuw+i5rE zum@3bZEVcPDQR0FSDb@#8vn6q=}Pt@uy7(}89SvC2~QhzF$OY5cpf{HR*_lU^`zgt ztszZOW%HIylETW~iojqhW5UiEL*JDb-g9Sl=l zHHV0oq)8!iYyWl;E6E|&Tg2S!P-=&Nxje+EolAJ3Db)1WSYmrlpi2By!M6CSuXzwv zm-Dg?Qx;o}n@ZxR?Q;242{o~X!aKrU<^_l7oJ6w+n<;dq^ z849a$1oVutmQwgWdAnLgvWH0jy*K3M_H}eWhZ?pf%~lzBZ75E^bITiQH7Q1GEj1ONoYd6aKo*Hp1 z(N>cvcu|A~@>@@#zdlopTF~*i_txk_a?0S&JvcPvlF}-b@E6kksS`ILt%^zvCr32N z7lk4tNNaV#HdZs2D7)3DMhs|yELi%_{W;tZykAvH`#k5+Y#`bYupGW}ApP&VG2+jA znqhC`G#aMgH)p0z;#kKhTpA>4yLZ&PIT1M@G@C{|7U2)<2_p+fE}F}Exqif}DUHpT zEKv)B3FS?K)Q}hEOb(2rFto`tNiea??(L=m=hypxEpg=hd0U!?Vpl3bLzd`e62)2H zQ2?kIH{-9e2ALwP+7D&8XBxjG>kGpfuV2;v3e*ws6aJ9nH?4EO|=$({9k_ZpfR>ldQ6rCts22bwZ#AQ2H@o^D~**HnI`H9>ln7c z|I61|`@F2>w7}=Sk1KXu5pg(4V@PJVadmx7DsX0P9fM8od5|$`8O7yF@}7(AFkHhFld+g&i~li>LtUEkCSsPI2#*rsN=fL zC;#~_do%YNy_^C^H;(@_Ul^ndJ%#IYofh zJjzJxfMe5c4vYh2w5moW?_P}(JSt|DOz2OFKb|Ff>Y1TwC2;HgJTADdqMnq1t^H|+ zcphS>x^)v{O_IG4&#wI(*LSyV^@B+l+4H-jI${P<*^al_qC`RK3h* z8?UTlL7tCVGvsvuD?pk5W)AdW{n&BM@Akp5c*`J1_1ygcq{QWSCE|e!4&+LR;2#dt z->`SWA&^_dEXylOLq?YUzD(6p1B8psg0B1JnQaAOA!7g7rHf<9^S!?)9Cyr1T&;2Q zE%iT}`qIAAlj^Pi>jj|XlbQ4swlbfBG`T;l_?`EH2}8Fz?UZ7U#rkA&#+jgf5amnYi_i$Qk%KZbte zR#lv%QRn`TxrZK!-}#k6f!oZqjWk z^~c1Hm#9KjhcM;N>x9D?&cG_&_cO4C>q1IlnQ`dD9qzO;)lZ7qB|Tck$Qss(;e+i$p$X_Q7K8h4qi{G zN#z?fzUKu!V(Hm>_a567<<+jQZ7Z-`daH7R*Lrd%bZ$ndxu9#C$<+#)qUxZhuoPjH zww)$CyyKOto%mvi%$l9qb%G6B@7h-#{+HwV=|%q^GLN;*z6j4{N$80BGwauie+vH6 zspnoAQb=Db-yRkxPmH*quJF)-=m7g4=UwPWf~D1eVqr1w%Zwdf4e@?wN9mbSFrj4!Ca1_%A`M{ zhwfOnfI4SxIsU5awY#8|CvDR*SfzZ0Gwe0{1(rwh625YOmF3B~Uy)KP&eE%KP~li= zyRmSs{|c}pl15`(zVXeYKX}bwg|1SmQ`Ruh4e9axUy7V8K+`f!Y$$8fIPPvR?<=W^t z_$#JJUlPoL>&(V`mf&OfmWh`uHp4HJB>%hz9qPz0})l@>>H zDwdQ+If14>{{S>YP|j4F*8=62jy|f{%ulHc@O#>81xlB+2eFf|Qn@b_OmDBI zFfis%rtz76u{r)*%A?8|d_U#T65VTKmBGs~&7=`Zj4gIICeM&jm+AcUcMW`BrTaN> zzuKSiqHJ?TQ}8bD#%{!gA#SZ_O>S{xn?mRSvhT+*U9Gbcl`ue((3$9V%uY8<+-$#(a(dW89Dk% zxd&pmZ-Q=LydC?FvGP?ZD2{&$OIFyNMkBJDRw^vqZX>P}-}8ZVdq@(0J|T`O?SJ>1 z%iET9W%rFWZ3PqNFv=gppiUwikbev+?p^hs*<4_E^WZ=0t1boUw|Ul}tq9~lbOV1y zp&G9F!AfGvf?qIj!}xy)C$XZrsYR9Mz3e3ZD#OGmAR0s|XC+LMbK+niVE_W((?~Qi z4`TLgeHbtzI351UmLv?_|Cyc_+7f<>Z}+B>gtgB2Z9Cd8s^4lnY}W8K}es z(W3D~A(k}nzZ<^KGvErbIN>K=spiI^#4?-9sb#RrdVi^=EA{yRs%~I(TE%5q)2+C4 zjGco+vz^4q^$#lGO$@y7^spobltRCyBaeeLeyhQ^bs+kz4|)n6$1t2uP3vgP&% z7=@!ClVG(?a)OUt*&Qw%KCswcIVvvA*i)P>x%ahd17aHn?I+7x>CG4Ca-yU)d$(j? zMkaN=3@26qT%ZfEh1M)rrYG!ZBl#d1s1I{H)H`6WcTwlqp1jeFP5;?1K1krlud!Vm zm(i2UXe4h&tvs&0N(0Rnp*7zmR&p;A+^Z-=PF=0(y{_0vY#x90g5 z=Ff=ozK9F5FHpOn5n8O(TkKzJQEqNz|HPL5BeYmh&Oj0eETj|Q8H>rqMl86YG^Re) zoA(F0k&`V3b5L33iEx%_cat-W;-zBM!yn=Zteh7&P?K*){G_2Qi}iW-n;3~y!}2$H z01p2U|6Woae2(`p)^C}Y_D82zFT?ePp%I`{m$5gh7%&>v(fhQ-<3YsLrO;!~X2U4C zlK^^O=CA;MCiTdP9z`xBk?2eIHQ$}{M~m{H>TbU25%{GcLbDfo$UgBgk*C85yy_`8 z=K1`s2{bI@-^Ctc=KB&_@)F)E_Z6z#PcljOAqGGHb_ewS8Ft8_{I+Ol)LD9o--?&) z-~OffePIjF4RC}hujgWgZiQvSlRskPv$yx!U#Ef5D;;$x;~$Qa_=JAvzd7p{yhlGa zjH7`T_?t)PWyW_)b$_N)0*>m+K9vB#s-uQkD6PFrlR(GoF|lfnfXicIEdfJKUENPl zJ9r$zt|g`qha^N_Rv=#OS%{F;jNy@QXX3-rhs&8dRxHOBvkYv^D8A0?MaD)8Qlp#U z+Wpoj`15Hz$?a$lrq1S7Qh9%>&jQlU-fs_wp^wC0f+SMkL@K~e5`2akQgJ1moWQZ^ zU4#uyBDfA* zp!DE;!VBf0nn)B8ySMLjYWxRp;JWk91JC+Z6>L!s{%0_EqjwC3%G5>)17_=n!0v!F zNYV1ve?=Hd51+o!D5_0x5lXwncG)kx|0x9ZLRI5taMb7jNGnNXhFTa!W6Z8>4o+!< ztpfOLf6M-hfrjOw@GM~Dyrswn3{V#0VoM5tc#8n6N=YGf`&hs{{{V_Bd@1?S1#Sl8 zY%o?(ehepyg^d+=q849Yhx@gTr;SYNvzX{x?$jfHlm8cGDObiRKy}1#VK`t_Pq2d( zF^aAyq{clTL#d&0C2h|eq%`=ETHm@*y<{9qtpAUy#wF&UWOln*WhWscA!&!`G z%HFm-jWvIX@ysAly=RVOtdE$0f4ksUF>q8~^Qo!++rd{K{N<%LIyMq}Q|Es2>RR@m zc+IXOiS#iEuTMWS$egnFKDjDrByCz6i-EJ9AGl6+s!V0Kwt5C0=Hy^!9djoFu9ab0 zj8|9r=f~aTlI^6mN~?;os)LR*?@<}no(498%F2T1go#*1N)ZLPgz<9!{pJ9{lasHj z4tVOyJTysW<#f}ly_9{wN5sdY;`m(b9Nb%CwB96emJ;29b*}6?>(5eK+VyH6o>V)E z^K_-Hbz*ebrerObPrBPd|Kc;pkX42G1*JZr%F5{?u%kKWprG!r`Wg7ZgGIt-?(a-b z)l(%Uis=)`E@(i)plnFabVsow^Yp^nX;w~rFaMzGAIoSXux*UKM%*S20bt)(sf zS#N|i;{k}&962<8%z8FEttg#}bG2F#ZiUKHD4pLl_G5<2yL`UApIUTT(QT((R z7|j1{>fdE=EQwqz$WO>P1e!n(Q5^?4rZXKI08D*YSB4|6)sxhb`g%iPDE4faWlRs$UqEQbc<~hjEuT7O!pmML=!sgJ&de)W5o?0F& zCx39M1gxl>U7gQ#?r%mPqJQA2{d|1fERs>pgP{t%mYxrZ8`^us@-a5Ji81D0UX2s< znh)iw#{c95{`>u=SPT|p47iwfWFhmtny)Vpg0LJ$i^Ic($``9zAfY&%z;7RHC)^h& zsGJX4^Rol4RN?In)FZYsT1iDu;rDVjB7$lJv#BPijEi zz(ZN~0i&y0talb=FnwT8--YU=gSWinHT4Q%m-D?$_Ng&B1S`jkzy=#bcVwrZoQM z9j}??PS=7rOThf1Zr-`hS!6#=HEgkyv1b0?#%zMt=Jf@Ao{w_Dlm)Kkmd4Ka z394(5;9_&ee5R->Hk<1SzK4$~xiz*UdqK>!h=n;trR^!k=I>ZhsgP+271Lh5mjKIdIm_L6y@4ep^6aOboD;5O`Mj~DL{jhQ z%tMz(~zd;k`O4f(no>5cAt*KUj+3E(mO7} z>RQFbFy{=K-L?W%?`~&mJo_QihmnwEZcDxgxqst4SIac0>uwHgp0xxg5szOA)z95V z%EAGE7JAF^AW22&v*z^SYbyB5u~EsBI^U4r}QmPaUuRGdo1fye9Ermr3}) zUO>2m)2E^(@UU0>0q2dmY!`^=OlPSt{f$euTyYXiV=)kohlqbBK#Q_v+#R7_%hTX- z+~ma?U=+O>M9;?MX!t&0U#m>~7-`Kv6Ighlgx%CBtzW@s?M;3?&nU4|A9s%xjvE;> zik@%MP+C@x{L50&RLMicboZF#U7NBJ|JSs4pc+g4D9L^cbigB8t->@qFfh2xt6?c` zA=b!${vOkMwZ;zFl5*}8D}Yk#*FQE(u#-{g}qQs zzjL@Qv`R}622=4@^i+|z7+-rd61Z z%3z23CE|1drs2gBl;Uh1+UxxYC`xj*ylQXZE9LwIUUp>BV5u8`qp#Sf%ua{deDV24 zZNE*mr{IR=7&W-sE#j!R5A(d%26WU*9cU{+tDSwC9;~Y8b09kAM}4X3Acm*hYs$Np ztjg|Be%INS%he&j7RXsP-_xPz>T2aa5Y2v4pu=d=&-tHHgG)VjqY~>nE-r-DkB09v zntRI)y5yKxjjPNwuWJm-o6{})8Nkx8-1SF}ksA*^-5F)+Uisv-j&<^K{v$R~g}S@W$kk}h zO=Yq=-%zNF<~RH_Q-dw#b=0;l2X`a3^^!UbrH!t#tKHO`)QwO*<168hqyd33oLlgx z;JW{Zsjm!(BWt>b;10o^ga9G9yCuOb1PwNWLvWYD3GVI^+}&kx3GVKi;6A`0-|X(Q z`+ofce)e?ty>;rIsyZje!ufCI^YC5_(Um-NVyEg%W~!7+uc4S#2Bn%8HD_Q}a(!?8 z5`mLxdH8oS3lDb*t@au~fFdoxNbm7E-l9(SYHlSp9zha6DU4#APe!?SFn+}wCIT(8 zlJiwTvg zI=B<4{>NvU8JmYBa_@zik-&(?NjvYwE^+4Iea@t4N$iAN0ZaV`4Y{S?H1@e|9H+g0 z+U?Pt{9)H+^8)U^6i#)3Gf)v<<7)59JC#@|fYl|A>CBdA2X6^TPaYSt8jJ|Ppfktd zTOTESUxx+m+lQMiN+>MbgZjZ=6_>Y zim@f_TcF@f!W_d6x;IguKp7p|%bJ`<_2aBDi}k8yv6nI31; zyo6z8rG1`jf2WwtixiveIgl8aOocK;$dVLZy(Y_M>-6*bQfk5aaG5H6-m1H@B#zkJ zz2ts7fem~_tdryyW;t%1Rb|*F&?>EU>g&L_@*dy&#|lkUz%&xPr7CuBgE(F}I6=9lyz4L@t1E}Y?SE1IL+;1MaM7RYW;R+U3sbWb$f^@BuZ zd33JLRBcgIhev!{8w%l|djJissT$+6x3t4-nZgfZFp*f2zS}h%a0e8=o+UWi3H>m^ z&#Nr7O9LK;2QWnVAwI)l!iwSWEC~0k^5F?O4Sz9VqEwEs!}hdn8?#Oub|jBriA#h) zL4;F&5Xk1+8Hm{k>?w?cX-!u5`>#T7{7GsrkE|Y#5LS zD7WP%_bf{juN;T0JCnmJ%!&H@;MdV>JHT%Q0wjLlCyzmypkBCD2(>#)YBpEBY2P4h zS1tB6Z-rkv1pV}}+0({>le=qjf-5Bd=QEac&zSCIWJx#MlP`Aa=t6IH(QZ}0prR*+ zx2i2>`G~G)JO-4)PBh}~9O^{eI`S<(R!}Ek&PM}!?~`QTQZ9To-CU)llFhQPSIpdt zG?XM3o&10;zyt<2Y1FGC;x~fTAu~h|go4;IXPkw;YMkQ4RC^;;0*zjRBob*d)3ScI4hK@4k2kIfWPf+e{QQ_6xbHI>%b!z6OuNEy%C+0L z>6Wutn`1Z}?M`c$C3fEu@_1;!9$7O}okOk< z%3ac5pKW^Xv7Tj9Pyfx!u_Tx3wWqvLDA9O{ShDFtQ>>crDm~xb)0^BMVC1$DsEO z?5~NC2#l9Q|GuivDo~w5e5cf8{I{|Ec6E<*^CLI@^|bmI0;m$wLShZ`{Lu4UF6N{*xO zbkX$&)^o~pLW~KkSPpbM1a~b0bC=z2J}*D=pLuRJb(;l9;NKQV*!M_evZ|*eE`3K2 zp8EFzecynSk##X9kn)5D^WEW@IsYH1NSqnrm214u<^Ip#|glq&JzD*sG8@q!C5))F~u}Fx3tC9k5GJ z1Q6Lr`9JNa5%{~@4tI2qiY+rR@A!p+v%j4R@^YhhGa?qk3s#ROndryq;nT`~eM0b^ zKrTUpxnZfGYs)DzBI>)vUV0*Y&CU1Q`&q2!=Ji>2?uI}e0kIQHlpHgynyuhn%4~kz z*H43=iP;IEc7^aJsHO4`*8UBuo<^v%2i@i~r+5yk&s^H%OAm(c*O?c*Mr>03y*p11h?&10y9)2vGUPh zN0JePH5&r?Zz{;DQ{CBby3tAW;W^56hr-X;&~lt{#hGY*hx3;8OT=s53?VNm21dH6 z$1MWCjMz4o7($Hz4TAJdzYOXThH=%1JHYVPuS!-1j{GZ$FIEODBcW2_FBfyk?-x+v zEIU0qzL>UBia+%)8X#(UJtj`mEukGNNw2oXPQQYA?^56Zb#l-Q;t^YFB_{z6<}jz% zzf4ZI?LLmul<-=?3hPamh@ni%r?Ba zX*Qh6TMQzIvb@1Er5zEBpM8!P4z;omSA!Xw2z8@Z zyMD4~IrC<4e?=$oEdT~4i_-ezxUPsbV3u25`v>{1zfE1YWj=B0`xm-+dMh`G8#u>!Q9CbVn zKseM%KY_u4#&)>Y3X4uy0|lm9G59GAWxzz7aeladwz=|WnVqarfV(WJwz`V^Q1p=r zLLHW<&YwZgL=-ny)obyF8Thi;pIqBJat!E#-o+=ro-qIAfrs2%j(YN;9bi2|B_246 zzGGpMT1!lJIaxgNrU3lRX!-MZhaV%ud~Ln?F$pR=N7^MSygWK{6hn0Zm65Hq&p+1T z6mRUbi*QA_8R)_8>_Y-?A>EWnqq<%tZTi;79uB!Mw;-=>ulTf?N>XDI)$(_@+oc`9Tp* z-?UOrwsocW3rL#CCq2l$M`c&Rx}R#pYH^i`WdvtyYf&80tbdvQ47{({%KInOYz4eQ zCRyq-omNYw4yYGlsFWql&KUzpWOw?vGR!~0j`Aj=2v*cOGjIL;-Y-{WU~!4TX7u5P zv&=FxgZdD-Cep|hpaeLWGWK7!1jWMy*-f9#S>R&i3JY?U;L?V}=()hOeH1vD99-g4<$^7Bu)A6rjyvz>9;MSqKv`0d<;tSg{b%Te)WrZdEE{)^=jcjNeg#t< zbLY4%UQBycUe=9x)CHSI5PwXK6|s9Pc%Xsh-u3^!) z@psNB@glev9gFnfhB}&+NqS&4Jf??j3>J_C&zw+!v~Ek;&(srcr1MlT&!m%RkbKq0 zroT1z_b#H9?cXT?zu+eAHyQ!7q&F}X$2J)5#q7Q_^qtb3Cq__!&DR#<iMyP;;VV0PjgL`5}TiZ2~zP%a0eUVQM)Bpvps;d?eRB z$QV-}RTNkC!p|!9u8Ixjjs<#HUZtSJ^Ps#r!uI3+9-m<7Wgj+dA(yDm{$+l7wk8iB znA?aq2R1e#XV-|~tK7v0Pz##rBEuX}7@PBxZ>+Hog?j%9EkkcFs_+sS={?MCDo%@? zd_wr6?GSxQP^Ziy4DPJ?)kn+uW-T|LJ&TKrEQ4P#eA6UF+fa54{ zc`sNUeak`a$&0xBZuWLcgiIWvi(C4&W(G9BQ>UiW!Y@L>fpRdi)x9~M`fD7{M7 zscGEN={xw|OYW(uI{)$uDiWv7@huL0AOz@;$>259fXto8pRHh-_gCDbD$li$+^SWa zL%<;XF{=&CG&fJ5-;>x!)57lF1-^zI#lvBMYbjEx0}lo z&C7a|ed#{kE#{71-y`6wMcxMI!0(42&Gk#HfUv7DA*yW}>r*jSS4J+O(Al(jW7aTF-`!VI{Z@yHrtrDDI$ z*5;1%u#&b?LzKh`oHjXfL(xPmma`7ahAiX69+2JLVdk|%ef zxqPbpUZ>01dh1o25qNXWN)lv#>7Zq}BTaamo> zdS|j?r%3tsSYO)qA~;hyM0Te@2B&DiyPq?__qhb3lk@-*g*T}Pj>Z#q5q@Q*<`nvn z=-TuP2g9)!#ioPs-i$G4xIEs0Y||_ca9-+_@o;M>T2XHQKffN8$X#AjdEH} zh=R}pj8Wz|augLhK2n`cICJPTg1P#SSik@YbP=pb58p1)<0{QC3$1gOENT4Mcbo#- zh`yL2o!c9>)ZEq%re=Cjd8Xwi=a_9PvLk9J(h!Bu(&h*&6G=w)fNj_Su~J2Zt4m*S zrZztq5t-z^@5*HyzspGb@1ZS&K&YwJ*>5b3Xo|BMe*O2EuGCgi4^G|}IMVJq+u zrwNrm$))>V!^AqW9-LvLYB20pWnqhzJ0Z4Xm7*jeI9Y(<+Z!%ZahNP6R%$G$CB+F? z&SS9}u_E(u&26BE;&T7hT$p`oo1uU;*gBQ17XC34K|xR_PHo}zt4ztnfcD!tc_qS* zDb-M~<*GRUC0P8F;HBrapoRsJU@$dKaq`A(1DXxrQdV;K!NNvg@ektZ1Rf@wi z+Apud@)^#TR_xI$&J~OM%}Vt@c{`+(o9B@Jb=(xEBePyu_At>DN>O@52MwB5ZZ|{Ww~&%T zK2?$MI{RYY$t?~~#I5NmwVk3>CYU=^HcSmb%GA-;U!OmM#_cLs-tAT(xnohXRUC&! zQF~rd?iD57wqFBx=RPUt)`}d+u@r!^28zw?PXHHWtX{ zr*5|kZ9bq0zt*gwZ%rEB*V`EZRn%IK(c_Ex5_}sPx&>jqv0?3XN+W{J6;ER~Co5@O z1KHV{`*IDEMM-Ptp}9XPGe=(BHWi1&%p3}fHl^e)tH4HgtFrm0B?D#)HyV1pyZe@x zm#bB^a#!P-i4Cs(-Un_qs`-}aWgZ^ux>GeMIc7Rn*=MUy!NE9<+P5I{%}CCgG59lk zn&k~?`1dG(byjO-#Nf`VSF4t!)s}Gn{CX}=g`*I1$M>bUR^mA{ce1bw0iPqhpZD)r ztXA4BMVa!uadc$Id5CwvV7Kf;m$+9O2dtzl1Jl$&K$sw2N*Kl%XaHCsO#d(e%b?IB zuY5r+UDPJ^q*LMMRy32B#WyWS?#e*}MY32|K5>%AEtjsNYQ-Z;HeuGO$I=W1&00B- zSj(6)ln|?*7+XuK>)5_*9!YZRw4K7qK7{6>F__j~oP!yTDj_;1#uuC;Syk-%&h6|- zDPPl!9hAQcCcKilk(OG0_M><)T{qa^x2SZW0bg}Lv=O-uzM_!45Q)t<&VN7O!?7g7w$^Y^bp)b4@)!XNIZc{aq=WhHmy zjch9g7VD#J7N1H^6 zz&7Xqx_ecf)=7DusnY zI13WxO0RgEE(S_nDLnWHQnuQ6XY`KajfrFPXmr#SCe{|lBP(DA9KKZOKPL?5+;hw^ zy$AG1p(J&?{y=udqf;zI7_5nO0(NMIa3@j)W|>DutF9pz@*z_e`K2+W@6@Qy)Qe!2 zuN7VXSm1DnBGy;TKci(fDnEQE7*12slDmIUD_+MCJ!#4=2z%GojSe4i$pE||bvhe{ z__VS3quCjIUhpLEwL@ff!fzHitk>r7Fjd0vgY29}kDiJ@fb-$i}5N-fA(u>rQd)0cbHNJ6Jy;b8UXa~a0)@9w_pL%)a^VwfuuX{yhk`dAIsfSuk3}bZNiv3t zV}1rl7<*^9{@;;|A$L1+7`83h{?s{B${oy^p9L)V1Ui#DgwokV*0pejmswCiW)D+fW) zU*5Cd^0`vnqq3v%LHmcXd7V0!CL^PFZ+2bvGa6iV4hmT=W}mK)kCs<3d+7<4Dc8VO zZ7;#?wl{q%w*ngjyrPSDoD7R1V{3|uk}ocnvNx6cVm@W}V_vDmFAGERa*8cZQaYfV zqMv(H{h1XiXIkwR>7%T+PTlnvsTEaxqP3$1M@!$#*0e+|G^RpKP?iN5jm_8_GZMdL zoLTb}WscPZz$r4_iZrkeka#OkjGGFMKFz)Yd5F#HeabISy7+5| zhN200rB-t#K$ngJ^_}!XOQ!=xBxFXP0JHg#^0`p{2)EMz1vdNj$`@VQWJy&UKGo=C zUzN%=?yZf$t=nnb8^$IwO=>}}OADq?@-Mn12A{O|x|U2?)I_r4POxfwecGvSf7@+P&hq6#_y+kxoI!wAc^Q15RG3X@p_Sp6p ziI~}B{dZ}27v-}*)+Z6YzgO$b2=`BpDmJDYEOe}t=Wh=^*a!shl~@FvmAdN>5nx3aeO*p#mHzIq0QQ#Mj1RsLd^3vGIq=?7 zZk<_T#@bA)fxNP^_dIHdHOA7)D!$kvLO=FQmL!B%y2-kp?UUd;8d=oS*q@zVJC$D0 z#J`!)8q{v#8buKijk*@><0sssE}0?|Z-R6c%>-hkco?#y&-yXuWwnZ}HU;{$qH68<+K_2k6xXmBY`<;`-(1PGST*lcT!{eEn_sE1JpAvT_BDL%NgfI4PGyZCV@e>FYGRvvFs=iWrfbN8QCmrx)s# zG&ziebv0fdG3|xX@sN`vT~Fnm0k2qD;$)xe+pQ+gT&K?xS|XICFVkt2^KSw%#6*sJ z4_1=jP`;(O=b^-!m8AAIgw<|gIDv-L=TH#&n<}yKqwta^0T=21N2>Gv$z|R6mBVrM zjnT#C9XvvUq7Pi3pVf8J7yJ#428tIG%E}EQ_eM0$>ij@I;n~HC&^686->eMw@}&FQ zV9;SzFw>-SI8I*9Sy!fn#^JW01GPfW3!2qvlBBMAumPoKkr1mE!`%G#`fgsB*Rw#B zrgi?>!cI;FVrtZnt znL|r2cCUnYr5)o@{wO+B;+i72UsB-bjK16T762ff>}Lm%_<*VWwG)=W!hK=BE{&R0 z4ICe}K|n#dQkfcl&OJ&$-*u~Bta{>~ka??dq;K6m?BOT|w6<7H%uZu|1k#B6Kc*c1 zej?UlyHdWv+uHb(3Vx-4y|c-08q3#e-W^$BHufRK!~0jT4O=!Z;;q%6RimXdmGHbm z%_61G(7e}B_`fT4gUpy9vJ&tDK?+zR_IJ0%hQIjy6j6bbe z6?zxv-mi(Tlqxz^vd3%)adVztO@nT-sv_|!e#mCOvYsNoz81g8mq^x4O1;B9S*o=< z+eQ&u>FRllYoW3MFE;ZRg|)pHm_n*LQ%+p(281xcq_r~8iNl2URZ|#fFjEoVEWxj{+@D$qD;t%<;(d|fvzf zc5^Suwu8FN8OUvxztGWCDyRkrKQ~&`N#xR!`?px#V4OBUSSD&ESw{B`e2IRC3<4aejprDCs*4LRkLp-h?A*IYbBM98>kfQx?1o$x8ee{Z*c5qSG58}YCs z;jmE!9^0tL2?!C_(V{@w#E|UXpw9J-uL10!UAVP(R1}n#zZGH_q%4K?G5mdw`YYX- zvome@_HC&*Sku|nneSvHIa%iz43zoMVGom8+P~AcX%n&PUVL%k?gjZ; zH2;b?%`%0ti?@Crwd=nKwcSzqO*a;8nTaedElEW^Kf5SZt{qzaGtdqD1`2+=yZag% zQNoLJ%PZtpoeO*%NBg`U<8}4;!b{gKfUyB-anUIe0|qaw*V+E67nse6%Q*9Xu(~YH zRQyuieg13DA0~4-IU8A8vn?j?qmTZ3L)H9+n@Z+J7jDr+NAmay@n4^0_rcA8doY0X zLjEQM0CzHGY?CGtH=d7mW%nHoM&`peF+f}0I4|WN#>9H}HfU~FmX`GOc@h5|wue!F z_L!_?zfVs?Ah%(VjL?KXT|l=P9?(kM0~k>FwB2MD;D*5=Y5O@(3Ms{3@TKTD9wPXG zp0dgL6xQNmM6IuU8-#%GXOex8eX)VyCt3|S07`?7stwft5>EN&vOn%MC>Y;uENf#? z+IemUz@d5!Rt-jD*$xyA$7k*pX=Oo;q$8cJv$-&(IqYOM935+i;rQPxfrp00o+ zLGZ~E2D)#KJ^L5TX4_*3&@8x42Kn!p_)lQOLbWe!o-${MRP|Y{`i4S8#)e<*xm*=- zSHNubrQMn&t{-lvNCd-v)M%yS;*`(jiL=H6HbRur-+AawRkUVhMVC`O(fd+=1$#e7 zG*lyFV@Ut5e3(xXs(VYzh1+QAxu9V6O9xot50A*f67gQy@<*t1G@K0OB5jwHY?v*W zh)uO#uU->Y-azjF}{A8fx+ zr`o`;p6z^y$Y*=z$)bpKAtp|QP2BwNf;G%2n!6 zWA|api~+7{?2Htu!L>on)b-ONiUnHln`S_Ulz;e^Vs~iB6J6g5l-WhEE?$=v9=nQv zu>%D0BRp+l#WQ0AysAN3i9r#8B`~%8Hk%!>BPifh(kIE3%8};EyZ6`nR61uI${+NL zt<}7sFRy_O&9Xzz<$Ou0r11aWG9wswN}ks5<_>jhZ>=DmP&&7KlrkjdMZ!a4&Zd0V6NjH_=kjqc$TFZ(0UOqi)o+h> z`11J%hic*G+3n>G=W!&`8B>w+AWt$v{e^(Fc|yuS<{RsU(EnaYln(#Qnp?Z3`#2X* z=MHg1Bgb|!hyL?BCSc>2B*Yb%)ao{^iX>3hig8a@Q0Yy;APUHMZHHtX#wZP<;XNh? z_WSyhDe!6+yX6zYGzK(z#jXlSvme8~wxcZ|8#JkWo>z6jZo=!q6o2;}{(avlN`6HC zO38bVQO!QcrF-qHTj2W9N8S_QFF(Wxf6Q>2*7u~Kd#Z?tMbuV; zwh($xv7vOt@_;s<81hK-Lx=vvAxysisGb8V$u?OiF&@3iiu8f%i}k-j$iQAWfU)S% zF^g*w~ z*@UQ~@u^X62jS$ANW>(y&vn%>@1@@L`AM8>JY zsm>!Y(l%y1T*f$cdo!ALc4e(fUGO5&!L&f_?L$5Q|2`A^y^&zXb#JrQ6~z0V=u=p{ z$GOm=q3TAy64CI5Kb8Fk-d3+ho=~CO=9^t;8_Knt?RW(4a;Nyen?@9Y9~nPkL4MsH zk5(yn?~Opj;HzP#Ae6nASGTAi4xiu?037_k&59J{)>ieb5BTDwM=yKtD%6Hvz2BWJ z_o`eJLmSUeeJWYxILr}v)}qO*lqy0me|gK#MK^XXhPK?3dzKSYT^hVL{>S@FDjS0( zC0>8r`x~&j_I~O8%k3VL4C8A(n4-eJ@SL%UYYTB!2aq1gFZJe6u6QZpb*{6TN5=={ zr@d0ZvK4)M$Ee{8@aQwIfeyTr+wS8c!7{BZju_a5%7@PG!=z)76HeTSP+qUCfYj0# zpGJ$TR?Xb- zhxPo`nZ0EvJVPu@K|n|fU6T6UcU1=8VISHtoN^IVJqduV3>iFALJb!#+3$Nq=6oj6 z3d&9@UG|+RPY($jy;E$xBvq6o{~;6usvA44UC)PYPys!~xeLG)RPS47NCY`LDd+vr zb(mKz{uvh`uj%t%7ovz(NXV*i?6OhMI=xyG>zm_+)1XEfghH%|2gcu)V3RjL9|lqz zM+7)Y7ONiifxB0eCq9379sZL;*`2n4)_$a7*UyA?h*e}i`sD6fPo>i2^e z;Z5U0tT9Owu}c1QHBk!bjiAquh9?W4O2>D5m#EmI=m#S6OVR=NAm5InFLf-lwNhP; zUsqZ>`n!D3QQ{q|X&l8tDR^ZB-Cf&$`)X@vp3Tq#_0azd1tj$cVnw)+qZvQ0_a4D` z^WF$XzL9U)&!zR?J*HlhSg^mJn4!Bwk~y4Lf8}yjC)tT7PQ6r@Ib~+AEo|4N z0bDX&8{F%Z#$qG6gxT7^&$(f0x0cAtId&`r(>{ia)&cVBEdj2^{{<5RHJI>uHNeNm^;msjf-;p!IkLe@ z*J0zT&5)M0{UShhB%{uy>S1J~F<}&Xo`~;Amh`e0OW9lXIMjZD6g2_a(1lJ1Q98Hj zfVh~HIuDlxj2zzFKDR>8eC(;kP3`-KYPiP5noL7L;eVDp{$yJM)^2SqZ7)JX%|?aK zX18pjSZqaayJ{B&7KBK-E)zaDt62;1_D4*5K@`Eu3rtM3<`8ml}xD z^H75sR#Xm5{}z)>)c%GkocdobU_X#pfg;0$BKUv6FX_NvS8HD1Hh4dS@BGY9P}bIl zp`^CEyF0LRQC@yretcYBo^gDf@rnNvQM=~nSNN}Cx-ONb9}GRX;-nr;-P&>#kNIRV z?Ql_$@pdt2)?b%PKcxL)#ez=vAC70`lCvCi$iSlUVoP282vKNo{pK22^t z^#W$Q;HE!&2QTZd@6XlaKZROux2>-oX@EsfOJ^bo1rS^+y`BRLlqKaVTYzq?|3*Jd zREl-brg$C~&gk&?ukl|j@0nfRQ)euOcv!+u{q7#e4yM8;)7?5Z;3trw+BotVv<(s) zUKj!`-HXSCFi2rz9#?RNAm<(Ep(&=gqZViEbrB&TruC?lrftmv zv7Up*U>)RXO~n%>)4dn#0QB9~_CQBjlC%WUj91pE>wFU$|)#|Tzzk1D}K!pr_ zxpX)=jrtWJ|509B*Xv;@iG{7In3AXW+*#?@(2VK$V&l%e>$-I$)VMWpKU_|O z$xC--fQiW`T0Eh)7`r66*JW@>XhK9s7T;IXlQqBSa-t%WS;-fQfso(LvEH?#$-?KNn zzF0;-KJW~cq&QuWN~BpVKpPs`bRZ|-7r(xurv@yppy=U18QHO8F8#Kb{?kxR#ZomJ zQh|P+WKTGKPZ#SV;iOb9&&z!Oll1k8Uu-fGY0kggwr$S_FWvUf|2P`9CAT*_Oops0 z%;11PAftazLmcdjZ3i9gk3By>m36%(iIth3G@#Yi!D;Vo@*eVSQvY~1)-~aITL!l0 zIpqr=X|~B2h#V9d&zN3DHi+$hB-1>0D#z<} zohEO9@f~UJ8eorr-~a+{Gx=nFk)pNMdE1XJMYPEx6?N^YKUV3}-blz9T=MPO<;({H zuw38~??3)dj_^NFnX=_SUWnzUG{9&6DsF#~Q!djuV~$N41dkXEKfeR&cRdrk?Do?DFNo31zQj@frw5pzdF`*}(EY%ueqf%Fuw$geH!Nn(gBj)l%B zh216{N0N{p6t5^{U?c(vMMoPaf?_FI;`_hA6iXm7b^3%tb~1hd?#A;&NyZ|LF*EFd zo{sxJO2BpvWM7ZS=IBF{gJz9G#wANe>*2`wj;-X!v)?Cq9{#+NS8?xx6Mb2tUZ4Bk zUkqo5ciUU}p;0<)l_5(Rer}>L{H_qYwUF0&DFM?iHd1>c^sUk>yOuoJX^0K$d7 z9H5WwqH~JRys7S?-Yn@M`img&!cmH2Olg}XisnnU@MQ$w+|$IrHy{eefW0E-8B1@S zyv(fgvhJUK74?o^l-`Kh*+E(vh^jzMOvo+0tdEoGMcBjs36qUCzf4fZ+b_$*2qwhh z`0q~Za5@ApmjfAyNjt}fhfn{6Vq?M&*h1#EL5zl->pmGcBL_f(HIhL%oSat~1kyW1 zs{iJjfBg@JgM6;@8m%bfJFMB5&kB%t>A2Mxu^G(L;`HqPJriDcnNgL2@4&UzF=>4U zzNF89Oug`xpiY09`Y|GgDvjWQZRP2rx7#jHU!;QoZ-(?{c?}5xeg@=K(8}Z@8nD^) z`vlxN76m7ygzfhVw$r8nT8w|UQ2)i7viH2{LJI6(?q&sF-JdyEftS?|mX63=Z@+r% z+%2u6MZifrp!DBbgU-6{;zj;69dzycJUZXE>EV)cUxeX|v%sW|@vC?moBGjV_IGKq z&dQ=~_g&qUTKz55&%m40L8=XrqviX(NH$h?Sl`tO$U%Cv5lo;Rng(uJaqTZsn=ypFaEuyM9l zk2M{XrjDkoTFZ%GbsUkl4iT7$i5O&AUWsb9;VKpOTis~Bsu6@HMqyfgl7>Guw+;03 zz05Exgd3EtZKB|?DQD_f7X(+v}u( z&`&`O<2EZTE(oK|_qQ|np3P<(Bl5h&V{P~Hw7{b}AD{cN(1XF&Wk=;sgQ-7~LdlQ! zi4Y}90Zc<(vgfVwV(act9%mzEZ&eSWyHh{w*jVbv z&E3^Cw&x1>>A9xN9lOg;7EqpjU$J7@ZKmhRi%^{tM2z}jP!#pYjIR<`kFW2KT3v#p zqeWZ-NLhgl^k%)1+YXW6aWY|qEimE*qMKulIv?zb94_ezy5fa{`*WoZv6} zbC3Ho%9R`VV`RL4j=72=m`9>`Ph<&>Gn4qWC^Cnrxc@w2Opv+Q&2TB(F1p^a#z+47 z_wd0_FTQgDW9e52kTc$11}W>fjm%;+vUmaS!!q|6czCJIbsL;q^NU2{gxZa_=?+}L z=MXU~D&7?A6$LY#@qj69jv>f<)l$h4oZUyVf=z zE@L^xAGc5ftl>bd^0Jy1cgX%h)+(Bwo_k9^1_(c-;Y?`K6F648zp6z}kcC*&=u(`b zmWJd`NE=KTgbOT!xA4p{T^=|P4i-fT?|=G$*LmucA)-WP*@-}junGbm?7K3Im1J=r z0-(3i8ET0OFtI6Did&49JX3wQQ`yurTafb{xSc~)Db-uT#_88p1LOIC*3A6EQQe?o zn%(Jr#|heHNp_5g+irF4x)yVrp_=6SxGPR83KxcSw&TU|)cwg>M}v){{8n|`dhwkB zW|}Lw-oQ+{9s(SZ*nR(%!$fXwJn<}-!sE6BeE265Nxdjjq`~;5u)%h=sp&Xc@Q3?x zy~W%T=(zzFGqfaaZD(sY@(5A`6K7acxLTNJzAgG2VI_V1ciU4SyW!YPquRaWngKmu z{i0Jh#Hfd;WaP9klJQy?ZxIFiB_&~#xu3R|`0HT{9voiGtn1wjiERk}`BbDVde-`@ z$QHC+(;y_BbtFKh2A{reeM(AdvGHW1yp`}aI{gnO3sV()ll4^=f=DlZnst8t+v!J} zo$g?R10ffAOSynj&f@C7j{CZE}?4a&_-Jw3wSuGMP zS#ikO>SOEGk>>1Le@~MTl_qR+PUY!P-(jx|0_iKV5x5*L%~TH-s4Oi7F5wNz_KvfF zEW5YgOSwp_cT*m1kT_{8(o@t`EBuFNlW&-W+6JeF(GvpPQ@>HcgG(PG6h5ARs_sKO zo<*=_euiG1xd_x+8t=AHQ>k*8PyQiK7QP-Kex2`lxJRtn{?L3?@rgA!+f{v{Ec(e~ zjB3#OG$nk3&A$m>Y=YAHp@k6V@gDjTfl1~){D=dyozARDku)+@0-bDuyjwlL^!ME_ z=<(k8U*L$GU!6%9^#5`cvvXiAd!M^1Nc(n%nwrQMbDgfD&5Yz+o!kgP81BBC8o0}fQdn7t{Eizphd$q)j&>8$ zEls9{u^*VX^QZ^nS_}VP(5{o061Y5l=5qz(Q*)Ji&Tg){9=5&iB+(%GvtH*F9SW4@ z49;jcH!`EU|L?6{*v?EK3Gz-mndu!k@0LCE~RW z9TBV1&Etol_r`+0>uziW@3v#4g&aJgI{LaCAuN*>D#0PrD&r?-V6fM50Z);_avgC` z;Gf^?nn@xnoG0ZLI}^=LTKA=NWsN%6R?71F2s$Or5B&`3?$naC&z@*pi{4^e?9<&qH*d;XK7asOE@|jte2pBf-#l6)BNbUss zG6)B}MmW}I^tU>@6UPUNEtB)w+J<6^?L4O956)$HKabW(X5OT`HoB4LLSB4s#}P%t z-db)}#gD!-b%>9TK}7?;`dEt^>OhN|SdIEVtk@U*L)QC4hHXFM=C`b^>p2)yAtN8k z(JNP*UdJek$G?9E{HQSGr8qSD?s`GQ3|3H9o-lUUf}TBRvGJ_UsaKVzdptcjC##Wr z?o>4&vLPU2%9G>5JNqQyvJGxK`uYfF=y}U_GJQ3a%qn!X^R!~;&JbvKJZQ8Q!pSTT z=*sfyxogT-Cnj8Y_<_~oVfDQ{TZ75LtfRp|rKUzCFYi-el#M0R#`yQ_E_R>(oIARj zPYhA_BPJI$cz6=p>{-cz`>4}|B^!{{JMUz=rDw6@(lT4{)h`_InCjIO@276f=qO6= zyHfWfhohD-B0&Fw-4)aw`BzY&r7hX$oX;Gs(1)C|?fh86mFx^bl;L3;BFL25o@ED_bK$`U{%m}Tf&rV}i;M$}8qPz-y zR@~Namq@QNFFX-b{6oY0PQ~0s%Qvc3dfCqQ^c3 zu+l^+WQi#+M=jD0Aeq(B$Y=@#dC}x=B<^qx0Ql^S7xR!+`>O_hY#pXapHHUXJE};; zT-3hW?ff!YGNBj8jh_5DA<3tfw0pd9{Xoknat?Ns?w^d&)H3AOAR^Kr%ULmazv^_9 zlm7-{t+E$SP9}$rL4F6;aH>WyV^_07=H(^WPvkx~t(*Y8Jaj)*dfNb+?B8Lz3%Trn zyLqG(LSO0FTATO`d!I7Ibnp4=?>%SkuRO%nX7X*VY(%LE2wr6cJnL;>5GOc#b(bIp z?;b*|u-T=r{^-4kvV5?t5Odxve&tKKL?=4jJuKsQE0)4>0XdBZm z^SOWce^h;CP+MIWZYf@h6keb>Ed^SDHLc+aS6rU9YSy^?hd8626uON4{pJo z1PCOTzTfxVJ9j3NADPKHXRouDJ?q(P#Q~^6YWKF&;>QpjGqzh}L_Xkc^L?CJ!>ZbX zM$2KC^2bWyzJoaIx^#?OPrK}s`Qxm0NYm%L5#$v>IZyKQDv}U+I?4GgLK9&9u7#18 zSI#`^_e{Tt`=MMd1}{m#vu$@j`g%D%KR>2@vy`agsCpf!o!JOHQ1x%Ph%vPF zxXJ@tjT>dHI55|rhsd@s_gmYod@Q&2?^AX+l7cP99)m}lP4@K5Gb{Poks=VXIo=;f z+VJJF`6y@|wZK)Ab{514nYVd{9kp6}4B?xDxnc7SZSlR$! zd3n&Fu3Gq-*IG`st!E^NXz`*2-T~pKUOn&3n2+3MrL({EBZOtu%5>pl0z~=H1tVy-Z-OEJur`u&L41Ol-1`gzS9w5%Z$)Zw|V zc<4}8R=9u+x!s4q2&=!;9YWj>E*b`>LcETT0>Q^`xis!Z`v)7**%!VW94|pHM@+Kd zJDLbPwpG1k`0+5@5tbzO(dO-PyLgtR-oaJM^!M5)1#nyDRJE+upPjV~w?Prf4Ok_LfZ#g>0yqB)n@J@2KOR@O+pSgH34k8sruUs{^$=<#@p?2uie!5`v} zL>Lm$d_<%xVR#%4Hg*blVq5RR28}kqV1y_2w*o45pZM=&jK`kdJ-hG>UEpLKoijwttfw6yK*V%-B2s=kg>PyP|A?R$jbmC=CLF^^I^U8D@^;b`TB`x^M9D3G~ z)WN~QR4mGL3svu4J1UtNtOjA$bJiY>Hs&x2YR~T+jhE;=oUGJ!{M?yihT7K78L$mP znwwL9{OdWr|w>WRHC+=f7RMXLtyON01`D3wgDHAJ@TRtrwQu#QxV)|N#m z%HhEA4@hWn66Ttc#4O92s<;lfm`}mam+tRAY4uDc*Iw1JLFf_$h1FI8XaFx4SBHnl zyn6OkqcV2T^f25u_Jk^)i-q@oD|V>sC|zF4;;XctT6W%Tpr$*cBUX>v?lBafB$Jy( zaO8xK3S}o^P5TnU{Oavn5y54c#n3dJc=O0y;(f*;E&GQ6(7Ay}^n+Wb$gQl4rjt%;kJ71W>D(gz;@sJ@*@>%V`rrX&qS4BCp2oc z&WRaN#P`*b?cH+wT}-ziV^)i^a#d|N)k&7Mu)NgIIdbLIHKH1KbE4i)$w`6qIDRz= zzkg3Ca7?PIt8?ux>qpEb#c2@&x9boFA1J>tARCX#nhaf@ARx%Xkss%DBY#>bLj~ zd?JYL1M0!BjRRJtw46YoiT6meMNsu(u)^yp29`Qb&#*ONm#NsDFm6LuSZnRopyI72 z%I%@#TL~0v$%TOWb^)SnEIC&l#j!Fj__^=*x3EOclz%cG=5mxBXl;#GH)8LuV)0Sy zt!rnv!{SKD6~+Lh;tZCDP`1@g<43KiCsN7hx1}3Cr@r1RI5m>-Sv0SA26d?nCxsJ= z+|L=DG_;tesf)kQSXHr}I%;p_W^Od-ACBT!Thkwb#5lT`e4T5eX@QU>yTA{Jp)i(P zi^a`(n1WyQi_awAyXud&DO1(o^R(E3l+Xj1nI-hRk;tyQLEm)La0)$_`ws^UBM1!l z<>Q}0B@OO<{kQ4%dN=czIqvYe=+?Ellh4EI_H(Q44xLkF33fu3pzK$ovoOwT+s#7r zB415SeD^gI($&~>ovi9huC*btoP0)AD@`i`A7({B+g0bc7mV8K96EKi4yd7|`fv|^ z(jQ-AMl@eTzElkv`MxIEi8axy&* z1J5PgsS=TE77$?6uTny_%T?Q>ntCyyw^dEU*Z;;m!1It_^aqxq=n8Fn zha#usN8bRP+_2%tke|zs-k|9q7^G0;YIP^VzH>f#^4R_@eRObxM(lXNlQ#Xs?gP2dYvXOFr3I!BN#?O$$=`9;FSL#J>{q|pYlbTC z>db6^t`EO+L(LKAWUqcrsRvIS-J6QpjhnSS)Q`}iZjn)pw02)F3f~-$q2u3b1~OJ6 zsv0@IG#TfgrYZ36(1__~j}Glx{Z`COF1|ycEqxeUDoU^AF;&v2ckVXl`tY*R1%lX5 zIJo=-|^> z$B8;SC3*d3=Q9}bt_{Vi8J2J1>a(rR^Vo>sSI=W1+RJkw6$&TT)) zLhQ`ArsbXB+t+*(n-OOIPaEaZ7tmmenXoQaMo#d(KuK=49jbr)WbN#BWPUBhun-EL z!-7?beL19hX+*GfeiAWCGTX-#kOsQ0Wg^E8!q!C9(GrIT1yv_H&BQ*WiLENrE_BQ? z95P|{^=U=+&*sgtxC)58nyV{n70c<=w*fVjUA9Tw%MfEP)TyD;3ee>cT{YLKLl z`G&IU5P#PN>vlgz_V)?d2l~sR@ixfq{?wxR{ULGqqvE%t!lK-54Z9aThR1@is%1xbIVMg_?)-k0 zrgiAO@S>Do&uyn05Wg+iLalLr^T4eHgTV(c|JX)5sgxOm42?s1?W_tpvt^=zhAQ6? zPv~sdvQ!NMLUP4kY5;*unQUGP5e4d z7G3_4i9lK_XLIf_O;5k zdra~mQ397_TJTXbZ9z(m0n7ys=OYVO+c;yrBfBI%h}?)j0jjkxc3%{|eYdf4;4!~M z6YtcW`$nv^DT_|VdMNkXecD);iY((9+DuCsAO-Ll$Y(iCfb9M0JNORwg|Dv(bC#u1 z=Iz6xCSd5M=KBGjYibsVAnWYTyBXVa@7VnQZRRS<`jtjL?zZiUfw!+?XCyv?<+zT* zxQ)3>`n3A!bWSWSBLO()4uTlHezXIRIR-7ug{N`*32RJU3*a@(64^w&&M<*9C2gKG z^0QN+!UyC(ef3$#Zi0)2{im~c_Iqe;nrs^#4nBS{El-483SahkK7IjJRia|ESIUve z^)29j?IDfj7S4rDDIgm^F16FLESA$Yp?=W|WN5FjE>X;U=(sWh2;d!@D`qwt zA;*N(p+^8A=cA^8-$AjG99@Mpw?nSxtsa4nt29PCACU(X-D-}jyXm~3%MomEAPLh* zN`=e$oV*00C>em+y5VGuK3}};R9#P%HYMA<|B=!3*V*>u;Nz*>diC$}Y}@fK2}Oi? zcQnU>b*~0VerNvP9x;D+m(|zFk=Y$J-gTAPz5O zuW_MSpZR)}+$^qxFICdjiDO_l!mQBT>-XXxsgk)pcY>88;@kcaf6K?-s!ab<;o0S- z0%ccR|2SwT?s1-$m;V$w@TT`-|6QURn2(FkdiR1;OqZMGsSe}Yhss&1r17li#3zim zfjY^x%JM@2-$Gl2chfxJQ{+t7l{PQa(y2F!>R|{bCBWUrlzAff)GRKa-Q6NqXFK&0 zD~|oNHd68PZd@vmAvTWPyI}`&BAz3{TYpw%tBllwB$mXZVa8@H;2VE#Dq)dgS~{(z zGaiFX>)Cm~0#lww@l+6VMC!v_AFtyLb1%@afD`07So1-wc;)MU8aLvU4m|RMBosUj zv57=k2y%-1*@-iJmrXz7X(YhG)1zb8k;(5Qj|qg$@a|5!MNj~yWWeGt!a;0 zaslF0oD>u0P#4yY`)HqYK1WBsslze<&@=QEp5ytlkwR*L#WDKFLz zI;ciaJ(Xog-5r~^HpN<+yrC^3K8TV%D&XVi$*(ZwLk?WN=5{r}{Kc4Q z(3y8@OUu!@Uf9Wve8r+8Q!8K?6@cWDc}(FXmh)cQqS{)XX>VE#wy_I(J$3q&H5T=0 zj@$;-@5p*{`mHxIQ?P2f70|tSbR2w~Sj@T5&JYFa5aJW;%rmn6_l6uUW{quKFF9Ew z;LqN?*vEWL@TD){J@!ipq8|L`jDWJ1!!0l5#_<_WA=~?QB&$~!x@$o*@_9YBb^@aF z=umxE1BpY;i#qw1u}Fy*)Ww;Z(OxulKUzpH6}m$@Q8`VUoc3#+jp6UUmi*{-Jx`2g zk|)?PHKJ#Up`kODq_Npeb~>N$IfXWNi?9UpdfyjN)~>Fu`q1n8%+0CgOfFb)y~Jk% zs*uo!n4aM)D=R=WlT{6@3b)&9sTNF)cGIzGvuGitEkf3ALp_3oA_AsA49LwQY{4-( zDphSm@7}8=o`FFGUsAcOk%ojydtUR@f8`v_5hz$b{MDfSit~=!4~*~#b?~_*c8nQS zuIu#`jYS_3Z2k7_g_vF^^0A@cAr|+#Dc9T_FH)@lHL72Xg|RQvpc2wdv$eH#ytDK8 zt?E+VrGM4|{m%7Qa{mfe1TzKQDs)b$%FFt;RWH1?rQpx7ppmqw_e7o_<#4~zox;NsLwO> zUXOE<95|>0P@rB=NIzGI*Dz?`g=RJCLbjhc)_#(e4Z?bZ$~$$4h(e`Qfgfw?(;nFr zM7auGqZ+Mx;8}~D*WHa@D|UeP|Glc8lb8_!*J-oIXGdVKt#iKd?Jp4N5ML{1Dqeoz z0ah+!Yo~jA0cyeN&${!KcT9QIq}jGo@Yxxy&wrmwj@)+ykuZ2|{HYRPkqCZxXXbg7 zWWRSJ+~M8UCWQL^>LJOo3F-CuB*hg?q6t?fZW2Xo^K47O>~RzSl~%50N53t5Y~=xg zt=hNxyS|Pk=fmo0{U~&ZGn{6FAUhixp9@{4MaY*#K71W+q+i$7IQ=K{XZAL z*r$|hI~=TF5YUT|Mjr+x^l;j>T&k(1r2}ZNdB^|W-)-UO zwXsj^4(nrpz4Nf-Y=;o;&?@8Oc59FZmx`Zwd7gfxvjv@?D8ULXEgybI&f)bX&g~}R zDYBO-_RV2E!nRYtqCWnsPLIH7%aRh0nYM1Ix2`=V;-+=_t_NL@U zbDKkB+YB2ZtY6_1Q1h}ru*^ePs3RRt<@Px}DXIVU<48dX?{l5n3C%q$(VNbC)XL3$ zj~=BW_S~&-(RGFow6;eCY@s)drQJ{cjb~91)CL^I?f=j}zBgOX-^|vQ9I_kYoC%59NPX8_hxZ;yMpBuTFi+ z_$DN$O>I!fpj|%{ydOHb#TmSfhKmZ1#G+T=Kcees*oQkF-?x284RARmHTdgWu{zgNW$07lAf+_V%XK2% zscZPEppanA{mm-y)+2-9i_FSzNTwHZH56D3x*1ROl1p_%{h^SG_wulwIUAY$Hd}yK zT>EX1#3t?i8+j6kSy6?|=KbPAN8z>wZ!P|-J843lq&J0a0rpUTdUlo4=RaqMsY zLCgV9PLX=>b$=4#?(p7QUV9Q|e1Zy_Wy`JyPWCo$vyU5ziik03UFXZ3OJ=Q$sJvj4 z2GV@rw{{Bbg>6py_ED&psP`mnXVT1OMM)%Jyy=gpzrG0qyj!&LEZWFcY z3_gp!&%4I@I^ks==HGvq#dCZTcQT{? zka=@Orz6K#%ycs9NrJ@~fMf>PdYWh@+0ClrKBkS6TYf=vV>XQ#tA9UIg|KX`-4zjPPD1i$ z>;!Q|2gthCS>pMRLwq!Xp8BD1kN0|!wzu44j9+=YcZ?AN9b(5f_tjfOSfmiuQ%__} zJKa3Nkk?tLaQ{f-{$A*OWU$Gy%T`Zk(s|U!%a;-*lTZ*GDbA_w)vr2DhM#J}wtO+9 zKoy>irZvGdrg42rF;{#QBN|)$>VH@Onh+zl2B^Gc5~DBGVJsOfBGbc_GRE9fi-l?JMRUQK=++|Zw6Xe&R zqU_LA6?Qq7H6+(A!NZ%qogj$NF^bP({hwKCEd1$_>Pb4v{j=omy)ZM=OFS6x987Y@YO*4@yjgO1$=@zwdunWW z+JNc|#U&}wyIqTNALlt(Zi9=hxQ-oFQc{hR?Md|y(Dl9b8f)m)(C((;`E56hpo-F3 z6}2vX$5B_Xd9YbdNz?E8+Gejuz*2MO_r_;rn#EPR3N2A@V^4tu`Qwm{!pb1!}sSae;0}Sxxrn73iN31{d~RhTag_X^+c!6-T+2dXEgN^s{jNT+;|E z^1NDC3~m>-X`F)QI(5L3m;Rrpa~G@M`tC3Z`qX@-$#pxo3BaWa1j`a8lF?!5cc@l= z%RWnYUlP5C-3TfVRWJ8`K-K{5Lth;~lWaQg;Xc^=@`H#W>vI;j)4BHY!sP2keq{i~ z8x=!^UR0a-uJ~Q*@KbFI@0Aqem)zV}&{G0cEEo=c_!qf0wpTNdiJ61r(_zF{_Jl>@ zYG81bBEdG&f<@3<;IM~|9Vi2cBO^C*uGF%KJY6PK*CA1_g?_aj3b;DUU(OJ(y$WOF zylOT0VRW0B^&I##Oc{%y-Q=U0Cor{u>Ku_02W#M99X(}i-%~&|ff=`w+@RGJJzg30 z_u5{Skfn5Vk@pT06WedOcIigJ){W0oi3F*6GCCo>^pq64*?`HVF3PcjKu2*h+WLp$ zL+4r2)(|kAW_$2sA-)G+8^ppzAfM@m+Vmmm(^GdCdr$X_Z+4qb=$oj?)%tsqVyQ59 za*8pVaq(BKb~#9D*MWxI!&BY(uU_}f%Js-!oSg@K1MD3-vfiUMNp+l2kdwI3la58k zg*L7+mNi?I9l~Z7_G5CeW?579u7Ekc`6aCXm~Z&5&j^9*Is)AHW8KCz3R*elQ)s1B z9+y!ajTMffp0Zz!F*RsjTw~C++7dh(YHI3g?6gXUN({mEd_VAi>UQ z7p%YSAMyhPNrII;-e%j4!)SU_)SuEZh+%)5S8jIva7L$ew?C~6&nPQ!Ev#zf8II?ES`@KU9Sovv^{m;j%kha!zal^Ps7}4<& zjz(%cg>YkK{wP&oBPX+FCuJ{C zMKVN;7kHTfijkQ*dp6BNm zJ4%}>(Jq{?_{LsZz=D1SQ8z5$wpwfyn=+fhkjKabgyos8+VMv-Gr5iZwNB@*E=gCb zf;B&V#*>i3fcxoe$Uka@GyF4sy>N22@{fhh;k;F!4ti3@^W(l1@%8z#j~eS-1e215 z(gS5Cn*wV`T?)DzPR6-V%8jux@%;`fiCR*aX93nWqZR|h81)`7E zX0BE?fB2~}Ft`=XS0}#h-JW+<^=`|P%AtMyqEq(w=)L!@kq@ZCc=2cGxzJ|o?rY?O zMqMFik@g$I)iB2L+vn)876AQRjcx~8(9m+$#W;2^oQjAJBcBK5zB5XL$q_SB{F-s1uVVQ&I_iQ1!*;SpO^g?Rg&L@xg+u_jWLXHXh5Y@ZUSDAvz|=5k?c z5ED6wMjqJXl~lH?x^hZF-cPC4|A`oQ-T<+#`)o>)W*x(lx+70u7rc$`ncHk#m@f+X z!l%UjjP}k=BslmCrpx%UzGL1G z6OK9Y`)BtF$yC)Xw*)d`#lV&7L(B5`%yI}3a&9Z4WJGrX|TaEL@#eL+;9u(Qcmn__PMtSBzRF*(gkUh?cJ;9Ak3t19Jn=v|npw_u#X3={iW zrjjRZ82Wv#vS8)tH$j4H~GCex8EAysTkWuf+9avh~(c^mQJ{0h7yF2h*Pi_ zwtoZ^`p=vk<2$n%^(onunjbTJ{&vW(yx<7?I>e{sl^-(35QL^hz(s^IsZV<_K4ODN z|NeZdD>3?S42nJ;!dOPiCjD!x;}2YS5c*_#S#zjK(VoS(U?kwN?voLt*S(XwEk8C8 zFW?YqRfQ+eu}iIg(ypkADNeI+F`DUh1$qJ3$It(TqTWOjl2iQYCB<=`FEOMUSLW_X z)z(8zdt)~!x~O3)usPAtW*opg^@wGY>MDRST6)|<#gM2qG?&G(a_5-zynh`s>wg?_ zb{Xhx%dBQ=&5R6)yymFX?7wPdcIxO-4mnlgo?|B4XRHIc3s0ljyj#3E$e}`$ATrjF z^!w!6DkSrVhc6>x?~hr6V8zc!Gc-$pCd=*tl3$yNdGbWuK zcuqu$W+g^tv6!Ea$oB+0=*bbr0g5pxRqJQoXnSqtGe#%>8cl?hXI8c2O6ua_z=d%k zV;zni`5+ohL{B1AT{(@9*YN^Spu^9^s0PJMrS%8XLc}K+MCY#dTq%`q|Az&5?lf5P zfQPBGhSZN~y(jl67&e_Jm_EFEAA|J5`|#pjPI<_+KZl?C*H1a!akc*C&xbah#3^h6&R39piiKm)Q$FA;4F$e|7bz2G4tW< z==BN>2GGzbkA7*ePJ%cwn=Z^uSypOcZKDN8cGL_bE`~R=z2hBwA09c!lfN*LldzZ9 zOVmduf$;M_&h>>CeQu%69r9Bi{3$V?JSgm8w!*tl>T5D>ZLyPu1C|sOd3Sd56{MV3 zuh)T}kD~2c(eGO#YBBq(yi2&<1FtBA-W2sS>X+U=+*B?<3pvW-E_8MK8Vz_D7j}it zd&s_tdg-BAh!u`s5cLqPV&MX9xtH`bJ5W~N)M(J&9Er;4HWwscsbiAz}GJzirJYWDRbd z@WCH&ubSiWSmieaj)Yw4>0jYJo04?g5AE)^l#IjfgFpW@g2O3pUn5{*Cb{29XW^mC z%XT4o$oLA)yX?9>OOS3!Sib)nUeBP3S<3|OxXEVtp7YSc`5_7Abr#HnUl*8@FN^xA zenoH{bjgb;C{Ai;9YGzO|cYv(?$vO56>rDu35XPmy`QcxV2c=1qM zmOAlU;UkC-(Z99Rv^`8>AjwHX{tp}y)1BAUDTUp;*YN|8ifAV>O><6qe5iZL5)Q79 z=+^}(*EjWlG)Z0;w$sj6OMa?+N_0@(E#yVD(*pR;%tI>t9$RBu+@Bs>BbD&zm+79p zaI*keWXG$Ikb7jiRfDB>Rt4Y17 zN=K{TSBuXtZCck!lcSdvKwgNp?|TVi2UQDQj+iDI3`4(;HiqD9Tu}sTUL|aW zs%0xk0W`PgcjYeJ&dLLmqZEECrVsGe^EUtL)`?^=PIsj-EJCXhvffA1h|gd%M$pYS zBiB#Z6H?n4%H?s`h1Axzs=U1e5pBYGgp?nIuB!@TbMod~(ky;O9^aJR`ho64O6~&4 zXX}~rdS;L}D{U-DS8z1iei9$uTH7G;9_-l>>j#CzRfsY+Gt67v=$SHwsL|K$Oga$a z*6LH1H~}roChTkqimW(J9&GMk|K{(pj}+L!_m*h-_0S9|^b5((LG<72sW|QfLhfGR zP9+;bTDZHivY`)8C)&`ThieOV=$9ps-j=gCW13H5*z5Oa_PF|dR#xWwgr8YoO)0k) z`?E(#N=)osIQsBDTZs#m?CAE3Ja*qmNn!-1fs?>uZu?i2)q}%R=g@Zkzx4w-{{G># z^VWd(AEb0ismNySQL8T2M}i%RUL@L~Z_>!A-xHRcNXvMP9%7&932Ht)rb26*IEf5T zm2wM)(Fo^&E6X1_iYOX(s|KQHeRoxBtcv&DlTc2(u?q5+&Ks2v9LL#ciiKIO?1mz6 zPhggWxs<~Ay+>6p+I_d7q+b_yR0Q?NZHsqVpF&F~88@R;{HkAVa?!yIm=Ry6l($9J ztk7oRM#BcZT_L>IThCP6-+IFLKvH}xp{)n32ZdrXDJXxC5Zxp( zkg83$E#@^B5EsU=@Gh#H8Ix^kJy4!qVmo2x3rot3I#J`bS5?g{OQ8O z<`)|phX|h$TL(63lV2s|=`?qgG`6W8LOF}+V(9TfkD+8k@fon-q7qwBIA)n-;k4RQq=X`!#zR^syN13(L-{U0nDMb*i3ARq=E|8HL&VVR6*d z@zraA9uM5-?Z3Yn`f&_KM3PZR1&7lP2%6waiyyy>+7q_gyHQ{uIKGRxWE`hmbiFB^ z;BD5o;FE|>RBvtJT~f;_`wp>phcAR(ULD{Oo(ih{6m3faWxX&57FWSg8ac;~vuAdQ z-PGh)InyM5TCAW&TO}2nT90`Gy0o(j?TE5S|3M51Ep2Vi8ZF*7Az9s3y)s^R@slwy zsi?sbx#)KB8x>e5LmrXiPKW~O!LIOAgX$Y;_(nZ^GisW}qXNR33%IKo_~S253!cBG za}LZZ3=Cn}-i)*M&sLC!aZ+Hr$UPR=W5OPu<&oHuEysm_ByL|cY?mzJd%FC2l~c~+ z)nAzGm$S-n!Xd_<)hYQ~dwr!jH2@dog2L1HXMgD}I#zb}>xqeD+AdCl+pEt$N1?Nt z-fJn0guVJ+r*bkAc(?mH(K_jiQu)%|E)T6{mWO5SYJ{pPl=CLAPx{~{FCi&uK5+Nf zTI79H*c{d^rDd@e1EMcDc{-()+TElt)v@n)GOhP|URe0G<*t7zF~^?eL95{%ys8B^ zWo=P=%eu6zl;2+X`q`{d-D87)NaO8VTHE4fS_kLOgGIz#8hqNn3%#~#^#s$_);6I; zQU#c>%GqYC4Dw8~3ObvvJE2@T>dSkRYezG?n+OPc_g+miKv$Xv- zIWPOxPXg3APRIlNOM=+`(+^uUNgFG68?WB7^fOpVg)8)kxV5$tmuqu=;HQ*Fe=z8r zwwtZf?PflMGG4l-?`XQd*q@(ys6f7C}|s z56)eHhZe=VOBrCv_xOah_TsZrcwx9D$MoUhcv{al6RNw5=^b4Eev=;LUAuwZBXvJL zec+qAQfgmg0dzR>NKhx2AF+H_1sLzk4^I>MWH`g0HGipe%PB6a$Gh3oma5QV;k{HT z4!>Ds1rH=|LJMZ0Ckq+O+{0imvi9;*RT6CbAhvPQ@2k(rS@6OT`4QA>ha<}E|IDBm zkDJ=G%ytj>rc#}=<-eji;C*VjxE|!SL3{7V=Akkq9x&Nyk_} zvDZ;o!%kHyNm+`8Nn2QVDb$C{8Jk;vSZaFzBT6j&qy(2Y*(j%qTtj8$_NlE*$vMHq&7Q#iah|GYJRX)x*y>C%zn)o( zT_?_?-)M0BU0W;M5-~je{`2ciW)zM7Ilpi7)nlZvLdI!)tSr&|4vg6k==@mdz*a6CqAK+((hp;|8%`skq0+mv!`eG^~@FDGriJ zbJMEyM_(dC2A`~o?LGNRM;ge&oI{eCVPV+1)ky==4`1WLJP#wKv(pGFCiShj$uzI@ zoqS?WLX(o}J116NcVs&17*UHZQtS7TT_=R1$4wnm>+>`22zQVbJ&HzP6zxQQ>`x(J z-R7vCRq&b*M_5?I9ZT!WBLnu4`VcMtqUyFayp*7Z4G{dsuw7r5xN-lcxz~NGX8<~`t;7hZ=^~-X%)m0 zJ}*}YW16#muS`a5ub&tbh8~t`0w)!k)zn2w^%aM|A@JIG>b7y1^`AYA zzSG<`r{P2V4F7*vKzXT6)DR9s>)gR7MzWQMUg^cgi!2bR^4f2(AL42@h4;uJdj`r7 z=MT=-{wNd*i{<+$Kx4D>#Q!=&1LnqAR5FZ~*ylaFNALV)cIOFXHRH*rBXYA!Kp^${ zm_3>M_OhM1O@)W9mUjOuL)D?T|8ik2OeHzm=gBJdLokH3%Q?SRc}du*XS~>dq~Brr zXG;J)kG4^0Sy<^@zsDaQZ;uh7=GnI2GHK>#<2!?Yg)!5>A{C0R-6H=Qd*On^jA-`> z-Xoo45X~gsu-(E*^W6xVNv~&9EczEQg(Lek*EhN=f$@!H5|K~;Wnh3<(s$w9bs-!n z|8m+6UYqADMkT4Ls;bXt4Ge)6W~Sm79Q)SWqC7os(fpjOy@0^R>OaLzSWS2i?+5E% zZTa9BwC7@MT4Ovm*Kh;V6C8bK;t~jhvwVKE%S8}s$D$urOpr$kg2>W6Vf%Rw~rh7TbtahzmYi6vfx{m3RN7$@oG8` zL9DdzR@1N#I|SJ=v&wYuVS`M;Q)m-Wvsc6LaWN#YjaEeFc#v12eMxuI3;Ds=R=35- z)HhXXez&#pEY4ad!=)FOU0R#3t*UN9B`8n3NNVh#%t(<3QTb_3VSxK>|7)n!QCFyb z79Yn59btBpu$<|pNV_`6JUNDDTQ0|Qo3n;niZ{a0Ay#cIW$K{}XH9TFN5oM0bBeoZ zTh6%|)N`Dv>vbipjIs8jeJ|GwZ;4gwt537m_XHJJX&wLIhBKV8%&sJfOr1W_cHVdO zk=T1Y8P6p6?0c&vJ(SBuTK2oeXXD|L{FC~lQL1X?bT;sZ+rFzq9vd|o84&zruL)9xl$RcU$$NpYbcy+B~}ZLJl+2 zDf7?>v+BL#WtB25_~(hU|_*H&-}>8+NZ(!hD3e3BK`oA;bVyV681j zcV9s#ZzwKK4Z;$|1K)eh!HKP{jP}-hGWn?#omH;|6KYXB$t-9RLWGyYQKTeJEta2#)j!xbP&!=kQmaF%&4Yqg%}f3U-872v(&O zI(W?c*jKjj#AtnAyf`ouy4*?|CPKKso9Jp~04rdv&#+b;XWD-!AYx$rS0#PZ=TI z%ZNlK-Q23p?}Mf-c+=}U6A;*T{6SJrB!r?KY1d<0yf2@R1_hm*kD0#vf{^yfBZa(f z{r-*);Y^H{h*#&KB)`=`a7y#Cpc0Uj7Ft6?0eNWUnT0K)RP> zora*A0Kz>IaJ{(sVlt;iP^AUrmm;&|>of;tvL81+Q4~D3HWn>PHp8|Th74&{%DX7E z4fI%(5xOkeLqnK*T`OX7Tw1Z|X69u%{&}L*K4S!U)bn!ZXdNkbi>;iL>J-{7JMx}x z_(x_vGNU!v@ldfdhQanTe5JA8Yl@vPh2|Bqv2)g0B}s|S;1<5D(VJqX8%Z1KB>)0u zVX~In-053RE@UG;VJAoiht=WfxGVRxd0LU^5<+FgjQ6HJ^hl*o3dXR`>#PT_KV8D+ zN6DJivDOlDc&nX7Md!7*Y4yyUsY@yieLJo?^?V2n)5MwFqUyfq8^WxH8m;$o_Ac6W z??JEU8FY1Flhw3v6)6HN@l08NlkdlxekqxpeOi8U$JX>O6)ka9~S zoACa*Hn#!rpsK#D;g8vXilZt1mE~PTb(!};>^rFsP#5rn&1JTOirh%_VgJZL2;nXr z>w{O0&ECLL4i$VaSi~D5C+m6;S%&ghflV=?Dsp{=NCI#v|8OqVHHvu8jkr_nF20QA zs;X~v|4m>M#3nk#&-+Koq$;MrcojCbbboZggc^9I0?tgJpeq$2!pM(pxi0xXbiHL% zUBS{V3c-WB2ZFo16A11SAh-nIxVt35-JJvp?z(Y;ySux)>s{oW@4h?UyYJ5){9&zL z-PL8YYL+W;9|+}S)^;hJ6~C~fYs}I6)k*$1*zDx=4{iTq^UE3J3ED^2{n@Cjgz>nI zDSMx_9$ms)tOTz6Zqz2DnI-zTPg^Avj`?#+d^y{rt#v~xs`nwB^gi!1A7`DI#9y-< zFiXtQ-_L4@E(*O>soHZlteiHvQgK~z)Ml2tnqcPX@ zIMY@Z?hi6ue{!YGr-%BExPLThh7aj}(qG!+KP@~Dp?Yu@W68#Lw@S3;w~rOB?paP{ zC7<@Xrisx*&ZSA`ABM>Sp`~^!ItbOlD;}^)8_9k(%WmO6ucf0>2dy;GE1-adF6Mgv z-hVXCY{Z@^<>S35#5X0MCDyC7cO9ttY;0IR=?HC)zVJRS9N`k(fNe!qt9_o1OtwUs zNINl|8ZP9L30xfLPpXUmMZ)8q1OOZ7`oJZpLRou0Hir@!Xw_r1OE+ss540i@P}m!U zKqv6FXVyJs5f_0zPl^lHZtH~8TiB#?*r?wQjxP)LGH52C=L8N2rp;L24tu$+kn%LX zWRxC0nK4Kq&WQI!G@V|!e^hcZKTKQtMD487)7h5Dw7e_qyMy$CaL{9HYr8z*bl;pr zeV--Ju#<7hp(sx%Sz?>pgj&V?-U@NH&9T8|E_XX+>B9UpbsE<360kvD)HV`yx6J0c zKA*SJgLVaTAB`{hn`W$$JRNLCsU8y5sjL3(EV(WUfbJ8g7rAVXxy^mvJ-M7MkG@Ey z^P4HR%{-MZ&Y1i~d(n*Oosl6Jy$54=QE+Ka|Zv5Oq^TpvF40P=mN=U@0Rw-cwj zyK>RfZV=HL?3fz{8}4iBqqIK*I$SyT-aDr^ri(1o^5!$0i5T=eL@i&wIq_Jf-lamL zANev8iO+5@e9!{-a~Kcz@UFw@=i<4^T{wPuo(Hb=i_LOqX@%1OS~fxAjMl!4ntm(D zxXxlIep~VS%C@Lz65g9Vu5~Yb71)*7y6N;7E+IWWxPAFrLdIM(mA>^S_J?rI)rljA zGh0R;Ef4{omTUeJmb<$bJohjcs8Bxh_8@|__Wp47en)pQB8<(`F6QRVvFNw1; zHDfB~jFZW1>M&eX-VG7%qFjcv(bZ={jbl0jw`+Dp&(sD{FHhs;&cz1)cd^F=myMRs zlepf|M5qrcam<3bh11yG_MPt5w_Ng>C?8#5_XisGV)jK-To8!jK*m4gl2^b zxE}~{O2#Qy_&|EyJbHAV+CZijF(FzMVqCs+~zM!pP`)Px1G@@jDy#VzESdU zZvJw2w%yTb-LpS=+LmYJ1v-&2zj9KEHy|PpIE$U-ipVaf9Gu-xCf){O64u*1G4Qvn zCcDurFfgr)Pj}uuL{m^yo327q41jbBdpkR79(4ZkPat#%7;xSz!ZUzFAQw@bW z9X4eX$J){0_dau_LWi8d7t!r0bB#GS62e^LwyzwW}pkw?46 zOFNYF>3FHp27^EBV?K88d9@de3aelXS#PI!SPW!B*rKEIt)J= z4eEjK+{!@)HS0>cO^B10i^t~&K3ezmt+TT*8bD zlSpHC-HLLGrzAu~X#&>|Jd@1SvQ`Q8N9Zd}`aNBlsb9S@chQM?m#2ii4}uHUfO_3H zmAFsw1m)vDkQ-kvL@PU3Ei_D!u0TZ~F3xBB5^-*anc$C=J_M!u6(h`4oV*PJ!fnkz zF7cu=tfdLibMBN%P;oouN%|zuQb)G72{+l>luGWIPe1!5E)tw&>FwL6bA|e9y zUkauU!yK+VpvVHP!cfz%WV2#~Xt+qd3=YB%|H`0dFmW!5VvaK#^Xxuj1hLI*lN5!e zaQsZe>(Jq+zDB?)Jx@cDC(vaPlshJi@27fdG0PgNeBL1Uq==9w!Lp#)-bg=y4M?M= zmRlmF>U9j{aT%I=VWf_XpVa%cwM%k1>9phYBHbd5ON2?51ap8pDI9uOMOC#My&@#< zyC?5N-=9uv5*5!3KUG~GQO!YN*wab7fr~T7g!NSMX*uNR_rzED$fI8l!4`jVqxg#7 zH!-!?!28@Hd~o~R6P&poBPeOA_W{b;nd;zIUOADY%SkX-VrCRocU)>f*20OEHzu`% z?w6XVYQW6kA9~v*{$BjzG=tnP*=@}ywik)97#m<%!uN9@J$I0N7wHZDx0EQT7AKnf zwMfDaxy#$$#lMG7s=rU)2MKg4DwPIa3`01tLgV!Mbc1OKXeTwyVzc=+&JTHc#uxNDF$?c!&XxBOyBQ)G$NIiPxt*YX#)SqNH1zq%y`&E*-aPd- zN~3WwXxusaBDyoPqpgYhz1*ASgCwW4HF2(P))m(&{RcrRPUO7z zV@^Lbm4~zm{!cDopWjNWYg>LogB55C&=n@LpYIr!Bm>4#uv6cljQ*?@fELA%e6!n+Bj;g0|*q$`| z$D|H-=TWx8j5!_zXXY=8miuaHkA;h@<+(WEr!mrIPY= z%`PZpQ21=07PG2z<9A?6A(M&ZjNdQH4ZY4%2p@jum_E1{t>Iec7U+b#f?asz^}_hG za;MbSF>Ez!Gt(uXktXV!ovQd_xygNS|2JRjkM+2%5^-TwDL@>r@Hfu2-m~F`_K99* zUM$!7tPcEmH0se4H2YGOTH~@ni-1vFbmmVvi+q0i68T+w@U%uumB^q7(jVp63wmD~ zIkX^6ZKtP8a*R>zYNekypdnmvWe|f8-Wlz1f^h4P9K&h~f>$ex3B4;ObpC(E_^nDN?1Bz zq_FOr!Vl=Z0i56a5#`rHRXw-#u+DGgI`&_i;}md-(76xK@$si>$}TVuw_IoKiph*Q zPxsGJTd?GBr|ID(`B=7S(`Yp{_^1i z(`eKlN+&1(WG>!}w9S@Ad6^nIu#}Q>c?B5fMcC4!X~=*ql{S_ z@2Wu(?t4$rpEi+-$mLW0BA3N0+epq0O*kozRv?$q$Q<*Ty z_0jNFns%36w~&(%z$*O8h!yx$9C_R4Im$tYvP|IDo3>+-<|eBl9BL)_dw{&tbD=g_>#ns3?jL@oLnzeWu4(-3Xf_yR9ysCtrb zY`h(hLjo>LTf1lw_$&f3RlURNUffESFapfiKbhoHFpWQd&i5k4u zE>Y*oTv6+w@*=Riu4M3*lgVxSf-Br!zqhszo@=;6D}IjBIx1%tc99|x{;k-s1XZ?# zMNm*I;1uhNvFLU(cQfhy+a5WDFzLYC`nt#2Gn9_8R2|PFD#vE#{`LeH^)p;mv7FbJ z-9jkJj(ze@j;F<=I-4Of{;tnYBh%;V_dg_|wO9CTiUc+6BpT#FvS;l+(v=;lp&NhO zrnD3}LK93zum}gtYLGsp=dBRP%Wn4{P(?Q??G=X(&2r02*$M0#Tk%+-;nM$>CMb<6 ze2S8BJT?E5J5>~*D*$smW{C_R*)Nj(!$U|#!O|fqaUzg^7DP*7vrw3#X2kJTm*p&~ z?1B^tK) zv`bVz8}Yn$c7s**t51L1fAq7FwAuHx53={ZRJwPkM#!UOE>P3XG)qi;&X0=laz%a( z-E=Qkkj)bAuem>Ky7kpigG-fV)<1LWLDNoFn@p=~%0OevOt~GfIvw4{33!g3Pz^lX zN*y14D$$j?et6Vpw7l3}eJ2>`i%9P+OYrhsHbhi$zAUMy54FPjHx}-ii$sP{&O%_i zbfYevlgxK|7In1?u4}_=`DSP;Gc~#)re(b=MQFdw%O~#eI{e45HkYk-b6L8!!cWvu zO(%UzxmR?=9io-y^U3?s*)$Pu^N|{u6v1yRrd^*M%6KZavcFLt2-|fvYXxzazW|h# zJ8O_hqYbvv145ih9a_N8F`2_OZO};-v{CtWaoFQi2{dBo_Wq+{vs7j#d-l>vb zXfo>*(&C*q0*$(HypOp8*u+Va7pNhZH3DJkoPFUS{gkG{SjTo#lOg;?F{r9~gpJ-v zJO`7>YS$wucmj?X#~N`$Xrxs3&5y63!`1n-B`b;f8s^r@)7sgglQXa$3gZ9pk zBdx{+M+~l(4Pmh}%G|nahnXK&Y0gf^-+SQUmDc^~6aK4|Y>ZD@H^36u(4wdd!w0|O8)c%*> zS+rc~>Emo})`>k1hW$S4#jWml`MUd2!&;=g&wnK1ZMAQP{e|xWFU)2t48|T}af@T> zWHD#MMYZc%99$KKa#Kc!5;9|@<&BC1q$|RLsGyE5(Ml%#JX%0(U5G=mRJAgt zBt}Uo+a12U9+$<5Jg-h4rx8AbWTxrMT{dM-SuXG4jsZ2hh%?#_RABunj@ld*;Q@~5yMQ0In^*WQ*k za`Mc#WMC1Zl=MQolC0_UkJx7Ww)?pf@nz-f`z*Mq zB%Q>R?>q6yJLh?j_!5^fHz7!PQ@%>*f7LSusr$1!n9zB&1sB&$+1s1TSF~M){){V< zH5~l~g(id~F+LmyZ-4Ru;(m<7YF6tv5sCks!&B9?i$F7rlBOW=8R<8X!OuhlhDW^0 z!Ibv*3T=-4@VRT;I3}0=qGkOCAe0@bCM4$-wk}~1nN^@MRt4zW}PH?>1t+Kc_YTp;Z6wM+C=23JAbYZ#7?zMQ(Z> zLvD;p)Qtj``EmHM_L+408##9!=TFYV2!=|jH>0|gEk@!Wd8+7&%E$t`Xw~e+{>%$E zmp|Bs_*ET+Wpe($edcBmd|<;hk7;aQ`LQ;<%VS_hNc--OJMhl{iisH*C8Av+@D8Ng zlG38jJXp_lk4!x8DB7DFuJA z+ujU|*5yXaM?Z61iL6r3D2)G)Q_9JGs=)^om?!tH0eIQCY37vYU7S=!ah2#A{2>fZ@Ah@@^gjJ7M7w?qPSyV0X8^UQ)H^2$!1hG_reVA{{A??kpB*d2J=893pRf93hV*YVbikNw++;_AsP7Y@?T?Z`s?ZI2Yt^-3t3vb8 z%dz?Tt-d$sraITg?^-e5F|N$j{jIxD3#`D>va{71+lp!P!kvb-%M)L9axf)s_JACk&;7?NiY@(anMIzC*TIh*}j z-8K||Dk=u?_f3cM?(Yen)W-PAM@h=z&tN=A8>R(Ew_96hD!ZhM$wjW+Brq1Ii!rWv zO7z`TP3Fr;y(;U{!dfo+vys}}1h6Giv!Vo>FzSu18w~n}@IOB~D{Kra101$W%VJ-s zbQVmZS@nW?t;Q{4IosgEs6?3%#1z0|>PdN}!(UEy@rJ34+QJ{J{`M3UlTJ!b5S%Pd z{&3;I^{QJ>c#TgpSbpMc1%=I&L>8*4@zwAoE_VI3Da6ShElo@XLuLIRx5 zJ?ZFyWT4k~iCJ#IFrrBH_Vp&;pFTNB!mi)K_oJ2%Z*6$*f@tgXcS?%cPnq0_{wEgz z3+wl?1zEvdsvsmbst2DJe5KkzM^bX?VQFnlP`2-X9>)| z^&KpW&{j2Qz!-6^nfBkHwjjMVH)W zY0N|p`=Mt1=YVZw-K3W5goxJ5OoFU}P3xC^dQURkl4LfD+&rhn9&Se_{j0m|wf`?d zLts38f~_6agL1uE?RrZRbD1fXf8A|bc~r`rdKksqc%3jDT|h6KsJpU7!fSFcUCp)` zs7qi|wkaD$CFmn7VeQya=birRJsqi6`!@Sd6uuF@>t-WpkZU`tW&2lU#}l+>RVmYD z9rYgx3rob==H^k~mm#fZ?TdPA?fP>y%I}mB@>#6LXxu6~h#EFgLvpmM&F2&*Bbrl- zrl||RBZ}*AauwXof8Vk?WDXHv4PAdTmTmUEuUxWJmD1^XlAf8T$@tLx(hqf;5Kf}dy4Na^1xZfl!vh&tV{(rL8Pa`Y8 zAvd#9NYud2i(pqT5|5_=H`(tj4r2j9#rj&MSzwciY_yZp9^>MA8w;@4%3$1+;s>3} z5!ci|`N({Zc9;FxTC%4k7?26Ij2$tMow_vUWI(&S>wPmC4PVXma0I|8M~%FpTf2c7 zqcQ5vOWsW3xqJ|qR{bcz@ks-0b_lj!p4vUZ|IN5s=VH|wvH_7M_wW>2}y)&U{f(pIFmGS%=0ZG&_8YbnQo`(;?i#vHR zJOulzt~QtgZ^)%iMZZoAR3o_$YcvP1jAYmU{iUP6<+N^n`P6BU)Z|912j! zX9e8EBkNYWXOhJ)wu0#VKI6HW@{+9>Lzp8kOH9;?8hXO}DUalbC^p*F9@;~WlM)gS zO8G(iTRqeB&V?Gnmktg{9BCXv`Ru~~H<+m)I2y1ZP8#Cp+Pyj7^}aKmTO6-c=>lWS z&-&T^B|roYmIW0>oR_+6{i*TH&wdc=RN}x`sVKb7FuZ5N*jSd z|C_r{dK~)vzF0saldwEeB3~bgm3==^xh8j0pVJ6y!B6q5ot{nN3MuM{m+kTbub`M+ zbTXyc%h=1*v@N->;A0$Yw_5s8d4ju`3TS^lPH2Dj4^=m8FKS!BrEkO7?>2=$g^a@X zv5vorxgvf+nL6zzc`F+P5n@!PA$o;>d3;2f@sMFnY1ngD5c6O&e_;C-= zs+P8e0u7+$m^FOVDCvzSP>#^6l=@vR`V!OsKqTAFHKy8;$v)59I)-wV4^!wuFp@Gb zwzV5i?JG-=-T|Js_*fGvv$@HdgcIzv;#s~Dt7^*WwgUD3c^WZV_IpjJXb9a2OPf*=OSjDy3 z_yJ9Ak1e4_Ji-|jX5zt-kj^l6#U7OE%>jn+1JfNq3nqd}2NfUptwqcwkeKGLK3V~3)w3i94Q{iCt+TwTh; zka=53^9rAO<(z=M9hBwc7*^ZPZ|@dndUQv9I=Iqsp4OeU|8pso)yi7&4=`TOcAjwd z)s3M()Ab#v{r=3%-OojDYS}@#pE8)xL3dv>C^O21^Q7|@U!YQDRiA2wX4(c1FK2-= zj0k6_SHod>kHDIFszG!{Py0wC#SB_W#r%;}OGMXl!3M^rnpoRBTkr*cOU)ZB1m`d) zEB{$uFisMMeqdEaP0fgALoDA%zHLt)oY^rm^Y~Np&Tqxw9aG;4@dv^q=2={Pp5AHw z%?eDKd{^0^MNyNB=09HbrK|N0>#fO^8lxXG$#$R?da}Y~He_VIV28m=Z5vIP)Wsbb z!#l8f2m$0yiI&e|odKMm<##+dKN^0&MFeiStpLLMU*|-Whd-gaA=%7d+w6$XTm?xR zq}c@T9D*Qu8~R-SgFFCegD8MDocw8g(*RIMG1_d^v*?gG-98x-@635+fG=4fFlU9ErIyWeH_g^| zarvD}QwIn29M6VhcZWoYteK0?H+6q2 zjX!wQDu$PNTvnAPWQX%wg3q_s7aq>m1^;?J_HYvmxj?5HF-M`UAMN}Z*SH+lSov#R zSONlYnB`9nEM49){PAJ^W$$mvIbsk}5HZU%;QO_sG@`Kvi{n}S6f{{b<gn>9YN7Y zj(yy30{;R+U$gi6ur5<%-uxWsj|r3hzr;nm`TC-gc6%yI3v7Q)>d}9dLwn>rrLJiP z`*xMMS#dBXP#0tC^&gQeGVA#|Ty_YTEaIiXRC1Iub0pwSr;73)??0Fn&~J-oA? zi_?zephgL^zf1Q@pQIM5RrJbLoa}GLq=dDD#pOgU7xZor=Pt-nz{E(wQg*#Fa6W^0 z!Pa?cdF&P&_dlW&D)Qc$@{e7+LN~-}Q=7tdwG&!Gxl;eU{e)-nDPZ&7|I(f#1kwEV zhL*=|VJhwN)w}aiva|omOEoH2Q}~5);;&PJr!SXpd;_cRsD)~q$ph3Pcog>poicR1!z&FEjb z3=RzEA#K0gsMhz{pGxIQYQ$$&Me(2|yd-8f0rK;xBUg@)754QfGKvG>o<^N%yZLLsSt^D6CkG;;2{6w^5do$NL-=`XFG zH-e&)xw%soReQE?5EKXn>COIvYlS6E(;uA@3^MIRjbAejE6n~rxn8Bhzc7xG-@i=c zOG;(oJ3h8F9sIqwJ!^{cJSpRal4MABbi3?P+!fZhWz%RNWiMg7y{g1mZU{l>xRWr4 z7G>h=vV!W58{P8!)v^?^#peBZ18~0SP%tn!_1+v$W#vZMgv#^@6NBXqf5>=?fpm0U zU9R1x$u|iHxh0!pw%4U^6yj`K`K`fn~$mL?&Shk||_RH^UJV{i$o!X6NC=`Ukfq=2R zZcY1E)1o?|^~)v_syZOKLMgzDng}Df%&5#)ra+z$p(G#6V+) z?wm3CHQ~RQ0t~z#1c~0-8!Vu1()A3wEF3enw>RF1$gg9<=m&WHfcKM+g({VFXVt1(f|wYBix6PkxTggtBhzD;$DM1Or9js&5TzUkcKeT~z)^d)B8*la`+r zIjb9&es#Uxo9M8o(=u~!Bc1q>v$hR`%M^XW|MnuFUGR0n{g>EGWp)eT6N){6Ez^af z_sYZ?WJlT%tfL+#Hro^Dn0dmW*i8)7fF>)OeSmQxVe&XeT9T3NzI|)5IlCY*)oU$s z0Mn(7G8V5qT_FZb_I(L*7tNh{GGZyPQ*V(q`%;?|fxZYIhSQttNe&1)P|N@0z=hWn zw}$gz@ckPN5KHhzyMl3NRaqOsa$$`*Tcv)L#Fy;2NCBvTzCUVk7PuCCO3u+FR=AXc zWr$2QN?4l-lZ6<2#^iMZK{HVnpnrU|jlmWm$kOuNM4RCEWB;~q3fbvk$$hVagEj)8 zI)I0T5pM2A!ZT!W56HL4rY9soDA>Rj#NfyiMdVsD2AcqE(+K;)!E`RlAg?*h2@4&K z2sP|e=h$0Bwwby}fFSQ5MK{1UIP+y@l!SN<1qNu^*+-#i@*#EJ{tniL%iX`YZ;wP$ z6cu8D2kiO?Bu@n6Hf2G@$nRN8)Ah@pO z=tuh((& z%}IG*<&4yewrgAUgub#6{D)ORC*1C}$Kv_U_Y`7ZWNZn3Vmrp8(Q-*JdJiPlvu}Dd zZs1A9qUmIKqyan@T7r_VPcm?N1r}|eNjj`YCbtWvL>#wU*dj)y5aq&t?Pfy#sVIND zgubygJe=|v$7ODX>Tga9@-B159TT7?fey*dPME|;Zl>SVU}IwBuSB9?C^h}01EhCK zItZwo{!~DE9273y#}Canlav0esWxNc-6{P4e#;8CcQ5dj@D4t(@e!%WR0X2HoUK(ezRJvzn*lzhx5p={Y3Ic7T)N#*1Xzou!G_CtZwG_HjoK! z2qkB37Ms^KJY8&dhKI!--v^VyVp>ObU-6DOutu z(nKz$5p)YtpjYOBJBq1f)`h9I8i_^EO>w4uAt+~2_94tLSb;E z_>vt)fiLeYZ$`t{pg98ecFOMchtwH(#6F~x{KzxJ&(Yab*^0dy@;08zNx#9j`wF>q zomKCn;27c|hZlrsbXf%D1uW^gbKwZ7y2m>Y>ydqK{}3J)br~XY*mzZC(G~!rfSr=L z=cx#fmk`&DJs_)GbCJVK?{(Hq*w90y$jL4yfoYR%_MmiA&#>Yxw_RU2JnnXT^h@I2 z-2OZw|7Jb*KiQqHAeLHNA=c=v;e0NciE6CL;wH^_&j$bu#H0fFcG6!B1hx^_ONKXV z4}s4PA6du>uG>Sg*pCHtQ+qJ-dcN}1<0uY^-j{kw9%67Fu7XogdBNCn8U6IF+PKFj zU2FG7`+f9n5JwfG#Ejhsx4ivM7$k%@J*JDz%sh7YZuj=#o}GYk4L1t>?w=_Dy4x_n z&ut0lSscx>uQ2=leS}epLA4IMiUoJ`|K5erUP%#mYyLzGRA+1D6wG4h0_KcXS$^Kj zzlwO4Q1Wkn*s1nBUE<0Q!*8h@a<_7W=+KRt z9af@A5VoHH&orn_bAd?Y=amC~Ds;3njR4%bk*uR1F~EB}2ej?)B?5zDFl`dUZMY%3 z(N6Y3u~SP15+#_D-zfR6S?wxZDqEb)w5yo5ZdIHn2)-wD;iwuKN_=kg(B<$IDUmfJ z{+1Zao|3%&3E`ctU49Mj@9IqK1B^HpHR;6!d!ZTPd7njbXrq9Iyz8=b-Gwa8k1hJ1 z`LM>X1NHK_QtqDc&K(R6Htt|?K&JW70GtO{uRiJg7qu@L2}xt<#q>s%MMQ8oJ5Xtq z!MQvrax&V@8VUg(2%)mp+<8UGEVMA_YSk+(xrj69+G3WKT#H!=dvv*OIQ}dQOkm`8 zCCAzRdxqrQodXJ$x7AHK>USWC#9cH6h~xH0nhX2=9d+9KPH`fH7E5^|&m&-HM+Jg| zrB2fDCt;d&_(P2fn9K=(gSR3OxF@#$ISFpPs-iKLdPx|Q`Un>FwrDV@=D^zeU&sG#bMUl{#$H>CrvEGbhUFmiJL!&w;R z;@8kANG#l<$P5ecAsV6vP|NAU(TgKUeqEM;IyAuC)7_$xwLBo@?0Wfq+ldncONK^L zZTwT?N?}EKbH?YY;T+oJkH1sIQgj*U*$E4)XE#(?tJq1t^95gXkqYJ%YCsf8w<~up zP(WemUc0};Sav*4%E*os1MEE4>a9zE@izj%5=hF8!2l)=tCHP@iUSW$SRCQ1)%hjtm0;>dKzCz2 zjDORnpXINF$u6xr&Y?}E7KwU}kG~N3s5t^dqlF2Pzk}8Q!|~)BpuKD>_byh2m%W(*|PbZ=IDoQ z)OIi&^rmhx-e$yx4Ef@ayDKHJH z2=BKKF8#L$N*Rr(_r%LhE`w;d2RH|72P{r=!R%p;AM?m*Vg{-^newW`68ay%?N=wU z{Urt^3_gNhi40)k{LT&xn~G>o4xR)cLssf;5cA7LT#1q?7i<}gOeo146~{mDwwEQ3 z62}2NeWV|t$N}9uZO@QyEz4XyGV!H_v^;LQF)W<^Sb#+HYDOo!%byak;wYrUbI|re znaAc;uqx$&Uc6&8@?kn8MPvl+hn9H%BaBQw znBoR8Bl8w9)U2hskZ2Y&$<fQot?01X93$E|U5liNy>yBI$w5dLb`m_3nI=&Dzcn3M z@)oSDWRM4l;NJFO;yCh=6-g%MNlVa)M&Aw&>^{e;@MQf;+X4!~>;)~vIFILXfj%Jx za3a(Y9l%oOff^rHIE8u&eff5ZHUV$i;eaPmjzQTdYKx|%KE14Ep$^43Bs3T7jcjQZ zOnBcuU~e$v2vjgMO*pHDGIrHznF*Fm`u^ZLbs3zZ?FPPvLz9SB#|0L|8s1Mbb$`2u?E^3k#crnB11F8rF! zBt{=^2-J3OWBA4uaJSe-3f#Q~{?jCJCmh*PCwEoeGD1*M58zPw{E*;5vA$$4RH0fy zl&RE@j)Dr@fSJliG}VwyeN&U?5dTpKZtGp}6n;+&gN4;Q7A83L3T*y`yzQU?xWpaU z;@Iqh`keT|B2d;Gvlt_!Ka-7g(443{mYUQ7kpTtRP9g+2qIq@Tr(l;RSQ~XCe_r^*mH^SXuY-8i~mA44gp~MZk zVM+GmHI0NirS*0PJb10$yb7`87(%u$CsJLTMOymK)Uw?*Z`b)@7 zslN5_EiAjcx8<5-$XWKPe{!I-ucL?HNrB8fL6qePxMHEq`~w_<%1XI5Z#!4Nlv7ml zzjgfAO7xP+{9DJkN-5?S0|)%5i}~2dA+g&_|HT_`gD*XHC;O!OC^ev?yo{WtrX+_b zohm>)I{HE-bWFd@nV~3M`XFSaN9@qyNtjacd&~hVSu-)>E5qwb5dVstqlrv&@Zm6w z<}_*QGeGxQ;?Ew#?={w#F2*JOhlS1pzer`0bl<+q*}P4>KuhEU06-MY`QBmvX+-b^4!=G?YVufhB^7n%|_Y-lMV0 zZ$va%3IXrQMfCfR&hUCi=3#uROAMaG(%9xq>76mVA~G=F^)lE4xNgg2?8MB}LFM^% zF0m@bY%<#e|J4)OM$q7AjmM&}DaiH^F}ULz zwj7gB7{w~7CwsVzP?H}rREOYTlK``rST<$@Cd618!&hG{E*z$ux0%6|vmb|l2T)js zx5k}5SIM}yS(|M?$4ZSV9pIN5aM|r$(T5x~B8GY_K78Vk0?OdPjkSF)r~yD)pmWYP z&B1RUf2T;Iqo~P(?QLIl+uv%boZ}PKZ{|=ot-Xo0Xqaha2zf1A%pKHoD)t#XJzWNbj3pnzpsuu4rrs3k$ zGbJd?m-m1X4yV5G*HS+;u8hRMD&6`WFLC-=h3}yge?kGch1Sdky9}Gwu>offYXfB^ zW{-V*aWi5v8!Zkhx^JiD>E31{mgm!Oplm1ge+a->l6q&jP(>0AvxBIQJk_82(qo`A z?gx1H(jSJ^5D2CZKM7S_3~2gvFNtF4Fq~rb^Q5JIDilyrD-^&i;qzv4z6Nwcy(~<% z|CuFeqftfKkZtxb_3h)QmhZfSkCaZ2sskv?OrL=jqLcv>kNLznh#lWXrGbV2sX-KP zkc@=0^&tD3_t8&UzKAL|y*T3{@f)*PJ#}O*ZO2Eb;&2r%QM>0;(BYZ~;CLw0*lwaP zDpE^A@8wJawBF;lKKM#mx3ULZd=$WKFEnGFwq8qyzoGy6R0a{s-X3Z7tZpehP70Jd z0i?xsIF;f}n#H+5Z5*A0Uq=xXjXurv7DRp6Jz&hET_FEibLFqUsxWkIVi3!iodw}4 zk@C&dTpWZdtZi7F8c;wq8qA9hT{n~c$`JRg0bJY90gvu&YKJwr;mz@x-JLzso9#ue zpe!NqoKN-0S7(S@2fz87VaP=5-v+Ib$xMKO3`YFVahE)OLdOd!GfkLZFXrg^rLvN3 zHOtRP(y;6pDEirbHp$W>*BT#Ng&^gRtV294(90F~?ritX^41sG_l@j@4Zj6Fxw{b6 zu|x(l2}A~V4)$2zUW*QXh`(i^bRqt8z3w+covkhOQ&_{R)d~8_M+NG?7>CH@0cjEb zk0hD|kD#O_1Et!|lLHm`sCdR4ngmIIph)q)B_18_zFFT$LfMo6-U)3)1?_MP$rdX7 zw@p$>90E-X0n3RR6zNgYqqo`tA~5$1P=1?Z*nmIq_J<4#OP?MQe#i zPa9@DXoefhJ`M~ORoB!KI4#jdXhPHjAH2254@Y^`#!$KXP5N(nTJ2inr~{oS7YW{X zRznEo{DP0WEwo9LI!#BuKf(GdS%MD>lC8W}6~tOx+;{~Z-Z#awRFpT01lPWggj;p? z^4wT9t7oTwv3u%fa&qhShfiw7$1iHotyO^lAMVmedf8j^bB4#x#1L%@0Z)quO?Wii zL%|g8Z~GAkKdm5}QApE{YhX8}BvtVYt7-UTb;yoi8qFQEQ%2+d`#JvrK;qPLk+_mI zWu@t+aSC?>MRG^YpKd4dzq;)pyhPKyMiE_63+66Xgt-J%3*=WCOr)}TA9@F57gVdl zbM!l63MWnPA5h>g@<0|A8L^^=@9R$(zqgBkq-SP~v2%JP8f=}4OGfXlw+H^_#8Tx; z-qG1ulste=quSD~E+Pro9uB&q6F0mGZxaH(93GRzah(jbzSJ=yZ_hW~Zo`B(7@CCF z<^4LF8*e`N`9KAKEPQk@Xj~J?m!@#MoSH|>`dox3?AH@;Oo)=%W;Br7_WjPT?QMj_ zY-G`k>I+|UkYbvLWYQI@gBIN=bY*Tg!nRq?oQ5^7fQWp86hLS{)3yl2$+YR zf5q!fu7f)Mqdke$gG`_?r1qT>U_SxygCmR6z5q$`Uv4jvg@TYc_Bir8;k%26C+4h1 z!OPH&5GYBxHrwqL2Pnh@;g`$)#?7Dhl^fsfZ+*4Kh6ogFeQ$0MlBg;5gp3|uL49Qg zT9Voa3Ltl@ZmYwaFL>cFS)(mRbI6EU&ASVR{Y#06v)^Vfsm%NI9@lEg;~uH=bogz% zZ#qr=*AEcukC?~umpldw&SIan8;b57#Lin2T*C>|o$l}WaaOY2@7D-dMy-B6G?(Kj zk_hoszOEtE3*LUy6BKz~H|wQF&bl4yOq0~jjOVktL0ps#|JgkH!QBaDD7FGl@!j`b z4huTO=S{0s+y212&%KqZ%@%Z*E}%CDT`F;U7LQOrl*~mRck2Vv2Ii|Pq;R#*F6wMx zx>*bq^v^1!B=E|)-fW#BcVSr+(O6DBsJ-f0RK(xG!ie?H^To|`Gtrk^H+B(HsJ<82 zG_0hfgnvehK{<}QmFXb`C%SBp%-330N#1rtXpc!lHJW~N2w}nx zTi5)tfdyqy%n=a@r612bUW8r@&yzS3ra5bC2pZ4Iy$QwkV}=)f%WM$j8Z0;VeEe7H z97yzqep?mLmvgy2S`s^R#lPs0aGhQFEd)3OHg+uv=LWgDTYwNx314lHLf(%*4BR2m zHS0*!mQf_Iw{&dWIHxu1W9;LbCB4sw=}$q4>|#_;DA!0 zTSb}%g#_w{%-?!u8*@?pj~f41CdS7AVnxawfp@A%2zLH~tsPXd68xj`@V?!^8~VZ4 z^$(Yc@Ab~XZKfyvaolcsiSXI6#$g@F2rUQo+Rr4lD)bO2qmTS%e}%b!2s^o&rq}t5 z`keIsJVG9HdE z-4o;-O7e7_-L-ELL^jfES`kEZ;%XPG>t4!@I+F*QmoS1e8uwB>CGPXNO;&3nZyo;^ zSAQ87Rrmb?!-Rw)qI82IAV_zEBHb}`N_P$+4GL0%bayj!cXu}oCEW~N!@xao{r=DA zzMpsShRr!^?{)V2##-l&uXt$L4>rsy8TtkWN?2b1i_PJW6JYt=@ZP*H&ubwzHZY^@ zV;`zRPX(RmWHd6}fn(DO(u!6U+QCsiNQvL;LyI_#Kq~j~;bB_VX{D#(?QQwacf=0O&=HQF4?6gb{_NlQSd$Ao-oCuxX z4XgT=`XUdNC>eZc^Xp|u^@-P?;|yl}zT3j7#skFv#psD0D;7Pc-ORna0K`@bzJHUO z;%5=wb{mK#nQAX*{fcy@+Dpd8&?NX2W&(krH*Xx39N;*mC05+{ERnBm=r7gt!eDbN z(ECdi{?>$tHGU#3+c6>6=CkRa8v3oX8S|}Q@Pcf5@fhX3kOS_AAE|vXDK2+IUGq`T z8PCFH(d!axgzSd=z8>!Y*;VE=ui&$$)dqH7WcjrEwQ522!52;O!W{ISOI7WyEuIRe zCatYnr2y0eM9e=umC=5uSC@fmqMuoWN*GK29h6|owO;)(Hqf>_zdBk(%Pu>jSce=G z^eN@rMQr|^dsAO|b#qKb`?WVW$?1pOjtoX|nBqwrXqHA4V5q55_Gtz6LD0kP(f$f# zSHjB2+s%!Zw3H~~I8`CD15-Ao;iXT@Vcf~<9-dTnjZj@pgMUe+;TVix{{C0fGWcCe zei+R9Tp)noJ#T%)SEGfJXbr#LZdi&P9m8HF_tNjWV09}dCbw)PW5u;Jv|wW^M;q0E zCJ?|GC+K8R&r^S025t{_c2=R5 z*Z>B3KD2LEjk~1I^yWQKBhq8pfh*f`78J*hbaxJ{F4yTDTNm_^QrciweFws~H`(fW z)S_Jx+LfQXqN9y6H;d~Yu5RP(gjbV>gpo>){_;8c&bqk`<&pim90?5R?36x1S^xb4 zd_u{XGP2TWxB8$@|9bO-R)z;!pQV*d5$3pKYvlz0$MHq2V<)M9)cEO5xdY>0nc6k| zS{i;kScL+1*4wBf1=hiTsd~eSxcTx5GnzYej>+B<6$?5EEE2vW0ikHgs7k6S5lD%% zzOlZ9Gi#qV@1hz*-P>XkUw&(#HB6N<8IyL)3(c9*)s*(3n>2!DarD63($Z-r;r76x zo|GLJUlaQGr$H?JJ?KvwLy`>e;#)LTUv#5_(yyit=wFv{1S?ggzs=*Ww|lxxC!9Y} zT_eAs2}^?Y8e!=XkxtuRBTvb!XgN$>zRYH0k9u|OxX6X;dAoG5&`g!cVLGaU6)yjK zipitQegcQW+HLy*6QLrpEN2ycc1dz_j+#%(t>=pc7R<{XMm6Sj+p%sZ?Aso53o+Be z)QYbI>c9LroN_)FY;j*T7}(xildML%awpt%hN3XSq*=Rmz7uCki{gN}Mt>%gcD}y~ zAAWWf>LcX(FFivp?e<6DILO7*L#}=&t^}(Ldb8#Zh1_h0BEDRU# z6_AaiJSnQh>oF7Y|I-D)o2m;h_BYhLP2ez;l(gFWdnByS_G4))Q>gnNXXR)*n$DR5-OhONk!`*_n z6>K7ebKt3c9zA?Omtf$)@JBOHP-L1W9OkjeRY#~Z)`k{OGsEZDiq{n}+&-8g1g-QI zl!32>F-)!dp10)Ujf8ZqN?-%8Ga27jZ?Pe%b(;-OvVF} zIu1$3j?|STcMw}eO~E})D$Bp9?Ymlc*mi98FYmW~R-*pxfVjyD>s&|VsS9dq+pi-j zzG$bOv3LARbEP4-td^N^evxJuNyUytTA^PKcNvMsr~8%e>yCopmp=l$Cu<)rA(DZ2 zdM;5D(j;~!6D(Tm`~ONR2!JPtC30I0?<}dSWdw5NgCo~7QW14mh9wIpquPYc(# zf9~dgqU(zu2O?9y<>%#H8WTkxm&*w{+|z2VTl9h#cY@}oSm9YvnB`Dz$h#c`4;Dz> z2yZ)?h4fQJOZMeSQi&L*ILMp-hHe;DRU0MuL#DL?VPnn?@@L6NW4}r2gUC)!COI_V zGzal$`x4dQ#kfL7$aZ&boKedqes1=+C{sa6#gukeBqz zv2{Pjw$LRT7fx}t9nP0qYu4oExtqUe=YJ=I}rMpA|27-G-( z66=$i!PXb!0gVX7a?aC0;d(S|(9?iOH|e&J>8e; z*1Y}9DT_5amvP1zJ%Zm=FQ&x~lq9-YE#K&}RQ`EKF!sXt__jsg-VrP_W`2j)4*x8| zMMW((un)@)fjs4kXqmRbr*P{RgCx97WhiohNdAvDkqJ1r^d69a2ey3<&T_{X<$E|M zsH8*x`GysLd0l!w*9yg?VSt7x*!Fsie>4Vu+$EcyIZ4z{AX~p$!m52^=lGc28oV`4^v_}nh84~FRg^(&_@-VqLOFd!T!)Am z4wgEwdy8DF z2(p@*58$LSuSiWT_K-$TA(q0buez*IToFPvR0MA4$o;g)jIY;WF&CY97>bpkRLzyY z4RT~(zQ+`1GpD{+U3m8?<;x_y{DZ1%N{>xZAQOL)KK^Rd^vi`e?rqiLz99KQ4EDD=(v}&o%ky5`P}=&|7yDs|M;d zmEFETGoprLK|~5$sO)coL}@5A)Z&Bve|-I#Jk){1XqekbKP1UOXXg_c3gaU&0fP|W zpwJkVAb&wr?C#eAmi4MwZ*l%Y@y#{F1=s7NjM@l>3G~ck^S1{Df#hg3CL~V2zX&+R za{_pfUen9&NmV`7G)Hfq@E{xeMmJROhmoRaC91_d5I-Jp&{Dyk1%7zv`amkF6|Q1$ zm0nonC`HD;s$3|_LZ?OGi9jx%^;3Iuv=_6Fjf4M?D|OLD0?Zl?}q`L)*CNLUTjfAs5|o> z$j|$d6`I^H?c4!UBPPp&{d^Jp=ZPEmU+x~H=HSsSlA@BdRojHy{e%kaKgU#wY&ivJ z7RsCE`dizUf9iaRFbW6$fQn3JJ&Of&W}0}MO-ow57zOw62EdF8LzmRfx$n@lR_r9Q z?eiqZ7;f1o_!#z!5Em?8@VO1rSdx6Zi{=uZVj>eN5_5GcvE6}zy-bNjF_I+{Z>v*d zvqtv*TTU|eDL0qia5h7N!99Dp59BgH<1c%nuQJj8Co zkg^l5Kc^$Vju}dvrX{$Rv{s{ihBZ2$V2x!|wJeo6=ddZ1WR^Ftudw4kXO-N7y-CW(_?p;}k zO1x*Q&D4;}dd)a~7|Nr!y<=|+g`-|h?7krLQq$%ETlT$Xdw=}+C|lr!I93{)yR|2R zyPEWvP8QoQmDxYU%ejkNQ7B8(m0oh7(V-3jG7RZTTRy2;^JgwI?tUumVV>xEXGBV z5XOO2h|`8dHQiI859H&twB&Q$4Gj+(^WP%w;S& zsxwf=uVQcvv42nH^8ZTqv(ZM4ki?3(#-T9Ska*R%wxJEbTCsX7zy>8sv9dCB0Gqb_ z0v9D{G}yP5s*m~?;%ykJ!#3Nu%gJbEtz0h|`#gRLIf|q3TCQL3iNBGKe&3o}<1f8boxN4?v7;`A~_yd|VL_ z{TInRln%~6M9L!z2mGX5eyz4L1e6QWdEXlVz=&T-HN`pbk11KHaUQtN3_hF?l^7-3 z2wZ*m*WLT*S-oYz+Krj&HYVyC{@ZVzIo;>Md^b0|?|LWwT#nG`aRW;?zJN+?9<;VJ z!MqAH-}vj~M~Ab+P;cd#(i{0WK~+3T-J8zu#?r<|X))-(7!~2&_`}s(RHUm4=W6SHJpJXR$!~xwl@4d)58%B8J>wO7XG{OaF0E zU1F%ZML9^E=zY7gUiA44l)`q~I+o`?4~@W>1~n<9P3P`@f+e_wP-X9LIK=B>>#tK| zOt9;c2fSg3ms|sd(EWCUU(4u`aEyNT5vTQ83)TuJN65J!$qTPF9cia9b^VhOiN~Ao zSgQw#u0lMF)G>uCu%#%-*J!T@2(O}bm^`t^P}jA*)N6#iiW}&4oKHP%8EO`)*$Vf- z#i^P7H3?SkskhSQgGof$j9|5;p|r328+g*W>0bBQ+IzpV-I7T(#wfFLwo(|Zf>i5s zV$}F_*lI&u z{tx}#ezvY?dXw4>PTdBW`{DF*!qR5F+{&)a=@|Xk44?SCO|N1-K-4T;Ny=h-REx$O zIGTqwYt5(l+Dl^TqTRpk3e#Rz$7m(#*JsP^)?1CDz1=y8=NW|Rb_V>jde2pm&q;%D z&66m6=K;DeT6W&nn+v;KK|3bKA907~>TC#ea0><4-REj`@P6e2&Lq#~jn;C^oElBU zD+s1WpYCH2O(@nLEClHnCSHvWCVJJ(XqE|GerfjyTwgLmw^QeYx5eohOuC1gc1+%& zZ=}0>uZz~RcHKZY7mFkqbYl@+6ecyQk1pd^VXf_iNjwYytDoOGT9S*X((jvo%v0Gh zl2QzM6nRN}qjfY($pr8FviV;NAj5}YzM8C&!E>i`hK4+=o^YP;8?VLn;8#rION0+e zFN|ZPGL_X#a=$Jp^>d`xJX#7|w`KSKm07vDuW4F87t%V@Tl4i;y}2LpKucMCSXlW^ z)%M+%VQ^qdR`32a(Di}2;U)kt{a(Q?SRqM$F|V^s{ocrDccjewrWY14=6!M&6sJ!T z5`izad|!vP>TX(p+GH}+Hf!8^vz8RkhV*dVvkjuRU9(%YiUl$|shNqcWiE{uGJDtC z&gcfW`9LSQ^ItnmrF(F(zrWoEtlC1idEB#f{|^hWBbt~&TlIJdJyVJ((W+xmX|mZm zvl~mw*gt9dJg0``WjeBxF2JdzuA^ha!8dzgC<^g8?x?OWPP@Hm)3RWi3MEI%#Qp4Bksh0&_FHSJo$@^)5lGLs@;`#rVmcP5{1#;hKB-VSPRgrlLR zd-*I#EMPWY5@Wo9VRIejV$H!|rQKO}!gmUOX-=>=ZDvP9eOIk4vX_XZb35WfSE#E8 z5Ot>2@8kp<4O9}vD)`N(w@LZE77?YeO>@qjjZ|>!*>X1Gl>UR~kUE914>WeqNV&$n z>8$v+qG&)^F+;8;@I0!-iIVcR6i~LDh|Rs-!`%9~f13FqzELQuZ!ET2y{}J_MwU4O zb6Y?|dFk5LU^;W8v|tCizb+I%o<-!g)REAG?S`W%k9wCMb{&eJI%7ySxZ6rE+$p?? z{hNFL=W|u3t;c0_gnkPz8#Fw(i~@vIF#5w4Wp2St`2K!_8VC7iH0g#8Pz$@nTO}@Y zw;b^ZEwx>`?<7Ghri<3_*&o7c<1!V1PSh<5>0Y(ZZ?e2i(d*s!uiV{Z_PRJNa(^kd z>UjhFLdE?`zwK(v3*Yd-DetI(>JH5xuIec*%@7X|VS~T1p zTnDHcfia#Ha#6%i98u<}4%bd8Rwz5U=gu!o_`5wlj)w?yRXTJ{G28K&Y?4g7SuVDn zV^g?2hDH$Np(bDrB)}ePn0?&nZ`WoX?{;SrGfnb~Y_LMLKeThANW7vnIn@6;BF6Ck zi{b|_0*+#utKutVv5^PB6)^Yt{zLPB_n**@8`h_&$`-{j@9DpbEYpwgX_YU}{R*3= ziE`ANL+!>&cL6%;4F6+Q3A_v;7XV6Y>Bvr=&~4gr4)2Nt9ANj#uHx|S@QzEMIFEoY9lUZnsbI|ai}k5;Plxm~5nE&x*f zw#>tumGy#QULxf0S!nu#UIlh*nJV|m6>i$gd|Y&VVO29W%_a4Bp%LUDsd|U)dG8dI z(gD%}VefwokYlTC<lyk3Wq z4G*u6Wl5{)5eE9)987nUYuxfAq_Y~?+=RvFSh3VA_w5%kgyCu=Z`*AgFBNS%Y*&y= zNBNzlxt%@B5bj>HW@C~Fm{`A}*tcPr2a-;j%99XLkO_YW$J9G%_Kk5S^(7rhuI|=z z*n&tRC_dr4w~LPl<}G`BtTrpmQWRDQquVfmn+|j)L5pQXZ^>p|mkt}c-g_u`1C2WT z1OgANwLBwsH^WHS>qi|i*(W_joT?E=i9gV zc@?;6#qrxZ0n{yvu5I zL};d4^p09|&L<&}u?}_A4IN3o=8OR!j$XFW zn&2vN-*CMn=Y`9wpjeQgmJQB6-S{NHwiax#PY7Y&S&>*Ia~ zYJmppeum~cb(jjy#UtwI4|{Fjbw>D0>5p9h$jq2SJ!rQ8MgQTB^JC>Yc`#7*ofT?9 zy8A;`stq3!!64;PKxxoz6r3l@ymWDYOx)Tr=2`9h5gq-v^y?~~{%}qclV51*jawv( z3J$@&;^!I|e3O#y4%J*gZk7@k({JoWuZ#xbu#Mz^*;Ox%Y0b;e^)u z&kbuU7p_}uM(!QixZoeVJ&SCl;d3Nk%+!L}J2k86N2;%dd)cvCU z@^d)y5ae46IoRSF>IL7Fzs;T-08oRf-u|*W`!I-ByC_lM#HyF*SZuwS9lC^_>ZD*< zBnKwX)be;S&&|QXV7s2hO-^F!1AQ|@d^XZ{=YM3=8+Tc^wLH4r(#hb#NQ`fOC3AZ% zya1o*hXPh^JFywi^3l~$-ESF#9R<4S&vJdd%NDE-&;2nfHEDloFZ8RURnUq*iz@K- zwo65vi@ym%HKL!P5*&F^(@PR=-@@Fl&Z@!j2< zHSWiw+b}|HsAg~Xtt4hj2@gT~!LN#>IshR-2mD;Go+w)7w*uQr8^?Sv2+v0ynob== zhe)EoIWef(E8DlC$B2RGq;6+48`j-xa6RnJi8c zlSm@(R&T=i?UrEoV7m_NDGu(TdmhA99Tni;zvl`KZgvT3W58K~iuqpgQ1&Add@?-l z`)&2~bV9i_D*vi6fiH=^Hx8~X&X*(ktvXj1Bow`E4aUY;oww`b=<;mGzdbh|Pu-G6 zm28J=)J#`piZ_z9bZn{<^XCgNF~W(<|80wo3PtHRk*oIUQOqih z;3HUvKE+mrRa6*^joyooO7YgXs?@ri{Judb-$Jm;3d*bZy;`!19;_1lO0VkUYeaaS6!5g8m?3OVDr~-?@#^9T;_rms0DPa|1j) zVRgJSf7s|#niAcPnpw-uWbhv`KaTh6vQlQ8v~3TDnMgb&m&uXDZW@|g?HEfY!5PRh=vXhDeNVe zu}g~BX&JM!G+%L>Kgb6QIRV4_1NQ6X zXcRhcA4org=$OyM8ub%-(Hp*%QlcDK@Y`@2@M?7Sw`1cDrS*4#%buxFZUS68_dC`_ zS6@anQ|d-WA<{TPz{TjH0};2tnb+=8pREFC-#A0D{iu6N&F0F5O8QFtfRDD@-Q*Dp zCWB%diR^ykNAEJEb3LN%7UE!iziHs<2HPFpqtWQ*-eX+}pY@VxX#SoH;|{UYNc}K$ zMX2*O-4KpU!X-VOj5-6l6f>{MNy#$sy2HCr_4!qyu#LK~rh^tzL7u^*Iu63sgbJ*O z)oS16p?b?QviOF7CD}W&e~9b#?OIq3pj7N-MBMIc+~5wnd(mQ0t=;x|5DhUmV}l>R zZSRFd>%VhHUg6Lxz-g1Iwhcxq^ybKC!ok+#tVCfsS?y*IwmrI1?hK_9G&Iy^0E2>Z zS9>qFZnbH&?xL_qghxQ(+a6@)p;qMTX$}8uLbYFVG5517x7Y0ZC1#@GFSpzAS`7Hy zV%D&#hXr$UiAN9;mjHZ*s2Pq*`?h<@ykMgPo`5<={&oOfq(JBaI=5x?un}zON+rA! ziuQ4=nV;$v116?qDs(>8%V{NrdoO7q!sccDZAFs`(yi!{kl@4bhALNYjS<&4EU=@l zo1op@!Z0DX1NiG``M6@L({B63h6zo%YsTpf?X}znSAYFlLrQB^iPNM*r(btn z71u*Fv~-A&`@PX!)goy)tqpc0+x2PF-F7o8q%mwDv=uX9fD=Fp;mSwk{<=PXgJ9df zp&VTk-djK2E%NYp&jCxAm*}Cz99(~3>mz9QV(zb73Cy#OtA9-a_2V)Nd#-tp?wo7_ zkC&Lv z%8t>n4Lv-oP-Nu4B(K@Vc!xOU!Q*ds-@!Sqb>jc=?g+I@OhNx&+CALRB1&nxkoBE1 zni}PDnd%o8R1n-sVA!n;T1@Z7m5JP+OkgPnRjH*`hy|ALEiyIUmw`m$ElL)M{T(gJ zsN*uVlvlvtQ|ZZ6&3tNd862!F;XSTivBOKi{`4=KIQX;YqZ+zuvjv#w2Fsu*Cc!2B z1=Iyd5yBCX(bre2x7Hp%h(=y0$;k#qm$71l7m0lsLF z!O&f3`^P7vgW4A}-KeJ@BH?VfvX)iFOR6aqpjxHoOvBbz-_X~~9Ql{259EYoEn z0b;(_`%7_mGO91%47>swt=)O#Emt0zYlw@lBH+;yl}I;Q_dUGIVL{XQBE53-dfkJX zfeJo~b*TRKNFPl7vJD2Gy?kbd0y6#>`WN3azq?r+`&`YN(R@rBZxCm6WS#=%fzCOOlz!+{6D_}Ul;#uPrP`N&HktwjTmZ~Cc%ND!ukaqc&>;=BjNl+ZGmA34R2@^dFXWFN06 zM;hx|H?!>zY6W&`_BZ`uH8eoRpYbFsvhr*&l5a2d+(H=HMbcPav0 zwzT=dPl;C33|n#l{bTM2SNhx%N`4nkI$#TR6oA21GVYVva@?e>mUtm)%n;GeVn7nr zU`-^A1%8IMZ0awRt<;wXA*wtWzD#60@tm7}kK7OK$>+Gc?L z=0vc@oBfD_Qi2SPH>1vq#jcc-iF>M(+rsW}N|0us2(Au~+@<7??%-@<%_xN!iw+!W zX1=-V)qL#w?My@$^5k)&{08F3|##ZZSU!OBX0 z1$!GnXIe=PL{NV}%-tt2On6dvyyb3!M zu6NUAOtQ^$52==O!_C|?P@FJTj)Ot$%#b?Wc!vs?b0I{{;*?e@HL{b74M_?v z5&UsTu({EmvF|84fao%@G(M9@_mlx?{##N!)i_lO!Qtntg4_0Eb!lx)mvBJdG zET(P}D+c9A+L2b&tkyN$oBzHCoQicI%eMdVsddhx4z;d}_-ZQLZW)y;rPLfh-LZzH z4SaHyaOu8>&HwlHh<*Hy%1A+6(`*a4 zB}q5+rP0cR4&J7t>`Tdt)Tc4NB4@5K!Q|^9#e3cmcsFQbOK7POWNuQz>Kzqx>Nczh zK4)0(yLIC<76IJ7!Obn{{Is=5o?M*`1&R#`W~q#iBJy>BLF}0d%BCCVH3Z7G!NY1i z+RsJ`YMSsQuxN5|RY0@}gl{P9!K%?cx-ZE`PjTFvfWV@#KQ>ww95s2uO+fs2=8WIz zl)YA%`+K~JZUe!nBFap6SIh-mg8%O|`{A>Q4cBPv?r|7Ua+Me^z5NGs1tl*^(Pm8E zN{jb?9Q+H&(;d<+{GyqEjhn(7tNRXRNBK4;GX3`G@3l;9+Bch3DT+zBu^BiyrWyh( z8iS%(9I7wZ4CaMa`gDj*J@=J)_Z&0Q=a^CEehit(lP0P0z2Zz=;siu$1d=#f6W{d3HC9NhBh zwvjbo_TxEZ1kbD3`X3yys42Mu8EtL+ry$5pN`+HEvpJ_sbPu-UJ?lm1Jh?4tZN8Zf zGF=xg7t%1xR6h395i_{a=FW=o`|orj%>hYAU%{m7&zEDmZ2t>S^0UB$roI*FeEI{0 zuD)AL?kQ8m#Q%odpUDLfMv#`x1f_wj(^9<_yc?zs=Siv3iqlO@VSIF{;i@mc zr+SMQBpjXrLd2`c4iBp#YP!Tw6O=~XqTkobKqtt&%gq%tk0&r*7Hio=>nT7?&j!IW zH(QkL$@SH}%2j$I%{}?t>6!d#_)>sDN#~g;n>t5zs|?AfbwKRT>tK^@j-dbnl^67T zlhL2%zfj_xd&AqnfN=I4SC|>m2vc;}rhT9UDT(CpRMGJJIeX%Ow=K&<8jG!*Bch+EDh9fr3m4QFENf{wTKLTc#ZpLX{z`rN9&^d0y*)d!Smx36ZZii+~# zNwYL_lBRSMhTV8e9&KZJ?Lihbe>Kxety;H!Xa?jWvf|#u2?-1-tSMe zL{6t4?rl3Kd+R`&fYL*1pnmR6WGG74cwr?A8sSq1f+`qXp@Ljk00qMyWxAnKQYttF{6sl50$=pFZl%{=+{I0>%r` zn1aWB<|*>+=Vmw@Pf39Zt3kRdUJ(c^(0%=Rf4YVrImVpuxAW!dD^#h~R6fj%0#^m& z-eN}go*4M!3}!<-2Pf}8WE{jKS_|V&UF{>9Kc~E!h<*6G%in^5o7H53huqsH-I%GY zKZ(V|uFCA4^1BRn)_Dct-n6%f&x=MRc|!@zk;gOhB;bF# z@$G-lQ~XH~F6V0&aYlK|>he%8>s+zzzDQ9;uujME@l#!0iox&U&U!VH%TQ za51Jy=F#et-o@X8x7{*TeZS5JFA$Nh_c`7K|3yPdFMVKd-vAFd7dJRAR;1lUEYp(VN-P>MgBKI_2z^$^R zP!xh7#OL$j_|EUihJ5y^Y*8eu4ikQ7D2051okb;K9bOoS#Q1ukslkm%4ugcXE&qDv@|jypq}a4=Vm#D6S^{zH=W2FaUJQcHS2BeBAA-S}lU z$6q6UR0H;R4$^!b&@67ixXjGPmm2oU>@8sMJHy>s#lo2M>-mK9S;6a8u|Eb2X#}<{ z?rZTV;x$)=;M+r8jJEsbX2C6wHUq|Y11@9GTwS9gtOuJ3_Ep?O(ye9++kV)|Ljzn3 z#kf*-X7K5CK-jW^m-pjRe1G)Q_>H~ZXO9*+=VvZ_0hDZcdeGU{EKKA@iU?e>gzjaq zh0FtFV5oe5o!UgRdTVP-Rq*~ic3uK`5TjXq8M6}`Erz6y{Z{B{bVmlQ-k=T zCp$jK$9@H)skp~!=DkT$p1p{@Sfku!hq`Uctwrh9gi*TZ!*$99GBinslr-in>bI%jl#&QFV*#FQ%GI^xZ?$!`~R@2`*e%hJwv=Un<0 zG%hZquUp+Rz@qkR6J>TqS2Q zyb4^xH4tbm&TtTs_U*O}>pruQAQ3#S0BrE&Hll;EY@7$@&CN(S)9$V==eT11;${V~ z-bM0Erh+$3DcsaF-d2l!;Hpulk|D;>gwv(TpFhuGX#|>*( zb}h%%2226t$5Acahb>pzuBbM7{|^gjy@(ial*>sCL4ccZ*SOSXlE_D(6*xgX3PN_*Ua%^BVGJi4Dx_w}=0 ze#^nFA<9|w?GJOC^V#PrP)v6}VJaD7Da0~PoaxLGSpfi!rdcm1G#DW}y6!9pQW#Ct zsvoBc*{*NyUAI;g4;wSu4#VymnrIZ7X*O#6R{1(@tboMDPFyW#{|*OK%$RjfkKnLp z{>*|^+;EEXNPVHJ;AxLTk7Q9H>rQk&WHW;EykoAl7NSrXja0XQ;VM6tz~ObZ?)vz7 zW%NPBaib8j>b1U-NQ9F=rgO3F6H1(U*MD%$F*wDptecFkBz&_3{?%` zGZMlY9LZJtoBR|$R@}EY9Ikf$Ry$qHAPqJT%k6rps&oyf?&hG(-9>5)^`nIzO}G6K zW>SWw%caz9TjG#bEjCC4x89o7P=e>;Mj3>Ot+PRQOz?g^ZDUn{(`l(2<&mj~?-J&r zu;fv-fNOVOC#jHF2|C)HCYsl%K1j_s)lcVzt?UT*)3Ynv#oANnW$F6(Sa0Wqg=tg# zFzouvMs<1k2@0uNLP$(6E#o~KEJ>_d9jVZ`3h+4o@hh~CB-EwkhxIm)h^S8RqH||k zx<1P;jqMs%m^im;&Dx4N3iEJX3mbNrTNZ%i%GK_+(1;Xcl)JTOeMaVvaa}t9!er;y zyM(o)?>dEnW;M+2GezYpaJ|Y_8r<8PqLAKTv|s-+k)1;4^pdWn;pk3f6{O{MP;F%@ zaMKyjJL4J4*_7UL9SkT=OB}Lu9}4*V;8dja7HY$Db{8<_<^FF`{kUPT%(aa7VXElX zwe37~#rmb!%0Ak$7fh0>Yi!2j5dtYrYc<-R*`Rd@f^Ms3Z@jcDEp&qDrVhn(Y?mgw z9?8MU08U|%Hv40z)p!8J^J-M0m4WASYaP1En^d)yNw+~Ocq%xDI15kS4>M?{di(3)p zpl`Pv`uB2d#i^@iZp{5GRafi?s)+V<$zu91U!vrzeEjnK6^Tuivv8KNIk$jIVS)5+ z>jpFMc>tZgCSk*bB#~|0bzq&9gf^E2iTo&XJy=hYy4{=4p9{FmzN(qEK*8Ys%rWnq z+ddf@R9pgel9ABmN}IB>n_0J!bxsIlW23_qhTX{@nT2C+{RL!hCjINJnS6m&}j8?U0XXD;|Gn(!TxZP?_!k2e%n-6$(g0`m2sc0@KX-CjU4 zg%32OtkzEB{HD5k7hxQ=yRWAQ?ZjJ2L%O$y&akLi-}|7xn#agiFZ{0$n4^sqA>aN4 zIv~#eIyv35)icRuOjz%6CFQ`1BaQDuOzlFh_~Ejrit6j{32O#EN75VcikGwb22*Qo zL2*1o3pL$Zk_m~6ozJ!SQE*NA=DWP{0a^XGG5p(xM#r>6LZ2k-p%fIQje_*h@VN)C zN~M3-TCO(3aAdQj6FxFy>EtwO0Blnx*g}*4*U{xCrsT_#QM!WdMXzdfB%UEhWOL9U zze$*k+_Y(#=9Su)rR7IT`ZdPy0zi9Fwds*!E=MmcC&HrLMRhf@SIIE&PC8@qV%=%X zR_T+BA_H@LLY~F@lU##4K%6CZYcnw@s!6xwM3kr(lX^%i&~Ys}-KQIK>u(JOMd3O{ zq4)n}IlYZrI?-y)XPA(aio8lH2}|YUjar>fn}$D&lb&xq?%^-&9AY;l&UCvwgtbkb zK*3%Gx5_b?{rfD{0vWk{)cMY<6Atre(}9nISyWBF(KNHL^jl#&=v0pCV$hxJT|K#H zkH(2MYrVZ3h3K`=B$2S#+Qy14pR9uw9)yG|c9XH%cykH#sXN6-6LI2Ur+u0;o2fN{ zhcnD=y5m+4+K*b-7sf}|WkOX+RRXTcWp|6V^=q*TkFZ%UD%sj-u-pEDx;okG)Z4n6 z$9myh^Gg}4%H{slr^_cF!IM&aXoF+)Wm*_=G|T?S0|t(ve(ps0FUp>Tie3mk$nj*$ z08-%5c)joL=h8p)^RX&}vBaTRrrb0mNrHKH8qTW@+;UPc*(Inj-fVXCFVyAt1c}j_ zEhYRlzoKZsyIsjD7;s{b%Fb3PO%qbpw%=6+8Xc!~mRHp2CS#M~3m<~_x;F6cWo$&& zPvDeUaOfWj?~RKN!*I@Uam&<6!SI>By7Z7Fmuur=76%JUc#hF&V2Zs{ebI<|itM0!tr*Eht%XYw6KQ9jb1a;h|n za_~GVYOar9$tncTCJC}TJ$7N!juH1=ayV>W3?qW~EtP0$xhyw_EvPm`vsKu3`$(d|V$O0)C+!rk#eVeg_PLH>r* z{`V`lNE6@w(~LQVTQKlzWst?O`tqh}&(3QksN-|F`PLfDy~E*NE!{R*Tc=f@u)YIwVBi_!6sw~`mIq`lj}z75=-rXNsTFkN-SB8tXugn z03*$`nnK<-Zn*l*Nlxxf6^&0-cTUAN%<&3#fN2C3m%xIHy{y(V8?{o5dGBX?JC`NGsLaM#wI7mhop^>Q1ZL(Fnv$DTxS(LwAt}L5M`e=GKcpb}=CwEn zuk4Mf(%S>L%qT!?7ZDCnICHZ++5H6maHi;Bmvm1dyX%q}`+h6((2zd&lS-{=u}1^( z9W+n&HoG2sm^-oVynXF$K5{nfR+77<>f#Lb^WSK)Yugrc0upa1m{74H6JLfSD%BPg z*opY|9`5fKha)0em&Lp)zq9MzU$6Y12nGCM84$j79RBt#0kMHlqZ&c(3_U2A6LCT- znK^q4*)!#ux+EHVfm1D>)3Pgz;mFr_96qmkCOHh@yDPuJJaQT19V95d)qY39km}ge z`HQ&z^{PbAEv^*e;vWJ$k}Bej(vf<4{vG`VlpaL{FEa_0@g`B5awAmBu7~s%55(VD zI#7g%(stiUbkL{J!4O3HoUil=-|1+~gX6SlYofseOj;60->;#9M|t`txh}(lhcRk; z^qEvz8FZF!QIj(2e>3=F4BC^l-+V)k*8O!j9K$S@_+brnwvA3Jj z*92ulFWgfJg82IpHo+EZ=T033MLJ_{ z5{?IE3DkJ~m#;_c2jVC1+Et5!f|SyC@U~SNWapb-PRP!VY5v;3|7y}L3($QjjPsbM zJHvq^YDbSO3YhhXG?XSBY-_NiGnvBpq)>XD^ylrtd1qI;Oj~qSwbr%);AFGA9t0Xm zyk-5Ej+va#1>(zneQ{zAX0gQw0$-OfPi!4)ve`IIDGPpBCki~E?D~w!Zi>m@GFpiw zt3)3jm~JwK6Y;vr`qq?T0|}QQSJlIft0gd9YHD;NU$LbgupA5MFQG3^>aam zse7psi(_?@DJdJC$Lkiyz8v)=d@`QIUfpp71YJyQ17G=XQ=ayOzvEhIpVe{7--=xol{?ij=1Ar#4osA?pvY=pKYo!+P5)a40)(sR0sApw?DJba}~`sv)}PEQ$+hdQR1_TU$ng#E8A((rrdz{0Fs!HzS) zf+G{ksk$=5)P?phIY9J0>8)B2!5rR1oUQ|&814s&_>p%7szuYH+YDYuE9kivSFuES z^Zm*EszuIA59%i~Qi1$2pEw^|WI-dmS+D-QF|N%$elNSbG;Sa#n;`^L&}w*JcAlAR z`h9mSFY&jx;}<1A+-U8U={lV}X&h0nRencDr0lF0(7qs|yRmjlN2pRT|8Z7BE%i({O1V zMqx+jDnI0^lc+X*LT(3CC0yvI0Qv=I%1Myb75PPXslLjpo9_sWzDE2{C*Wu#cd~Ui6&w8a$OU>v(C4&yuJPR8~!pb zkg2GD36fhC%S87CY!eM0btXiuR1!qQBt`wQ4=Q~Ff_zkAtK4Fj*8HzJ4dLfGc z7WYo5Sux8m*^yI>2LDj1)2*0Jai@fRZI~a0UaG=Wwp{L%WCA%Vi;bl~@1DKX8hCW5 zQ#4$4KL&I~8^cp{o}C3f(7?MS`?&8pWonGqImuEp$9dM{bNEROod&W-^iK*U%AH*u z1uLL=lTrF#?-|y&MlB}H^(qjEA#%2t$8+`J249B$j-u=q+ha@v6XX-}ID~Q$7d0N= zr-4bSjK&5*WJ_)wGYxSapHQx-X_fS<=o(wPd9VgsNf|P^ZO!^4`nz>MTqA2HfAN#d zJfeGk*d|5ThOWVrezmTiF^?9uu?4tkgX^h+8NJtEfP@l8;0dLv#&?u~jq1>Lu6Smz z?cJ_A5B}_Ip}_V2xvKQHT|$cbJ2?%GA{N<6-yU660*|}$Cy1~@K6;5`a3OdQT?{&0 zQ3eTMvdgd)(Og8F!G7{*cjyxZ-x&$#MxtPbh)5Q8bv=;0-4)ptgWQ_p*H(XH(g?}8 z+_+e2EM+qf_%o9G(F6x?h*UsG#A8y=m|`Tq72E=MB=5R>5^i2?fEd?VdK}0IfN;f5 zR~ujcaWB(*kUv2Qi@lpt1D^Aflfo$MCKyLW)B&$Z*F&Bc?!N19NUjclq-HE3?s@?MnK{vjmjgh;eANE$uss~Ep1Dq5LoB`*mGR@`rT6C<%`ZxeoC06+CFc}G!*s@M zH!oK@Tk$1xal=wRRaJ=(HiRpVJr+`4nN^mu+fcTM3|0Ydk@#iFN}9azc<^c2Rd#^l zYvR|_aI0UI{1Adhrfm&~SkIRoBX?Uf{jn~>x=*2Ko=_=yg71yO)77X~{&TCb#7%mu z5lE}4n&YYTS|h9i45S>dFnPZ+6u&zr+!_A%VJ9@}hYeORR(J9-jn8D`omAAjLV4L! zB)CBy%G!K(U_3{?R3Ey)w^s4lBTMW68SYV>m#OV6;2-ATskwl>Q>2+0&{bfJ+U;LK z2m%277jGe~r>}32`8Ka*WQpffi{rGR|cZ`hi#1 zCcbJm91O6+p4&p*}sD9i~M&b(70&>TDsPzT*Bh!2Z`ip2PCAvad5)8Mc4-tr`vZuInyF z30MjPk`v`Wnkc$2_RqYDz+NyL?0G5d8wRPG)WYV~+~%ps$bM@UQ)nL@9jshe#wn=q zUxVk^FkvparF!ntlTvu)8ewp`)6DCo5PYz@+a~Z~BHU^~9a#@9cwc^hCV744UiYwZ zm7V75F$_nr{&>}6vi`*^Zt5d zw*Si}P~Qwx%7whC+r7Xv!R&XA_Os>NqhpBI0!)d4>!SIQ1oB=7Jj_?~uFFDVQTqMO z@%TD0zsVi{N1kYRGO~XK?pc1gHL|Iu@A||e2Q~>KGMpz_oFW%4-fj3=OE88VxB_|Qpk%w++IF8`bYrwM0X2{^H#$JCZv0h(lnjmqC| zYn~8v9Vgwk+8E%*F4Abjs=Crs6C?v3<^woQPWo}7zVo7mpNy>W(cE>a5qdH6o0*n4 zc&a{27e%=ZyH5@mgKRasjVA_2p8CrubYTArC%^7Z+eods1s?5f0^<3~NxFBLDQ3a% z2Zuy(Mmn_?#^~82*>-ZJmxj-)ZF_(1gkuo5KZFaD@;H4>eMxv`80@}>v2IxvSc@O- z3f6MHO4gn3=AUVq&r$j$({|i)jf{+R_uIeMnm-f`DC8yt^EKH(XsfCyZO24< zcpVCDxXSMXo-;X{+e|EY1`jrUm2;4!PmH~F;x$lejP%k@t}oZ7kcQi?o`jbnFH9!F zzScPP>D_~$MS(u|UR1*#pSrMSA<5`;EA~dHYsLukWTaw}mG|$`uD?6=(r-g2=Zob7 z8GG?alMLyo`AII?EF04qy7CJd|H#!-@8H^kp>c4{RJ5BnpX@W*xf*bjHE?PQ~@z-OVQ&tGhz% zwZUX$KRI%*Q;yKzjYU6apl4OByqd-GzFi6!=yx%_>ybJnNuX_6`DEN{*f|)8HKpMH?0wY z1NIFHw9IQ$_9E)*I#+@tk%U<}-fq9lZr=N{c%}sTLyY<}rYwnn4l7@2XbxTmr5n^b zC3f=GFV;KF3A&s<^y+W4#N;R`6_KXWz(2Phec!%M6mY~%mmVt4`oFB|DOE#$fGN)0 z6+Vac6ivGdIK_eW=c2K<2P~VYzvN(e?KJ(}`KJ3f+|Ux7sqm47G;i8kXWzRIoWXW; zLFIOQjR`p`fe63e3tm3Sf1djN-_Zc~+h|4}B^6EQ4g|7?`EDfZ*MniCuX@j={sXlK z17MaJ#P#+Ly10!{X`clYVHn@`k%eTQuKML{^k>*`?r-;81&M2UWLBVz+WxRn1IGH)>+yIKq+Tk;%l z$MXD)xud@DGpZOCa+JYhqOwy}1-oHdOPEJ3wz&dM{g}$kGLHN5fo}czYWhf7|M@F5 z0sb(tEqvXqdpc~=0S1X`E+2T@#11Nj&|J0QpSHA0TM9E@N1`93EM2E*=xJ{ zsM*Ydyr}MeH}~wKo5dS~DYU&yMrJ1cjqHZct?N@CQl}!3=_zR*-|8(G`%Ub#rriOd zo*E`_;}0vZH?wINIWJtasCP$1KY`oY#lz)?dFTF~RNd*$= zqxOYskhBeIi~%$Y(q}oJg_=>MPml`jv`SesxLX_RcdA~&rLY>DnDyGJNa5m_52w8@ zGH@nzvbs>-8mu<{xr`eg+A-UWhS`12Xprw%DboH*rIX2Ks3|<<8Zb z!oWR^miFCqjLvt zuG$Z4sG@=w^Ki#y(Rcggz}}`8$yNp6&b1 z?l~L$z-qzqkm{KlemRG5c&XNcLPmzi*Ls3p#vu|&tDHBm>^(}klN#~IfSAJs?*YY0pQSj8Nt#@;eD;O0!#?Uqmu@aDG(MME_A?@_3%xogN3 z#YewmTIg}qT?lj=st7?Uh;h#5Lq0Jt=x31HjZL9D0K4m-yQ945p8;2{9~qk}7@wM( zJi8aua?zozX00w?Gh}vp@|d(gf7|g+ID+z^zKPre%p|jo1NlAa|BaQg-WxkF{>w=7Cz z5Ehp;DQbKVV3A!u#x_^K9^)Yzw^>qV1G?N^ni)MpGeXqZF6UwzT+)N|m!DVuIFYZ3 zqF;0~gJcuN@)woc|D;;4V`(Zvf<9i2oieBhHDO54e6eR1rctzbv46`G;)LQ~WH=^9 zXY|)%p@bQQ4+L*ukS-&?h|hz34RhRB=Bk+q(*wy@`6&J2;N1@H!Wjr`3KT+^Mwge< z(!M+y=1N7y9$6ov=ND9fz)1a-n*qc z#czpVe>dMsAj~7{G7Hgep-YA3KdVX=o#w7z{|q#1TS?C}FH%A>zmQ*N`3 zR$qR?^z0)*bN*m&M&?tNhMiS^3pe>c+{pL8Js&G#-6S#oHFtoC7w@<8 zk^1wlMw5N72<805g#5L*>=_z?^>}1y_Aa#i%H2OM*Mm`@`Bj5+$rArKz9FR9raIF| zVLy#W+w!!dS?&&nlfC2MT#tsw8bf-G`%G!#FDr8snTFGkw#EEGzai;Q!zR5NDvf4* zbUsbep%nw>1al6CyB=rU)wc*zk(V@dpJz>H>Vdi*fp=XNF8IXL-YNGCwPPU#W%@*X zv4-jCda!JDqoIl_HxsRcQIm{0vVpB)(d%t-tadgcU`eS0ar}89)P_ZLzo)kszdeQy zuM(JS9QI}qY!Nr<*`RSdw^~V!HIt)fmUUTD^tSntz3VdN=C&7YkLxYrF=;ukp;5r3 zD3{q5@tM6;NX<$-*rUUI1of_Z%%!U!hjx?d{S^Flh_JX@Q^F^6BFJszB#fRxKF*MGFm9T2iWcURxHsZ(ubYr9hc7+*5YJXF7bwV$K}Jq?-Th&-KxAi(rj<; zZ>Nu5wq7D;)59yz!?5UvOF6k}Mtci{y}Af>imIT=@nkW-xl%fjWxpI1Z`MjE16pR4 z^=q9c)n8cUR(;bnYj++f27b*)ggI$7TP(kEG-g1J_^L%!oZEwRPh7$@C35SS!V^Cg zqeJ2AOOJw1oA*U}ZWFz>q3>AR8UrsRnbA-UAHzo{^J!(Qlml0*YVM1|W+F{X`dtyH zi^l+m^KDW+$Lcie9}k;7Yqnl=6SU)2FQJ~iNjQZbvm;7t3~^;L(q9z340h~jp(dvX zUYEZD1b$zc^fp?u&2;S2Ho`=aLG$ zl(l?ub+)#wf%YzW#8cj2d^ub${WjIn;5Z5pR~g+5G_}y!qt{! z{{rYp0`&0k`<_{!WB1Y<6mi!iJdATcl(H+3@3%Y%=2!!050(ZEu!IcW~ww}s#w5%2P)>KTa(k=kStpPe0^cOA}J zb1*agRDt3QnVLXq4@mJOvL+-Fhgxm@$#lv|W#}D~aZ$-rn$%J=9OL>2pDov$Om`{G zp`K6uIDGqNIKLr-F0Z~`pf*w%2GK7S=T*0((!w3+mFjCQEe)EnXdUa6wNagV2?pBF z*io&Gs6LRmb4|H~2o|snk23(4e3-aQ-fWo5IumFPRgYC+aou5;8xm@s3vK>gV9NEW zbTW5^bbf-ww`vRHt`<%eC%q0~Z!GZb`reAd{5S1Bd)A~O0E|3K#^2^9;<{)Odx=+@ z(e*)?TDJAY*Ota;%kWSGFGvuwZ9I?id~c7ZlsIopD7xXn>i@e$>kjKFlh&57JuxRL zR5I6T@qzwMXE7w5zNB`;d+*mwzCO@gXy(1xFthSnF?JLZvdB7{=CWfNMy$TTUhs-P zSemo=K4I7!$?N2%pJOe1J--MQOGBfls@W789knsQq-@`QQ1FH6J9+e*Z1D_P9wq3J z26sh>oTz}N+*27(1Io0oUfz>fPAu;VGVxm}J+}pC( zD-J`k;;~H*wM(lQ@ZNSEI;Nt-r+RN+AciBw zxr{8C!HE#V5qyd93%`>=&$(eHN$*URw1i2qX-PhLr)(8) z2qS50`J2JcMPT-FCys4!3H&TOiuEr*eD>^9FH96k ztt0o13=b0v-%`~oTa`;)e_&q)9TPH3IHWG%ZpNF&xS8&W%;yKr@ijb&0{lB#kFzTu z6PL$~dI$dC{f6pl+EhcHFZ0s%OG0Oz`FTCT+~*p&>KFKio8X2--zIWu6-) z>w5i-F-(~n{lpttw0wmMi2aSAOocz!vk*2hvVVRQ-KhM8@z*GJb6@a(a4^SrchYB_ zcHG#kQjm{lkl=W!wXUjdMYQ$cX(-41Sw+Z?zF4U7S)$Skbs-FcB99v_i(a^`oIg&Y zSx>_iF8*Xf_6wycl>R81`cr(<|HtI`oZ5rjyjXwP^8nmqJK@{u>AXK5s?Hp#1N%R2 z-@K&=EoLf2E@A=#crGUU3A{zk7QOFtR%|!!>=AXD_O2weoz5+qo-d^oxlv?mPG#*L z2AR)-*wSI5mVMBZqpbeQsfzPcLpGH`nY_WUvbkc176>6eA$xd%Vj;Y&l;m4$IHe!f(GuXCcIG!UV4 zENQTsQm*AX!~2}UP1D$}4eZ4N7#md z;`nihmttVq4_osx}Y<4oj=nv01HjMECUUM>Ed z3PUBH0Vb~NE_tRx; z2S*6J$i>E}t?3zH@9@N)1%CP5MJz!uj)UPPAB_%>_nVE^KvQ-qka3$5DrLmhN_l$i zTGvoI@CxsvyXiEY%U`+V^|ojshz@Lj=Y3F*+^N=~H-B*I-FNqcU-E^oo+NuNGNGXu ze|<9u7AD3TphaW6O#KoW@Y@so46*M(^_|aPbZc;J*pWux%IeQF#;{e)*bQ#IH7$+m z9v<7XIOsfQbFK(;`rt`jA1)V5|GN|+(SBsT*JxiU_aryhOTnzZ!bt{U0vTHLu@8~E zdZtJpewX*mCtKq;(*gE^b|s=h=vZuE?M(f(%Rt%PaM^2$X*j4bPjJ8we2!_KKlMOP zxS5lA55M|aCAoIU#>E<3eZUq|bzcTslcw;Jp<(CvGrPFn@EsbMsKD4~Su@KxXimdg z3TV-^GVm(Hvvj>80EefMr;H2Hgz0!U9c-T}Wfr#h+$KqbX&+3#Uz3qtp)Uy3FfqwM z-Qj$FEC)Br^Oe9TVM_JCv?3(}4W}2Cirz2om5z8Ol>RTgZb;%0K%P-rE#tXDq4_I%qf1X3iP`fB@ZB3fX0JQYW8TbK#xDra0w}1IZBX;TBH6Y7REgZ1|CR95{UabL|mP&z;QOEk6ayXG4uM5mF& zj!cNJT}YZpvI38v{Q>H75_HiDfCBoX<@Tpq zRL0fKSCw+sQps)l9n4)z>Ml6Sm4l{=ySfLTGkC=Wk{8;9#Va>Ye7i~HH9;&e_o z6?;_(4Vv#%|BD4t&zI3NU3CCPZS6PNO@~HCnm?AbCoSOq!y|UBQXm~0B0_$W1}iWj z*W~}sS`EmjWmhjRnv?|*@}6-JD8%Uj8~=+1fw9nL*T>>>XTOaCA9slkiFQb#p0xEu ziMK(>vkv~`!3n-GiL{9f6`&%8<}a1KV<2i)8K1YNJ%1)=yQ?}UamB+Su2X^f#4#=h zUVnsyAS4T`6|;!qc1RahK=@%-KlL4mGPpfeqoDoBqfVD4mc7vEI;*A8J|vfx)-Je< zdOhn3K7u}GM5PZ7S)*~`QS*VI+G=%Zo#5^WH0q{N$Y;0%oYX?hr0ByYph@W6>DgcN z4jmw!vryU!0|Hmjc4LEg{LWBq!R5_`l1lRX-(M#|8fB$+@t75l=JTBLpN@5(k1zFa z_kQKbx=eYb;B>Nb{sFrnZ2)_^1s5&S4Q9RSjm@|US^~wtBer}Q`7BLd=M7!)^ zW;gA>7I=PAXrGe{ZgA*at?DFQ_`NrlP~`;V)3BD`2AWRDG_Sf;cX5N}}b` z&OG=@JvkTY>AWoZ?_#q)g?npcutu9_%+Mv|D7xtaJu*kbN}SqhvCuG#Tb6(7+#gJJ zG2-P>vvgdVju#bY5**A(7V_)}3VrCW6Yzy}Uuyb^#Q>z>!*ZIu{8!h&v(z)5s}M=a zJxFK)Z{^V7JWLc9DU zc~2l~xR0U>=I@_NqQKskYU49@Kj+kh`J*pg`;K_7F3~&iVd6^KIE{EXkco`U$NvAp zCWWnjK8@hoeQ0<1zgoci`tty*flU<~_=;;~Lg9)(L||?9v&AkyV9M79u;5mJSG*lz zw4+uZ*Sij@DbhgbysMl)oDekzlM?+~+4}m|a!=8=anx@lJqE@tgI2eziWf5g_CX!V#9!T|A{>Gq@!IIfpnvH%InM8Vw>K*u=$m9}XO1mf z4Np^i-F2PkJa|ze)e*eYcDkbc@L_sKn$X>=NP*XRm~Yl>WZA!M@y8`zIM_FM?7l^e^hT%jSg^_=!s-otocN=`^% z>FGU^vL6xTOB;{^=cZRt7f|eaANQ$i`*VYzo(L4LnYqST1k_OX7SIcC*EWi4Fh;Xr zoSE>>fD`Hjk~GaO>n^t`+Ouct}{5zPE9_6a?A;~b0XfWngsU%>j?{{93_icXQ z$COUzW~)Cnc+;cA%?bNLuN`Ar`Xxb(TZcF_YX9^@}dTt1LS&^t7!DWPK zn0IU&3JzeIuDwQnK;;r`+>xIC^_t)6)2AnXyrj2qm&8(KT2lLC15={zPJU9;;Ct_p zyIaSJIpVza;8Ccm%*tf374IvP6w3#>13UG0X4D`X*DPCX{g}o>ry0MPzi|UJT$fKK z(Q!4fi)seAm5c5a2Ya}j(ZQ_XgRk@wsPnonyB_JnT#T(TnB0&5npNbG{|`{j$qBSC zYO;AgmzZkwo1pVU+}yMO%!b_yPe&1{weuF>88Ls7`m4oEvMySpci62kjeAD@^j}>Q zjNEi|>U8&R89fVVR6YKj-pM}pOkawG6ye|=$@0J&Wrg^pjXQlTKvx?QyjA-_LREh2 zDH-e0UjqPQtkVxAFGyeczVS+gaiIMxb|zUGfUFqVe)r48Th$|r%lV!eT6&S$mE1y_rzI}6~~=(XbHm~XGu)^kr*md1L3#O z@eNY(`~EJ8QRn2$Cj=`wPOu4Q**JEa-h%7Wak^=|nuS_5KSS5Er0zD2$M zz?W9TaL38ca6bGhaQ2d@99{+t?x})!tv?Otp&gG5wm_UWwWPT@E$EcAbvZV?l-X~x zV{xJ$jQ@1fv*Fj)?ApVcbL?|#bT@D_4wL4#)I7Qs`)$&gAHHNZ2cH0E^bwwGUlhOgqa?K?!?{Q_C%B`?WPSAe=nRX{3;i7XBgcN_U`!T z;_X;tVN+{)5q#-g5;W#1``)Hz0uV3AXGcZ;hybi4*Ps1bKS;Y%xTGios8MJ zANlK{^tPIvYksGz+wO_lxXwnaB9qCiL-R$O6Hc9-B;z6yWul~BZ}2DcvU>&*@24EQ z80SI$bjSGfp1Ll;U@n=6uqx7{wOg__Hc5Jy_Nt6$IgQEFHDpM=*@C#Fr|%t{KObenWGj({e& z7s&|qLUKJFq`dV8Z`3~FpAdP#_RPu`x)Ba{X#%gnB4?cz4tOARi{@l+#`=zSQ{z_ zGa0B$!Brg2xj{Kp73lI07-T}e#2(iMzc3OlU$yH}@3%irEz&O#6Q&biFLNd`9;XxO?tSv$`Ve(jMtVclZ@tE^hux^~$!asjt@NwwC9M9{?;Avcnyew0XbJNtUTU<9 zCeRToFU2GCg}v7A6d5nE)1Nmftjn-~c&ehM@6d{y&>q@(7x-8K_#C|7CLe-%zMV3_ zMu8y^2ZGh_8jA(4e7j>HXk&m#kqln*_T<$mnZF3cJ=tpyf5ivY6OHWKZ*6uklwVd){dRnXE+*x57xP2ZUfu|H^(>O|sodS0fz{ZP0FE@+K znVM>O*)LD-U~gU$=f*Jci04@_38)5T{WI-nwFww34P7`W3?~%_D=3F zaz)+)$@?tCiSN74B@O(@TXskITk90?Oiu2G4SR8jYc8DppLmvp66Y}fp_hGVxeWZ= zITxRi%vY1sf;H3F8P0|kNDwE$vquBmpUv_gl1RM>8)pahyIW1&=|CyKQDi(hSEQlGNN5iLmOzK#er5Vzk_W zx=cf1g9le`%vB9Rg3A7EpeuWw`kXQ)YFK@MKle4)%RkdPd%xZZ5pI|ogw{u5vh?2j zjNOPIiqU_UA}x!qz|79kYcR&@LKf;g-Ei#df~Hc+`Q_s*gp)2`Q|hhcQ812iQS{wP z2bSpMvKZo_$^fJM8uwP@MeMm0m+SDIMI?4NXnzfLq_@%OZy7!QzU}@M)T55c5_a|n zq{4JH-Rq&^qWAD`a-#gZjO@6ot}zLu7uv8tp{p?i*LuCI`e*AotwwDc$>Y}l8!WsK zxY>Ke2ZgX|3ev=|RoHB1f2|BnWDMHBf`#u7{~SDBAfTnthS1~PlSEG-Y>{vI?6XhR|;K4d!v#Sy7O>R-G_V_VG5b6*&ngtjFp z?V8|`)NY}k$S71Jf2hmA)n$u2e(;gI1~kl5TWMo;3bAm3hHyShW+!Q(|! z*w15u#QF6oX4!l#Em(A@6@*g({~fX>nRNKw+uy#_LE#}#M;FIrhae*xA^%%bD8O47 zZaH@6`hyat zrA3iW6Pcc(MR(Gk5No=>3BR*G(CwvqtE0s2CJDrvuHSdfyaAg}Q&Sym^L}k4=sW!h zQ>dwZ!6P(y4qLLKeOv(BQ)qqyP@6*0?a zz3;yryHv_6XU5Lf2po=1@f}^9UEM%Tyh}}_uhl#^)Fr&Lmrp`bNOv{_Cjzz zz#oR-26Z(o+hG6X6hNOjMd#TVlz*Ge-smbL>KOEB9vWP`RYJk3`eX7P9q4P`;py5v zyPt$?^WNkGe_;IRk2ChwUFO~Pk0$VlJVLhKUXTAF1$owc5;k;03b&1!DyLxWo{Vob zp?J#4W6S>`H4262$<_+0219g8CVAu67iTv)`}PAXDk}|+&``$xB39CUdpwDk zqUOOCX?4Kj4C!#M0uy=}cXYW?`#4p@HKF4OPf<`$FDgS^U2W>|iH)3=vQ`$0f;)Pr zkNNfZO_Jlu`tME@=W_ALs_)<@@&lbqkO8PA_Ky3m)RIK5H=57l(EOR9dW=c+-f=-{ zGYh?pU-ltv-Z;{EUS39w$3*Lad6Txk$VJ}_CTsEWlYXuzb3Lt`Mow+j{Db3o^$6(^ z5}c#d3uKl|)8XYANI;fWafgTQshL|v3A~?}yEjK*?H|7lGAJoNGJK%i?!?2uqQY~7 zr__l&tx_m<$8s<5FKriK;s-K-cj#o)=mE%!o^~ca2pALfiRx z$oI4*5$VYA47_a*QbKdR5^yeE_Zo)fB3rCJxutdl}*==(#;XWI>(64PQ;{wLNykvkA0*O zg&KqPV(kmIhd1{57VG?0G$_vaLpLJ&mRP%MCHY9M(v$^Alq~B*R$ls^jU&qN`0f*N zsH+-^f2m<0{Q9ZsF;%>`IsCGQ>#{C&JKCONMI27kPU=mlgCYh6ZI%>iUX&h3Hg|?r z&L#X&AJ4naH9i?z5x4A@Op;|=@xd)$@4$n0VBVBj!hzaG;}M0i*)O>gY4jR~pOLn; zu)k*T8rz{#;SVbj_Hk64{KwW9>K$|Y7Dw$uo3q>=p*DS!TAUE+w!yQ67eKW-czCjhQ z2Y|MYinI=yk2Olz*^~P=74~`FA?GSa^^|qC$4`u z^O}!(iH=AUhmYJ+O!Be5Sw~zJsgLe(yYCS?$<2Z^e4I0~N<8qJ4F#7;Vm-%AMI3~? z$GnnqA_pCkv{(mN_-4vvR;R)IHn97ArYo-jUwKJI$r^kfoklxZWGQ4~1J+n-yJv2s zO;?w=f9fTdAFCHV$1~72ZOKx%fv2w#W2k(qtQF4Z98J1Q6Kja5kvnQLR@&ee&w70e zIULC8hu)kAScF`4{r;6!#B^IT3;N)dWP2M<#U?e8y!VsQL)}cyamG*C$p*>mo#a2>L6=XNK{A4vIZp0< z4L*#GXI@L>#5L!+buNgsam<|7XWuY%fvqrz^6CV-o<8I6^5Phm!&DzJcR*EGMXn3CHhRfS&ZaDlAG;N zs6e8lMd*5*n8UB+rP89~L7{SxJ1&UaE#cUJqT9h`+ikqe_Y)6l3WAk2oZ-@g9TvT8 z6p>XHj+EvIVqycoXJd-hS@XD%Xxj`_iv2_PJ~_d&gK)I^BusXr^+>LHM5%okh`k~% zl)4dD?6M52@jcBf&|>lV=R<#H6kr46hirG>s@EYGjUIRe#(Y3DSPhh(`a3a=KhSW& zk>gb*blWC!FV)p&^te41^vi!$(8|<&8Od^#6hr zQ;VPul;Lve%|UrTCUSn)Cv&jMMqe_XFzYX^*w5FCK-jI~l|9Fj1ttZ<* z1FRzRS0ebge!dpB#--A$_jD(Ug8!;zF$4ehmN4=9ytdQjct_vzXY^L4;{KetxcoEW zOH#MhpkSe!t}kYjJWD!RNQudFduM4jg@TLg#jsf*A0KCObx<1cz0Xrc-3K8-MQ@!| zZY6oC)6u&Mi=aiN{I=c)t&BNI3g9IW_}eD%c$V@ay6sK9v%$}d@spL7$zo1hoyUVm zs*GP(N{2ePd1{sY6h?ldB}(kwQtG{}e3T&6aaNu6cBuHhEJF| zxH3snGd+Q6X-0C$!TAzq2uFiz;DaOwK1?>?h{GsZCajN6Z55;H(7hOdm2I+ZYWTBe z-u%Z3nfozPOfdsy$GT+sQn%@RQnsls8sRy5&Lk7XL&Q(Ya(OE(R6E|tXtweavJVeYSw>r!$3QhIJL3J$886I3GUTDJ7nNflmq7ZnCCr_=0*fM(n%6ZQq>@V(48B zJ^7hT3aXiTZ05x}q+^|g?Hz^AOWH0|Nym5VU?X|IdBvpd!X&O79 z>(gswcS`gw5d{TzFQe^^H+j|-GMCr?t)mn$Fra)S^oz&#-^kt@S-tfu5vJ%NY1@yc zS98DpA-rps=YPuD)XuAh9^b?D80Pfbm zG{uyNyQjY&6!X|z{U;{Q@f;Us8cKGJWB}jr=>S9I!#-WzY}^zK`#*q7=OdD#EGra{ShFzy$f) zPo-*V*Lm8G^t!KK=>{v^-O5ad;IChDN(g(taNBya`4IC=81rm=t#z!)vo|69;f$MG zyhV$uEL>Xm?gIh@WD|<)`*A~KB6!Hw#uNKRzs-=BlR?edySyqIe1^42^{|gja=Ak- zMGDOIiiAUOF3naC%P(jX;2j3^&&FmCemcNCKj6hH><876dztNo5EE=QF;CYHg z1A&F!D{;@SxT~FS#cB5To>sGi)CXwLD`AntN=zVl_t}CU+v$J_lDtn|?{4vA&d&F1 zB#-8kzaCAL&zibYS^Mr}Vk*E1y>)KRVKQb$m2_}{IyAXFhtfL)#^h-jd^W1l2-=+H zHFhlC^s;bz9OL$GYGn5L$U=f^aP5Gj?1>qJ>(Eu{uid+&{LZ$EeoY_mk($+B{1yA4 z`aMW(fH3QH5vMDHgCCwlGCT1*MQcsfnV&Xw3>SQ30m#@jXB*BUm5@inF(iN`rB3fx zM5j9ZP<2=-x5ns9lPi@3$uLC2$TyI0sa#yhi|b_n7)A;I{qYiYTY8FmlJUk3d0V5d zfP;aVgpcT67a(r~o`AvlX)E-wes#Vl_NU*6X=CpVJ`;bvyKGKz@yFuv;5Fla25sRr zYG^#S4+9`uaxd)*XLvBQh!q#kPt*r(^7*zX%R;Wg_c#T{E)8 z8U1k;$?+_=pDXo5C^eq|j?zBe9~~dOU-LmYf%&xT>2;?%H`gt;gh!qI zlORV&MDi*q3DuW!&LEYfIQbcy*5SDioQKM+$Kdm2cHlA)oRs5!lRu1WsE(7#Wv+bB zH%1#{WIY<4IUqfa}kn54)?e`>Guvh#*VDV!rsrmsk-y$)ecA91HOADaZ1E-iIE}7TDqV14G36|J z4c{QWKXj=AI0sc_V#3ZuLb|o0e*vCC8HL&{IBQSwQ+DwsiMTuUqNH%UzyBL9^6mdj z7push^!3@>u4du>4&||%WAMS}y<2ZceVFX5rjQ3{_!{ZV^$cz=6;gRbYL{Ek=6i`Y zd`2Q(_l-U=#s{ygkr5%-{mnqRe61epB`>mVXv4H)Uwo+>`U*I!Va)bWocJ#*iNF zvLvtSs);^f56FI+#Pc6S?(-iYibx$$S&Gpz5Md~}2YAtYn=U~;*;nJHZNz9i^4_{3 zY6$+J*2}djkc5yj_?`4A-EtkhT^s0Sc}+Zh9%MaFy>E;3nx|RJ~@OpugNanJ7lx$jgO(#QQr<|SiN7p zQ}=XybKA$($p*%Sg2Zxd&V7~*nA0>UpIGT)A%~y8yci2TW*TxaTu0nL5g9mfN8DX} z!an;dLPIBe;=i`b!}Uh1+}bYoac9TB?fM48|BP{125yHER5cBdhmplPSl7wADtzgD z=I^X5JW^H^gcHWVKwM7F{hTLtlWi<9jkSnoQ(B-ktuzfM3B#y%0fkUUb=YO_OFJUc=6aK-vi&;=tPtkuLJ_eOj}p!KU%8F zh!MtpF%=3e2BK53-bN&r z8lG5x4kXFf=(hF+hNR45Hmt~PO~v+strM3tDc*VH@JG8bgNeuLbMyWb8j*_JWS%C_ zyRFb;GNDLYV=5Oz)Ek8t8eIja^6io^CU%jL0T$I*a3zXlp?Osn7)~7SKkRq@?y&2R z)MMY=ZvkOgHnlfZHi3q;6P|VIzCj;4+Nw6PEowPgzA4Kw0nNiDUz#zQ#CFlpuwS~j z;JJ_QhyFw6r3Mm31Y&D*vlgqucKO0M!Zgz-7P{h`a$YV0i?`rnXzc3Bc5l$bSb+R# zlHv8b_p%OIY+i*XT9O^uI5i(J)cB}xvk@;LE^Q2M8ag#Z@<+Jz+_?acEFw7Y!)UJ+ zo~0$Qj?B_Kf=2TNP7iNcBtDKi!aA8iV*6150~v5ekTBGMEFoj_b7>YRcyIF8`VI*xI`S;nK6O zhN$%)AI5!rJMPm^CuwRZ+%ukMJ3fJ>mTD?|`B**b?s#9w`ekEwk;OKBm+NWal}AZ% ztY!tU9ZF)H?rSN#ttH#`rw2O#7S_4^f5!HNp*Dk+AMwPrzZj`Vkv{}iFDQLOH{mM$ zyv>d_zCstK)9KoQO9SgpY?OPc5v~zR${z-Vj3Zq~ocvHCcDvaXb*3mM&ysHsLwEUp zwuip=$sCW+7@*1ur#l6&D}8@FflgI0`U;+)ipv{`L;6YFANvCmUqhU2fuF z4mQw_uAfOIvD9Um z9xhIeV~t>USn6{7f-bQL0S!=bple%T+z&B)+Z!Ll9fr&4ip;4{2zIhiCLs3v3t&gK z(W+&TcK!G?kBEjEQY5(`Jj0_A&{?!DnN$F)P+FHmY1)?%2gZ|y;OH0=vwf*tkuAeE z_gOUYQY?b2PH4FOJ~kjSzL0*aaZ6ebB@fck1^^yPm|$+D!HC^;xLdlF6hveN%0P((IW`WhNDlMDG)TlG&$0VeE#qmP}R+vG566a>5FLRk>Mc zSCKG6X{Wf_^Z_W(-#`p2SP#^jB>gjSMKa27hU;LcmTu^!`P@4B_46?}I<}%sGLt)y zl{p897$s}NHTe#ReKe%=>*Pg;9b|6KC_fI8%>@1(90n><2EnFr&$7qke}mlAE{~TR@qDIz;XxH+MS#>9JMs>xsA1d>&!vI_8{Ib)CbOwdgvbQa}3j z91;?s%(4P+k6?6l=IbPv%}Hj|$^anfCJD#-#sd5)HK_!wiRhT zi+g7u?7iKK6YAL=|5%mcE`X*Z#&8agyW_ty#!rpGkAoD8q_;tZrnbg``_25^&rdd* zjR8X5-rUD%<)kk zBg?5rKc;}7G|W&u{xKDpEdctXmARG|WoA@z+Q9osz<2EG($Lv)UiU}h}a(_YHX z&A$D{3yd!cGB*%VxfhRrAy% zOyB<2A}xcKe!HurKK^`E77=}{P{+kO6jh-mwY-j9-*kSl*)MYYa^Yaz@1W1t0D5se zZs2)2J&;^>zkFP;@6zQkP9#htF-JW`{(1pr@RPl4&+lian-_e0P^Gniy2q*MaKb!_n(=o5WyHZJ}dn09iuQl>Jtf}y;rSm)31eje1J~8Y@ z(HbMm4zw9&Fxz#G=irf|HqT~$&#d^x*WR44s^p{Eotw+|r^O;s4F@+rtQn+Qi)(K} zK{e?3aA5lDn2!>(MdWKG9d2NDA&+Qpdv+<9R&>;_I{yUC$(5T;Kla?QSCYdvqJ}(5 ze!YDHn-Mm#`tr7S4e3{w{QW#QEG$>2S7cK@bXo1OK<}L#f*2X!(bN#%si2$}aR-Na zY@#~0XVdNFzN2UN43Xy9tX0>}-h4>|Wv*r>4v#cDNC4Zw9W2g*R3!dR+LKQe$F(tt7`+&0n99rU z*`uwYFc?$ju7}wl3rEA&gH8bwas{oFFGDOXxuR+#jnRN7tBk78rv;+VsG&eWgZP_YCucAT{@LQCby&%UQ`$2XWfVlybbSOVQKP>Z+~2pOWXSlW?k<7+>w)i1MC0dNfO)Ca8+!cs^yVF z6a{-$J+eT1Fl3~xtlSj5Io4VZPxs;FS0mp-9rkiv-iT`H%X-`kOL3l77ayBt>}y=H zkShuB5x3Kb!pEoi{_PS62a?M1@(t&7Kltq@6Xax1U60dL$FmTkgIPj_-BVxyE;7-EDkIf#=vd99-36$RSMfHJM?g`>_4ul0n@ zOqJsh(s|?6*$qU`mpccQ9c0^>EBXAeuYbwrOj)S#U z=;5bNIvuujN=G}5it4r7q}-(VdLUO~uDYTF((s6Y3n;iLpWYYWWy*pV`_$A!?sv|5 zh@7g9PGWaM2q81PRR%<;tGv3G_03{7Hdrn*#*R|$-QRjT=!71y#aq=Kw4K*^?_801 zUYywWv9srktdc*SF0TuJ`vAi)*utA)W9o`yA}r&L549#bR@B)q;p)~pOr-QgHX{4rHbarKefby{N>-NJYmkw={tXZSXt&&xCLF=SL)uS;0Kq^=mN{ZPD2-M6 z;GUTbaN;khd?vZF%?9O}#@lS%0y}^Ojy2z1+mw_u?a2p;Ukvud6hI4(0+j;Rrr-R6 zDXS#Zo5;!^#43s?O(g|F!t|jb=7Z||yd&zV;G=!ZZdWm{t4EnGG#mMwg^2R};*7#F z_>S7jjTekOMFMhkHucdgpViIEe3Qo(_~C%=~U?T(QQUq^_w;H?w&ThFAHW{VYVZUscKf5O96XJ`wj-2I!wmdtm|0Q-A znv9Mk+Q6fMvOeXlDXE_KFZ%tagN&y>rHNojk@b=+B?-o!tp%Es#IE`5Xkswqd#31sxw{2 z4>wge&sQdbFh^#EpS8x zV;Xyg*-kik=^7Uq+Iv$VquBG8Ki-p38?lcx1Zv4B*$4xCW3|2C9sl{5 zi(%}91}mA_a1ywb`=?AUpaTLbsg1D1kaH62!PuvPSiE*gG1i&G!ggntEz=0bkPlCN z+MpqE6Cr`q@s%`5X|<8%Y7@%UIR9Flbl+i=Gd#_7jTM*Dwb9b)+`yiO=qh@EVEg9V zw(U6kntn{CCY|5N7y)Qiil(B#Hor!P^Sm-sz?$BsZGw`tNv$$V%FWGP=})fh}aa~fTR!l^%%@l?7eM3T7IIFhi|@)6R+*7 zXj5$}lLKJZwWt_H1Kkx0*?z2WDE!C;B!Ld+VM5iec+O2iO%_F#3^h&g51e^N_b)x=Yk z#FYTb4(JbVBRA}OvD~3iB>5%ilcMHxlOHVH;6NAOzku0)e%(=LXd{06*MyK0=`4eJ zH915+qnHi)LX-Y8UN}r8ZzLK`$|9fLh~sOw*O?T+n3x z#S6fJFlq9g;|ss)!++8)2^;-!NR z2p!lCvinTT*nDA`z6%4?F)Uq5Ko8Ojk<)n$_-3K z`DCQrw(H`Qq<<_0X8m zl;Kw&l@)lva!x7ouVcr{%-nsiC^@W8Cf^n0lGdg@aUQB_iZ$Jstg~tvfgeArbq)l2 z<1DnZljW~mo%)Kixig9u4-hZL)59r}KtHlfM10u_;D2ZV*Fo%~eyh5cI!^Qadx_@G zvBSP5z$PttWqR4(7O~!DEKHoF^dmRPajvQ)aM;ARF&^TwKB;j0NTMhysij|Uem-w) zj9?tdUHJEym%pr%FD}2bP;Dj>+Us@GA94Jc=6U@e?FYJ{uKg1;C20q=H zu}jsTMvK)w2P_rdoIU-D^P|)K{Y5C>Lv|m+ADE1QK#n|D9aOYx2H;!J8U=a$C_PRJ zWL&Q?+^$ySU^5YB`y0vsk%eDfkwNABMHX!iX>AF3m}D88r|MDDP#94!{^_FbbLyEn zpx75b-HFafe18|6ZqIb*?=d_QKK(*115mr47kS#1Uhjrh*-dJ+14p34IX(Dig^@5k z&x$0XhvoV9>y$1pucX+QFa^|1>#72mIw*opUcmS6u|BZFGwfaFI_}@4#Y6y&=Y|I} zsVFg|29X5Tr~}z10~}h)Hk$jnEnWJ0e#)(epd46TAsxt>;=Cp`sq$$^4Kc8+-uzN` zAK5cSYF(23r0q&5+GyUsL>nGX*lmOAW&mM1B(ww1oqN5(L4>m%NCiBFS`FfKIqi^8 z2i~1~dIn@UV2fzkk9EmnG8;9-IK+$OIs@nAy9%$XvMY;ds*9LXnC-%ZP+%b3Bb!4E z(p?S_K%YMX-X8cCHhQO+9Y`mK6pqFw{iE?5P4Z{L^ZkLzW~{9`d-?zA?THC$y2IWD zof6>H=0JO+JNBlS%+p0utSk`$sQubM#&AiE!qUXzQqZogUEqfpl>z5Y<0^t-9i1YV zfy97L8@8OJ>JA{38u$UM)pvIv&B+7QR(MkF;V5*w(~mwYjmFcx1DBK`a|VSbiFlQr zydK&f#Qza&TRA3V%|OSd%{|>vl*c@c2GmDj;@$wtmOT?jYm5MlGG^)qtHGpIDVz<4 zhZ;ttZkoM-O(ZHp{v*q`;YogFH&4YZV|J|-oaG;q`y^|U%e9pGM7gB{&-Yi7aB>`L%lgC(!S9TPvV69YAqTLTKINfY7c`9VFh4uR`31 zYC8aF3A~#Ca2$Je*UjdGC`FSKy>OhobLtV`Q317STC+erBnQQ%4M zD1ZvjO=)&d*p;!C13MmGbe|NUj{SgR`5g-nsautlvBrPUMV9t~)?{VK?xD*AE=|Sa zfvf%Q+}k(5F z9mmlTsS#AYBjLBpezLQ@wsnccg0(w7)oE7;Hp9zXwOgaT{9B@%w8GCloC5?Tvh!bv zl()H4)H_30x_SI`>BKIA6)5@JN=5~oM(Hm1-$G{t!Cw0lIz*3X;~tA;gi);bcpTw} zDgV8u7EfKbb=I&OiDI!InCuWCywxyt#IjDi|7g zDyPIAsN6PvQhxf^Pinex+4DJJ;TO;-;|t@XXH0j1gsgxE)=&;vHO3ziVG*dMkyV{E`reTXQqb3Yu?4YnF?C%>yOL6><_L)tE%)3X4 z(^r+2<3fjy7~5efjMwiUxF;(^=aWouomL>Zi2W&~vEvcaO9BVYdl_g^ET5x%W8Vtz za~cI!rp9yuokwlZ5;veCaCLOukehrexI293gQceg8D zszoW2>lShuvzMA1W#!I}OC(^nk4G!yk5?T9ylPJ04zzpBiZ7CXOoH$U6zxn1%x0O9 zlaHT1qJ?Z<;UKBODh3Wb?yV)=RIB-7YEmQ}Tn!xPxMXGh+G|Z9AU%O4G==F-gp^(V zsvq(iO~Cr;ppKxk;#kZ-nBY_lqU1Dat9q?e2%Y~MzU)NOs9Xr;8+Hr7gdeH4AJ3$l zECwI09yDVoLDA7FePBJ^G<=-YYIcNC0Jo9ZKyESmN=t*RTN5^z+zKvo#=c`u*=Nm^jHzBF`X?4#>>iKVbxn?GY&5=Fpj91h_ zQ3$ORK4%BXd4DuGj;R0E@Gz%PI1=uWE4$Z17I;PT=H|2`N3~Oa`g?{Sx~zF3`~GSf z2w_o0n)Zmoo!iT1bq5R;{rnMF=54=P(hF_!M@3N7YD?RMhp*s2i83Pd=KXj0Y{jB-kBeZ5a$5)k4tk885 zf3a75ZZM9Co8Yc&rfjiHm>8@GoOgV){A#Zq5;^YauBNkH6iB$huWI5HAHA&rb&ujl zjOe|AUbWyLn-X+p&*0-NxgGuoo!h<@>IT_<%CLplCc2!=&wFZ>Lee<6$w&_B8f;5F z8FV?(56F{cC}RCBb@fBUFQmZiYXLY{PYV|41;A5&QL%}{S}+Y!{khlqs>+V6g~Q>c z8BUHu(T}5`Aa%Y;&L;-NOu`ebW#`9KL-i+=AbJzdr1x(m(|+q| zEwfO1VKRI5yJ$sq=V-90gu2S+Cf_YLEK`Y=^>?{;+{IAKR*;X=`8knoD(pKy(|Ho9 z*IA%)*om0KLi{<$AGMOR+}qmM@A+)@r)l`n{B_ma4;FMKuDVWJ3-IaX?3FL~az`@! zc?+?w^O%o5cq9AO0�!!vE!}e0QKJyZWS@ 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 Bf!_cC diff --git a/docs/ui-review/baseline/1440x900.png b/docs/ui-review/baseline/1440x900.png deleted file mode 100644 index cf3e1b2a6e56d5013d53649677e85f4aba11712d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167357 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

D@!M+nnFChNHo+xTmJ-~P-$a}EIWLJok@*V^ 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 z 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Œ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
?kX(h!4MsZ^p&IVIMy- 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
  • $1G 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

    gZs040W}lN;kA$_hR-s7e!&~ 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 diff --git a/docs/ui-review/e2e-01/1280x800/05-follow-up-active.png b/docs/ui-review/e2e-01/1280x800/05-follow-up-active.png deleted file mode 100644 index 4b520e4f476bd2c97f54c9234223169817066b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85624 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 diff --git a/docs/ui-review/e2e-01/1440x900/01-create-agent.png b/docs/ui-review/e2e-01/1440x900/01-create-agent.png deleted file mode 100644 index 2876880d0fd42d94d8df71fc616bf5cd8f8c39f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96157 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 #y&ur$UY0CAd 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 diff --git a/docs/ui-review/e2e-01/1440x900/03-first-turn-active.png b/docs/ui-review/e2e-01/1440x900/03-first-turn-active.png deleted file mode 100644 index 92010b51d599c165d7c87b426a756d56848b24ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76830 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 diff --git a/docs/ui-review/e2e-01/1440x900/03-first-turn-completed.png b/docs/ui-review/e2e-01/1440x900/03-first-turn-completed.png deleted file mode 100644 index f17b4ee3d25d459a95a70ed308a45a471d4710b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78275 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 diff --git a/docs/ui-review/e2e-01/1440x900/05-follow-up-active.png b/docs/ui-review/e2e-01/1440x900/05-follow-up-active.png deleted file mode 100644 index e81434403a70752460f932532cded2dd5040d2e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88092 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%0D&2yc)U%u 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

    dvFgV#N@ZP`ReI*!N8>q(Pc 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�VU}W0Kd@pCP|L`$NeVQ}t>->pXj}>E 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 diff --git a/docs/ui-review/e2e-01/1280x800/05-follow-up-completed.png b/docs/ui-review/e2e-01/1280x800/05-follow-up-completed.png deleted file mode 100644 index b5df9ade757d1065ab5a22dc4da521d8ab1ce0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87448 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�oi#0L)oyX2r6{DbnW=eZm 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�*T`f#%t^u_Um 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 diff --git a/docs/ui-review/e2e-01/1280x800/07-agent-stopped.png b/docs/ui-review/e2e-01/1280x800/07-agent-stopped.png deleted file mode 100644 index f464fc7e3099187e44b64186b71c5a175b4bcf7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86147 zcmX_nby$?m_csP2Afljxq>6NRgNl@tbh99_ba#q^h?I0JAuY8_H@kGRNG{#YvP&<^ z!t(k&&-eHKbKmEh`soS75znR6mPswt-`B~d zK{)}zBLe03Z*_b#k&8rcK-PGoL)O=RcV51HqZC?T4H>^p|Ay2Pt=CdJHElmtx?SqO z=eLK&&}~adH)Q)yl}_0^l$oZW$Z88c3Bm;i9Vvf>rSl!Lyu1-j4AZsU#Rtch4S;-D zLjz9&mbO>J!tPRh1|=CFs~om@{^5Xt;LUf+TmKRSjf5`Rq@%{Gy zC|8v?1o!?WKO5h^&G%p90>z`x|8-wU`AqQOzs82Ucg_E!8kt>{Ling3WEEBUo8_%9 zlxJ@f{qGA`D)nc2O5XiXZViHZ#ZM`4I?+=9>wjJ5a%+YMV;1>&aIf{{Ym5JS>`=9l zwYSAWgGS1}F(54YT&Vc}$0N@~&z(x)%kxKX4L3e{oK}{b-bS6j`_%n^OsG;3w@ViR z^oofL7UA<}b0akkh!nDOa!-?*Dw^mA{~I;6Xr5pp==9)cfMJ%+u9t$fxO1mDX_qOB z#k05U|2L8@;#MQ*be}qiUdy&vC(!MlN>SZnUB%au(>b-hCto#5{wE=s{Z|A&slgSP z0~Kifuzg6CGcV0M+F=iB53Zr$3@of1&QJaP|9+~{N3fuKSyzUt2dbx7qUw6h^w7O` zon6ixu^Pp%k&nJgCVzuaev=NDklo4HA6q;D6qVnXs$eG;3}!$)tlZ<(P#KHZTql)i`tR6rPnUyx8qJy zDDl6Gc`EOq;*no!wz0Lk*17G@E&@_>rt@zzE1R;do7*EL5fvo|QU$xDH0P2x)u>1k zJH^CYmU4X9Ky7fi9v^x(^Ju&SnJp_!I2myVopa6i^$m=~oO0?ZDgDCg;Wk^QBj`ZV z#w4(dThdHk|MjWDYMFRe-JKOX-cDo1}1}%c?R~)JAaNaI%?Y^*bIZx zmU}AfX$GwGD5GEZA1qQtNqZkG$p6D}dud^zvWi2u+0sU@et!9e7MzC%EIsNiNbe48 zlOlFHJ9}T~9k0|MlaK8rOac8FXmgRD&Nj3kobDYJsULTVI8`a%O?}G1=b|^B`fd8N zQK9%>$09nB?H+SGVqb|IqUUtb9}DqI2+*5UrNETkc(8@l~+?nNFG?D$UJ$MuM;2z6| z$z?0eKSM(;Rk`4ngc&uz{w&jt*R^%Kye2Cu_kPm;jI#O+t*&NN$?hdsP+JEMdBF~L zQ_})`ZJL@Mk}%d59XWS zC^m6N5yb3ly2-aP*h$cMoFWNMe z;7RDx+94x#b{ll!37Z;y7|Tm0ML3+&8^=IM}m-c_IDx;d=OZYmQYK_g2V z@3SV89}Aw1PvXRDc^I4jWBtq9e7EDn*P>jkKkUnol#$A=|T*< z1q2?eAfJuJA+Eh6X7ASI?lmLNe-8=7UCx_bcyZm%r+J{C&9T3XS%fv$cIkwEL^7v* zV9I0VG7(@!U4BTT>4A=vkgQYL2xD>eKxu!c+m!+#^IK>06UQeiPX;q+GSc5g#%y!F zkn&&43;=cyhHbETk-=rv9B621O-u=g5$zj$?gDwkpeg%0VPUHGui|8awi>@lF0-bF z6c7*~NKT$E#mHP~q^5n{b2eE9o&A*DUw!?k4Sz{@^gGpH7>-%~*<%`11Fw$7sueRS8Q7PUeVX7p5h!+Q3F#1dcZmE=rlFbqju?0)%-zc_pwX^CzPdHV&@ z)qGbj2Y)tGlI5a-X?vIB^7}WD9)olhX5H?SyCK^ylKf$o681csFYr;zkIB-E@o{AB zLD{mO?erCJdefo*>?`X7^4iu?HoMx>JtDQuswv))wCbIn(P{Khzh2q|?^ke%<`b)8 zC&TOWdCnT0jUun-+kj-4-6rq`?|D{#C6md>@ zH%LHE;n@3M_jAMqTlI_kXM7v0LWzHFG{1awe}CVhXYCf1(@V!WZ12APHtzikS3!Dq za;MzCo(t@89%NV-SLdK_U5DouO;ddHsVefKbOX@o*gvzH?8o*xr7o+c?vAa8lL57i z4F6}=WsG9*>DtUL@hy-FX)V`Lzx)j*4yKxvkbrcQkkZUN>K#w@(W1=8!HSD}K7^Mh z)Q&6%p67Wvy7b{Ci38rosRM3IH`--BNR{l zv#?P!eCM5syxZZmYZp+o?BxpPHpgmV4zyLf=5nl%G5e7^&io*Nm^p_V=Wu?o9ONdM z#S8W!y< z#86}SoI=zt!s0*ao^OpV;~Z5&dqr2PVAA4D{3aiguy!HAmpM=Ep6Xm=jkaNTYF#bV zg4vtWySlxYuS%BnxT97c$7tn#+_*XKkkto*%(y-E?1M*4L$%!7R{X+QN61+9bKIAK zkhwy@mOSjRgHSNBv#Uo+m&^lx9A|Bn*e(886svNc0EZQMqPL=t?0uHW?qNhN_|wE5%~FzQNyBTOesh4mXt@L%gU9>dPoYVhC@2qQ5sFblZ(e z-W+ilN&Hx%CF|ksHG`VW-@mzwfVJF5^2neH2R0 zAy=brt6{j**5m5DQy0Tw65m_OtA%B-o43s?p^+G=geuJ0WbK4Ur()@O(8ccMm#Zs= zW*TkI<2V=m>Vzg*ncW#gQS(Z>*QjH`emrlX=V&H`QDR?Paq}0KfH6 z1C9_Jrp3M+`h%u!nmW}tRBL1p9a4uJj&(d?P>XalJgtAkG{-^|^Gk3gZ?TWhJmFdus z31&5wXfn)ST{qLu`jN=T7WeZ1n(c@{hb?g;!7B&VRAgPF4(!)yeO$Q(7gQ&>akL4>mR*)WfYOg_4m$Sh+TEF7c4oj?Q0_nsHm;4 zubf5hS03@zs7Pe#<=d?unKXm8n-~9j(UJJS;ZD0Sg5k5|L-4#A-rDfq%U4`|V?L1E zDa<~`_c-cl<04<)2c=OfB;mAcKAeOT#!xE4l}KhX4L8QQ|C+h0=`- z@5m-$rG_ch4bB^gi9PVcG zv{HsK!?Wwn*OZ3jgJ=L%`Wg|r3$V4XqvVH0WLXTL7tf*yZ!x7^vm4%w&FAFsIfeiD zA%GrMJdkACGCDs5#mUTQQF78C{hGtnrfv%;)#1ANQ9#ol!9c z`hJn%iM_Oy3N3?!4Op$xa_F$J4L6tP!4XsxruqFE#u)FpbNUb*YMps&4QM&N2b00( zJZQn%>dM>6oFt}bGCd4&`4$aCs_tF`0Y<4B^P~CwV1sKdBZXc?K-3T57n-uu#cl2H~*_Ws)Bb;_`}WZE(Oo?TPHmjW%mH)3yuR zlk`SgQogz!1&=H#P&@69!4q=n9sI|~*vfw0?$ zy2y5Us@a`G$C1%mBMpp;Pn~D81uQoOM}xB$gZ=Gn>aS|Y^(V%)maldI9(0&8mKy_a z`++@#%t$3N{Ev!KNwuB~ZedU>BBm^Q{_+Zfs~^T*3^lNv7p_2tFEBNuMsuVF7-P-B zE30CgvVt7d89ZVW^t1qS>TjAF<5EYZ?lj+syAV(2bL>RkMS&R`GHaq&c)t4`x?t|s zZy;x@_kG{e_lZi`Z6P%~;8X0&f!3K3>kLBfy;rmRooik9`JWf_zb8w173u;(3>d^r}Kksa9ul;ci2yV{rti^8%HY(O% z`4zm`ToZLazuIYD))UKa<4Xm{>h#I!?-RH>{03`&@W* zG{JljSM^O;_kuuu$U`fNl`u>q#>t;~EatG2_4T*exZ}bq71G{&>44UYh2?BveCzSq zkI9f$H~|rpay!oyuVL*~P>$jK_4zqzLfWZA zc@flB1(qaa-x$DFCnX_$8-*utaU(ZiDAE;!=1SmMBSvO@| zyR==LRXsG;Dy$GH1`J-*C0w6E^or8At>LJ$gIxr|*Pk^u$!ICFaDLhUU^~{-H5nZ2 z-Nb#J!OTaww(Rh!-;cih#dld*tj5(-i% z-b>3KIoz$u4+;-mWx7*v5Fr=Y)!CJwmh=1f8we_(!O~q{-_)c&sn}Vg;!$k24`TRn z2Zh}*JvmSIqaD=+MR>>|p8cy5Hd_})_xn-raOR`;#|_|1?y_ki-!CV>3TE@ee&o+< z4;rVnn8XGQNAIpSf4Oe);HAFvqR(gYi*<;fRd8eb<&IPS>(X`FX*7rZ?x*E6`h91e zdx9)&KC`kwm81G(*#jP`-eG{}D6-(C*3jn`_}5-uv-AFI?Jr!A*y+w|oQget3bHn$ zW;^EiH)lT^*z#OXH`}=5i2n7*%_llObKGFhNqS|9*ca~S(d{Y22keBIX|tp@agj;B z7v5q4Jd1QCv45kT+tW8tJQRnzwp_pGu03BLG~eX0eSg73LNwIIun%9?Yif)|xDxNC z(qqGxk0X1(In8B~GPatAn9cV+rA9`z-Afj4`BThFrE{1ow>hqhXY#g#VO-Nmw4G+nyabV51B;1jydl4VG(j@_MS!A)yZ zuO}KRG7^@vO)vFmC<`Y`_A$xB_gibD>k((K(-)zorvMgwa$9-XtqCo4?TbFPmL@C%4JQZ{H153%rcEEd`La=1&n z%_6Vdv(|n{u+>u9F3ubH6z}=Q^Ou);OyG%1ie<@c1G^l*ojPw+JBMG%+3~a&7 z$VF73xdr6x8FPMj{HJf3NA-Gpfpr8Z_w%%~F9+UuF_<2_6-k`6TB4$&ykg$*4{?=qd?JLNMayvm42(geyu!9&F64P z^Ef&?S>JL!j+{PKl+$QY}RZsF)^I3ZRf6E$bn|v%L^WL3FNFUkS@l*?1 z_H*)bew*bnbM^T3=63SaqP+cgmcN{&eO3_3M1er5Gph$R5L7&q^q@yQBfY?2aLjqY z@2M%E^Q_W$tI2U{;?&>n?nBBm$n=CHucn?UWi91CkKV@uef_KM*v?zfccyx7_@-Ya z>qM?i@9jg*o9!V%WBkXE(U0{v?zJ0t(kgB+`GVxMz%Q7`--bmW-qOgiUKFd-`qgvc8cy%(&j(cA0x3gf;fTi_(dG z1bVLFrX5Nj0$wutwMsbr9f7(I?1564Arm&^n2q*y=Bl$8ThHYb)Y`j=0C-FQL^@?> ze({+@^^HlJ##?#b;FB0dio#fkyTxRJDE{O~@#b%wu-#iC8Vq9sh;3)(EK!#X_KQAs zCN^z8!EqP9c0DI`k)rq|wj`$<3l=-vm6R>uC=g@_#HR;P_;bbDJ>gguCx<^oSV3^3 zRJg%W6mB&xIwN|43_*huegQ3;5RIK6+*+s@xTlw;6(E2jLnf6BLF>(o;!xT^4RJq5V#m z#yXD|%k-`iG!au&KbzGXy!IA^bHEb0$Mn|DW93u2jyKCcxVObt^S?dd3%0WdLwK@Z z92nf4vct9E2i)8&?5jx?l;>a-!up@l0^bbpA(*+?r}I($P`VaGZWn{V)0N8j(AzeI zaJY%(bweW<)m?gXzy>Z8(=}P_O0DjEd6I1+VyG2#if{@3pm};WZ%ptRG>MVLSE4Xy zj3K8-=NktYE+}v$0}ud?pJoX5IVyiH$R!)KEbWM}iQqA63G9s~g2J^DOYbnsv~EB+ zPoiTAc1oiw2JCbZec!qK+p>wTLi|q0hKIG=OuvCY;P5f5DZ|=5r^|#@I>epe4NT^LkTz{nnZ28&$kF zQ8c1!Yq^@rev`rIi-V83P_C<|4|aLtd56|Q_(w)1&X8HM6zj=#m=GLnQ_Cp-rRT^h zFC+9?CF1E#rQ;-d3g|g{nEpH#yR|ztI%>LTK{Z({YfOhRjEH2%fPyeg_ki>Rf=7;xz6v+ztI!V)MA)qNMNC*}jT^kZ|HK^)=)v`pY*e#xy2U;SO_tatS zs+7LB5}$R010_dJS532E>#`w>M~rSr>A$C4bA@ttw-S5R#kc8f)3QR|K~%VRWl58E1i*J z)k8avKwYbQXA-Q%4*}{8NkAL3m5ZJSN8GYT6(4uM2LXpoEL?wDVL}&ay=(8)WlCs` z9MPhOn7oR@#6xUqb8;pVRgAdQzHi47(`<;ghtC8#R@FN=m-NdvH;D;rb5lP@jmdYJ z+w`R^G6gO9ffdto_=G*?a}tOxvZw^=g+*>|c^uISzvNm+lzY7A`?W5$CGAN}BhI|j zse$tW#vDDedbXS9E9LRs!)vhDwD`xq!rkY>4IS#xVnQW{HX)nJH zVgy+s$+Jx3HBk)g1nn^>7~tBc4^EG6!=O7>ANL8wUe}`<#A~)6&>8jA z(Y~iLg;-$Am?|b1-n`3lluo6j7Rr&IBgM+5JpG#I=FG-(U39u&9Pp)qh-pobCv~r zo(ck0;-CYt-nM3|dRax&PQ4x3;?$4AdcI;UwzM`u?*}ZP6SvZmb)Xu4&l+>x=lt2+ zMsCoIF0?AZ3HOujiO+8y?brZ7F0vAi^hBl_5N^4O4eL*4;WVf9tQ^J6krRVH-B)8!Rf)Qg zccxdp%lw5`Ee9pWBxxE9W28XE0Qa(({bRZ(bX;|kbv)3AF~K8b(Icj+=`_?X%OAc6 z%piMA0mu=g!D!Xb5tRRSc&H$iI>JeL5z3QFElXpFH%kY-0ZDXJ5ATRuU8TKknx7|q z^f16y=1Us?TlW2P^vEH%%TtA3g>N{w*Io&x#?>Ty*N*$I8IFcfDad8h+zDOB*=HWb zLLNgY33{DJ-!o-;Ayfd3wAds$0s?1+VWQ(vnHxtmv<=;QCXyJektK1~3vwCGlElPE zFzoh>o4oz_-t+Xu5aZ08AT9LbaGOb2=Z|?D$Gd3h3%*-!R%C%M{tpXSA7q59-T!bX zgC7COZV1P>-n96n_BDnCW3|@m)H+lN@){?vF^jTpSKS)2H^^K?2LB^8Z*Nbp7wm3D zMVT%oVkgWG0~hRDoQob^zCijWrUd%ll#eR#+?*eb)zJoD1h21_bIeJ;vRKLwNtd0e z@xB3R1P8zL-us+q+6U^DlG1OoS;w-tLfc z#UJ%gvC={Ypr-R~pMc~+8!-C&=R(ZGShowFUnO1nFUiCiuOaVdRf8{KBeK|V=*gV< z-bD!{L^4EA`F$|dgCRQm`I;*D)=7@N@rp3el;zAQLt(y79Oc3Lht4N;MrnQX6LYc9 z_S3x+Az8l9j7%OJ+{kOC58l$6k|tk$`0F;w zr>S1tbS7^;Z95F_(-Jfj1UMUM8|6*D<`50BQGs>N1mN*2r#pv-Z+NGcs8aD>is9?W zojc(!&e=!igIj2rQ4{lgO6`Y+*0Z;cr=VL0&vhkmH)iP*x;}&NN~$K-q57eIt=X`_ zbxlMC+*J9aBV-c&|9BA$vp8|f(A~}u|u{GYFQ26BEP!us8D!k=deCZ z6+b`er97|IV;G&DOZ(1>KbRt1H62!0?rM|B6z@wmw6161O*;0GKJvGP;JWK>-K}-mht7o7e3K>e}E@qXNh`-W@f-pFhB{ zcfO1QI6)vS7iw2Sw3G*osj-ImIcl767;oSJlmRV%oGYp@w+Oh{gHa`9^TWX6nb~Hx zCeEpnE~T0pjoT1PR24|b1`9*_pz-=6l1!P6SAgmDoyLfi>(nJoY189&p`kn3`8UVC zwiDcaUf*C&EmYWV*LUbg%~*?=+E_vcZxMhSd7)RIMwg`jY6bk~OF4~f3GCcHWU=Og zVXN3j#o+{x>Ce33ht1^YT(0H3ZIQj%>c@uWqciq2YpZ7HK0C1?z8^6WF(`qff?cs~ zV{hLgMtAnOSXtviKS#WqXMD1f6elOUZ}pL1p$8OWm(L~vs1J0nsgoYjwzf3d{%PH2 zq-Lbsczbu@dzfKdY)h)i%;g9bCye+<@C^_7R{k69BXG=it72@9sNc*=DII#9Xg3Td zB`nJ!wzF3Zkc8tk-=X4-!t)F@b55{1b$MfQ3^BISt+|IMXw&7u@$)KqK+uIwgd!m5 zkLb(BD@PHZg*%$-@7_~b4=8dD4h3GL0^S#hC1EC54HFvHEEfm<-W{|4g^bC#R2X$q z)PMWOY>K?6ws&;yi!>29B;+2_(Q%7aT|3}%wA)?ecu;?18o8)&@)yw=Dgv4)O}09fkdA@Qb# zJ4|I3-#~{K2%p>Ou=7+*H6`aErQaybkyW2T5)AR-t^)5I*J(u|Ew1AF8mm9JE` zii1j&URm3c!o-yQZoSCY8V`-C!~c)iFZ`mRp{Zwav9^cFMLhibRJ}CyUmhp);n}&S z;Zpm>jtE^+>pLm^?$BAiIYdFYeYZy=&}^HpxLs0g=Br9Z>(~4|A^_1*!^j^6hg|^T zs@Zw5`DnfO8Vz!hcc#Mrd`FgXc%_*AShoDi598t@lOeJ{g2{PEa{MdJicU(*yRxB5 z%r#K|_}jW+kM5R=7aTFR6_wQZI4<}Ue`RhddHBj@E9w?lR9lQ3T6Ba^2MK5_s?KG^ zZ3KFB3+1*NjX6?%mXtOcNmgc7AEsKwzg&vPBQMtn1-QpjQg3QITa`?~39(+VOYYW| zy}MCUtFcX+9*msrCh7)xg~l3qfIQ<}1ghcnW*U9&!Jx?CdnA2@t` zeD9lhZLY9)fEBS>Od(FhTHHJ2m*$pr^32)6>j$bvjaHvNZ)P7E>DeKp4OCuh9o%eG zob}NKIE}NN)O_IKjq-}3qL$>wRS5{u16ZAks2Kzcisd&>8^p3kVlC9fvHskZ(oaa(G*`c~(7|4-rOEVaXmQ_T8&{C}PZ9^ypmZW9MWjMBwcq9GE@H{| zAlG{6GAX!1?N@$2(-$YI+62li zCbJaZUQfttJmbj;qT{Qi*~5bi+hW_3Do|0c-_RC5JL}WBBMR*>ocbz@$hfRhZ!ON-GhU~&8q?F;zcKg#VyS|!yrp>6rzgL6Z-lsHLsrzO$z4cO?3t`AO^Lm5qZghRA$#GmQSpC!!N$LP4d14mX z%*PveDJM96qSj8uhM#kck&;8+gF2V;k)pqiAd3IY5B(z2ZEz9k%vv!%KrXM0ujbwW}fm4>I5#;16% zv!FmNv8=kF>*iV#cXk~^fGl=RCRywSM}{9XomDNrf3B)4;VNvbs)*CY&&)#LB|ipS zF>|#reDI0Cq$F1@fOhdY!8)qCvt zvaCu?tr&P4;%+vAj{y@^hPVEY%cDtE9^oqeEL8)(3QO4JB znF&u0^UK#3d*?`*2SD=(FuODqa@x4w{aG9$C9Q0~WIMi2nim`7a=;P|-nFJOG2t1V zN}fa@nwv==P9C2sQfxT#R4=W)OH!jgK8YKMLv+D01I%=P&!%L><>f+RVrfI0d^htg zA-pG+0sZsyIG54ugFFW@7_RGPe&h;ac~u60N?}SAM}r!VS1__f%-!EwroHLj^aX5m zw&X>@md|=XhU<9jkqV-k)0XA(uj6o9X%7uD{7&IZp6AUP0&V#rE)W+_E+Z_OcC0gM zl=kxs*0p@a>9A3A6ZCg2m~Jp9+Zxxxwx?lXx3+(@7)APYnl>EZUDu1qZ_pR57}@4$ zw;IJEhajnU7hiUinVv0fGPWZ-`YlGe$3pO+z>$#6Uee~&*Rf0oL6R*#M{Jw2>|8H7 z_YZUW;MvcQdu6{c256mOZ+<)k%Xt69MvH$k*m&*EeOd<_G*d8_o8rMPdyA`=xm@lJ ze92MDF&S*wEmChi6qYhE?fm?^n~+>u1eoAuz`!yZRIS&Hnt+6;OM*XYzO(c7M23m0 zJcB>@h&M?*4-WXcdl=4p6*HHek`b?IWSOoMnZK4$#OvqSK|TMcE>v*I2z2@fdH{1; z{+r(5Lhl<{!lckMV&LkMN^f~KpBuh>c9fxvwVOvA%%sF81B@)3Yq}jlvjgEOEQ37t zj#|Bc!#niQC@(jA6@A_txJoCiBtasi}1B|wmv$a_G8WNz;8seg$;9Vj-rFBbFInpClN=$TG zFZ!8+?D-h$Mx8#aA&~yfKX-A7c>!+s(x_RUk=r_!Pwd)08;W%5wt!Z$>YEuGgUlck z`)Bv=cuce-6#yYm0bN;W%K3PjxCvMGe_W$wWK4{<_lY%Y0lJkkr7h);#oLY*KghM%s5b`HVCh73(TbI& z#A9)HTL{_E-F;A{z-SZFBq8KtPG_@!x45UmIPhVcLjpTwIBWbm|2@scBra5A7NwvF zyObAd>NV)-2;IsJKIp{>$H;WM3s7gOa_6LzGpZNy|4a)*3%&FgZZbLta`T({sh<|b z|4gHGD(amXh7CL28FiU_Z#M>JqB>0pO>p#Db-u$lA9Q#@eK`}F7u+}*&CQU&r<5MN zH%_!`)AHblGF`_;;Z{b%a5R^^zUf!uudK`;S|U`imj`hb=GF@7zmdLh?bbJv|2;`|CCPO!pF^JiEjArofp)+^?N3R@CQNN-TZP3>^4VPxY2}4Wy{;xz*})PS}4uJ<=>C_ zQF5)_MCYmgF?7#%dbBqS=-F%(HSX&bQTZ`<5Bl=F`;n3(mgHYQ8)dlt(WkzMWxpNo zj_EG=_%f$>U=}6|lOs#z{&`t7RP(`UH}!x)B>0$*J!g`NVa{*kwyYJh;Nq4PSp{Ol z*n6sVPR`KEKuB3u2PJG@Ym5)2q_VZqEP+5@n~nv}D%1R(KLNqY))a!IGFMqU*y}c5 zP3{uLyXX92)R9<=hu33bde9@OUvH^;d6!O%Q?L}B8Iw+gNtnu`+&d&1^W0sj-*9zw z^NscI3xNUTpuJ%4?Y{tuB2nZ}l(>}oVx+7OTN_1R#C=kaKRu8REEQTbaxJ{#=B;MJ0Q!R$t!P_Yt{#9ZmlHV{XC1>0eBYy|Tb$P}EK@ z$$d0Ca6RZ@T(OHY`36rY)9nm$mn&WNSP&hGHMdnxxK9KR_KeFB`66d>uNETmJu$&B z@saEx$o5!^Cv6_!aX}Z9eD8?r-%0->S|l=;qcZ)-KVek2P25D2$|FcC;5kdGr=OeF zM@6wIo@}O(^r0=TUtU9}XA9~)g9_Cg3q{dofBannoagQ=Vq-8Z6w*~IIqz{el?!vs zn-DVl?J~VD{BR_Z9a8ytOf@FOeY@;K`Tn>NXEKM8h7ipw&o$!3uq8PP3QtGql0kdX z{sz_Dezj*${07ZC5PDyTMkG%0JJ#Jw1ki6+Qd)fG*=Ev{a^K`4Bf~!iT8RJhqe!AW zMK6WpqNa1mhb@Dfb6R*m&8te8RN%j&k~coh2c{DO)8Jjk6uZ}E9)~&&Nr`2htuMcN zJ^3^b_Y}Wh2{x3MTEIGXQZ-ZR%4st__9u>coJ>LVjYK7u?!!R&-k&!H8WaA5^NW+a zrAroWmhRJ%!;b7L{)%^hw$|QJBuQG-F`gIVjwvn8?1~^qE!OP651(!>=u+TrFnU4~ zwDR-qJCC0>dG+ufQzd@Gg(wZt(kYtkv{_M>LTyL&h$#v*ft{stn?7}7&j=}klf(C= z#ZutE`SXA1Sy@@z@GRwNJ7>)(1+vEf<&<00%sX!+nwxuPcd=X-l#x`*txjdWA*-KH z7FI0GZXnJiisvjTISaHNd3^G$Lekuo4Nv1zE&YmR@#*`0+NTki%)v3W?4}o`hJNQ8 z@q;w=oYEfCLHr}f+7VI0DE|EQ%@Mjhgt%kAVSN7gOn*es@o;ORVe3wJ zJgNT&Bwuk6G*;GcOBJ!s?2mpN>Gs1WHrw->#9nh_=xgG$g`SDJehuUha`(|$X=lD6 zDpDIA3$)>pt;Q)$Hz}_Jmvi-X|K=Z+Iy>vdWcZCrdnKRwH+Ngq85*huqnIPeb^VxG zYuZ~P95?=sE47UAGa#4K_`F5;SRPL4nD5)uzHcM}YdjlqJUIJvNEAJl^ zJ&vDKd?&DEK92tWvmrARtV2HT@4a*qoGy&1q5a;) zr$l|1dd`CS^*=g9Th|=lwR%7NmAi+XV>x2~^meZCc7*fvUlSgY_zMEIp}jvk60?vd z6cghw62*P~>bk>(*@f|KYT6eFw<^tCaRZg*RE9@SvP1vVuJTr8k0tP)L&>#wvOE1b z-M>oOyuQcb==hsSlwQ}et?bRrrkv>hOP}d3Wmk%*x--#3WpnSP0d3XGNK?V1hX+yI z7Bl8;7UeZY?@BseKxWNc@d0hn@KeqT@a}MvOIk80uc1R{Uf6)N`QARY(!Gevs14G8 z#`#04N;WVulCNMW@BC_Tk3%$G(I@7O%b*-ewFG(eT1>pEtqoM>($D!SebEMYacao~ zP$8&iHp7Y8IT<>(kRT>M&Iy3tYPMhuR&S=tPLyOV^pZ6%;!2yJoG|yL+=GW%t1KS0 zOhQKsEE)bSbNcKo)^gbNM8mJXft-p%+{^yOR8)wiuyo0v{dY*mMzy@=DOcO-AkYQ1{Pf3;*mD{E_mlM@@;D(T~F zsc(;Fkiq+(FdTpOy^J!Z_iAIvyi{jvwpW1O`Hb$sR9A}3g~j>I%*jn_6CWRuRQEi# z;{D^-wYy$ULW@OH<7a1%003+5&r?nhR)cOZBNvNNwW^nXrvT=w{BV{f|Bc71d#n@O zEEJOIMKr}}&nn?IC2F+W)kV_}A8-wQRH**}Zt7gH`BCR|PYz@^v4w&}Ykzn9;UzNR zH1VM#NIRd1YllIi;~!(OLvix5xkic+llx$U4Jc zhCTkNi7B6+7K!<0l4HqKHLEVg;O6a35e0eQ=uu8U%f%h%G|zAP#UaxQN!HwU-;rj(Hc5Z{n}8) zZ{{4}P&YLxn^N*lwOk(1Vq(uYM|NJ7Y+ZJpL1ZRS4A4ed*BJuq%&r{{qJ~&rdX!b@X}(r-SOPj^w^5 zcQDE_{`&eV2>Fd$d)x8qh=5+IyJh*CzPu>8Mpqe^VZ`IXMOWZku2;JdTC~#hYwQ3040_? z$*)p}6YoC$oX2TW^y;vcCjJZQcux8h#U0C5`ULw3O(6frTPY5jXvDEhgC(2U_E+)P{VC*C1}X5Oj-fXd5Rsl>W%paZ~US~KJ0Rd`vfsOv&&&(Wuc zl+-?8b@h`#S3Os%^h72Gfs=YyAW%!g`3W3vx$Wz5cQ|xFqhN?gHE0DDs#;*LyDxV8 zcC1m^oW_`NQ5mm9W&)##=*&>lweG)KAYFNLA7}@3WWarwr^96kc=bA(r?UO*=NXpB2RTyl5)Qs? z=1}JG(=DTVWd&*}FDyLhzw{HUvK3~W&!TO<&?H&Wn(cabt$%D{?JMElf~?4fM2o|Q zus!|b3)bN@k@v&9_E{_y+ZgcTw8WN-wixh7mu%M05r9-?Vogw2?k5|+ST@J;D|WfN zWPPHJ5Q?Y`R`)4cXomFbKr`RJofNmP@hn^X$1fZt$8pnTBm+*8&sEF%oL3pV~!Schhbc0KDYyi-Kf zKCuSZ3Cjog?{L8{N1OlH{e>@L^!|bMEdAgg?Y$B%ppKcNWZ^rsWo=GHc(B3NXH_n; zB10#qtununm;$G=+V|!s-=V#p^EOQugMU(*`D%{qMLhm`mOEX2+Lf$o zZ^X7$TRL?ft{2PZyRhIIDyV2$>8GX;oOYvRBS=Pa_MMp=PL(*=1#^~UAiMv&#nl11p+>JDYJbs?cbEh(_!!S8z z@zziIDYLBk<1@47Z$925d;VCsyU*F%^lR%2PQX$DQ-$uHUKRY5$LsvzIo0#!irevJ zW?*M0Yo980(pdeE)aX&Vrn%)7sp7Xnuazc^ybQoeLk;Ed%^lCZdvzDLwRc{>-(bvX zFIbL3LXENky4q8fc$_62i{aG1Cs`{y{}S+_^NhhW2H{r{GmF8?Q@Zj^z`-<f?31TjvhMq5j8>`%W^eiNd8c6U9$Jt8!vdyFCL~O(9*n(R>dj<(7)R%t_v=Fi ziz$4IhfL7)6v^ejX}f3awMWxr^Tw0F*r+!A5Wcpsl=)oV9g*2TGBL{IeipT&PQ%!qWf829ghY}Oab0X_7DWo=rgihu%q zLxE$wZUSi$%%9R#pea+c8IqFK|BtY*jEnO5-bN4%Ns)i4EJpKA)X=0$ z@N^2fdxi0&Mq})%aJPxafkV!&0D1taQcZG(YCpIeltMg>Q>^WT?*?fH6BG`+Y2Lxc z%ztZLm^#QhRU`k0NWsxs5#^Kok5S9;D`p&(*L@%GJ0 zZbON+a(e)y+>7WK1K_A*_H#ziI!#`vqs1+Rdu_JXpLq>!dyr(^U<8K^HN*#ETbC&p&>DSFwq7q-MlSw`vzu6xV)`pF%0|z2%UV8gr%Nv{or9+?cN)29RDnhmsysZLdjiOe%L{R<4B5Htllwl5 zRlhYl!acHaHl6Nqa7afQKVfelIOO-3QHR9=p!Qa+VC4l(0^q$4SR7YbpRa2p3Foj% zsDz@*+*t2)dy<2+VA)z+@wPlG2Z17G)#5bWYa6NYv#%Tu5-`=|^RMJRDB3x3n>n~c zG--DnTPN~Kyvqx@9_k;dzV#!BxIVLl+=^M3pS9TK!nn5`d5iBd?Mb8F!LnjV1x!>#;o=)FfN zIaOzoUwX!CcFq{btHzyV*BRSo?cODuEd`Bm?tfb1ql!1u#+#l{N=fy-w7Xy78TfB* zcC_jCty^rdRV#Nm^fuzg69v{PjA&E~iHMVKNC`hpu<|ICdC_xgl%LFFB2!G7dh(9) zsJ|WNVnSceK*F{dtUcwlK6CgeWX{rbdDl|HHauc z{NhP^>9*R%9bTilZf8pfbEj~t!+yN~R~Z6G9jpF)G`oYAM6=9lvbYgJQ5>&OWD{*f z)IFpyanB<~cXYS7iAswcVU%8DR+o=*1_^|LbPg)))5cEY5GoBDAlu-=h;0|m;!DeB zKT-agz_bl%y~l?lkBJm7ZD6XGE-I(QRHD8+GzE%le?T`->s+HDwXLi=Tb~jh*A_WG zgm6z(dmGc-g+fWM54{%2sJqg)nH{yTA%s{yNa@i21Su*gwR=0_{TZHj$!m~gwMJam zGNFp3tGhS;F1!f`2N8BV0l-ijQNMbxipr2J!II{WK@^nZQyb@I�~Oqa+|GUeP5H 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ƭL|g%-?w^6d%PPDFW|K_8Bk4OL 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 SHu+Eeyn?K%O!>PHU;Y~q<`PE$ diff --git a/docs/ui-review/e2e-01/1280x800/09-server-restarted.png b/docs/ui-review/e2e-01/1280x800/09-server-restarted.png deleted file mode 100644 index 19691bef5fd8c4964348d3dcda48029af144bb64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87436 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

    dvFgV#N@ZP`ReI*!N8>q(Pc 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�VU}W0Kd@pCP|L`$NeVQ}t>->pXj}>E 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 diff --git a/docs/ui-review/e2e-01/1280x800/03-first-turn-completed.png b/docs/ui-review/e2e-01/1280x800/03-first-turn-completed.png deleted file mode 100644 index ab9163573a66b1de22c44c63fb07037868d4d95e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75801 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�oi#0L)oyX2r6{DbnW=eZm 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