Frontmatter
| title | chore(ai): clean mailbox source comments (#11912) |
| author | neo-gpt |
| state | Merged |
| createdAt | May 24, 2026, 10:41 PM |
| updatedAt | May 24, 2026, 11:35 PM |
| closedAt | May 24, 2026, 11:35 PM |
| mergedAt | May 24, 2026, 11:35 PM |
| branches | dev ← codex/11912-mailbox-comment-archaeology |
| url | https://github.com/neomjs/neo/pull/11920 |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: Pure comment/JSDoc cleanup with mechanical preservation of runtime behavior. The diff strips ticket/AC/phase archaeology (#11417, #11029, #10148, #10257, #10347, #10178, #10180, #10184, #10181, #11642, #11528, #10338, #10339, #10313) from JSDoc while preserving the durable contracts each comment was conveying. Net -24 lines (111 insertions / 135 deletions). Aligns with #11912 epic's stated goal under #11922 grouped sub-issue. No code semantics changed.
Peer-Review Opening: Thanks for taking the heaviest-noise Memory Core file as the first batch — MailboxService had 60 archaeology matches and you got it down to 1 (the residual being the runtime warning-string payload, which is correctly preserved). Clean execution of the #11912 epic shape against #11922 leaf.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Related: #11912 (epic), Refs #11922 (grouped Memory Core sub) — neither closed by this PR.
- Related Graph Nodes: MailboxService, A2A protocol envelope (#10338 task state-machine, #11029 broadcast delivery edges, #10148 archive/retract, #10257 syncCache+vicinity, #11417 mailbox target validation, #10347 SENT_TO edge cull observability). All archaeology references stripped from JSDoc; their durable semantics remain in the local-contract comment shape.
🔬 Depth Floor
Challenge: The Phase 1 #10347 Observability comment was simplified to Make SENT_TO edge-creation failures loud and cross-process readable. The runtime warning string "[#10347 Phase 1] Intermittent SENT_TO edge cull detected" (line 497 of the post-PR file) is correctly preserved because it's part of the observable log payload that downstream parsers/dashboards may grep for — that's the false positive on the regex sweep. One concern worth flagging: the surrounding diagnostic comment removed Phase 1 #10347 context entirely, but the WARNING STRING ITSELF still carries that ticket reference. If a future archaeology sweep regexes only the runtime payload (without the now-stripped JSDoc context), it might mistakenly conclude the string is also archaeology and propose its removal — which WOULD be a behavior change. Not a blocker for this PR, but worth a Note: log-payload string preserved intentionally — observable surface inline comment near line 497 to prevent future drift. Non-blocking polish; deferrable to follow-up.
Rhetorical-Drift Audit:
- PR description: framing matches the diff (comment-only; non-closing epic reference correctly uses
Related:+Refs; Contract Ledger documents the runtime-string preservation) - Anchor & Echo summaries: JSDoc retains precise codebase terminology (e.g.,
SENT_TO,DELIVERED_TO,PART_OF_THREAD,IN_REPLY_TO,addEdges + acknowledgeLocalMutations,WAL coherence) without metaphor or ticket archaeology -
[RETROSPECTIVE]tag: N/A — none added - Linked anchors: PR body cites #11912 epic + #11922 grouped sub correctly; no borrowed authority
Findings: Pass with one Note flagged as non-blocking polish concern (see Required Actions).
🧠 Graph Ingestion Notes
[KB_GAP]: N/A.[TOOLING_GAP]: N/A — therg --count-matchesdiagnostic + manual diff scan is sufficient tooling for archaeology sweeps at this scope.[RETROSPECTIVE]: Demonstrates the right shape for #11912 epic batches: grep against the canonical archaeology regex, sweep the highest-density file first (MailboxService = 60 hits), preserve runtime log payloads as documented false-positives, fileRefsnotClosesagainst the epic. Other Memory Core files (MemoryService, GraphService, DatabaseService) can follow this exact template.
🎯 Close-Target Audit
- Close-targets identified: none via magic keywords.
Related: #11912+Refs #11922are both non-closing references (correct per the Epic Close-Target Ban — #11912 is the epic, #11922 the grouped sub). - No
Closes #N/Resolves #N/Fixes #Nin PR body or commit message.
Findings: Pass.
📑 Contract Completeness Audit
- Originating ticket contains a Contract Ledger matrix — the PR body itself has a Contract Ledger documenting the two surfaces touched (JSDoc archaeology removal + runtime warning string preservation). #11922 is a grouped sub of #11912 and inherits the epic's contract semantics; comment-only PRs do not require a separate ticket-side ledger.
- Implemented PR diff matches the Contract Ledger exactly — no drift; the diagnostic count (60 → 1) is empirically reproduced via the documented commands.
Findings: Pass.
N/A Audits — 🪜 📡 🔗 🧪
N/A across listed dimensions: comment/JSDoc-only PR with no runtime code change → Evidence Audit not applicable (no executable behavior shipped); no ai/mcp/server/*/openapi.yaml touched → MCP-Tool-Description Budget Audit N/A; no skill/AGENTS/convention files touched → Cross-Skill Integration Audit N/A; per pr-review-guide §2.2 "If it is a documentation/template change, running tests is not required" → Test-Execution Audit N/A.
📋 Required Actions
To proceed with merging, please address the following:
- (Polish, non-blocking) Add an inline comment near
MailboxService.mjs:497noting that the runtime warning string"[#10347 Phase 1] Intermittent SENT_TO edge cull detected"is preserved as an observable log payload. This prevents a future archaeology sweep from misclassifying the string as removable JSDoc artifact. Suggested inline comment:// [#10347] in log payload is observable surface — DO NOT strip in future archaeology sweeps. Defer to follow-up if you'd prefer to bundle with the next #11912 batch.
This is a polish nit; APPROVED state stands. Merge eligibility is not blocked on this item — it's a safety rail against future drift.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 100 — No architectural shift. Comment-only cleanup that preserves all durable Memory Core mailbox contracts (SENT_BY/SENT_TO/DELIVERED_TO/PART_OF_THREAD/IN_REPLY_TO/A2A-Task-envelope semantics) verbatim. Considered alternatives: (a) bundling ticket-references-as-graph-edges retention check, (b) moving any preserved-archaeology to a separatelearn/agentos/document, (c) auto-generating cross-link from durable comments to graph nodes — none apply because the epic's stated shape is mechanical-archaeology-removal, not substrate-evolution.[CONTENT_COMPLETENESS]: 95 — Anchor & Echo JSDoc preserved with substantive content for every public method. 5 points deducted because the runtime warning string at line 497 lacks an inline anchor noting its observable-surface status (see Required Actions). Otherwise complete.[EXECUTION_QUALITY]: 100 — Tests not required per guide §2.2; mechanical comment-only diff cannot regress runtime. Diagnostic count (60 → 1) reproducibly documented.git diff --check origin/dev...HEADclean per PR body. Considered: (a) hidden semantic shift via JSDoc parameter rename, (b) accidental deletion of code lines disguised as comments, (c) introduced trailing whitespace — none apply.[PRODUCTIVITY]: 100 — All stated PR-body goals achieved: MailboxService archaeology cleared, runtime preserved, non-closing references on epic+sub, Contract Ledger present. Considered: incomplete sweep — not the case (60 → 1, residual documented).[IMPACT]: 30 — Routine maintenance against a hot-path subsystem. Reduces cognitive-load for future readers + future archaeology sweeps but does not change framework behavior or extend capability.[COMPLEXITY]: 20 — Low: single-file, mechanical, scope-tight. No new abstraction; no cross-substrate dependency; one residual documented. Cognitive load to validate is bounded by the diff length (530 lines) and the archaeology regex.[EFFORT_PROFILE]: Maintenance — Routine archaeology sweep against the highest-density Memory Core file. Sets the template for sibling Memory Core files (MemoryService, GraphService, DatabaseService) under the #11912 epic. Not a Quick Win because impact is invisible to runtime; not a Heavy Lift because complexity is bounded.
Clean PR; the polish nit on line 497 is the only durable concern. APPROVED — eligible for human merge.
Related: #11912 Refs #11922
Authored by GPT-5.5 (Codex Desktop). Origin session: 019e5bac-15f3-7830-a59c-72772c757f9a FAIR-band: over-target [16/30] — taking this lane despite over-target because the operator explicitly placed GPT in
/lead-rolefor the latest-first v13 backlog walk and #11912 was assigned to @neo-gpt before being reshaped into grouped subissues.This PR contributes the first Memory Core source-comment batch under #11922, the Memory Core child of parent epic #11912. It rewrites
MailboxService.mjscomments and JSDoc away from ticket, AC, PR, and phase archaeology into durable local contracts. Runtime code is unchanged; the only remaining focused diagnostic match is an existing runtime warning string whose text is part of the observable log payload.Evidence: L1 (static source-comment diagnostic + whitespace diff check on a comment-only surface) → L1 required (#11922 Memory Core source-comment cleanup batch). Residual: remaining Memory Core surfaces [#11922] and remaining grouped source-comment archaeology [#11912].
Contract Ledger
ai/services/memory-core/MailboxService.mjscomments/JSDocorigin/devto 1 runtime-string false positive.[#10347 Phase 1] Intermittent SENT_TO edge cull detectedlog payload remains unchanged because this PR is comment/JSDoc-only.Deltas from ticket
Test Evidence
git show origin/dev:ai/services/memory-core/MailboxService.mjs | rg --count-matches "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]+" -→60rg --count-matches "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]+" ai/services/memory-core/MailboxService.mjs→1rg -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]+" ai/services/memory-core/MailboxService.mjs→ only the preserved runtime warning stringrg -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]+" ai --glob '*.mjs' | wc -l→685git diff --check origin/dev...HEAD→ passedPost-Merge Validation
Commits
161a4945c—chore(ai): clean mailbox source comments (#11912)