Review: tmux window move should insert, not swap
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Lineage -- present: "standalone -- discovered during tmux daily use"
- [x] Repo -- present: ldraney/tmux-custom (GitHub)
- [ ] User Story -- MISSING (acceptable omission for bug type)
- [x] Context -- present as "What Broke" + "Repro Steps" + "Expected Behavior" (thorough for a bug)
- [ ] File Targets -- MISSING. Agent needs explicit file path and modification zone.
- [x] Acceptance Criteria -- present (4 criteria)
- [ ] Test Expectations -- MISSING (mitigated: tmux configs lack automated test harness)
- [ ] Constraints -- MISSING. Critical: plugin load order not documented.
- [ ] Checklist -- MISSING
- [x] Related -- present
File Targets
- [x]
~/tmux-custom/.tmux.conf-- verified exists (symlinked from~/.tmux.conf). 102 lines. Config confirmed. - [x]
renumber-windows onat line 72 -- verified exactly as claimed. - [x]
~/.tmux/plugins/tmux-pain-control/pain_control.tmux-- verified. Lines 29-32 confirmswap-window -d -t -1andswap-window -d -t +1bindings on<and>. - [ ] ISSUE: No File Targets section in the issue. The agent must know to add override bindings to
~/tmux-custom/.tmux.conf, specifically AFTER the TPM init line (line 95:run '~/.tmux/plugins/tpm/tpm'). This is not stated anywhere.
Repo Placement
OK. Issue filed on
forgejo_admin/dotfiles (issue tracker). Code lives in ldraney/tmux-custom (GitHub). Repo description confirms this split: "Code lives on GitHub (tmux-custom), issues tracked here." Single repo affected.Dependencies
No dependencies. Board item #358 is the only item on
board-dotfiles. No blockers, no blocked items. Standalone bug fix.Acceptance Criteria
4 criteria provided. Assessment:
- [x] "prefix + < moves current window left one position without displacing non-adjacent windows" -- testable manually, clear pass/fail
- [x] "prefix + > moves current window right one position without displacing non-adjacent windows" -- testable manually, clear pass/fail
- [x] "Repeatable (-r) -- mash key to slide through multiple positions" -- testable, implies
bind-key -rflag - [x] "Works with renumber-windows on (line 72 in config)" -- testable, line reference verified accurate
Criteria are well-written and verifiable. No missing criteria detected.
Blast Radius
- The only other
swap-windowbinding in the config is line 17:bind-key -n MouseDrag1Status swap-window -dt=(mouse drag reorder). The fix should NOT change this -- it only overrides the</>keybindings fromtmux-pain-control. - The plugin also sets pane navigation (h/j/k/l), pane resize (H/J/K/L), split bindings (|, -, etc.), and new-window. These are unaffected by overriding only
</>. - No sibling services or downstream consumers. Self-contained dotfile change.
Recommendation
Two issues must be addressed before this ticket is READY:
- Add File Targets section:
### File Targets - `~/tmux-custom/.tmux.conf` -- add override bindings AFTER TPM init (after line 95) - DO NOT modify `~/.tmux/plugins/tmux-pain-control/pain_control.tmux` -- plugin-managed file
- Add Constraints section:
### Constraints - Override bindings MUST be placed after `run '~/.tmux/plugins/tpm/tpm'` (line 95). TPM executes plugin scripts during init, so any binding set before this line will be overwritten by tmux-pain-control. - Use `swap-window` with adjacent target only (not move-window, which has different renumber semantics). - Keep `-r` flag for repeat capability. - Do NOT touch the MouseDrag1Status binding on line 17 (separate feature).