everything-is-followed-in-one-stream — Vše, co se v repozitáři děje, se sleduje v jednom proudu
majordomus monitor je jediný stream: typovaný feed signálů z každého zdroje stránkovaný kurzorem, s zahlazeným šumem tepu a s tím, co je adresováno čtenáři, označeným a uvedeným první, poskytovaný běžícím serverem přes HTTP, MCP a příkazovou řádku (s --follow), živě zobrazený v Cockpitu, vypsaný při každém startu relace, jmenovaný bootstrapem providera, zdokumentovaný a vydaný.
AKTIVNÍ 3 of 8 issues done
- připraveno
- 3
- blokováno
- 2
- aktivní
- 0
- verify
- 0
- hotovo
- 3
- zrušeno
- 0
Problém
Worker, který chce vědět, co se kolem něj děje, čte šest povrchů se šesti kurzory: žurnál meshe (kde jsou asi 95 % událostí totožné opětovné promítnutí relací při každém heartbeatu), nástěnku, stopu exekutoru, exekuce a pull requesty a kontroly GitHubu přes gh. Nic je nespojuje, nic neříká, která z událostí je adresována čtenáři, a každá relace, která to potřebuje, si ručně napíše smyčku jq nad majordomus mesh events a gh pr list. Relace celé hodiny přehlížejí revize a předávky, které jim byly adresovány, protože nic, co čtou, jim je neukáže.
Výsledek
majordomus monitor je jediný stream: typovaný feed signálů z každého zdroje stránkovaný kurzorem, s zahlazeným šumem tepu a s tím, co je adresováno čtenáři, označeným a uvedeným první, poskytovaný běžícím serverem přes HTTP, MCP a příkazovou řádku (s --follow), živě zobrazený v Cockpitu, vypsaný při každém startu relace, jmenovaný bootstrapem providera, zdokumentovaný a vydaný.
Aktuální stav
Žádný příkaz, modul ani schopnost monitor neexistuje (origin/master 890e112d04, 0.20.0). mesh.events, peers, integration.events a executions.events každá odpovídá vlastní stránkou; CLI vykresluje události meshe jednu po druhé, nefiltrované.
Cílový stav
Jedna čtecí schopnost, monitor, odpovídá stránkou signálů za neprůhledným kurzorem napříč meshem, nástěnkou, exekutorem a exekucemi (a GitHubem, je-li dosažitelný, jinak jako hlášený stav zdroje); majordomus monitor --follow ji streamuje; /cockpit/monitor ji ukazuje živě; úvodní briefing a majordomus context říkají, co se stalo od posledního pohledu.
Rozsah
- .ai/repo/adrs
- .ai/repo/project
- .ai/repo/providers
- apps/majordomus-cli/src/monitor
- apps/majordomus-cli/src/capability/builtin
- apps/majordomus-cli/src/commands
- apps/majordomus-cli/src/cli
- apps/majordomus-cli/src/cockpit
- apps/majordomus-cli/tests
- lib
- dokumentace
- web
- test/cases
- README.md
- AGENTS.md
- CLAUDE.md
Mimo rozsah
- Zapisovat cokoli: monitor čte; jednání na základě signálu zůstává schopnosti, která úkon vlastní
- Druhý žurnál nebo úložiště událostí: každý signál se odvozuje ze zdroje, který ho již zaznamenává
- Push notifikace do systémů mimo repozitář (Slack, e-mail); notifikátor se k proudu přihlásí později
Kritéria přijetí
- Jedna schopnost odpoví stránkou signálů z mesh, nástěnky, trailu executoru a provádění po neprůhledném kurzoru a další stránka po kurzoru odpovědi nic neopakuje
- Událost session_opened, která jen znovu promítá nezměněnou relaci, se počítá jako potlačená a nikdy se nezobrazí; nová relace nebo změněný záměr se zobrazí
- Signály adresované čtenáři jsou označeny for_you a v briefingu uvedeny první
- majordomus monitor --follow streamuje nové signály a --count/--until nechají skript na jeden počkat a skončit
- Nedosažitelný zdroj se hlásí s důvodem, nikdy se neodpovídá jako prázdný
- Cockpit ukazuje stream živě a úvodní briefing a majordomus context vypisují, co se stalo od posledního pohledu
- Bootstrap poskytovatele jmenuje příkaz; docs/MONITOR.md, README a článek na blogu jej popisují; release jej nese
Validace
- bin/majordomus plan validate
- cargo test --lib monitor
- cargo test --test monitor_stream
- MJ_TEST_JOBS=4 bash test/run.sh 1050 1051 1052 1053 1054
- majordomus generate --check
Požadované důkazy
- monitor_capability
- fold_suppresses_reprojection
- follow_terminates
- absent_source_reported
- cockpit_monitor_page
- session_start_monitor_line
- released_and_deployed
Rizika
- Proud, který ukazuje všechno, je stejně nepřečtený jako šest, které ukazují každý to své: skládání a for_you jsou funkce, ne spojení.
- GitHub je síť: nikdy nesmí zpomalit lokální stránku ani způsobit, aby chybějící síť vypadala jako klidný repozitář.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I2400 | HOTOVO | 0 | — | Model signálů a fold spojují každý zdroj, který server už zaznamenává |
| I2401 | HOTOVO | 1 | I2400 | monitor je jedna čtecí schopnost se třemi projekcemi |
| I2402 | PŘIPRAVENO | 2 | I2401 | majordomus monitor sleduje stream z terminálu i ze skriptu |
| I2403 | HOTOVO | 1 | I2400 | Pull requesty, kontroly a nasazení se dostanou do streamu, když je GitHub dostupný |
| I2404 | PŘIPRAVENO | 2 | I2401 | Cockpit ukazuje stream živě |
| I2405 | PŘIPRAVENO | 2 | I2401 | Každá relace se dozví, co se stalo od jejího posledního pohledu |
| I2406 | BLOKOVÁNO | 3 | I2402, I2404 | Stream je zdokumentován tam, kde ho čtenář hledá |
| I2407 | BLOKOVÁNO | 4 | I2402, I2404, I2405, I2406 | Monitor je vydán a nasazen |
Graf
flowchart LR
I2400["I2400<br/>A signal model and a fold join every source the server already records"]:::done
I2401["I2401<br/>monitor is one read capability with three projections"]:::done
I2402["I2402<br/>majordomus monitor follows the stream from a terminal and a script"]:::ready
I2403["I2403<br/>Pull requests, checks and deploys reach the stream when GitHub is reachable"]:::done
I2404["I2404<br/>The Cockpit shows the stream live"]:::ready
I2405["I2405<br/>Every session is told what happened since its last look"]:::ready
I2406["I2406<br/>The stream is documented where a reader looks"]:::blocked
I2407["I2407<br/>The monitor is released and deployed"]:::blocked
I2400 --> I2401
I2400 --> I2403
I2401 --> I2402
I2401 --> I2404
I2401 --> I2405
I2402 --> I2406
I2402 --> I2407
I2404 --> I2406
I2404 --> I2407
I2405 --> I2407
I2406 --> I2407
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazováno z tohoto diagramu (8)
- I2400 Model signálů a fold spojují každý zdroj, který server už zaznamenává
- I2401 monitor je jedna čtecí schopnost se třemi projekcemi
- I2402 majordomus monitor sleduje stream z terminálu i ze skriptu
- I2403 Pull requesty, kontroly a nasazení se dostanou do streamu, když je GitHub dosažitelný
- I2404 Cockpit ukazuje stream živě
- I2405 Každé relaci se řekne, co se stalo od jejího posledního pohledu
- I2406 Stream je zdokumentován tam, kde ho čtenář hledá
- I2407 Monitor je vydán a nasazen
Kanonický záznam: .ai/repo/project/milestones/everything-is-followed-in-one-stream.yaml. Přečtěte ho zpět pomocí majordomus plan show everything-is-followed-in-one-stream.