every-session-joins-the-mesh — Každá relace LLM se při startu připojí k meshi Majordomus, který jí je představen jako práce
Každá relace LLM, která začne v repozitáři s povoleným meshem, je na meshi od svého prvního tahu, dozví se, kdo kde na kterém stroji pracuje a co na ni čeká, a úloha vytvořená mimo mesh je kontrolami repozitáře odmítnuta.
AKTIVNÍ 2 of 4 issues done
- připraveno
- 1
- blokováno
- 1
- aktivní
- 0
- verify
- 0
- hotovo
- 2
- zrušeno
- 0
Problém
Účast v mesh byla ponechána na workerovi: start vypsal jeden řádek o stavu (lib/capture.sh mj_capture_mesh_line), instrukce MCP initialize mesh nikdy nezmiňovaly (apps/majordomus-cli/src/mcp/protocol.rs), adaptér životního cyklu měl jen Claude Code (lib/capture.sh MJ_CAPTURE_LIFECYCLE), nic neukazovalo předávky ani revize čekající na tento stroj a žádná kontrola si nevšimla úlohy postavené mimo mesh. Průzkum z 2026-10-10 na master a804ae2045.
Výsledek
Každá relace LLM, která začne v repozitáři s povoleným meshem, je na meshi od svého prvního tahu, dozví se, kdo kde na kterém stroji pracuje a co na ni čeká, a úloha vytvořená mimo mesh je kontrolami repozitáře odmítnuta.
Aktuální stav
Částečně automatické: announcující klient MCP se promítne jako relace mesh s poradními nároky; vše ostatní je paměť workera.
Cílový stav
mesh.briefing při každém startu a MCP initialize, relace meshe a claim pro každou úlohu, hlídané pravidlo, projekce a Cockpit, článek.
Rozsah
- apps/majordomus-cli/src/mesh
- apps/majordomus-cli/src/mcp/protocol.rs
- lib/capture.sh
- bin/majordomus-cli
- lib/rust_bin.sh
- .ai/repo/prompts
- lib/derive.sh
- .ai/repo/rules/project
- .ai/repo/providers
- docs/MESH.md
- README.md
- site/content-src
Mimo rozsah
- Změna toho, o čem smí mesh rozhodovat: zůstává pozorováním, ne autoritou (ADR 0050).
Kritéria přijetí
- Briefing runtimu ukazuje živou relaci jiného stroje, jeho výlučné tvrzení, jeho předávku a jeho revizi
- Úvodní briefing checkoutu, jehož mesh běží, nese řádky briefingu
- Odpověď MCP initialize na serveru, na kterém běží mesh, jmenuje briefing a protokol
- Po majordomus start je rozsah úlohy živým claimem na každém propojeném runtime
- finish odmítne úlohu, jejíž rozsah nebyl nikdy nárokován, když byl mesh zapnut
- Start relace Codex nebo Gemini spouští tentýž životní cyklus, prokázaný proti skutečnému nástroji
- Projekce poskytovatelů a README jmenují mesh.briefing a protokol
- Článek publikuje sestavení webu a prochází site-check
- Klient, který spouští server MCP z checkoutu bez spustitelného souboru, který by mohl sestavit, je obsloužen nainstalovaným releasem a je mu to řečeno (ADR 0172)
- Holý start relace v checkoutu dostane prompt zahájení relace, takže worker vstoupí na nástěnku a ujme se aktivní úlohy, aniž by byl požádán (ADR 0172)
Validace
- bin/majordomus plan validate
- cargo test --lib mesh::briefing
- cargo test --test mesh_briefing
Požadované důkazy
- mesh_briefing_two_nodes_test
Rizika
- Start, který čeká na mesh, je pomalejší start pro všechny: briefing se čte v rámci rozpočtu a přeskočí se, nečeká se na něj.
Ú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 |
|---|---|---|---|---|
| I2288 | HOTOVO | 1 | I2734 | Úloha je na meshi, dokud se pracuje |
| I2289 | PŘIPRAVENO | 2 | I2288 | Úloha postavená mimo mesh se odmítne |
| I2734 | HOTOVO | 0 | — | Relace se připojí k meshi na začátku a opustí ho na konci |
| I2735 | BLOKOVÁNO | 3 | I2289 | Úprava, kterou nekryje žádné tvrzení, se odmítne |
Graf
flowchart LR
I2288["I2288<br/>A task is on the mesh while it works"]:::done
I2289["I2289<br/>A task built off the mesh is refused"]:::ready
I2734["I2734<br/>A session joins the mesh at its start and leaves it at its end"]:::done
I2735["I2735<br/>An edit no claim covers is refused"]:::blocked
I2288 --> I2289
I2289 --> I2735
I2734 --> I2288
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:2pxKanonický záznam: .ai/repo/project/milestones/every-session-joins-the-mesh.yaml. Přečtěte jej zpět pomocí majordomus plan show every-session-joins-the-mesh.