Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Cachovaná schopnost Rust executable vrací stejnou hodnotu necachovaně, za studena i za tepla, zásah cache nespouští žádný handler, chyby a příkazy se nikdy necachují a klíč nese otisk registru

Cache se deklaruje na deskriptoru (CachePolicy::Process { max_entries, ttl }) a žije v jediném executoru, který používá každý transport, takže MCP, HTTP i příkazový řádek ji sdílejí a žádný nemá vlastní. Pro každou schopnost s cache a každý případ, který její vstupní typ poskytuje, je hodnota odpovězená s vypnutou cache, s prázdnou cache a s teplou cache táž; teplá odpověď nespustí žádný handler; chyba se počítá pokaždé; příkaz se nikdy necachuje a registr odmítne deskriptor, který o to žádá; cache je omezena na schopnost a vyřazuje nejstarší; stejný vstup s klíči v jiném pořadí je týž klíč; a klíč nese otisk registru, hash obsahu každého objektu a každého deskriptoru, takže dva stavy repozitáře nikdy nesdílejí položku.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Jeden exekutor pro každý transport; CachePolicy na deskriptoru; omezeno na schopnost; klíčem je kanonické id, vstup v kanonické podobě a otisk sha-256 obsahu repozitáře a deskriptorů. tests/executor.rs a proptest harness v tests/properties.rs procházejí každou cachovanou schopnost každým případem a generovanými vstupy.

Co to znamená

Cache se deklaruje na deskriptoru (CachePolicy::Process { max_entries, ttl }) a žije v jediném exekutoru, který používají všechny transporty, takže MCP, HTTP i příkazový řádek ji sdílejí a žádný nemá vlastní. Pro každou schopnost s cache a každý případ, který její vstupní typ poskytuje, je hodnota odpovězená s vypnutou cache, s prázdnou cache i s teplou cache táž; teplá odpověď nespouští žádný handler; chyba se počítá pokaždé; příkaz se nikdy necachuje a registr odmítne deskriptor, který o to žádá; cache je omezena na schopnost a vyřazuje nejstarší; tentýž vstup s klíči v jiném pořadí je tentýž klíč; a klíč nese otisk registru, hash obsahu každého objektu a každého deskriptoru, takže dva stavy repozitáře nikdy nesdílejí položku.

Princip

apps/majordomus-cli/src/capability/executor.rs: CapabilityExecutor::execute vyhledá schopnost, normalizuje vstup (canonical_json), konzultuje cache podle politiky deskriptoru, spustí handler přes registry.dispatch a uloží hodnotu; index.rs a registry.rs počítají otisky pomocí sha-256; perf.rs počítá zásahy, minutí a vyřazení.

Jak to vidět

apps/majordomus-cli/target/debug/majordomus capabilities describe objects.search --format json | jq .cache
apps/majordomus-cli/target/debug/majordomus bench objects.search --transport direct --profile quick   # cold and warm rows, the direct one with handler invocations

Co nepokrývá

Nic se neukládá trvale: cache je paměť jednoho procesu a končí s ním. Cachuje se jen to, co měření ospravedlnilo (objects.search, capabilities.list); zbytek odpovídá z neměnného indexu v mikrosekundách a cache tam by byla druhou kopií ničeho. TTL politika podporuje a žádný vestavěný ho dnes nepoužívá.

Proč existuje

Cache, jejíž ekvivalence není prokázána, je lež čekající na vstup. project.rust-hot-path je pravidlo, ADR 0004 rozhodnutí. apps/majordomus-cli/tests/executor.rs projde každou cachovanou schopnost registru se všemi případy; tests/properties.rs totéž nad generovanými vstupy pomocí proptest, včetně zamíchaného pořadí klíčů; test/cases/91_canonical_architecture.sh vidí zásahy v čítačích po opakovaných hledáních přes sestavenou binárku.

Detail vykreslen z docs/claims/execution-cache-equivalence.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Cachovaná schopnost Rust executable vrací stejnou hodnotu necachovaně, za studena i za tepla, zásah cache nespouští žádný handler, chyby a příkazy se nikdy necachují a klíč nese otisk registru

    Vytvořeno na Měření výkonu.

  2. 2 · kanonické tvrzení

    execution-cache-equivalencedeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/CAPABILITIES.md

  3. 3 · implementace

    apps/majordomus-cli/src/capability/executor.rs

  4. 4 · test a scénáře

    Test: apps/majordomus-cli/tests/executor.rs

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh apps/majordomus-cli/tests/executor.rs

Prohledává názvy a popisy všech stránek, které tento web publikuje.