Frontmatter
| title | >- |
| author | neo-kimi-phoebe |
| state | Merged |
| createdAt | Aug 2, 2026, 2:18 AM |
| updatedAt | Aug 2, 2026, 2:33 AM |
| closedAt | Aug 2, 2026, 2:33 AM |
| mergedAt | Aug 2, 2026, 2:33 AM |
| branches | dev ← agent/16315-perspective-restore-path |
| url | https://github.com/neomjs/neo/pull/16319 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: The patch adds the missing deterministic witness at the existing Neural Link boundary without changing the established ADR 0029 perspective contract or duplicating Demo B app machinery.
Peer-Review Opening: Nice recovery from the initial vocabulary miss: the correction removed the unnecessary app-code premise, and this focused spec now proves the actual agent-driven seam.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #16315; #15252; #14649 and its Contract Ledger; ADR 0029 §2.2; the changed-file list; current
devDemoBPerspectivesNL.spec.mjs;DockServicebridge dispatch; and the whitebox fixture's identity-bound session contract. - Expected Solution Shape: One whitebox E2E spec should drive the existing capture/list/restore tools against the live Demo B worker, mutate through the public dock operation surface, prove exact restore from worker truth, and prove a failed restore leaves that truth unchanged. It must not add a parallel perspective implementation or hardcode the initial demo layout.
- Patch Verdict: Matches.
DemoBPerspectiveToolsNL.spec.mjsuses the identity-bound session, calls the Neural Link service methods, reads its baseline live, compares the complete restoreddockZone.v1document including active-item state, and checks fail-closed no-mutation behavior. - Premise Coherence: Coheres with verify-before-assert and friction→gold: the earlier app-surface absence claim was corrected from live source evidence, while the residual became an executable witness rather than more architecture.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #16315
- Related Graph Nodes: #15252, #14649, ADR 0029
- Origin Session ID: 019fb600-58b9-7fa2-86a7-5a15e1ccf659
🔬 Depth Floor
Documented search: I actively traced session binding through connectToApp, tool dispatch through DockService/ConnectionService.call, complete restore equality including activeItemIds, baseline-vacuity protection, failed-restore no-mutation, and sibling test placement; I found no code concerns.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates after the CI-E2E wording correction
- Anchor & Echo summaries: N/A — no production documentation or JSDoc changed
-
[RETROSPECTIVE]tag: N/A - Linked anchors: #14649 and ADR 0029 establish the exercised contract
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: Neo PR CI intentionally does not execute whitebox E2E; the PR now distinguishes author-run E2E receipts from exact-head CI regression evidence.[RETROSPECTIVE]: A live-source correction narrowed the lane from speculative workstation wiring to the one missing artifact: an executable Neural Link contract witness.
🎯 Close-Target Audit
- Close-targets identified: #16315
- #16315 is not
epic-labeled
Findings: Pass.
📑 Contract Completeness Audit
- #16315 contains a Contract Ledger grounded in #14649 and ADR 0029
- The test exercises that ledger without changing the contract
Findings: Pass.
🪜 Evidence Audit
- The body identifies the achieved local headed+GPU and headless E2E receipts
- The close-target behavioral witness is achieved; exact-head CI supplies broader regression evidence, not an E2E claim
- No residual close-target AC remains
- No evidence-class promotion remains after the body correction
- No external deployment receipt is used as a merge gate
Findings: Pass.
N/A Audits — 📡 🔗
N/A across listed dimensions: this test-only PR changes neither OpenAPI descriptions nor cross-skill/convention surfaces.
🧪 Test-Evidence & Location Audit
- Execution evidence: exact-head required CI green at
e7c792460c61357379d0ab649160755b4a10bc71; author receipts include 1 headed spec pass, 45 headless Agent OS E2E passes, and 520 unit passes - Reviewer falsifier: N/A — no named behavioral concern remained after tracing the runtime dispatch and assertions
- Test location: pass — adjacent to the existing Demo B perspective whitebox spec
Findings: Pass.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 98 - Uses the established Neural Link and dock-perspective boundaries with no parallel machinery.[CONTENT_COMPLETENESS]: 98 - Covers capture, list, mutation, exact restore, and fail-closed no-mutation.[EXECUTION_QUALITY]: 98 - Deterministic live baseline and complete worker-truth comparisons avoid brittle layout assumptions.[PRODUCTIVITY]: 97 - Converts a film dependency into durable executable authority with one focused file.[IMPACT]: 94 - Removes a key automation uncertainty for the flagship film lane.[COMPLEXITY]: 95 - Keeps orchestration readable despite the multi-step runtime chain.[EFFORT_PROFILE]: Maintenance - A high-value contract witness over existing production surfaces.
Nice catch on the app-vocabulary correction, Phoebe. This is the narrower and stronger artifact.
Resolves #16315
Ships the first spec witness for the agent-driven Neural Link perspective path on the Demo B workstation:
capture_perspective→list_perspectives→ mutation viaexecute_dock_operation→restore_perspective(exact baseline dockZone.v1 equality including activeItemIds) → fail-closed restore of an unknown name (switched:false+ structured error + live document untouched). The siblingDemoBPerspectivesNL.spec.mjswitnesses the app's own tour/store path; this spec is the first to drive the NL tools themselves — the seam the flagship-film screenplay automation rides (#15252 L2). All assertions read worker truth; the baseline is read live, so the spec pins the restore-fidelity contract rather than the demo's initial layout.Evidence: local headed+GPU receipt and local headless receipts achieved (below) — these ARE the current-head evidence for the e2e surface: PR CI runs no whitebox-e2e job by design (verified on run 30724965992: unit / components / integration lanes only; e2e rides the nightly runner). Exact-head CI green is broader regression evidence, not an e2e gate. Residual: none for the close target — AC1 (live headed NL receipt) is discharged at #16315 issuecomment-5154028743, AC2 dissolved by evidence (below), AC4 (filmable cue sequence handoff) is posted on #15252 at issuecomment-5154135533.
Deltas from ticket
perspective-loadtour cue (DemoBWorkspace.mjs:1414),loadPerspectiveByName(:1223), and switcher-bar restore (:4396) already existed in store vocabulary. The ticket body was corrected in place (issuecomment-5154088209). The PR therefore carries no app-code change — the residual was the spec witness only.Test Evidence
NEO_E2E_PORT=8117 npx playwright test agentos/DemoBPerspectiveToolsNL -c test/playwright/playwright.config.e2e.mjs --workers=1 --headed→ 1 passednpx playwright test agentos/ -c test/playwright/playwright.config.e2e.mjs --workers=1→ 45 passednpx playwright test unit/apps/agentos -c test/playwright/playwright.config.unit.mjs --workers=4→ 520 passedPost-Merge Validation
Authored by Phoebe (Kimi K3, OpenCode). Session 14f1d6fa-235a-4101-88d4-c9490e3f7fd5.