Commit graph

7 commits

Author SHA1 Message Date
jedarden
314ae52339 feat(tb-1sz9): complete tmux-level stuck detector poller
Implement standalone tmux detector poller that watches opted-in panes and
emits normalized stuck/unstuck events to the daemon.

Features:
- Auto-discovery of opted-in panes via @tb- title prefix (TypeScript)
- 30-second quiet threshold with prompt pattern matching
- Normalized event emission to /event/normalized endpoint
- Graceful shutdown and error handling
- Comprehensive test suite with acceptance tests

Implementation:
- daemon/tmux-detector.ts: TypeScript implementation (460 lines)
- daemon/tmux-adapter/: Go implementation (alternative)
- bin/trailboss-tmux-detector: Wrapper script
- docs/notes/tmux-detector-*.md: Design and submission contract docs
- test-tmux-detector.sh: Acceptance test

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 23:44:42 -04:00
jedarden
d66f892423 feat(tb-15rh): add tmux detector acceptance test execution script
Created bin/run-tmux-detector-acceptance.sh that runs the tmux
detector acceptance test 5 times with structured JSON output.

Features:
- Runs 5 iterations by default (configurable with -n)
- Captures per-run metrics: timestamp, pass/fail, duration, exit code
- Detects false positives and false negatives from logs
- Categorizes failure types (detection_timeout, unstuck_timeout, etc.)
- Outputs parseable JSON for analysis
- Command-line options: -n/--num-runs, -o/--output, -h/--help

Acceptance criteria met:
- Script executable at bin/run-tmux-detector-acceptance.sh
- Runs 5 iterations automatically
- Logs timestamp, pass/fail, execution time, error messages
- Outputs structured JSON format
- Manually tested and verified

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 18:01:13 -04:00
jedarden
e2dfbcf33e feat(tb-lg44): add automated test execution script
Add bin/run-tmux-detector-metrics.sh script that:
- Runs tmux detector acceptance test repeatedly
- Accepts iterations parameter (default 5)
- Captures pass/fail status, execution time, and failure analysis
- Outputs structured CSV results for later analysis
- Is idempotent with timestamped result files

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 16:58:54 -04:00
jedarden
31829c48e4 feat(tui): commit Phase 8/9 source files
- Add tui/main.go, tui/go.mod, tui/go.sum (Go + Bubble Tea TUI)
- Add CLAUDE.md with project instructions
- Add bin/trailboss-preview script
- Update bin/trailboss, bin/trailboss-start, bin/trailboss-watch
- Update PROGRESS.md and docs/plan/plan.md to reflect completion
- Add .gitignore entries for build artifacts (tui/tui, bin/trailboss-tui)
- Remove stray root main.go placeholder and ~ directory

Bead-Id: tb-25j
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 07:57:11 -04:00
jedarden
4e593de16d feat(trail-boss): phase 6 complete - all 7 acceptance scenarios passing
Walking skeleton test suite passes end-to-end:
- AS-1: Permission block enqueue/dequeue
- AS-2: FIFO ordering
- AS-3: Answered-in-pane reconcile
- AS-4: Dropped-event recovery
- AS-5: Skip + cooldown
- AS-6: No forced focus-steal
- AS-7: Pane reuse regression

Phase 6 exit criterion met (AS-1 through AS-6 pass).
Phase 6 complete (AS-7 also passes).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 12:55:37 -04:00
jedarden
694225aee0 feat(trail-boss): phase 5 - Presentation layer
Complete the presentation layer with popup queue picker, keybindings,
and status-line segment.

Changes:
- bin/trailboss-popup: Rewritten with python3 JSON parsing, box drawing UI,
  and index-based selection that navigates directly to chosen pane
- bin/trailboss-status: Status-line segment showing "⚠ N" when stuck
- tmux.conf: Keybindings for Next (prefix+Tab), Skip (prefix+s), Popup (prefix+g)
- test-presentation.sh: Phase 5 exit criterion tests (all passing)

Verified: CLI commands work, popup lists queue with selection, status shows
stuck count, keybindings configured.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 22:26:17 -04:00
jedarden
24abe52a26 feat(trail-boss): phase 4 - Navigation command
Implemented trailboss CLI with jump-next and skip commands that
navigate to panes returned by the daemon's /next endpoint.

- bin/trailboss: main CLI with jump-next, skip, popup stubs
- jump-next: queries /next, navigates via switch-client/select-window/select-pane
- skip: POSTs /skip, then jumps to new head
- test-navigation.sh: synthetic event test verifying exit criterion

Exit criterion passed: jump-next lands operator on pane returned by /next.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 22:18:01 -04:00