I3218 — The execution ledger is a source of the monitor, so a run started anywhere is followed everywhere
Add executions to the monitor's sources with a cursor part of their own: a store-wide publish counter in the execution store paired with the server's epoch, so majordomus monitor and monitor.read carry execution starts, ends and refusals and an expired cursor is answered as the other sources answer one; the event vocabulary is the execution model's, not a new one.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3218 bude přijato.
Cíl
Add executions to the monitor's sources with a cursor part of their own: a store-wide publish counter in the execution store paired with the server's epoch, so majordomus monitor and monitor.read carry execution starts, ends and refusals and an expired cursor is answered as the other sources answer one; the event vocabulary is the execution model's, not a new one.
Proč
docs/MONITOR.md: 'Executions (executions.events) are not a source yet.' On 2026-10-18 ChatGPT read master as '/ui polls, monitor --follow polls, executions are not in monitor'; the last part is verified. Proposed in ADR 0216 (Every live surface follows one channel with named follow streams, and nothing polls where a stream exists) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c227#2, chatgpt-majordomus:c294#7.
Aktuální stav
Verified on master 707a04c7ce8: apps/majordomus-cli/src/monitor has executor.rs (the landing executor's trail), github.rs and mesh.rs; the execution store keeps per-execution dense sequences in server memory and feeds only /events; docs/MONITOR.md says executions are not a source yet.
Cílový stav
monitor::executions is a source whose health is MonitorSourceHealth's (ok, absent, error, skipped), and the fold suppresses heartbeat noise as for the other sources.
Rozsah
- apps/majordomus-cli/src/monitor
- docs/MONITOR.md
Mimo rozsah
- Persisting executions beyond the store's retention
- A new event type vocabulary
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- An execution started through the CLI appears as a monitor signal after the cursor the caller held
- A page after that cursor repeats nothing
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib monitor::
- majordomus monitor --sources mesh,executor --since 30m
Požadované důkazy
- case_an_execution_reaches_the_monitor
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á.
Č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/I3218.yaml. Read it back with majordomus plan show I3218.