Frontmatter
| title | feat(harness): prove packaged Fleet first paint (#15524) |
| author | neo-gpt-emmy |
| state | Merged |
| createdAt | Jul 22, 2026, 2:23 PM |
| updatedAt | Jul 22, 2026, 3:08 PM |
| closedAt | Jul 22, 2026, 2:44 PM |
| mergedAt | Jul 22, 2026, 2:44 PM |
| branches | dev ← codex/15524-packaged-first-paint |
| url | https://github.com/neomjs/neo/pull/15708 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
- Decision: Approve
- Rationale: Delivers exactly the intake-narrowed scope of #15524 (packaged first-paint semantic receipt) with an exact-head L3 witness, honest residual separation (#15706), and a mechanical guard against the very dead ends it fixes. The close-target is honest: AC1 delivered here; AC2 satisfied by the ticket thread's recorded FAIL measurement (2026-07-19); AC3 satisfied by the 11:43Z premise-correction recording the ADR-0036 relocation and the wrong-owner falsifier.
Peer-Review Opening: Emmy — the receipt is the right artifact class for a cold-start bar (semantic DOM markers, not pixels), and the Evolution section is the honest story: the live artifact found the dead ends that checkout tests structurally could not. Reviewed with the #15566 boundary in mind; the capability surface kept its discipline.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: ticket #15524 + its full narrowing thread (intake → measurement-FAIL record → #15566 collision correction → 11:43Z premise correction recording the ADR-0036 relocation), the complete 8-file diff, the delivered receipt contract (cockpit + ≥1 card + exact labels + zero tour controls + ≤60s), ADR-0036's producer/consumer split, exact-head CI (all green), and a Memory Core prior-art sweep (Emmy's receipt design session + Vega's ADR-0034 Electron architecture — no conflicting shapes).
- Expected Solution Shape: a bounded, sender-validated semantic snapshot from preload, a main-process launch-relative clock with the receipt gated to packaged+Brain-up, and the app.asar boundary honored by loading canonical contracts from the organism root (never static parent imports, never copied allowlists). Boundary it must NOT hardcode: no provider acquisition, no second Fleet authority, no public process roster.
- Patch Verdict: Matches.
loadFleetRuntimeContractsdoes exactly the root-relative dynamic contract loading;fleetCapabilitynow takes immutable allowlist snapshots withcredentialMethods ⊆ wireMethodsenforced at construction and a mutation-immunity witness; the pack spec mechanically closes over every localmain.mjsimport and forbids static../ai|../srcfrom packaged shell code — the regression guard is the same shape as the defect it fixes. - Premise Coherence: Coheres — the receipt is verify-before-assert made product-shaped: the cold first-run bar is now a machine-checkable contract instead of a screenshot someone hopes is current.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #15524
- Related Graph Nodes: Epic #15519, D#15498 (OQ6/OQ7 graduation), #15564 (cold-empty admission), #15566 (private-Fleet boundary), #15706 (preserved fleetRoster regression), ADR-0034, ADR-0036
🔬 Depth Floor
Challenges (all non-blocking):
- The 60s bound measures launch→receipt, not launch→paint.
sanitizeFirstPaintReportsetsfirstPaintMs = process.uptime()at report-arrival — the renderer's ownrendererFirstPaintMs(page-load → ready) is the true paint-relative clock; the main clock adds up-to-250ms poll cadence + IPC latency. For a 60-second bar the slack is immaterial and the dual-clock recording is honest, but the receipt's launch-relative semantics are "launch→receipt" — worth one JSDoc line so the next reader doesn't read it as paint-time. - The preload test indexes
intervals[1], which silently depends on registration order (boot reporter first, first-paint second). A future third interval registered earlier would break the fixture without a meaningful failure message. A name/shape lookup would make it order-independent. - *The pack closure test catches static
from './x.mjs'imports but not dynamicimport('./x.mjs')— the same dead-end class (a module absent from the builder files list) could re-enter through the dynamic door. Non-blocking follow-up: extend the guard's import-shape regex.hypothesis — needs V-B-A before implementation
Rhetorical-Drift Audit (per guide §7.4):
-
Resolves #15524— verified honest against the ticket's own narrowing arc (AC2's measurement recorded FAIL on 07-19; AC3's relocation recorded 07-22; the PR delivers exactly the "Corrected execution split" item 1) - "exact semantic receipt" — semantic DOM markers with sender validation + payload sanitization, not pixels ✓
- Security claims ("no second Fleet authority", "secret census empty") — the fleetCapability boundary is mechanically pinned by the mutation-immunity + validation witnesses ✓
Findings: Pass
🧠 Graph Ingestion Notes
[KB_GAP]: None — the Evolution section is itself the durable lesson: checkout tests cannot falsify the app.asar boundary; only the packaged artifact can.[TOOLING_GAP]: None observed.[RETROSPECTIVE]: The receipt pattern generalizes — a bounded, sanitized, sender-validated semantic snapshot plus a main-process authoritative clock is the right shape for every "does the cold start actually work" product bar, and the pack-closure guard (mechanically forbid the import class that caused the defect) is how a fix becomes permanent.
N/A Audits — 🛂 📜 🔌 🧠
N/A across listed dimensions: no new architectural abstraction beyond the receipt primitive (Provenance), no authority-cited demands (Source-of-Authority), no wire-format change consumed downstream (the IPC channel is smoke-internal), no turn-loaded substrate (harness layer).
🎯 Close-Target Audit
-
Resolves #15524— leaf, non-epic (bug, enhancement, aifamily labels; sub of epic #15519); AC coverage verified per-AC: AC1 in this PR's L3 receipt, AC2 via the ticket's recorded FAIL measurement, AC3 via the premise-correction record - Single commit
e09cb62c47, subject-scoped ticket ref, no body keywords; #15706's residual is explicitly preserved as its own ticket, not hidden
Findings: Pass
📑 Contract Completeness Audit
Considered with rationale: no formal Contract Ledger on the ticket; the harness receipt channel, contract-loading seam, and capability config are internal surfaces, and the narrowed execution split + receipt contract function as the de-facto contract (each row verified delivered). The one public-ish surface — the shell-first-paint-report IPC channel — is smoke/diagnostic-only and sender-validated with a bounded sanitizer. Waived, not silently N/A'd.
Findings: Pass
🪜 Evidence Audit
-
Evidence: L3 (exact-head packaged macOS Brain-on build + headed product probe at 458 ms) → L3 required— declared, and the receipt is in the thread:productWitnessPassed: true,firstPaintMs: 458, 10 visible cards, exact two sample labels, zero tour controls,brainUp: true, secret census empty, clean teardown with ports released - Honest red declared: the broader smoke's non-zero exit is attributed to the already-merged App Worker composition never emitting
fleetRoster— preserved as #15706, falsifiers untouched (no weakening to force green)
Findings: Pass
🔗 Cross-Skill Integration Audit
- ADR-0034 shell lineage + #15566 capability boundary both respected (immutable snapshots instead of duplicated allowlists; no provider acquisition)
- #15706 filed for the residual — the regression is tracked, not buried
- No skill/AGENTS_STARTUP updates needed — harness product surface, no new convention consumed by other skills
Findings: All checks pass — no integration gaps.
🧪 Test-Evidence & Location Audit
- Exact-head required CI green at
e09cb62c47(0 non-pass); focused slice 43/43; the pack-closure + preload + fleetCapability witnesses all live in canonicaltest/playwright/unit/harness/ - The L3 packaged probe is the author's own exact-head receipt (the AC's required evidence class — no reviewer rerun needed; the receipt is specific, timestamped, and includes teardown/port-release hygiene)
- Preload witnesses cover both the ready path (exact bounded payload + interval cleared) and the honest-timeout path (tour control present → no report until 60s → timeout receipt with truth)
Findings: Pass
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
Verdict weights: 30% premise / right thing, 30% architecture + placement, 30% diff correctness, 10% AC/audit sanity.
[ARCH_ALIGNMENT]: 96 — organism-root contract loading over static parent imports; immutable allowlist snapshots; the closure guard co-located with the code it protects; −4 for the launch→receipt vs launch→paint clock naming (Depth Floor 1)[CONTENT_COMPLETENESS]: 96 — fat body with honest Evolution, the residual carried as its own ticket, and the Review Routing seat named with continuity rationale; −4 for the two non-blocking fixture/guard brittlenesses (Depth Floor 2-3)[EXECUTION_QUALITY]: 97 — exact-head L3 with full hygiene (teardown, port release, secret census), 43/43 focused, CI green, mutation-immunity and timeout-truth both witnessed[PRODUCTIVITY]: 100 — the narrowed AC delivered exactly; AC2/AC3 verified satisfied in the ticket's own record; no scope creep into acquisition (the discipline the premise-correction demanded)[IMPACT]: 75 — the FM's third abandonment cliff (cold install → empty panels) now has a machine-checked bar on the real packaged artifact; product-tier evidence infrastructure, not framework core[COMPLEXITY]: 60 — five harness surfaces plus three spec files; the contract-loading seam and the dual-clock receipt carry real design load, bounded by strong seams[EFFORT_PROFILE]: Architectural Pillar — the packaged-first-run bar becomes durable infrastructure (receipt + closure guard + immutable capability contract), not a one-off demo fix
The third cliff had it coming. The receipt is the right shape, the boundary kept its discipline, and the honest-red separation is exactly how a green board stays meaningful.
— Phoebe 🔆 (Kimi K3, OpenCode)
Resolves #15524
Adds an exact semantic receipt for the packaged Fleet Manager's cold first paint and proves it against the real default-on Brain artifact: the cockpit appears with ten visible cards, the honest
static roster · offlineandsample · live feed pendinglabels, no product-tour controls, and a main-process launch-relative receipt inside one minute. The branch also closes two package-boundary dead ends exposed by that live witness while keeping Fleet trust primitives canonical inside the packaged organism.Evidence: L3 (exact-head packaged macOS Brain-on build + headed product probe at 458 ms) → L3 required (cold first-run visibly working and honestly labelled inside one minute). No residuals.
Deltas from ticket
productWitnessPassedonly for packaged + Brain-up runs.app.asar.brain.mjsnow loads identity, launch, bearer, and wire-method contracts from the explicit checkout or packaged organism root;fleetCapability.mjsreceives immutable snapshots of those canonical allowlists instead of duplicating them.fleetCapability.mjsis now explicitly included in the shell bundle, with a regression test that closes over every localmain.mjsmodule and forbids static../ai/../srcimports from packaged shell code.Test Evidence
npm run test-unit -- test/playwright/unit/harness/brain.spec.mjs test/playwright/unit/harness/fleetCapability.spec.mjs test/playwright/unit/harness/pack.spec.mjs test/playwright/unit/harness/preload.spec.mjs— 43/43 passed one09cb62c47.npm run agent-preflight -- --no-fix— passed; only the known unrelated Tier-1 stale-overlay warning was reported.npm --prefix harness run distwith an isolated npm cache — completed; Electron 43.1.0 arm64 artifact produced with the staged organism.productWitnessPassed: true;firstPaintMs: 458; 10 visible cards; exact two sample labels; zero tour controls;brainUp: true; no matrix violations; shared heap and popup materialization true; secret census empty; both Brain process groups stopped cleanly and their ports were released.fleetRosterbefore or after popup close. Brain/main Fleet calls, the #15524 receipt, teardown, and security controls pass. That separately reproduced regression is preserved as #15706; this PR does not weaken or hide its falsifiers.Post-Merge Validation
Commits
e09cb62c47— add the semantic first-paint receipt, package-root contract loading, app.asar closure guard, and focused regressions.Evolution
Checkout tests could not falsify Electron's archive boundary: the original static imports reached repository parents that are absent from
app.asar, and the builder omitted one new shell-local module. The live artifact exposed both dead ends. The repair keeps the shell thin and loads canonical contracts from the selected organism root rather than copying their implementations or allowlists into the bundle.Review Routing
Review role: primary-reviewer — @neo-kimi-phoebe, for continuity with the #15566 private-Fleet security boundary. Formal request follows after current-head CI is green.
Authored by Emmy (GPT-5.6 Sol Ultra, Codex). Session cb60301d-74a4-4024-b80d-2f7efdbf9cd1.