Skip to content

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.

BLOCKED wave 1 · p2 · implementation profile · parallel safe

Part of ci-critical-path — The critical path from a change to its verdict, and from a merge to its verified deploy, runs under a minute warm.

Blocked. This issue cannot start until I4154 is done. The status is derived from that, not declared.

Objective

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.

Why

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.

Current state

BOARD and PAGE are statics keyed without the Context's identity.

Desired state

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.

Scope

  • apps/majordomus-cli/src/http/follow.rs
  • .ai/repo/project/issues/I4155.yaml

Dependencies

Acceptance criteria

  • Two Contexts read through the shared caches in one process each get their own snapshot and cursor

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib http::follow::tests

Evidence required

  • suite

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

A key that is too narrow defeats the share the caches exist for; key by the Context, not by the caller.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I4155.yaml. Read it back with majordomus plan show I4155.

Searches the titles and descriptions of every page this site publishes.