Concurrent sessions, enhanced dashboard, and session navigation#10
Merged
Concurrent sessions, enhanced dashboard, and session navigation#10
Conversation
- Add branch locking: prevent concurrent tasks on the same branch - Add get_active_tasks() and get_tasks_on_branch() to persistence layer - Rewrite cmd_status with rich table: colored state indicators, mode, branch - Add --watch flag: auto-refreshing live dashboard (inspired by recon) - Add --json flag: machine-readable status output for scripting - Add cmd_attach: switch to a task's tmux session - Add cmd_next: jump to next session needing attention (STOPPED/FAILED) - Add rich as a dependency - 97 tests passing (4 new tests for active tasks and branch locking)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds multi-session support with a rich status dashboard, session navigation, and branch locking. Inspired by gavraz/recon's table dashboard and session management UX.
Closes #3
Concurrent Sessions & Branch Locking
autopilot startnow checks if another active task is already on the target branch. If so, it blocks with a clear error message suggestingautopilot stopfirst. Prevents conflicts from two tasks writing to the same branch.get_active_tasks()(all non-terminal tasks),get_tasks_on_branch(branch)(for locking checks).Enhanced Dashboard (
autopilot status)rich-powered dashboard showing colored state indicators, mode (review/ci), branch, PR number, iteration progress, and elapsed time.--watchflag: Auto-refreshing live display usingrich.live.Live, refreshes every N seconds (configurable via--interval). Similar torecon's default table view.--jsonflag: Machine-readable JSON output for scripting. Similar torecon json.Session Navigation
autopilot attach <task_id>: Switch to (or attach to) a task's tmux session. Works both inside tmux (switch-client) and outside (attach).autopilot next: Jump to the next session needing attention. Prioritizes STOPPED > FAILED tasks. Similar torecon next.What we took from recon
--jsonoutput mode (recon'srecon json)nextcommand for jumping to sessions needing input (recon'srecon next)--watch(recon's 2-second poll approach)What we deferred
autopilot start --mode cias a unified alias (tracked in a separate issue)Dependencies
richas a runtime dependencyTests
get_active_tasks,get_active_tasks_excludes_stopped_and_failed,get_tasks_on_branch,get_tasks_on_branch_excludes_terminal)