I4155 — The follower's shared board and page caches are keyed by the repository they read
The process-wide BOARD and PAGE caches in apps/majordomus-cli/src/http/follow.rs carry the Context they were read for in their key, so two Contexts in one process never answer each other's snapshot or latest cursor.
BLOKOVÁNO vlna 1 · p2 · implementační profil · bezpečné paralelně
Blocked. This issue cannot start until I4154 is done. The status is derived from that, not declared.
Cíl
The process-wide BOARD and PAGE caches in apps/majordomus-cli/src/http/follow.rs carry the Context they were read for in their key, so two Contexts in one process never answer each other's snapshot or latest cursor.
Proč
Found while diagnosing I4154: the keys are \"repository\" and \"latest|<sources>|<reader>|\", which do not identify the Context. Tests in one process run in parallel, and one can be served another repository's snapshot or cursor when it was read at the same or a higher generation within 30 s. A production server serves one Context today, so this is a test-isolation hazard first.
Aktuální stav
BOARD and PAGE are statics keyed without the Context's identity.
Cílový stav
Each key names the Context (its repository root or identity), and a case or unit test reads two Contexts in one process and gets each its own answer.
Rozsah
- apps/majordomus-cli/src/http/follow.rs
- .ai/repo/project/issues/I4155.yaml
Závislosti
Kritéria přijetí
- Two Contexts read through the shared caches in one process each get their own snapshot and cursor
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib http::follow::tests
Požadované důkazy
- sada testů
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Riziko
A key that is too narrow defeats the share the caches exist for; key by the Context, not by the caller.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I4155.yaml. Read it back with majordomus plan show I4155.