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.

I1800 — Sandboxovaný engine, v němž běží skriptovaná schopnost

Vložit Rhai do Rust executable jako jeden konstruktor enginu, pod kterým běží každá skriptovaná schopnost: eval vypnutý, žádné hodiny, limity na operace, hloubku volání, hloubku výrazů a velikosti řetězců, polí a map a zrušení kontrolované při každé operaci.

HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně

Součást automation — Automatizace repozitáře jsou skriptované schopnosti nad typovaným Rustem, ne shell.

Cíl

Vložit Rhai do Rust executable jako jeden konstruktor enginu, pod kterým běží každá skriptovaná schopnost: eval vypnutý, žádné hodiny, limity na operace, hloubku volání, hloubku výrazů a velikosti řetězců, polí a map a zrušení kontrolované při každé operaci.

Proč

ADR 0069 rozhoduje, že automatizace repozitáře se stane skriptovanými schopnostmi místo shellu. Deklarovaná výjimka z project.no-network-no-eval platí jen tehdy, je-li interpret sandbox a existuje právě jedno místo, které jej sestavuje, takže engine přistává první a sám.

Aktuální stav

Není vložen žádný interpret; každá orchestrace je shell.

Cílový stav

apps/majordomus-cli/src/script staví jediný engine; každá záruka, kterou dává, je dokázána unit testem.

Rozsah

  • apps/majordomus-cli
  • .ai/repo/adrs

Mimo rozsah

  • Navázání enginu na schopnost; to je I1801

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • eval se ve skriptu nekompiluje
  • skript nemá funkci hodin
  • nekonečná smyčka končí limitem operací a řetězec nemůže vyrůst přes svůj limit
  • zrušené provádění se zastaví při další operaci
  • engine je Send a Sync

Validace

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib script::

Požadované důkazy

  • sandbox_engine_proved

Důkazy

pokrývátypcommandvýsledeku commitu
sandbox_engine_provedtestcargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib script::výsledek testu: ok. 9 prošlo; 0 selhalo; 0 ignorováno (script::tests: eval_is_not_a_function_a_script_can_call, there_is_no_hidden_clock, a_runaway_script_is_stopped_by_its_operation_limit, a_string_cannot_grow_past_its_limit, a_cancelled_execution_stops_at_its_next_operation, the_engine_is_send_and_sync_for_the_shared_server, +3) na 09c334079f5; doručeno 7ac2fde4a45 (#1162) v grand top 11e53f5a45109c3340

Časová osa

zahájeno
2026-10-16T16:43:09Z
ověřeno
2026-10-16T16:43:13Z
dokončeno
2026-10-16T16:43:20Z

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/I1800.yaml. Přečtěte ho zpět pomocí majordomus plan show I1800.

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