Repository navigation
chore(release): 0.7.0 - #19
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <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.
What this changes
Release commit for evalshift-sdk 0.7.0 (minor). It bumps
pyproject.toml,__version__, the DOCS.md, llms.txt and llms-full.txt version lines, and the package's ownuv.lockentry. It also renames the CHANGELOG's[Unreleased]section to[0.7.0] - 2026-10-22and opens a fresh[Unreleased]above it.Why
Ships #18, plus #17 (a PyPI metadata chore). Together they are everything merged since 0.6.0:
capture.agent_session/agent_session_asyncturn with aconversation_idis written tocaptures/<suite>/conv_<16 hex>/cap_<hex>.json, on disk and in an object store. The hex is the start ofsha256(conversation_id). Standalone captures stay atcaptures/<suite>/cap_<hex>.json. So does every@capture.agentdecorator capture, because the decorator'sconversation_idis fixed when it is applied (its envelope still carries the id). To keep the 0.6 layout, setEVALSHIFT_CAPTURE_LAYOUT=flator passlayout="flat"toFileSink/ObjectStoreSink.EVALSHIFT_CAPTURE_LAYOUT=conversationoverrides this. The SDK can't detect an older CLI in a different environment (e.g. CI pinned to 1.5).EVALSHIFT_SAMPLE_RATEset, anagent_session/agent_session_asyncgiven aconversation_idis sampled by a hash of that id. Every turn of a conversation is then captured or none is, in every process.@capture.agent, runs without an id, and the LangChain handler still draw at random.max_captures/capture_ttlcap each suite directory by unit, a flat capture or a whole conversation folder. The TTL first evicts every capture older than it.max_capturesthen counts the captures that remain, newest unit first: the newest conversations are kept whole while they fit, the one at the boundary keeps its newest turns, and older ones are evicted whole. Folders left empty are removed. Flat-only suites behave as before, and dedup is unchanged.The layout change is breaking, which makes this a minor bump under 0.x. The CHANGELOG's 0.7.0 section states that it requires evalshift CLI 1.6.0 or later.
Do not tag
v0.7.0until evalshift CLI 1.6.0 is on PyPI (CLI release PR evalshift/evalshift-cli#64). A CLI ≤ 1.5 cannot see conversation folders, and itscapture cleancan sweep toolset sidecars that only folder captures use.After merge, and only once CLI 1.6.0 is on PyPI, tag the merge commit (an up-to-date
main). The tag push makes release.yml publish to PyPI:git tag -a v0.7.0 -m "v0.7.0 — conversation folders" git push origin v0.7.0Test plan
uv lock --check/uv sync --lockedpass (only theevalshift-sdklock entry changed)uv run ruff check/ruff format --checkcleanuv run mypy: no issues in 108 source filesuv run pytest: 891 passedevalshift.__version__is0.7.0🤖 Generated with Claude Code