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
+24
View File
@@ -0,0 +1,24 @@
package hook
import (
"bytes"
"testing"
"github.com/longbin/agent-notify/internal/config"
)
func TestRunCursorEmptyStdinDoesNotBlock(t *testing.T) {
cfg := config.Default()
err := RunCursor(bytes.NewReader(nil), cfg, "stop", nil)
if err != nil {
t.Fatal(err)
}
}
func TestRunCursorWithPayload(t *testing.T) {
cfg := config.Default()
err := RunCursor(bytes.NewReader([]byte(`{"workspace_roots":["/tmp/proj"]}`)), cfg, "stop", nil)
if err != nil {
t.Fatal(err)
}
}