I1006 — Runtime čte graf přes registr, jako každé jiné čtení
Zpřístupnit graf běžícímu Cockpitu jako deklarovanou schopnost, aby z deklarace plynula jeho cesta, schéma, dokumentace i pokrytí měřením výkonu.
HOTOVO vlna 3 · p1 · profil implementation · bezpečné paralelně
Cíl
Zpřístupnit graf běžícímu Cockpitu jako deklarovanou schopnost, aby z deklarace plynula jeho cesta, schéma, dokumentace i pokrytí měřením výkonu.
Proč
Trasa přidaná ručně pro Cockpit by byla jediným endpointem chybějícím v OpenAPI, v referenci i v smoke sadě. Registr existuje právě proto, aby se to nestalo.
Aktuální stav
Cockpit se vykresluje v procesu. Žádná schopnost neposkytuje agregovaný graf.
Cílový stav
Jedna deklarovaná schopnost obsluhuje graf, zdokumentovaný a změřený jako ostatní, s běhovým stavem vrstveným nad definicemi místo smíchaného s nimi.
Rozsah
- apps/majordomus-cli/src/capability/builtin/graph.rs
Mimo rozsah
- Trasa registrovaná mimo registr schopností
- Běhový stav uložený ve stejné struktuře jako definice
Závislosti
Co na tom čeká
- I1008BLOKOVÁNO Obě projekce jsou prokazatelně tentýž model
- I1017PŘIPRAVENO Živý stav je překryv, který se degraduje na nic
Kritéria přijetí
- Operace je jedna deklarace schopnosti a objeví se v API, dokumentu OpenAPI, referenci a pokrytí měření výkonu bez druhé registrace
- Odpověď je typovaná a nese jen bezpečná pole
- Stav za běhu je překryv nad definicemi, v odpovědi rozlišitelný
- Test provádí operaci proti běžícímu serveru, ne proti mocku
Validace
- cargo test --workspace --all-features
- majordomus generate --check
Požadované důkazy
- capability_declared
- runtime_overlay
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| capability_declared | test | cargo test --lib -- graph:: && cargo test --test cockpit a_graph_page_lists_every_node_and_edge | 86 passed (graph:: včetně the_declaration_yields_the_projections_it_claims); test cockpitu 1 passed: GET /api/v1/graph?id=registry na běžícím serveru odpovídá 200 s typovaným grafem. graph.list a graph.get jsou jedna deklarace každá v capability/builtin/graph.rs a objevují se v /openapi.json (operationId graph.get, graph.list), docs/generated/capabilities.md, docs/generated/modules/graph.md a docs/generated/benchmarks.* | f075170 |
| runtime_overlay | test | cargo test --lib -- graph::tests::the_runtime_projection_is_the_static_one_with_an_overlay_beside_it graph::tests::the_graph_holds_definitions_and_the_overlay_holds_what_a_process_saw | ObservedGraph drží graph (bajt po bajtu odvozené definice) a runtime (překryv) jako samostatná pole; odstranění runtime dává statickou projekci. graph.get odpovídá pouze definicemi; stránka grafu v Cockpit (cockpit/pages.rs observed_now) vedle nich aplikuje překryv, takže stav za běhu je rozlišitelný v odpovědi, kterou Cockpit poskytuje, a ve statické chybí | f075170 |
Riziko
Obsluhovat celý graf při každém načtení Cockpitu je náklad na horké cestě. Měří se a stránkuje nebo filtruje, řekne-li to měření.
Časová osa
- zahájeno
- 2026-10-04T10:11:17Z
- ověřeno
- 2026-10-04T10:11:35Z
- dokončeno
- 2026-10-04T10:11:46Z
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.
Kanonický záznam: .ai/repo/project/issues/I1006.yaml. Načtěte ho zpět pomocí majordomus plan show I1006.