Repository navigation
fix(methodology): query_methodology lists hot memories under the domain remember writes (#721, slice 9) - #930
Conversation
…in remember writes (#721, slice 9) query_methodology handed the cognitive-profile id returned by detect_domain to get_memories_for_domain. remember without an explicit domain writes under resolve_cwd(cwd) and, outside a known repository, under the detected profile resolved as a hint (remember._resolve_domain). Whenever the profile id differs from that scope (a legacy profile id inside a known repository, or `cortex-cowork` outside its checkout), session start listed the hot memories of a scope no write used. Read the scope remember would write for the same cwd. detect_gaps was checked and needs no change: _temporal_gaps passes only domains read back from the store (get_domain_entity_counts), and the caller's `domain` reaches only the profile blind-spot detector. Refs #721 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_018kyZYqpLwKt5qrkU1aMWnb
Codex Review Summary: ✅ CompletedThis 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. |
|
Claude finished @cdeust's task in 1m 55s —— View job Review 1/3 of PR #930: no Blockers
The review found no Blockers and approves the PR. It lists three notes with no action needed before merge:
I did not run the tests, ruff or the craftsmanship gate here because they needed approval. The CI Verdict: approve |
Review 1/3 — PR #930 (slice 9 of #721)I ran five reviews (code quality, security, performance, tests, docs). None found a Blocker. In a known repository, Notes, no action before merge
Not verified by me: local tests, ruff and the craftsmanship gate (no permission to run them here). The CI Verdict: approve |
…he domain remember writes (#721, slice 9) Check `unit`, run 42347464717 (job 128328248724): the mutation gate kept two surviving mutants of _memory_scope, `if (cwd) or True` and `if (profile_domain) or True`. Both are equivalent because the guards were redundant: resolve_cwd("") and resolve_domain("") already return "". Drop the guards (`resolve_cwd(cwd) or resolve_hint(profile_domain)`), document the no-cwd case, and cover an empty cwd and an absent profile. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_018kyZYqpLwKt5qrkU1aMWnb
|
Claude finished @cdeust's task in 1m 39s —— View job Review 2/3 of PR #930: no Blockers
The fixup shortens The review lists three notes, with no action needed before merge:
I did not run the tests, ruff or the craftsmanship gate here. Verdict: approve |
|
CI autopilot :
Generated by Claude Code |
Review 2/3 — PR #930 (slice 9 of #721)Review 1 found no Blockers. This review covers only
Notes, no action before merge
Not verified by me: local tests, ruff and the craftsmanship gate. Verdict: approve |
Summary
Tranche 9 de #721 (
Refs #721, ne ferme pas l'issue).query_methodologypassait àget_memories_for_domainl'id de profil cognitif renvoyé pardetect_domain. Orremembersans domaine explicite écrit sousresolve_cwd(cwd)et, hors d'un dépôt connu, sous le profil détecté résolu comme indice (remember._resolve_domain). Dès que l'id de profil diffère de ce scope (id de profil hérité dans un dépôt connu, oucortex-coworkhors de son checkout), le démarrage de session listait les mémoires chaudes d'un scope qu'aucune écriture n'utilise. Cause racine : un id de profil était utilisé comme scope mémoire. Correctif :_memory_scope(cwd, profile_domain)lit le scope querememberécrirait pour le mêmecwd.detect_gapsa été vérifié et ne change pas :_temporal_gapsne passe que des domaines relus dans le store (get_domain_entity_counts), et ledomainde l'appelant ne va qu'au détecteur d'angles morts du profil.Refs #721
Type of change
Test plan
tests_py/handlers/test_query_methodology_domain_scope.py(nouveau, 6 tests, registre de dépôts reconstruit depuis de vrais répertoires soustmp_path, handler public) : 6 passed avec le correctif ; 5 failed sans le correctif (le seul qui passe est le cas où l'id de profil est déjà le canonique).pytest tests_py/handlers: 1922 passed, 81 skipped (PostgreSQL absent de la session).ruff check/ruff format --check(ruff 0.17.3, version deuv.lock) sur les fichiers modifiés : OK.python scripts/check_craftsmanship.py: OK.torchn'est pas téléchargeable dans cette session).Audit notes
directory, pas par un id de profil.resolve_domain(indice) reproduit exactement l'écriture deremember; la collision par sous-chaîne de ce repli relève de la décision propriétaire déjà listée sur fix: avoid silently remapping explicit domain identities through substring collisions #721 (prioritédirectory>domaindansremember).Breaking changes
Aucun.
Reviewer checklist
Generated by Claude Code