I3945 — The site generator's input list reaches jq through a file, not as one command-line argument
scripts/generate-site-data writes source.json's input list to a stage file and hands it to jq with --rawfile, so the list can grow with the repository without approaching Linux's 131072-byte cap on one argument.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3945 bude přijato.
Cíl
scripts/generate-site-data writes source.json's input list to a stage file and hands it to jq with --rawfile, so the list can grow with the repository without approaching Linux's 131072-byte cap on one argument.
Proč
Case 10's measurement of every jq argument (I3942) named it NEAR on train 4: `--arg inputs \"$INPUTS\"` carried 101495 bytes, 77% of the cap, and grows with every input the generator reads. It is a plain variable, a spelling scripts/ci/argv-limit-check cannot see; the plan graph crossed the same cap the same way on train 4 (run 39860903679).
Aktuální stav
Line 2006 of scripts/generate-site-data passes the whole newline-separated input list as one --arg.
Cílový stav
The list is written once to the stage directory and read with --rawfile; source.json is byte-identical to what --arg produced.
Rozsah
- scripts/generate-site-data
- .ai/repo/project/issues/I3945.yaml
Mimo rozsah
- The plan graph argument, which p1's repair (r-c873f68b9658) moves
- scripts/ci/argv-limit-check, whose blind spot for a plain variable case 10's measurement covers
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Case 10 with the argument measurement names no input-list argument as NEAR
- generate-site-data --check passes on the unchanged tree: source.json is byte-identical
Validace
- bash test/run.sh 10_site_data 51_derived_artifacts_committed
Požadované důkazy
- sada testů
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Riziko
None beyond the stage file: --rawfile reads exactly the bytes --arg passed, shown on a list with newlines, an empty line, spaces and non-ASCII text.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
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.
Canonical record: .ai/repo/project/issues/I3945.yaml. Read it back with majordomus plan show I3945.