docs: comprehensive hook/sling/handoff/nudge audit
- Update propulsion-principle.md: implementation status now accurate - Update beads-data-plane.md: correct command syntax - Fix hook.go: clarify durability semantics, add related commands - Fix sling.go: use reliable NudgePane instead of raw tmux send-keys - Add tmux.NudgePane: pane-targeted reliable message delivery The command menagerie: gt hook = assign (durability) gt nudge = communicate (generic messaging) gt sling = hook + nudge "start working" gt handoff = hook + restart (GUPP kicks in) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -207,6 +207,25 @@ func (t *Tmux) NudgeSession(session, message string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// NudgePane sends a message to a specific pane reliably.
|
||||
// Same pattern as NudgeSession but targets a pane ID (e.g., "%9") instead of session name.
|
||||
func (t *Tmux) NudgePane(pane, message string) error {
|
||||
// 1. Send text in literal mode (handles special characters)
|
||||
if _, err := t.run("send-keys", "-t", pane, "-l", message); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 2. Wait 500ms for paste to complete (tested, required)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
|
||||
// 3. Send Enter as separate command (key to reliability)
|
||||
if _, err := t.run("send-keys", "-t", pane, "Enter"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetPaneCommand returns the current command running in a pane.
|
||||
// Returns "bash", "zsh", "claude", "node", etc.
|
||||
func (t *Tmux) GetPaneCommand(session string) (string, error) {
|
||||
|
||||
Reference in New Issue
Block a user