Skip to content

v0.8.6 — shard resilience

Choose a tag to compare

@tiagoschmitt tiagoschmitt released this 17 Aug 04:27
· 20 commits to main since this release

The 0.8.5 whole-project sweep could silently lose shards: a numeric truthiness guard (end ? a : b) reached a try-less path as a Real, ctx.Not threw, the uncaught error killed the child with exit 1 — indistinguishable from proof failures — and six files vanished from the report, counted as zero.

Three layers of defense, innermost out:

  • Non-Bool ternary guards are havoc'd like untranslatable ones — a truthiness test on a number or reference becomes a free boolean.
  • Per-function isolation: one untranslatable shape skips that function with a note on stderr, never the file.
  • Dead-child detection by artifact, not status: a missing totals file means the shard died — its files are retried individually, so a single bad file costs itself, not its five siblings.

On the dogfood application the sweep recovered 4 lost files and 5 lost proofs (52 → 57 proved), including an estimate-summary function whose for-of folds now translate.

~325 core tests.