From a68228bfa12f4d8a51fe53e244fcd2e66c1ef692 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 2 Jul 2026 09:38:04 +0300 Subject: Remove hexai-tmux-edit popup editor feature The tmux popup editor and its per-agent detection (Cursor/Amp/Aider) added maintenance surface without enough use to justify it; Codex and Claude Code already support external-editor mode natively via Ctrl+G. Drops internal/tmuxedit, cmd/hexai-tmux-edit, the [tmux_edit] config schema, the Mage build target, and all related docs/README mentions. Bump version to 0.42.0. Co-Authored-By: Claude Sonnet 5 --- internal/tmuxedit/pane_test.go | 73 ------------------------------------------ 1 file changed, 73 deletions(-) delete mode 100644 internal/tmuxedit/pane_test.go (limited to 'internal/tmuxedit/pane_test.go') diff --git a/internal/tmuxedit/pane_test.go b/internal/tmuxedit/pane_test.go deleted file mode 100644 index d15ef55..0000000 --- a/internal/tmuxedit/pane_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package tmuxedit - -import ( - "fmt" - "testing" -) - -func TestResolveTargetPane_FlagWins(t *testing.T) { - deps := tmuxEditDeps{runCommand: func(string, ...string) ([]byte, error) { - return []byte("%99"), nil - }} - t.Setenv("HEXAI_TMUX_PANE", "%10") - got, err := deps.resolveTargetPane("%5") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if got != "%5" { - t.Errorf("got %q, want %%5 (flag should win)", got) - } -} - -func TestResolveTargetPane_EnvFallback(t *testing.T) { - deps := tmuxEditDeps{runCommand: func(string, ...string) ([]byte, error) { - return []byte("%99"), nil - }} - t.Setenv("HEXAI_TMUX_PANE", "%10") - got, err := deps.resolveTargetPane("") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if got != "%10" { - t.Errorf("got %q, want %%10 (env fallback)", got) - } -} - -func TestResolveTargetPane_TmuxQuery(t *testing.T) { - deps := tmuxEditDeps{runCommand: func(name string, args ...string) ([]byte, error) { - if name == "tmux" && len(args) > 0 && args[0] == "display-message" { - return []byte("%42\n"), nil - } - return nil, fmt.Errorf("unexpected command: %s", name) - }} - t.Setenv("HEXAI_TMUX_PANE", "") - got, err := deps.resolveTargetPane("") - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if got != "%42" { - t.Errorf("got %q, want %%42 (tmux query)", got) - } -} - -func TestResolveTargetPane_TmuxError(t *testing.T) { - deps := tmuxEditDeps{runCommand: func(string, ...string) ([]byte, error) { - return nil, fmt.Errorf("tmux not available") - }} - t.Setenv("HEXAI_TMUX_PANE", "") - _, err := deps.resolveTargetPane("") - if err == nil { - t.Fatal("expected error when tmux fails") - } -} - -func TestResolveTargetPane_TmuxEmptyOutput(t *testing.T) { - deps := tmuxEditDeps{runCommand: func(string, ...string) ([]byte, error) { - return []byte(" \n"), nil - }} - t.Setenv("HEXAI_TMUX_PANE", "") - _, err := deps.resolveTargetPane("") - if err == nil { - t.Fatal("expected error for empty tmux output") - } -} -- cgit v1.2.3