Repository navigation
Run tmux watchers and dependencies in one shared services window - #729
Conversation
Panes are tracked per worktree+job in session options, so any window reuses them instead of opening a new window. Adds tmux-minio-local. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Review (Makefile/AGENTS.md only; not run locally, since it needs tmux). The consolidation is a net win: about 4 fewer lines, and one helper replaces two. Issues
Conciseness
No tests apply here. The AGENTS.md addition is accurate and succinct. |
Monoscope production impact · Worth checkingProject Evidence window (UTC): 2026-10-19 09:56:35.961850921 UTC → 2026-10-26 09:56:35.961850921 UTC
Inferred: The pane-reuse path sends an interrupt and waits a fixed 0.5 seconds, while its liveness check only verifies that the tmux pane still exists. If the previous watcher takes longer to terminate, the replacement command can be delivered to the still-running process instead of a shell, leaving the requested restart ineffective. Next check: Wait for the tracked job to exit with a bounded timeout and escalation, and dispatch the replacement only after confirming the shell or expected idle state. telemetry evidence · Observed: 8772393 events · 0 errors · service: srv-captain--monoscope
Inferred: The pane key uses only the basename of the current directory. Distinct worktrees with the same basename can therefore alias the same session option and pane, causing one worktree's watcher to interrupt or replace another worktree's job. Next check: Derive the key from a canonical absolute worktree path or a collision-resistant hash, and test simultaneous same-basename worktrees. telemetry evidence · Observed: 8772393 events · 0 errors · service: srv-captain--monoscope
Inferred: The pane border format does not use tmux's format expansion for the user-defined job option, so the intended job identity can render as literal text. This makes panes difficult to distinguish during watcher failures or restarts. Next check: Use the tmux user-option format expression in the border template and verify that different jobs display distinct labels. telemetry evidence · Observed: 8772393 events · 0 errors · service: srv-captain--monoscope Coverage: Evidence is capped at 20 service/environment groups, monitors and dashboard queries. Telemetry describes the mapped service, not a proven changed-path or deployed-revision match. Monitor and dashboard references are project-wide; their relationship to the mapped service is unverified. Diff coverage is incomplete: only the first 30 files and 2000 characters per patch are inspected. The Makefile patch is truncated before the tmux pane option-write and command-dispatch tail, so persistence of the mapping and replacement-command behavior could not be verified. No test or runtime evidence covers slow watcher shutdown, same-basename worktrees, concurrent invocations, or pane-label rendering. The available telemetry is not linked to the changed Makefile path or deployed revision and contains no direct watcher or dependency lifecycle signals. |
Agents opened a new tmux window (or session) per watcher/dependency, and the old helpers pinned panes per window, so an agent in another window started duplicates.
tmux_panehelper replacestmux_run/tmux_own_pane: one pane per worktree+job, tracked in a session option, created in a sharedserviceswindow (tiled, labelled<worktree>:<job>), reused from any window.tmux-minio-local.tmux new-window/new-sessionfor watchers; usemake tmux-*.Sign-off: all checks attested for this tree (
make ci-signoff).🤖 Generated with Claude Code