Skip to content

fix: add durable watcher session runner#11

Merged
JTInventory merged 1 commit into
mainfrom
fix/watch-session-runner-0629
Jun 29, 2026
Merged

fix: add durable watcher session runner#11
JTInventory merged 1 commit into
mainfrom
fix/watch-session-runner-0629

Conversation

@JTInventory

Copy link
Copy Markdown
Owner

Summary

Active supervision can now stay alive in harness lanes where tracked background tasks are not durable. bin/fm-watch-session.sh start creates one tmux runner per FM_HOME/state pair and loops through the existing verified fm-watch-arm.sh path, so it does not use broad process matching or disturb sibling homes.

The guard now requires real watcher proof before staying quiet: state/.watch.lock must name a live bin/fm-watch.sh process for the same home, with matching pid identity, and the liveness beat must be fresh. A fresh .last-watcher-beat by itself now warns instead of hiding a stopped watcher.

This is the actionable JTInventory PR for the same fix/watch-session-runner-0629 branch. The upstream contribution PR remains open at kunchenguid#131.

Tests

  • bash -n bin/fm-guard.sh bin/fm-watch-session.sh tests/fm-watcher-lock.test.sh tests/fm-watch-session.test.sh tests/fm-wake-queue.test.sh
  • git diff --check
  • bash tests/fm-watch-session.test.sh && bash tests/fm-watcher-lock.test.sh
  • bash tests/fm-wake-queue.test.sh && bash tests/fm-watch-triage.test.sh && bash tests/fm-wake-daemon-lifecycle-e2e.test.sh

Compound Engineering
GPT-5

@JTInventory JTInventory force-pushed the fix/watch-session-runner-0629 branch from fbedb2a to bcde1e4 Compare June 29, 2026 01:20
@JTInventory JTInventory merged commit 708f980 into main Jun 29, 2026
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.

1 participant