Repository navigation
chore(deps): bump ruff from 0.15.17 to 0.15.20 (supersedes #72); deadline-based heartbeat liveness test - #81
Merged
Conversation
Dependabot PR #72 could not be merged: its commit lacks the Lore trailers the review-institution gate requires, and its uv.lock no longer applies on top of current main (the lock moved for cryptography/anyio/pyasn1/pytest). This commit reproduces the bump with the repo tooling instead of a hand merge: the ruff lower bound is raised in pyproject.toml exactly as Dependabot proposed and the lock is regenerated with `uv lock --upgrade-package ruff==0.15.20` on current main. The regenerated lock also records the project version 0.1.1 (the v0.1.1 release commit bumped pyproject.toml without re-locking). Action: G-P2-21 Roadmap-Status: unchanged Constraint: dependency bump only; lock regenerated by uv, not edited by hand; no code change Tested: uv lock resolves; locked ruff version is 0.15.20; CI on this PR is the verification Confidence: high Agent: Claude Code Agent-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta
…fixed sleep tests/test_run_liveness.py::test_heartbeat_writes_liveness_file failed on PR #81 (CI run 37965565659, test ubuntu-latest 3.12, full suite with coverage) with `assert None is not None`: the test slept 0.08 s for a heartbeat thread with a 0.02 s interval and then read the liveness file, but on a loaded runner the thread was never scheduled before stop() set the stop event, so no tick was written. The 2026-10-09 review classified such fixed-sleep timing tests as the flake class behind several earlier red runs. The test now polls liveness_snapshot() until the first tick appears or a 5 s deadline passes, and keeps both assertions (file present, tick >= 1). The same base commit is green on main (run 37965482177), so this is the only change needed to get #81 green. Action: G-P2-21 Roadmap-Status: unchanged Constraint: test-only change; no production code touched; assertions kept (A1 gate: no weakened or deleted assertions) Tested: pytest tests/test_run_liveness.py (5 passed); ruff check/format clean; check_test_assertion_regression.py --base origin/main passes Confidence: high Agent: Claude Code Agent-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta
johnteee
pushed a commit
that referenced
this pull request
Oct 9, 2026
…ssions, blocked v0.1.1 tag Adds §7.4 to the 2026-10-09 roadmap review: the ten pull requests that landed Phase 0, the release commit, and the eight dependency bumps (head, merge commit, and main CI run for each), the method used to reproduce the Dependabot bumps on current main with uv (floors byte-identical to the Dependabot diffs, lock regenerated, never hand-edited), the single red run on #81 and its root cause (fixed-sleep heartbeat liveness test, now deadline-based), the v0.1.1 tag that is annotated locally at 609657e but cannot be pushed from the recording environment (GitHub proxy returns HTTP 403 for tag pushes and the refs API) with the exact owner commands, and the items left for the owner (tag, 8.4 GB zero-filled /dev/sda file in the recording container, three older friction hypotheses still open). CHANGELOG gains Unreleased entries for the post-0.1.1 bumps and the test fix; roadmap-status gains a one-line landing note. Docs inventory regenerated. The release docs evidence bundle is rebuilt in the following commit on a clean tree (two-commit protocol), so verify_docs.sh passes only after that commit. Action: G-P2-21 Roadmap-Status: unchanged Constraint: documentation only; no horizon, milestone, goal, or gate status moved; no code change Tested: scripts/verify_docs.sh passes every check except the release docs evidence bundle, which the next commit rebuilds Confidence: high Agent: Claude Code Agent-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta
Merged
11 of 13 tasks
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.
Summary
Reproduces Dependabot PR #72 (
ruff0.15.17 → 0.15.20). The Dependabot commit could not be merged: it lacks the Lore trailers thereview-institutiongate requires and itsuv.lockno longer applies on currentmain. This PR raises only therufflower bound inpyproject.toml(keeping the<0.16ceiling) and regenerates the lock withuv lock --upgrade-package ruff==0.15.20on currentmain(no hand edits to the lockfile). The regenerated lock also records the project version 0.1.1. Owner decision 2026-10-09: one bump per CI cycle; #72 is closed as superseded once this merges.Second commit (401d875). The first CI run on this PR (37965565659) was red on exactly one test,
tests/test_run_liveness.py::test_heartbeat_writes_liveness_file, withassert None is not None. The test slept a fixed 0.08 s for a heartbeat thread with a 0.02 s interval; on the loaded coverage runner the thread was never scheduled beforestop()set the stop event, so no tick was written. The same base commit is green onmain(run 37965482177), so the failure is unrelated to ruff. The test now pollsliveness_snapshot()until the first tick appears or a 5 s deadline passes, keeping both assertions. No production code changed;check_test_assertion_regression.py --base origin/mainpasses.Action ID
Risk Class
lintjob runs the new ruff on the whole tree; one test made deadline-based)Self-Review Checklist
General (all PRs)
ruff check+ruff format --checkpass — this PR'slintjob runs them with ruff 0.15.20 (clean locally on the changed test file)mypy teaagent/reports 0 issues (no production Python changed)python3 scripts/run_test_tier.py --tier smokepasses — CIcheck_root_module_count.py≤ 184 (unchanged)check_complexity.py≤ 99 (unchanged)Documentation
Why / What / How / Done
Why. Stalled Dependabot bump; one fixed-sleep timing test flaked on the first run. What. ruff floor raised, lock regenerated; heartbeat liveness test waits with a deadline. How.
uv lock --upgrade-package; polling loop in the test; trailers in both commits. Done. When CI is green: merge, then close #72 with a pointer here.🤖 Generated with Claude Code
https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta