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.

I0818 — Registr příkazů se čte jedním průchodem

Nahradit vyhledávání awk po indexech a polích v mj_cmdreg_public, mj_cmdreg_ids a registru událostí jedním průchodem awk pro každé a číst je jednou za proces.

HOTOVO vlna 1 · p0 · profil implementation · běží samostatně

Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.

Cíl

Nahradit vyhledávání awk po indexech a polích v mj_cmdreg_public, mj_cmdreg_ids a registru událostí jedním průchodem awk pro každé a číst je jednou za proces.

Proč

Pokrytí příkazů stojí tři sekundy, protože mj_cmdreg_public spouští desítky procesů awk a volá se uvnitř smyčky přes deklarované příkazy.

Aktuální stav

mj_cmdreg je jeden awk na klíč; mj_cmdreg_public jej prochází ve smyčce; mj_validate_command_coverage volá mj_cmdreg_public pro každý deklarovaný příkaz.

Cílový stav

Každý registr je zploštěn jednou a jeho veřejná id a dispečerská tabulka se odvozují jedním awk; validátor pokrytí čte všechny hlavičky případů jedním průchodem.

Rozsah

  • lib/commands.sh
  • lib/common.sh
  • test/cases/30_command_registry.sh
  • test/cases/31_command_coverage.sh

Mimo rozsah

  • Změna share/commands.yaml

Závislosti

Co na tom čeká

Kritéria přijetí

  • validate:command_coverage a validate:command_surface každá pod 200 ms v tomto repozitáři
  • Případy 30, 31, 35 a 36 procházejí beze změny
  • počet yaml_flatten pro doctor neroste

Validace

  • MJ_TIMING=1 bin/majordomus doctor
  • bash test/run.sh 31_command_coverage

Požadované důkazy

  • batch_reads

Důkazy

pokrývátypcommandvýsledeku commitu
batch_readstestMJ_TIMING=1 bin/majordomus doctorvalidate:command_coverage se na tomto repozitáři zkrátil z 3080 ms na 74 ms a validate:command_surface z 352 ms na 141 ms; mj_cmdreg_public a mj_cmdreg_ids jsou po jednom awk, validátor pokrytí čte všechny hlavičky případů jedním průchodem a veřejný seznam jednou, validátor plochy čte dispečerskou tabulku jednou a mj_event_index je jeden průchod; případy 15, 22, 30, 31, 33, 35 a 36 procházejí beze změny, včetně mutací, které odstraní položku registru a přidají příkaz jen v dispečerovi3a39694

Riziko

Dávkové čtení musí vytvořit přesně výsledky po klíčích; důkazem jsou případy, které mění registr.

Časová osa

zahájeno
2026-09-05T01:50:00Z
ověřeno
2026-09-05T02:05:00Z
dokončeno
2026-09-05T02:05:00Z

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/I0818.yaml. Načtěte ho zpět pomocí majordomus plan show I0818.

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