Repository navigation
Release 0.5.0 - #20
Merged
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.
The 0.5 slate is merged; this is the release commit, carrying what the full live matrix (51 scenarios, three providers) surfaced on its first complete run since 0.4.1.
The version and the notes
0.4.1 to 0.5.0, and the unreleased changelog groomed into release notes: bullets reordered foundation-first (registry, spawning, background, reports, console, stop, locks, transcript, ends_turn, stores, polish) plus one bullet that had never been written for the concurrent-append hardening that shipped inside #15.
What the matrix caught
Three failures, three different stories:
origins.all? { start_with?("researcher#") }asserted the pre-Stream in-progress tool calls and name each specialist run #18 world. The scenario now asserts the real invariant, exactly one consistently-shaped lane tag, while the unit suite keeps pinning the default-name fallback.:queuedforever: a runner that dies before the started entry (session open, lock acquire, terminal check) wrote no terminal, andDispatchers::Threadswallowed the exception withrescue nil. "Completion is a contract" now covers the preamble:run_dispatchedwrites the failed terminal on any raise, releases the lease, re-raises, and the failure reports to the parent like every other terminal; the thread warns with class and message instead of dying mute. A new test breaks the lock backend and asserts the child reads:failedand the report arrives.Verification
414 hermetic runs green, rubocop clean,
gem buildvalid, and the full live matrix green across Anthropic, OpenAI, and Gemini, modulo two one-off task-adherence flakes on gemini-flash that pass in isolation and are deliberately not tuned around.