Co to znamená
Cockpit na /cockpit nemá žádný vlastní seznam. To, co ukazuje, je to, co registr odpoví, takže schopnost, která v době psaní Cockpit neexistovala, se v něm přesto objeví: ve výpisu schopností, v navigaci pro svůj druh, ve vyhledávání, na vlastní stránce a s formulářem spouštěče generovaným ze vstupního schématu schopnosti. Nikdo pro ni nepřidává routu, položku šablony ani položku menu a nic ve zdroji Cockpit ji nejmenuje.
Totéž platí opačným směrem. Schopnost, kterou registr už nenese, zmizí ze všech těchto povrchů, protože žádný z nich neuchoval kopii.
Princip
Sdílený server staví registr schopností z kanonických deklarací capability! a z deklarativních objektů vrstvy, z nichž registr každý promění ve vlastní schopnost. Cockpit pod apps/majordomus-cli/src/cockpit/ vykresluje tento registr: výpis a vyhledávání čtou vlastní výpis registru, navigace se odvozuje z druhů, které index drží, stránka entity se adresuje slugem odvozeným z identity objektu a formulář runneru se generuje ovládací prvek po ovládacím prvku ze vstupního schématu schopnosti, s příklady převzatými z případů měření výkonu schopnosti.
apps/majordomus-cli/tests/cockpit.rs to dokazuje přes skutečný socket proti jednorázovému repozitáři. a_capability_the_repository_adds_reaches_every_cockpit_surface přidá do fixture jedno pravidlo, commitne je, spustí server a poté se zeptá na novou schopnost ve výpisu, na její vlastní stránce, na stránce objektu s položkou navigace pro její druh, na její adrese entity, přes typované API entit, ve vyhledávání a v JSON, který čte paleta příkazů. the_runner_form_is_generated_from_the_input_schema dokazuje, že formulář schopnosti nese ovládací prvky, které deklaruje její schéma, s povinností a mezemi, a žádné napsané pro tuto schopnost.
Jak to vidět
majordomus serve # logs the URL of the shared server
# then open <url>/cockpit/capabilities, pick any capability, and use its runner form
cd apps/majordomus-cli && cargo test --test cockpit
Přidejte pravidlo pod .ai/repo/rules/project/, commitněte ho a znovu načtěte Cockpit: schopnost pravidla je ve výpisu, ve vyhledávání i v indexu svého druhu, aniž by se cokoli jiného změnilo.
Co nepokrývá
Dokazuje, že schopnost dosáhne Cockpitu, ne že je každá stránka Cockpitu dobře rozvržena nebo že člověk najde, co hledá. Vizuální shodu drží designová pravidla a jejich vlastní případy.
Neprokazuje, že handler schopnosti je správný. Forma runneru pošle to, co schéma přijímá; co s tím schopnost udělá, dokazují vlastní testy té schopnosti.
Test přidává deklarativní objekt, což je způsob, jak repozitář přidá schopnost bez buildu. Schopnost deklarovaná v Rustu dosáhne týchž povrchů přes týž registr a dokazuje ji procházení stránek ve stejném souboru, ne tento test.
Proč existuje
Druhý seznam je místo, kde projekce začíná driftovat. Rozhraní, které si vede vlastní katalog toho, co systém umí, je správné v den, kdy je napsáno, a špatné první den, kdy je přidána schopnost bez něj, a nikdo si mezery nevšimne, dokud člověk nehledá věc, kterou strojové plochy už servírují. project.interfaces-are-projections to vylučuje pro každé rozhraní a toto tvrzení je důkazem Cockpitu, že platí: důkazem je schopnost, kterou autoři Cockpitu nikdy neviděli, přesto zobrazená na každé ploše.