chore(release): 0.9.13 - #375
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Cuts 0.9.13, whose one change is #374.
What ships
fix(n2): send the whole screenshot history, pruning only to fit the wire cap(#374)The n2 loop no longer windows each request down to the two newest image-bearing messages. It sends every frame the run has taken and drops oldest-first only when the serialized request would exceed the 10 MB cap.
The window bought the model nothing — the API's n2 handler applies exactly that window itself before serving the model — while it emptied the request log a run's replay is built from, which is why a macOS run's story stopped after its last two frames.
prune_n2_screenshots_to_budgetreplacesretain_n2_image_window+fit_n2_request_images_to_budgetin the loop, matching the reference harness'spruneScreenshotsToBudget, including its 64 KB headroom and its silence (a dropped frame leaves no marker).retain_n2_image_windowstays exported;fit_n2_request_images_to_budgetis removed (never exported fromyutori.navigator, never in api.md).prepare_n2_image_data_urlreads the media type off the data-URL header instead of decoding the payload, keeping the now-per-frame conversion pass cheap.Callers should expect larger requests. A run past roughly 50 steps now sends several MB per request instead of two frames' worth. That is the trade the change exists to make.
Release mechanics
Version bumped in
pyproject.toml,install.shregenerated viascripts/build_install.sh, and thenavigator_n2cookbook pins moved to 0.9.13 — the same five-file shape as #371.Merging this tags
v0.9.13on the merge commit and publishes to PyPI.Test plan
pytest -m "not slow"— 865 passed, 9 skippedscripts/check_install_sh_fresh.sh— clean🤖 Generated with Claude Code
Note
Low Risk
Diff is version and pin updates only; behavioral risk lives in the already-merged #374 n2 request sizing change users get when they upgrade to 0.9.13.
Overview
Release cut that bumps the SDK from 0.9.12 to 0.9.13 and keeps install/cookbook pins in sync.
pyproject.tomlsets the package version;install.shupdatesYUTORI_INSTALLER_VERSION(regenerated viascripts/build_install.sh). The navigator_n2 cookbook pins move toyutori==0.9.13inpyproject.toml, the macOS install line inREADME.md, and the direct X11Dockerfile.Merging is intended to tag v0.9.13 and publish 0.9.13 to PyPI. That release includes the n2 screenshot-history fix from #374 (full frame history with budget pruning); this diff is only the version/release mechanics, not that loop change.
Reviewed by Cursor Bugbot for commit df8f875. Bugbot is set up for automated code reviews on this repo. Configure here.