feat: default-tmux-sessions#88
Draft
satyaborg wants to merge 3 commits into
Draft
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
devloop | f54e584 | Commit Preview URL Branch Preview URL |
Jul 15 2026, 02:25 AM |
Owner
Author
Devloop Review Round 1
Review 1Verdict: ACCEPT Acceptance matrix
Engineering quality matrix
Review flags
FindingsNone Missing tests
Fix instructionsNone Notes
|
Owner
Author
Devloop Final Report
Acceptance Matrix SummaryAcceptance matrix
Engineering Quality SummaryEngineering quality matrix
Implementation Summary
Commit References
Tests Run
Residual Risk
|
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.
Default tmux Sessions
Problem
An interactive devloop currently owns the invoking terminal for its entire coder and reviewer loop. Closing that terminal interrupts the run, detaching the terminal is not possible, and several concurrent devloops are difficult to identify or revisit. This hurts when a long run must continue unattended or when multiple specs are running at once across repositories.
Outcome
devloop <spec>anddevloop continuecreate one unique, human-readable tmux session per interactive run and move the user into it. A user can detach withCtrl-b d, close the original terminal, list the named sessions, and reattach later while the same devloop keeps running. Launching from an existing tmux client switches to the new session instead of nesting tmux.--no-tmuxand non-interactive execution retain the current foreground behavior, while installation and doctor flows treat tmux as a required dependency.Acceptance Criteria
AC1: An eligible
devloop <spec>invocation outside tmux creates a new named tmux session, attaches the current terminal, and starts the loop only inside that session.AC2: An eligible run invoked inside tmux creates a separate detached session and switches the existing client to it without nesting tmux.
AC3: A run's base session name is the normalized
devloop-<repo>-<spec-slug>form, while a continued run uses the track filename as its slug source.AC4: An occupied base session name produces the first available numeric suffix starting at
-2without attaching to the occupied session.AC5: Detaching or disconnecting the client leaves the launched devloop running and discoverable under its allocated session name.
AC6:
--no-tmuxis accepted by explicit run and continue commands and preserves their existing foreground behavior without invoking tmux.AC7: A run with non-TTY stdin or stdout preserves the existing foreground behavior without invoking tmux.
AC8: A menu-selected run creates one session after selection and passes its resolved run choices to the child without repeating the spec or PR prompts.
AC9: Explicit and menu-selected continue workflows create one new session after resolving the track and resume through the existing
run_from_trackbehavior.AC10: A missing tmux command makes an eligible launch fail before loop execution with actionable installation guidance.
AC11: Invalid spec or track input returns the existing validation error before any tmux session is created.
AC12: A failed
new-sessioncall exits nonzero and never falls back to a second foreground execution.AC13: The tmux child receives the caller's working directory, current
PATH, original arguments as distinct argv values, and exactly one injected--no-tmuxrecursion guard.AC14:
devloop spec,nightshift,status,clean,reports,doctor, andupdatedo not enter the automatic tmux boundary, and nightshift child loops explicitly pass--no-tmux.AC15: Both installers treat tmux as a required Homebrew formula, post-install verification checks it, and
devloop doctorfails required-dependency readiness when it is absent.AC16: Plain help, TUI help,
README.md, andCONTRIBUTING.mddocument the tmux default,--no-tmux, required dependency, detach command, and reattach command where appropriate.AC17:
bash scripts/devloop_test.shpasses with every new project function covered and no real tmux side effect.Review Trail
Review rounds and the final report are posted as PR comments below.
Generated by devloop.sh