Repository navigation
v0.3.1
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, thenevidence_count), tie-broken on a hash of the id, and frozen
at conflict creation soprobe_indexkeeps counting into a stable list. AGENT_GUIDE.md: tool table said 17 and listed 17 while the server registers 18 —
get_workspace_infowas missing. The identity section documented a 5-layer resolution
including aUV_PROJECT_ROOTlayer that no longer exists, a 64-character name limit
that is now 128, and~/.local/shareas 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_nogoodnow preserves the caller's member order verbatim instead of
re-sorting it. The order is the diagnosis order andprobe_indexcounts into it, so
re-sorting silently overrode the engine's ranking.
Eval harness
pruned_reexecutionno 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