Canary mode detection (the real 18161 defect): - isfile() is not a valid LIVE/ISOLATED discriminator: run 18141's shim writes left a zombie 1-entry ledger in the runner's persistent HOME, which flipped the naive gate to LIVE with wrong data. The discriminator is now the repo's own CI-sandbox convention (RUNE_HOME=/tmp/rune-ci-<id> — the workflow's own cleanup guard matches exactly that). - The isolated battery seeds a PER-RUN temp ledger (module-attr override on the shim's LEDGER_FILE) instead of writing the runner's persistent home; binary §5 gets HOME=<temp> so binary and shim resolve the same file. Both modes: 74/74 locally and under simulated runner topology (zombie ledger present, RUNE_HOME set). Rust canary §4 gets the same dual-mode treatment. Henxels holds cleared: - plans/: three phase-g files renamed to kebab-case; references updated in lib.rs, ep_loader.py, canary docstring, Cargo.toml, supersession ledger. - ffi_query_memory_smoke coverage: smoke repaired (was stranded — imported the deleted src/rune vintage; now drives shared/ shim, 41/41 green) and tests/test_ffi_query_memory_smoke.py runs it, skipping honestly when the cdylib isn't built (CI has no cargo step). Type ratchet — instrument repair (§16V), not reading-management: - scripts/type_check_ratchet.py now pins pyright --pythonpath to the INVOKING interpreter. Ambient-interpreter dependency resolution was the residual non-determinism: runner (py311, no rich/Pillow) vs desktop (3.14 system site) produced 460 vs 454 on the identical tree, and any import ignore flipped to unnecessary-ignore in the other environment. - pyrightconfig extraPaths now covers src/rune + shared + both crate dirs (bare intra-repo imports resolve under the pinned environment). - Pillow declared in pyproject (genuine lazy dep of the diamond-frames surface; was undeclared) — lock regenerated, dep-lock checker green. - Measured under the pinned instrument: 115 errors / 439 warnings (CI-equivalent locked 3.11 venv) and 115/436 (local 3.14 venv) — both below the 117/454 baseline; baseline unchanged. My canary's 4 reportOptionalSubscript errors fixed by real narrowing, not suppression. Lint baseline: BLE001 346 -> 345 (bulk_issue_guard.py's retry catch gains a reasoned noqa; the file stays untracked per checkpoint hygiene, but the honest-ledger test counts disk state — the noqa keeps local == CI). Local wall: full pytest 2251/0 (incl. the new smoke test); canaries 74+66 both modes; parities 33/24/13/16/17; henxels exit 0; umbrella gate exit 0; dep-lock green.
4 lines
33 B
JSON
4 lines
33 B
JSON
{
|
|
"BLE001": 345,
|
|
"S110": 75
|
|
} |