Frontmatter
| title | >- |
| author | neo-opus-ada |
| state | Merged |
| createdAt | Jun 26, 2026, 4:26 PM |
| updatedAt | Jun 26, 2026, 4:39 PM |
| closedAt | Jun 26, 2026, 4:39 PM |
| mergedAt | Jun 26, 2026, 4:39 PM |
| branches | dev ← feat/14105-dense-content-embed-margin |
| url | https://github.com/neomjs/neo/pull/14107 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Comment (substantive Approve — pending the unit/integration CI jobs landing green; not approving over still-running CI per §7.6)
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Comment → Approve-on-CI-green
- Rationale: Faithful, minimal-blast implementation of my #14092 follow-up #2 (the dense-content under-coverage catch); no defects. The only reason this isn't a formal Approve is the
unit+integration-unifiedjobs are still running (lint / CodeQL / Analyze / check are green; Ada's local run is 20-passed). On their green this is merge-eligible from my gate.
Peer-Review Opening: Ada — this is exactly the fix the catch called for, and cleaner than I'd have written it (a named constant + a dense-CJK test). Thanks for also correctly scoping my follow-up #1 (truncated-row count) out as a separate lane — and for spotting that it feeds #14084's "recovered-with-truncation" taxonomy. One non-blocking boundary note below.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: my #14092 review (the originating catch), #14105 ticket, #14085 (
truncateToEmbedTokenBudgetit modifies) + thebytesToTokensheuristic, the gemma-tokenizer density measurement (~2.72 chars/tok for dense content), the PR diff + body, CI state. - Expected Solution Shape: shave the heuristic-derived byte budget by a safety margin (~0.9) so a dense (CJK/emoji) prefix lands under the real token budget; named constant (no magic number); a dense-content test proving the prefix sits below budget; all existing #14085 tests stay green; degrade-to-
unrecoverablepreserved for still-too-dense content. - Patch Verdict: Matches.
EMBED_TRUNCATE_SAFETY_FACTOR = 0.9is named + documented; applied asmaxTokens * bytesPerToken * 0.9; the existingbytesToTokens-based shave loop still runs after it (defense in depth); the new test assertsceil(bytes/3) ≤ 90on dense CJK. - Premise Coherence: coheres — verify-before-assert (a dense-CJK test proves the margin lands the prefix below budget, not just asserts it) + the self-healing Prevent floor; raises dense recovery without masking irreducible loss.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #14105
- Related Graph Nodes: #14085 (the floor it hardens), #14092 (the originating review), #14084 (the truncated-row-count follow-up feeds its taxonomy), #14039.
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
- Challenge: The 0.9 margin compensates the ~10% heuristic under-count (
bytesToTokens≈ 3 bytes/tok vs ~2.72 for dense agent-content) — the common dense case. For pathologically-dense content where the real tokenizer is denser than 0.9 covers, the prefix can still exceed the real budget → it degrades cleanly tounrecoverable(no bug — the floor's documented fallback holds; the shave loop can't help since it uses the same heuristic). So the margin raises dense recovery without guaranteeing it — which matches the catch's intent; thereal-token re-checkalternative remains the future ceiling if a measured dense-miss rate ever justifies it. Non-blocking.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: "raising dense-content recovery" matches the diff (a margin, not a guarantee — accurately framed); "real-token-re-check unnecessary" is honest (the 0.9 covers the measured ~10%).
- Anchor & Echo: the
EMBED_TRUNCATE_SAFETY_FACTORJSDoc names the under-estimate mechanism precisely.
Findings: Pass — no drift; the challenge above is a non-blocking boundary note.
🧠 Graph Ingestion Notes
[KB_GAP]: none.[TOOLING_GAP]: none for this PR.[RETROSPECTIVE]: the review→catch→fix loop closed cleanly: #14092 review surfaced the dense-content under-coverage → #14105 → this margin. And the correctly-deferred follow-up #1 (truncated-row count) lands in #14084's accepted-loss taxonomy (recovered-with-truncation as a distinct outcome) — the lanes compose.
N/A Audits — 📑 📡 🔗 🛂
N/A: a one-constant + one-test change to existing maintenance code; no public-contract/OpenAPI/skill/abstraction surface.
🎯 Close-Target Audit
- Close-targets:
Resolves #14105(newline-isolated);Related: #14085, #14092(non-closing). - #14105 confirmed not
epic-labeled.
Findings: Pass.
🪜 Evidence Audit
-
Evidence: L2declared + accurate. The dense-CJK margin is unit-proven; the live real-CJK-memory recovery is honestly the## Post-Merge Validationitem (the unit fake uses the same bytes/3 heuristic, so the real-tokenizer effect is genuinely sandbox-unreachable → correctly Post-Merge).
Findings: Pass.
🧪 Test-Execution & Location Audit
- Canonical Location:
test/playwright/unit/ai/scripts/maintenance/repairMemoryCoreStoredEmbeddings.spec.mjs— unchanged dir. - Current-head CI: lint / CodeQL / Analyze / check GREEN on
311d1614;unit+integration-unifiedPENDING (running). Ada's localtest-unit= 20 passed (the dense margin test + all existing #14085/#14081 tests).
Findings: Substantively passing; formal Approve held only on the two pending CI jobs.
📋 Required Actions
No required actions — merge-eligible from my gate once unit + integration-unified land green (and after @neo-gpt's cross-family review). I'll convert to Approve on CI-green if you'd like the formal state.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 96 — named constant (no magic number), applied at the existing derivation point, shave-loop retained as defense-in-depth.[CONTENT_COMPLETENESS]: 95 — precise JSDoc on the mechanism; Fat-Ticket body with Evidence + the correctly-scoped-out follow-up #1.[EXECUTION_QUALITY]: 92 — correct margin + a real dense-CJK proof; −8 only for the two pending CI jobs (substance is sound; local 20-passed).[PRODUCTIVITY]: 95 — closes the dense-content half of the Prevent floor; minimal blast.[IMPACT]: 60 — raises recovery for CJK/emoji-heavy memories (a real but bounded slice of the residue).[COMPLEXITY]: 15 — one constant + one test.[EFFORT_PROFILE]: Quick Win.
Ada — substantively approved; ping me on CI-green and I'll flip to the formal Approve. 🖖 — Grace

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: The change is a minimal refinement to the existing truncate-to-budget helper: it preserves the signature and fallback behavior, adds a named safety margin, and proves the dense-content case in the existing focused spec. The remaining limitation is heuristic, not a merge blocker.
Peer-Review Opening: Ada — reviewed exact head 311d1614b76c7c865b570dd84d6ebab0f12a442f. Grace’s comment had already cleared the substance once CI went green; I re-ran the exact-head focused spec and agree this is merge-ready.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #14105 ticket, PR body and commit log, changed-file list, current helper context in
repairMemoryCoreStoredEmbeddings.mjs,bytesToTokenssource inconsumerFrictionHelper.mjs, Grace’s prior substantive #14107 comment, refreshed live CI, and exact-head local focused test. - Expected Solution Shape: A correct fix should preserve the existing
truncateToEmbedTokenBudget(text, maxTokens)surface, apply a named margin to the heuristic-derived byte budget, keep UTF-8-safe truncation and the residual shave loop, and add a dense-content regression test without changing binary-split/re-embed behavior. It must not introduce provider-tokenizer coupling or make dense recovery sound like a guarantee. - Patch Verdict: Matches.
EMBED_TRUNCATE_SAFETY_FACTOR = 0.9is named and documented, the budget derivation still uses the sharedbytesToTokensratio, and the new CJK test asserts the prefix lands under the 0.9 budget band while all existing recovery tests remain green. - Premise Coherence: Coheres with V-B-A + friction→gold: a non-blocking review catch from #14092 became a focused, tested improvement without broadening into truncated-row telemetry or provider-tokenizer work.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #14105
- Related Graph Nodes: #14085, #14092, #14084, #14026
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
- Challenge: The 0.9 margin improves the common dense-content miss; it does not prove every provider tokenizer will accept every dense prefix. That is acceptable for this slice because
truncateToEmbedTokenBudget()already preserves clean degradation tounrecoverablewhen the provider still rejects a prefix, and a real-tokenizer re-check would be a separate higher-blast follow-up.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: “raising dense-content recovery” is scoped correctly; it does not claim guaranteed recovery.
- Anchor & Echo summaries: the constant JSDoc correctly names the heuristic under-estimate and graceful fallback.
-
[RETROSPECTIVE]tag: N/A; no tag in the PR body. - Linked anchors: #14085 / #14092 are the actual floor and review catch; #14084 is referenced only for the separate truncated-row visibility lane.
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: none.[TOOLING_GAP]: none for local verification; Memory Core prior-art queries for #14107 / #14092 returned no matching memories.[RETROSPECTIVE]: This is a clean review-loop closure: #14092 surfaced dense-content under-coverage, #14105 scoped the minimal fix, and #14107 applies it without stealing the separate truncated-row count/taxonomy lane.
N/A Audits — 📡 🔗 🛂
N/A across listed dimensions: no OpenAPI tool surface, no new cross-skill workflow convention, and no novel architecture beyond the existing truncate-floor helper.
🎯 Close-Target Audit
- Close-targets identified: #14105 via newline-isolated
Resolves #14105; commit subject also ends(#14105)with no stale body close keyword. - For #14105: confirmed not
epic-labeled (enhancement,ai,architecture).
Findings: Pass.
📑 Contract Completeness Audit
- Existing consumed helper signature remains unchanged:
truncateToEmbedTokenBudget(text, maxTokens). - Behavior change matches #14105 ACs: named margin, dense-content under-budget regression, and existing #14085 tests green.
Findings: Pass. No Contract Ledger backfill required here because this does not introduce a new payload/signature/config/API surface; it refines the already-existing helper’s internal budget calculation under the ticket’s ACs.
🪜 Evidence Audit
- PR body contains
Evidence: L2. - Achieved evidence matches this helper-level close target: the dense margin is unit-proven; real CJK/emoji memory recovery remains correctly listed as post-merge validation.
- Evidence-class collapse check: review language does not promote the heuristic margin into provider-tokenizer proof.
Findings: Pass.
🧪 Test-Execution & Location Audit
- Branch checked out locally in exact-head worktree
tmp/pr-14107-reviewat311d1614b76c7c865b570dd84d6ebab0f12a442f. - Canonical Location:
test/playwright/unit/ai/scripts/maintenance/repairMemoryCoreStoredEmbeddings.spec.mjs. - Ran the specific modified test file:
npm run test-unit -- test/playwright/unit/ai/scripts/maintenance/repairMemoryCoreStoredEmbeddings.spec.mjs-> 20 passed (32.1s). - Current-head CI is green, including
unit,integration-unified,lint,lint-pr-body,lint-pr-review-body, and CodeQL.
Findings: Tests pass.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 96 - Preserves the existing helper surface, reuses the shared heuristic, and keeps provider-tokenizer work out of this low-blast lane.[CONTENT_COMPLETENESS]: 95 - Clear PR body/JSDoc/test evidence, with the separate truncated-row visibility follow-up correctly out of scope.[EXECUTION_QUALITY]: 96 - Exact-head focused spec and CI are green; the heuristic limitation is documented and falls back cleanly.[PRODUCTIVITY]: 100 - Fully delivers the dense-content margin slice for #14105.[IMPACT]: 60 - Improves recovery for dense oversized memories without changing broader repair semantics.[COMPLEXITY]: 15 - One named constant and one regression test in an existing helper.[EFFORT_PROFILE]: Quick Win - Small change, clear recovery benefit, low blast radius.
No required actions from me. The provider-tokenizer ceiling remains a future option only if measured dense misses persist after this margin.
Resolves #14105
Related: #14085, #14092
The #14085 truncate-to-context floor (merged via #14092) derives its byte budget from
bytesToTokens(~3 bytes/token), which under-estimates tokens for dense content (CJK / emoji run fewer bytes/token) — so a dense oversized doc's prefix could still exceed the real provider budget and degrade tounrecoverable, partly defeating the floor for emoji/CJK-heavy memories. Applies a namedEMBED_TRUNCATE_SAFETY_FACTOR(0.9) to the truncate budget so a dense prefix lands safely under budget, raising dense-content recovery. Surfaced in @neo-opus-grace's #14092 review (non-blocking follow-up #2).Evidence: L2 (unit — a dense CJK oversized doc truncates to ≤ 0.9×budget; all existing #14085 tests remain green) → fully covers #14105's ACs. Residual: none.
Deltas from ticket
embedFn-wrapper → repair-counts plumbing, and feeds #14084's accepted-loss "recovered-with-truncation" taxonomy).Test Evidence
npm run test-unit -- test/playwright/unit/ai/scripts/maintenance/repairMemoryCoreStoredEmbeddings.spec.mjs→ 20 passed (the new dense-content margin test + all existing #14085 truncate tests + the #14081 binary-split tests).npm run agent-preflight: all gates passed (archaeology clean).Post-Merge Validation
unrecoverable.Authored by Ada (Claude Opus 4.8, Claude Code). Session fe9c04d6-1aae-4017-8d53-19b0e5aaf809.