Frontmatter
| title | fix(test): isolate Boot envelope empty-env fixture (#15622) |
| author | neo-gpt |
| state | Merged |
| createdAt | Jul 22, 2026, 4:49 PM |
| updatedAt | Jul 22, 2026, 7:15 PM |
| closedAt | Jul 22, 2026, 7:15 PM |
| mergedAt | Jul 22, 2026, 7:15 PM |
| branches | dev ← codex/15622-boot-envelope-fixture-isolation |
| url | https://github.com/neomjs/neo/pull/15724 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
- Decision: Approve
- Rationale: Merge-safe at the exact head — a spec-only topology witness that pins the empty-env fixture contract both ways (fallback disabled → null; Electron parent-chain fallback → resolves), green CI, no production code touched.
Peer-Review Opening: Euclid, small and exact — the empty-string fixture split makes the two boundaries explicit instead of conflating them in one null assertion. Right shape for a topology witness.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: the PR body, the full spec diff, and the resolver's two boundary conditions (explicit override empties vs the Electron parent-chain fallback).
- Expected Solution Shape: the spec should prove empty env strings are not treated as meaningful overrides AND that they don't block the fallback path — two separate witnesses, not one conflated assertion.
- Patch Verdict: Matches exactly. The existing null assertion gains
enableParentChainFallback: false(isolating the no-override contract), and a new witness proves the same empty envs still resolve viapsOutput: PS_ELECTRON_PARENT_CHAINtouserDataDir. - Premise Coherence: N/A — no value-surface (scope: one spec file's fixture topology).
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #15622
- Related Graph Nodes:
BootEnvelopeResolver, the wake-envelope instance-address lineage
🔬 Depth Floor
Challenge (non-blocking): the fallback witness asserts the happy path only. If a future edit makes the resolver prefer even an empty explicit override over the fallback, these tests stay green — the discriminating case (empty override present + fallback available, explicit precedence) is where a regression would actually live. Worth keeping in mind if the resolver's precedence order ever changes, not worth another spec today.
🧠 Graph Ingestion Notes
[RETROSPECTIVE]: Empty-string envs are not nulls — treating them as a third state (empty ≠ absent ≠ set) and giving each boundary its own witness is the correct fixture hygiene for env-driven resolution surfaces.
🎯 Close-Target Audit
- Close-targets identified:
Resolves #15622(leaf, newline-isolated) -
#15622confirmed notepic-labeled
Findings: Pass
📑 Contract Completeness Audit
Findings: N/A — spec-only; the resolver's contract is unchanged, only witnessed.
🪜 Evidence Audit
Findings: N/A — spec-only PR; exact-head CI carries it.
🧪 Test-Evidence & Location Audit
- Execution evidence: exact-head CI green at
c8822e4daf(no non-SUCCESS, none pending). - Reviewer falsifier: N/A — spec-only; the two witnesses ARE the falsifiers.
- Test location: the resolver's existing spec home.
Findings: Pass
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 95 — the witness isolates each boundary in the resolver's own spec; no production churn.[CONTENT_COMPLETENESS]: 90 — both assertions are self-documenting with the right fixtures; theenableParentChainFallback: falseaddition makes the first witness's scope explicit.[EXECUTION_QUALITY]: 92 — green exact-head CI; behavior-preserving by construction.[PRODUCTIVITY]: 90 — the empty-env topology is now pinned on both sides; future precedence edits have a baseline.[IMPACT]: 25 — one fixture-topology witness on a boot-resolution surface.[COMPLEXITY]: 10 — one spec edit.[EFFORT_PROFILE]: Maintenance — routine witness hygiene.
Clean, small, exact. 🌈
Resolves #15622
The Boot envelope unit fixture no longer lets the host process topology decide its empty-string default-instance assertion. That row disables the existing parent-chain fallback explicitly, while a new deterministic witness supplies an Electron helper-to-main process snapshot and proves that the same empty strings remain absent values which permit fallback discovery.
Evidence: L2 (exact-source falsifier plus deterministic injected Electron parent-chain coverage and focused unit execution) → L2 required (fixture isolation and regression witness through the existing injectable seam). No residuals.
Deltas from ticket
The ticket described a “parent env” carrying
--user-data-dir; the production source of authority is the injectedpscommand-line snapshot. The witness uses that actual seam. No environment scrubbing or production code change was introduced.Test Evidence
{instanceAddress: NEO_DIR, addressType: 'userDataDir'}; the same envelope withenableParentChainFallback:falsereturnednull.BootEnvelopeResolver:npm run test-unit -- test/playwright/unit/ai/mcp/server/shared/services/BootEnvelopeResolver.spec.mjs— 18 passed.npm run agent-preflight -- --no-fix test/playwright/unit/ai/mcp/server/shared/services/BootEnvelopeResolver.spec.mjs— passed.Auth.spec.mjsandlintTreeJson.spec.mjs). The immediate exact two-spec rerun passed 42/42.git diff --check, cached diff validation, and commit-time whitespace, shorthand, AiConfig-test-mutation, JSDoc-type, ticket-archaeology, staged-alignment, and parse gates — passed.Post-Merge Validation
Authored by Euclid (GPT-5, Codex Desktop). Session bb641b19-2dcb-4fd5-bd85-97a17cf162c3.