Skip to content

feat: add manual tmux reattach commands#63

Merged
phasetr merged 3 commits into
mainfrom
feature/manual-tmux-reattach
May 10, 2026
Merged

feat: add manual tmux reattach commands#63
phasetr merged 3 commits into
mainfrom
feature/manual-tmux-reattach

Conversation

@phasetr
Copy link
Copy Markdown
Owner

@phasetr phasetr commented May 9, 2026

Summary

  • add manual enkan-repl-tmux-reattach command to restore persisted workspace state only when explicitly invoked
  • avoid force-refreshing every restored workspace during reattach; if state is already current, reattach now returns without refreshing
  • add enkan-repl-tmux-refresh-workspace to explicitly recreate/refresh tmux mirror buffers for the current workspace
  • bind refresh to C-M-g and reattach to C-M-r in examples/keybinding.el
  • update README.org to document manual reattach, explicit workspace refresh, consult/minibuffer refresh deferral, and that startup reattach is not automatic

Keybinding rationale

  • C-M-g: refresh/update current workspace mirrors, using a lightweight repeatable key near the existing C-M workspace controls
  • C-M-r: manual reattach/reconnect after Emacs restart, mnemonic for reattach/restore and intentionally separate from refresh

Freeze investigation

  • enkan-repl-tmux-reattach only matters if that command is invoked; it is not an automatic startup path.
  • The always-on path is the tmux mirror idle timer. It skips hidden buffers, but consult-buffer preview can temporarily display a mirror buffer in a live window, which previously made it eligible for synchronous tmux capture-pane during minibuffer completion.
  • Timer refresh now defers while the minibuffer is active, so consult preview/listing cannot trigger mirror capture. Explicit commands (enkan-repl-tmux-refresh-current / enkan-repl-tmux-refresh-workspace) still force refresh by design.

Tests

  • make test
  • make compile
  • make checkdoc

@phasetr phasetr force-pushed the feature/manual-tmux-reattach branch 3 times, most recently from f79d616 to 9908b6f Compare May 9, 2026 15:07
@phasetr phasetr force-pushed the feature/manual-tmux-reattach branch from 9908b6f to ffbcb73 Compare May 9, 2026 15:20
@phasetr phasetr merged commit 3d70358 into main May 10, 2026
1 check passed
@phasetr phasetr deleted the feature/manual-tmux-reattach branch May 10, 2026 03:07
github-actions Bot pushed a commit that referenced this pull request May 10, 2026
# [0.19.0](v0.18.1...v0.19.0) (2026-05-10)

### Bug Fixes

* keep keybinding example compatible with emacs 28 ([90a8a2a](90a8a2a))
* use emacs 28 compatible keymap binding ([f2fdd59](f2fdd59))

### Features

* add manual tmux reattach commands ([#63](#63)) ([3d70358](3d70358))
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 0.19.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant