Skip to content

chore(deps): bump ruff from 0.15.17 to 0.15.20 (supersedes #72); deadline-based heartbeat liveness test - #81

Merged
johnteee merged 2 commits into
mainfrom
claude/gracious-wright-p34vu8-deps-72
Oct 9, 2026
Merged

johnteee merged 2 commits into
mainfrom
claude/gracious-wright-p34vu8-deps-72

Conversation

@johnteee

@johnteee johnteee commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Summary

Reproduces Dependabot PR #72 (ruff 0.15.17 → 0.15.20). The Dependabot commit could not be merged: it lacks the Lore trailers the review-institution gate requires and its uv.lock no longer applies on current main. This PR raises only the ruff lower bound in pyproject.toml (keeping the <0.16 ceiling) and regenerates the lock with uv lock --upgrade-package ruff==0.15.20 on current main (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, with assert 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 before stop() set the stop event, so no tick was written. The same base commit is green on main (run 37965482177), so the failure is unrelated to ruff. The test now polls liveness_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/main passes.

Action ID

  • Action ID: G-P2-21

Risk Class

  • Risk class: low (dev dependency bump; lint job runs the new ruff on the whole tree; one test made deadline-based)

Self-Review Checklist

General (all PRs)

  • ruff check + ruff format --check pass — this PR's lint job 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 smoke passes — CI
  • Coverage at least 75% — CI (first run: 78.96%)
  • check_root_module_count.py ≤ 184 (unchanged)
  • check_complexity.py ≤ 99 (unchanged)
  • No circular imports (unchanged)
  • Event-spine wiring passes (unchanged)
  • Docs consistency passes (unchanged)
  • PR has Why / What / How / Done sections

Documentation

  • No contradiction with current-truth docs

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

claude and others added 2 commits October 9, 2026 17:00
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 johnteee changed the title chore(deps): bump ruff from 0.15.17 to 0.15.20 (supersedes #72) chore(deps): bump ruff from 0.15.17 to 0.15.20 (supersedes #72); deadline-based heartbeat liveness test Oct 9, 2026
@johnteee
johnteee merged commit fcb6408 into main Oct 9, 2026
23 checks passed
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants