Resolve develop conflicts for #27 (event_handler_retries) - #39
Merged
pajoma merged 8 commits intoJun 28, 2026
Merged
Conversation
The setup-python-env composite action keyed the .venv cache on the major
Python version ("3.13") and only rebuilt the venv on a cache miss. A venv's
bin/ entrypoints hard-code the absolute interpreter path, so when the runner
bumped its 3.13.x patch (now 3.13.14) the cached interpreter vanished and the
restored scripts failed with:
.venv/bin/mypy: cannot execute: required file not found (exit 127)
ruff escaped this because it runs as a standalone PATH binary, not via a
venv shebang — so the failure only surfaced at the mypy step. This broke CI
on every branch and on develop itself.
Fix:
- Key the cache on the resolved patch version (steps.setup-python.outputs.
python-version) so a patch bump busts the cache and rebuilds the venv.
- Always run the install step (idempotent with uv) so a restored venv whose
interpreter drifted is repaired rather than used as-is.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
With the venv-cache fix above, the mypy step now executes and surfaces a pre-existing type error on develop that the broken cache had masked: route.methods is typed set[str] | None (Starlette), used unguarded by sorted() and `in`. Guard via `route.methods or set()`. This keeps the CI-fix PR self-green; the same fix is also in the lint cleanup PR (#37), which will rebase cleanly once this lands. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
Patch bump for the CI venv-cache fix + mypy guard, per the repo's version-bump check on PRs targeting develop. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
ci: fix stale venv cache breaking mypy/test steps
- ruff format: reformat files to the project's formatter (ruff format, which CI enforces via `ruff format --check`) — formatting only. - mypy: guard route.methods (set[str] | None) in root.py before sorted()/membership use, resolving 2 strict-mode errors. Verified against the exact CI steps: `ruff check src tests`, `ruff format --check src tests`, and `mypy src/` all pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
Patch bump for the lint cleanup, per the repo's version-bump check (develop is at 0.6.2 after the CI fix merged). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
Resolve conflicts from the merged CI-fix (#38) and lint (#37) changes: - .github/actions/setup-python-env: keep this branch's approach (drop the venv cache entirely) over develop's cache-key fix — both solve the stale venv, and removing the cache is this PR's deliberate design. Also removes the now-unused setup-python step id. - root.py: take develop's extracted `route_methods` form (identical behavior to this branch's inline guard, no double-eval). - pyproject.toml: version 0.6.4 (above develop's 0.6.3, clears the bump gate). ruff check, ruff format --check, and mypy src all pass on the merge result. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
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.
Merge develop into
feature/event_handler_retriesto clear the merge conflicts that appeared after the CI-fix (#38) and lint (#37) PRs landed. Merge this into the feature branch to make #27 mergeable intodevelopagain.Conflicts resolved (3 files)
.github/actions/setup-python-env/action.yml— kept this PR's approach (remove the venv cache entirely) over develop's cache-key fix. Both solve the stale-venvmypy: cannot executefailure; dropping the cache is Feature/event handler retries #27's deliberate design, so develop's now-redundant cache step (and its unusedsetup-pythonstep id) are not reintroduced.src/blueprint/agents/io/api/utilities/root.py— took develop's extractedroute_methods = route.methods or set()form. Behaviorally identical to this branch's inlineroute.methods or set()guard, just without the double evaluation.pyproject.toml— version set to 0.6.4 (develop is at 0.6.3 after the two merges), which also satisfies the version-bump check.Verification (merge result)
ruff check src tests✅ruff format --check src tests✅mypy src→Success: no issues found in 102 source files✅No application logic changed beyond the conflict hunks above; #27's eventing/retry work is untouched.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WVGErowPdRFzkNuiWmLaNm
Generated by Claude Code