docs(plan): 260911 memory/recall sweep roadmap (L0) - #154
Conversation
Two independent xai/grok-4.6 reviewers returned FAIL. Folded: canonicalCwdSql must not take a bind placeholder; L1 does not write memory-search.ts (L2 then L3 do); the file-span excerpt must be built from splitLines().join to keep the no-CR assertion true; PowerShell switch parameters must not consume the next token, or Set-Content -Force still slips a memory write through; and dev is read, never written - the peer session restored it at a267b39 with a tree identical to 6aae1c9.
Round 2 of the audit returned FAIL on two leftovers: 030 still named L1 as a writer of memory-search.ts, and the wp8 title plus the work-phase map still said the loop restores dev. Both are corrected, the stale 6aae1c9 rebase base is replaced with a dev-moved-only cascade, and 000_plan now records that every layer doc was written against tree 904bbe0, reachable as both 6aae1c9 and a267b39.
001 captures three audit rounds, the five plus two blockers and how each was folded, so a later reader can see which parts of the roadmap were wrong before they were right. 002 measures this host: npm ci is required in a fresh worktree, then npm run build exits 0 and npm test exits 1 with exactly two environmental failures - hook-bench.test.mjs:17 spawning with cwd /tmp on Windows, and cxc map --help needing py. Both are recorded and deliberately not fixed here. Each layer's gate is its focused component suite green plus those same two failures and no third.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1ea80287ea
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const eq = FOLD_CWD_CASE ? `lower(${col}) = lower(?)` : `${col} = ?`; | ||
| const like = FOLD_CWD_CASE ? `lower(${col}) LIKE ? ESCAPE '\\'` : `${col} LIKE ? ESCAPE '\\'`; | ||
| const parts = [eq, like]; | ||
| params.push(cwd, `${escapeLike(FOLD_CWD_CASE ? cwd.toLowerCase() : cwd)}/%`); |
There was a problem hiding this comment.
Make the Linux prefix predicate case-sensitive
When the query cwd is /Repo and an indexed session has cwd /repo/child, SQLite's default ASCII-case-insensitive LIKE makes this second branch match even though FOLD_CWD_CASE is false; the scan path's case-sensitive cwdMatches rejects the same session. The prescribed implementation therefore breaks the promised index/scan parity and can leak results from a distinct case-sensitive Linux directory into --cwd-only; use a genuinely case-sensitive prefix comparison and add a case-differing child-path regression.
Useful? React with 👍 / 👎.
| 3. `npm test` exits 0. The existing names `recall intent: korean idioms trigger`, `recall intent: english idioms trigger`, `recall intent: neutral prompts and self-recalling prompts stay silent`, and `wp6 trigger idioms widen without catching ordinary instructions` still pass. | ||
| 4. Red-green: on the parent tip (this layer unpatched) the new fixture test fails on the first two asserts (`previous commit` / `기억해줘` still true) and on the three advertised misses. At this layer's tip the same test passes. A green build whose new test never ran red is not proven (`000_plan.md` verification contract). | ||
|
|
||
| This layer has no Windows-only reproduction. No `cxc receipt` is produced by the implementer; wp8 owns receipts. |
There was a problem hiding this comment.
Keep receipt generation in each implementation layer
This instruction tells the L5 implementer to omit its receipt and delegate it to wp8, but 000_plan.md:194-196 and 070_wp8_integration_stack_publish.md:120-125 explicitly require each layer to produce its own testReceiptPath and state that wp8 cannot do so. Following this layer-specific PRD leaves L5 uncertifiable and blocks final integration; remove this instruction and the identical wp7 instruction at line 563, and include cxc receipt test in each layer's verification steps.
Useful? React with 👍 / 👎.
Ten documents: the roadmap, the audit trail for three review rounds, the host verification baseline every later layer uses as its gate, one diff-level PRD per implementation layer, and the integration plan.
Stack (merge bottom-up)
codex/memory-recall-roadmapcodex/fix-recall-cwd-normalizationcodex/fix-memory-search-semanticscodex/fix-recall-cli-arg-hygienecodex/fix-chat-index-freshnesscodex/fix-recall-intent-regexcodex/fix-memory-write-gateYou are here: L0. Base is
dev. Review this PR's diff only — it is already scoped to this layer.Review focus
the roadmap and the audit trail. No production code.
Evidence
Every layer was planned to diff level before any code, audited by an independent
xai/grok-4.6reviewer, and implemented only after the audit's blockers were folded. Each new test was observed failing on the parent tip before it was shown passing; the per-layer receipt indevlog/_plan/260911_memory_recall_sweep/records the exact red output.Local gate:
npm run buildexit 0, andnpm testshowing exactly the two pre-existing environmental failures recorded in002_host_verification_baseline.md(hook-benchhardcodescwd: "/tmp", andcxc map --helpneedspy) and no third.Note on the target-branch check
Enforce PR target branchrequiresdev. Layers L1-L6 legitimately target the layer below, so that workflow will flag them. Do not retarget them todev— that would dissolve the stack. Merge bottom-up; each merge retargets the next child.