Skip to content

fix: v0.34.2 — stall auto-cancel, /cancel standalone fallback (#99)#100

Merged
Nathan Schram (nathanschram) merged 2 commits intomasterfrom
fix/stall-auto-cancel-and-cancel-ux
Mar 8, 2026
Merged

fix: v0.34.2 — stall auto-cancel, /cancel standalone fallback (#99)#100
Nathan Schram (nathanschram) merged 2 commits intomasterfrom
fix/stall-auto-cancel-and-cancel-ux

Conversation

@nathanschram
Copy link
Copy Markdown
Member

Summary

Fixes zombie stall monitor loop after laptop sleep and improves /cancel UX.

  • Stall auto-cancel: dead process detection (immediate), no-PID zombie cap (3 warnings ~9 min), absolute cap (10 warnings). Sets cancel event + closes signal stream for clean exit.
  • Early PID threading: last_pid set at subprocess spawn, polled before StartedEvent arrives so stall monitor has PID for diagnostics.
  • Standalone /cancel: cancels single active run without requiring reply to progress message. Prompts when multiple runs active. Falls back to queued jobs via new queued_for_chat().
  • Docs: [watchdog] config reference, changelog v0.34.2, CLAUDE.md test counts.

Closes #99

Test plan

  • uv run pytest — 1469 passed, 80.44% coverage
  • uv run ruff check src/ && uv run ruff format --check src/ tests/
  • uv lock --check
  • Manual test: all 6 engines via @untether_dev_bot — standalone /cancel worked for active runs, "nothing running" for completed
  • CI: format, ruff, ty, pytest (3.12/3.13/3.14), build, lockfile, pip-audit, bandit, docs

🤖 Generated with Claude Code

- Stall auto-cancel: dead process detection (immediate), no-PID zombie
  cap (3 warnings), absolute cap (10 warnings). Closes signal stream on
  auto-cancel so _run_loop exits cleanly.
- Early PID threading: last_pid set at subprocess spawn, polled by
  run_runner_with_cancel before StartedEvent arrives.
- Standalone /cancel: cancels single active run without requiring reply;
  prompts when multiple runs active; falls back to queued jobs.
- queued_for_chat() on ThreadScheduler for standalone cancel of queued jobs.
- Docs: watchdog config reference, changelog, CLAUDE.md test counts.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@nathanschram Nathan Schram (nathanschram) merged commit 2b32934 into master Mar 8, 2026
17 checks passed
@nathanschram Nathan Schram (nathanschram) deleted the fix/stall-auto-cancel-and-cancel-ux branch March 8, 2026 00:01
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.

Stall monitor loops forever after laptop sleep — no auto-cancel, /cancel requires reply

1 participant