Skip to content

v0.3.1

Choose a tag to compare

@tygryso tygryso released this 01 Aug 12:40
· 23 commits to master since this release

v0.3.1

Fixed

  • Windows CI: e2e stdio test timeout increased to 900s for slow GitHub Actions runners
  • Conflict diagnosis no longer depends on hypothesis naming. Members were stored
    alphabetically and interrogated in that order, so the number of diagnostic swaps was
    decided by the id prefix rather than by the evidence — a workspace could be made to
    converge faster by renaming its hypotheses. Members are now ordered weakest-claim-first
    (confirmed_depth, then evidence_count), tie-broken on a hash of the id, and frozen
    at conflict creation so probe_index keeps counting into a stable list.
  • AGENT_GUIDE.md: tool table said 17 and listed 17 while the server registers 18 —
    get_workspace_info was missing. The identity section documented a 5-layer resolution
    including a UV_PROJECT_ROOT layer that no longer exists, a 64-character name limit
    that is now 128, and ~/.local/share as the only store location; rewritten to the real
    four layers, the [a-z0-9][a-z0-9._~-]{0,127} rule, the cross-platform Windows
    reserved-name rejection, and %LOCALAPPDATA% / hypotree --info.

Changed

  • HypoTreeStore.add_nogood now preserves the caller's member order verbatim instead of
    re-sorting it. The order is the diagnosis order and probe_index counts into it, so
    re-sorting silently overrode the engine's ranking.

Eval harness

  • pruned_reexecution no longer fires when a result was obtained before the branch was
    pruned. It could not distinguish spending a fresh probe on a dead branch from filing a
    measurement already paid for, and the batch-probe protocol makes the latter routine —
    a single such event flipped a run's hard gate. Transcript entries now carry a UTC
    timestamp; unknown timings still fail open so fabricated results are caught.
  • Status transitions are now diffed on (status, reason) rather than status alone.
    Ruling a substitute out retracts its exclusion and re-settles it at the same instant,
    so a status-only diff saw no change and the mechanism reported zero forever.
  • Criterion 4 derives its p-value from a seeded 20 000-draw permutation test when the
    smallest expected cell falls below 5, instead of reporting a verdict from an asymptotic
    χ² that does not apply at that sparsity.

Full Changelog: https://github.com/tygryso/hypotree/blob/master/CHANGELOG.md#031---2026-08-01
Full Commit: https://github.com/tygryso/hypotree/commits/v0.3.1