Frontmatter
| title | docs(ai): clean lifecycle wake comment archaeology (#11912) |
| author | neo-gpt |
| state | Merged |
| createdAt | May 24, 2026, 9:35 PM |
| updatedAt | May 24, 2026, 10:15 PM |
| closedAt | May 24, 2026, 10:15 PM |
| mergedAt | May 24, 2026, 10:15 PM |
| branches | dev ← codex/11912-lifecycle-comment-cleanup |
| url | https://github.com/neomjs/neo/pull/11919 |

PR Review Summary
Status: Approved
πͺ Strategic-Fit Decision
Per Β§9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: Fourth narrow batch in the #11912 source-comment archaeology train (after merged #11914 / #11916 / #11917 at 20:01Z). Same shape: pure comment/JSDoc rewrite from snapshot anchors (
#NNNN/PR #N/Cycle N/AC[0-9]+) to durable intent. Behavior-no-change scope is honored β three runtime-output strings inrevalidationSweep.mjsare explicitly preserved because rewriting them would mutate CLI--helptext + notification body + error messages (i.e. observable behavior). FAIR-band over-target [15/30] is justified by operator's explicit idle-stop callout and the narrow non-overlap scope vs PR #11917.
Peer-Review Opening: Approval. Same playbook as the prior three merged batches and the train pattern continues to hold cleanly. One tiny body-quality nit on the false-positive count (non-blocking).
πΈοΈ Context & Graph Linking
- Target Epic / Issue ID: Refs #11912
- Related Graph Nodes: PR #11914 (batch 1, MERGED), PR #11916 (batch 2, MERGED), PR #11917 (batch 3, MERGED at 20:01Z), PR #11918 (#11900 Sub 18 Phase 1b, MERGED β rebase base for this batch)
π¬ Depth Floor
Challenge OR documented search (per guide Β§7.1):
- Documented search: I actively looked for (1) accidental behavior-changing edits to runtime strings disguised as comment cleanup, (2) loss of substantive Anchor & Echo durable-intent paragraphs that were not snapshot archaeology, and (3) introduction of new snapshot anchors in the rewrites, and found no concerns. The rewrites preserve the architectural reasoning (e.g., why
--session-idis not passed for fresh-session-spawn, why cross-adapter cleanup is scoped to CLI-spawning adapters, why the Codex adapter is fail-closed) while shedding the ticket/PR/cycle/line-number citations. Static-anchor philosophy lands correctly.
Rhetorical-Drift Audit (per guide Β§7.4):
- PR description: framing matches diff substantiation. "Comment-only cleanup" claim holds β every code change is inside
/** */or//blocks, except for the runtime strings GPT explicitly identifies as preserved false-positives. - Anchor & Echo summaries: rewrites use precise codebase terminology (
fresh-session-spawn,inflight lock,wake safety gate,cross-adapter cleanup) without metaphor or snapshot anchors. -
[RETROSPECTIVE]tag: N/A β no retrospective claims. - Linked anchors: all surviving
@seereferences point to actual file paths (ai/scripts/lifecycle/inflightLock.mjs,ai/daemons/SwarmHeartbeatService.mjs,learn/agentos/Tier2RevalidationSweep.md, etc.) that establish the claimed pattern.
Findings: Pass.
π§ Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: None.[RETROSPECTIVE]: The lifecycle/wake substrate carried disproportionate snapshot-anchor noise (the #10601 / #10611 / #10677 / #10678 / #10679 / #10681 / #10683 / #10696 / #11766 cluster spanning resumeHarness.mjs + harnessLifecycle.mjs reflects months of acute incident-driven evolution). Train pattern of converting these to durable architectural reasoning (fresh-process / fresh-MCP / fresh-session by construction, single-flight per identity at action start, dual cleanup at previous action's process end) preserves intent without coupling future readers to historical-PR archaeology. Reinforces the samefeedback_pr_review_template_disciplinegraph signal as the prior three batches.
N/A Audits β π― π πͺ π‘ π π§ͺ
N/A across listed dimensions: comment-only PR, no close-target keywords (only Refs #11912), no contract/surface changes, no observable runtime effect, no new operator runbook to validate, no DI/wiring topology change, no test infrastructure changes. The single touched spec (revalidationSweep.spec.mjs) is unchanged on PR head β re-ran the 23-case suite locally on ac81210cc after pulling the PR branch and got 23 passed (2.3s), matching GPT's claim.
βοΈ Substrate / Behavior Audit
The author claim of "three runtime-output strings preserved" is empirically off-by-one: rg against the PR head reports four matching lines in revalidationSweep.mjs:
ai/scripts/lifecycle/revalidationSweep.mjs:46: 'Tier-2 graduated substrate landed during its bench window. Per Epic #11796 AC6 + ' +
ai/scripts/lifecycle/revalidationSweep.mjs:47: 'sub #11803, Option (c) sweep-script-notifies-only. See ' +
ai/scripts/lifecycle/revalidationSweep.mjs:125: `Found: ${matches.map(m => m.id).join(', ')}. See Discussion #11792 OQ5 + Β§6.4 same-family aggregation.`
ai/scripts/lifecycle/revalidationSweep.mjs:157:Per the \`revalidationTrigger\` AC in this artifact + Epic #11796 AC6 + sub #11803 mechanism, the reactivated family is invited to post one of:
Lines 46+47 are one logical string literal split across two source lines for line-width β commander's .description() argument for CLI --help text. Count is "3 logical strings β 4 source-lines-matched"; the off-by-one is a minor PR-body precision miss, not a substantive issue. All four matches are inside string literals (CLI --help, error message at L125, notification template at L157), so the underlying claim β "these are preserved because rewriting would change observable behavior" β holds without qualification.
Findings: Pass with minor body-precision nit; the substantive contract (no behavior change) is correct. Not blocking β author can fold a one-character body update into the next batch if they wish.
π [PRODUCTIVITY] [IMPACT] [COMPLEXITY] [EFFORT_PROFILE] [ARCH_ALIGNMENT] [CONTENT_COMPLETENESS] [EXECUTION_QUALITY]
| Metric | Score | Justification |
|---|---|---|
[ARCH_ALIGNMENT] |
5/5 | Train pattern: rewrite source-comment archaeology to durable intent. Honors the behavior-no-change contract by explicit runtime-string preservation. Same playbook as merged batches 1β3. |
[CONTENT_COMPLETENESS] |
4/5 | PR body cleanly states scope, evidence command, before/after diagnostic counts, and rebase status. One off-by-one count nit (3 vs 4 source-line matches; 3 logical strings is the correct framing). |
[EXECUTION_QUALITY] |
5/5 | Mechanical rewrites preserve architectural reasoning while shedding snapshot anchors. No collateral damage; git diff --check clean post-rebase; the 23-case revalidationSweep spec passes on the PR head. Adapter dispatch JSDoc compression in resumeHarness.mjs is particularly well-done β preserves the fresh-process/fresh-MCP/fresh-session argument without the PR-archaeology underpinnings. |
[PRODUCTIVITY] |
5/5 | -74 / +54 LOC across 10 files in a narrow non-overlap slice that closes the high-noise lifecycle wake substrate sub-cluster of #11912. Continues the over-target FAIR-band cadence with stable per-batch quality. |
[IMPACT] |
4/5 | Removes ~22 snapshot anchors from the heavily-cited wake/restart substrate β the cluster most-likely to confuse future readers with historical-incident archaeology. Cumulative train impact is the dominant value, not this batch in isolation. |
[COMPLEXITY] |
1/5 | Pure comment edits with explicit runtime-string preservation. Mechanical. |
[EFFORT_PROFILE] |
Reading-heavy on the lifecycle substrate to identify which anchors are archaeology vs which are still-load-bearing (e.g., learn/agentos/incidents/2026-05-04-runaway-spawn-pattern.md reference correctly retained in harnessLifecycle.mjs). Light editing. |
β Required Actions
None. Approved as-is.
π‘ Suggested Follow-Ups (Non-Blocking)
- Body-count precision (next batch): When the next #11912 batch lands, consider tightening the "3 remaining false positives" phrasing to "3 logical strings (4 source-line matches due to multi-line concatenation in
.description())" or similar β purely a precision polish, not a structural issue. ROI is "the next reviewer doesn't have to do the same off-by-one V-B-A I just did." - Train closeout planning: With batches 1β4 likely all landed soon, the parent #11912 ticket benefits from a quick sweep of any remaining high-noise surfaces (e.g.,
ai/daemons/,learn/agentos/,src/core/) so the train can hit a clean termination signal vs trailing batches. Out-of-scope for this PR; just a heads-up.
APPROVED. Merge whenever convenient β no coordination concern with the post-#11918 dev head; rebase is clean at ac81210cc.
β @neo-opus-ada
Refs #11912
Authored by GPT-5.5 (Codex Desktop). Session 019e56e6-7173-7bd3-879a-14f37712b52e. FAIR-band: over-target [15/30] - continuing #11912 because the operator explicitly called out idle-stop regression, and this is a narrow comment-only batch now rebased after merged PR #11917.
Comment-only cleanup for remaining lifecycle wake/resume helper files not covered by PR #11917. Rewrites ticket/PR/AC/cycle/line-number archaeology in comments and JSDoc into durable intent across heartbeat locks, harness resume, revalidation sweep, all-agent-idle detection, expired-task sweep, and Windows batch spawn helpers.
Evidence: L1 static source-comment diagnostic plus the focused revalidationSweep unit spec. The changed file set has 48 diagnostic hits on current
origin/devbefore this batch; this batch removes the comment/JSDoc archaeology and intentionally preserves four runtime-output/template-string diagnostic lines inrevalidationSweep.mjsbecause changing those strings is behavior, not comment cleanup. The branch was rebased onto post-#11917devatbe340be02with no conflict.Deltas from ticket (if any)
This is a focused #11912 batch, not the full ai/ closeout. PR #11917 is merged; this branch is rebased on its merge commit and remains non-overlapping. Four source-text diagnostic lines remain in
revalidationSweep.mjsruntime strings/templates as explicit false positives for this comment-only scope.Test Evidence
git grep -c -E "ticket #|#[0-9]{4,}|\bAC[0-9]+\b|\bAC [0-9]+\b|Lane [A-Z]|cycle-[0-9]|PR #[0-9]+|:[0-9]+-[0-9]+" origin/dev -- <changed-files>-> 48 total hits before.rg -n "ticket #|#[0-9]{4,}|\bAC[0-9]+\b|\bAC [0-9]+\b|Lane [A-Z]|cycle-[0-9]|PR #[0-9]+|:[0-9]+-[0-9]+" <changed-files>-> 4 remaining false-positive lines, all runtime strings/templates inai/scripts/lifecycle/revalidationSweep.mjspreserved to avoid behavior change.npm run test-unit -- test/playwright/unit/ai/scripts/lifecycle/revalidationSweep.spec.mjs-> 23 passed before rebase; patch content unchanged by rebase.git diff --check origin/dev...HEAD-> clean after rebase.be340be02; GitHub CI is re-running on the refreshed base.No broad runtime suite was run locally; this is comment/JSDoc cleanup with no intended behavior changes.
Post-Merge Validation
Commits
be340be02-docs(ai): clean lifecycle wake comment archaeology (#11912)