Skip to content

I2400 — A signal model and a fold join every source the server already records

Add src/monitor: a Signal (cursor, at, source, kind, severity, actor, subject, summary, for_you), one reader per source (mesh journal, board, executor trail, executions) and the fold that drops unchanged session re-projections.

DONE wave 0 · p1 · implementation profile · runs alone

Part of everything-is-followed-in-one-stream — Everything that happens in the repository is followed in one stream.

Objective

Add src/monitor: a Signal (cursor, at, source, kind, severity, actor, subject, summary, for_you), one reader per source (mesh journal, board, executor trail, executions) and the fold that drops unchanged session re-projections.

Why

Each source answers its own page with its own cursor; 95% of mesh events are identical session_opened re-projections (954 of 1000 sampled 2026-10-10 21:05Z), so a reader of the journal reads noise.

Current state

No monitor module.

Desired state

src/monitor folds the four sources into ordered signals behind one opaque cursor, unit-tested per reader and for the fold.

Scope

  • apps/majordomus-cli/src/monitor
  • apps/majordomus-cli/src/lib.rs

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • A page after a cursor repeats no signal of the previous page
  • An unchanged session re-projection is suppressed and counted; a new session or a changed intent is a signal
  • A signal is for_you when its reviewer, handover target, claim conflict or text names the reader

Validation

  • cargo test --lib monitor

Evidence required

  • monitor_fold_unit_tests

Evidence

coverstypecommandresultat commit
monitor_fold_unit_teststestcargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --lib monitortest result: ok. 64 passed; 0 failed (run 2026-10-14 between 07:40Z and 07:58Z on master ce5959db59)ce5959d

Timeline

started
2026-10-14T08:02:46Z
verified
—
completed
2026-10-14T08:02:52Z

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/I2400.yaml. Read it back with majordomus plan show I2400.

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