docs(P4.5): §1 lovet en stderr-sti som aldri kan vises

Runbookens §1 sa `(arbeidskopi: /tmp/po-sim-…)`. Målt: `mkdtemp` følger
`TMPDIR`, som på macOS er `/var/folders/…/T/` — `tempfile.gettempdir()`
bekrefter det. Strengen `/tmp/po-sim-` kan altså aldri stå på skjermen.

Det er den dyre varianten av defekten: operatøren ser en lang
`/var/folders`-sti der runbooken lovet `/tmp`, og et sekunds tvil om
miljøet er ett sekund fra en unødvendig abortsti på scenen.

Rettet til FORMEN, ikke til denne maskinens sti — en hardkodet
`/var/folders/xc/…` ville gjenskapt defekten ett nivå ned. Fasiten gjør
allerede nøyaktig dette skillet: temp-katalogen tilhører miljøet,
`po-sim-`-prefikset tilhører programmet.

Funnet ved å måle §1s stderr-INNHOLD mot fasiten (testens egen
`normalise_stderr`) i stedet for bare å telle fire linjer — den ene §1-
påstanden økt 9s pass hadde tallfestet uten å innholds-sammenligne.

Én kopi: planen var allerede korrekt («`TMPDIR`-rota maskeres»).
Utfyllings-gaten står uendret på 3 placeholders; kjørestien er urørt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NaBAXKK1ippN8Zi62DMNoS
This commit is contained in:
Kjell Tore Guttormsen 2026-08-11 12:50:06 +02:00
commit c6d7ea7c1b

View file

@ -40,7 +40,15 @@ uv run python -m portfolio_optimiser.simulation
Forventet: **exit 0**, **61 linjer stdout**, **4 linjer stderr**.
Stderr er fire linjer og skal være der: to `ExperimentalWarning` fra MAF (Skills + MemoryStore),
en blanklinje, og `(arbeidskopi: /tmp/po-sim-…)`. De to advarslene dempes **ikke** med vilje — de
en blanklinje, og `(arbeidskopi: <systemets temp-katalog>/po-sim-…)`.
**Katalogen varierer, prefikset gjør ikke det.** På macOS er temp-katalogen `/var/folders/…/T/`,
**ikke** `/tmp/` — så linja på skjermen blir lang og stygg, og det er riktig. `po-sim-` er den delen
som er konstant, fordi programmet setter den (`mkdtemp(prefix="po-sim-")`); resten tilhører miljøet.
Fasiten maskerer nøyaktig dette skillet. En lang `/var/folders/…`-sti er altså **ikke** et tegn på
at noe er galt, og ingen grunn til å gå til abortstien.
De to advarslene dempes **ikke** med vilje — de
fyrer mens biblioteket importeres, og å dempe dem ville betydd at rammeverket bestemmer hva MAF
får si til enhver konsument. Rund-tak-linjene («forcing completion») er dempet og skal **ikke** vises.