Harden v0.2.3 clarity and artifact safety - #15
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
~555 sfigureToolSpec, with built-in/custom round trips and byte-frozen protocol-v1 fixturesentries_per_shardin the cache index and allocate new shards after the highest numeric suffix found in either the index or cache directoryWhy
The published figure needed task scope and had an unsourced teacher-preparation duration. Cache reopen could also reuse a surviving shard suffix after pruning, lose its configured shard size, and delete old shards before the replacement index was safely published.
The new regression writes shards 0-3, prunes 0-1, reopens, writes shard 4, and proves shards 2/3 remain byte-identical and readable. Separate fault injections prove failed index publication leaves the old index and all old shards intact, while post-publication deletion failure only leaves an unreferenced file.
Impact
No algorithm, environment, benchmark, model family, or GPU experiment was added. The v0.2.0/v0.2.1/v0.2.2 tags, public adapter revision, and frozen benchmark JSON remain unchanged. Version remains
0.2.3.dev0; this PR does not publish v0.2.3.Validation
ruff check .passedruff format --check .passedmypy src/miniverlpassedpytest -q -m "not gpu and not network" --cov=miniverl --cov-report=term-missing --cov-fail-under=80: 1085 passed, 87.30% coveragepytest -q -m gpu: 5 passedpytest -q -m network: 3 passedtwine check: wheel and sdist passed53fc1d4d5b7adee09618d77ad62d4086ba56b78569832d6fc7c3bcd5c2695bbc