feat: fix Cursor hook delivery and improve notify workflow

Route hook notifications through /dev/tty and client_tty so OSC reaches
Ghostty when Cursor captures stdout. Add afterAgentResponse hook, hook
logging, debounce, split test modes, and use directory name for titles.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-26 12:46:50 +08:00
parent aa9c2b8ea5
commit 021fc3a828
20 changed files with 757 additions and 76 deletions
+29
View File
@@ -0,0 +1,29 @@
package logx
import (
"os"
"path/filepath"
"testing"
)
func TestAppendAndTail(t *testing.T) {
dir := t.TempDir()
t.Setenv("HOME", dir)
Append("hello %s", "world")
lines, err := Tail(10)
if err != nil {
t.Fatal(err)
}
if len(lines) != 1 {
t.Fatalf("expected 1 line, got %d", len(lines))
}
if lines[0] == "" {
t.Fatal("empty line")
}
path := filepath.Join(dir, ".local", "state", "agent-notify", "hook.log")
if _, err := os.Stat(path); err != nil {
t.Fatalf("log file not created: %v", err)
}
}