@trygocode/notify 0.6.7 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/src/cli.js +18 -3
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -530,6 +530,21 @@ npm publish, real-device E2E), see
|
|
|
530
530
|
|
|
531
531
|
## Changelog
|
|
532
532
|
|
|
533
|
+
### 0.6.8
|
|
534
|
+
|
|
535
|
+
- **Fixed: Claude questions inside Cursor now notify.** When Claude Code runs
|
|
536
|
+
inside Cursor and asks a question (permission prompt, idle/elicitation, agent
|
|
537
|
+
needs input), the notification was being **suppressed** because the imported
|
|
538
|
+
Claude `Notification` payload carries `cursor_version`. That suppression is
|
|
539
|
+
correct for *completions* (Cursor's own `stop` hook already fires, so the
|
|
540
|
+
imported Claude `Stop` would double-notify) — but **wrong for questions**:
|
|
541
|
+
Cursor's native question hook (`AskQuestion` via `postToolUse`) is broken
|
|
542
|
+
upstream and Cursor has no `Notification` event, so the imported Claude
|
|
543
|
+
`Notification` is the *only* question signal. `on-notification` now always
|
|
544
|
+
forwards a genuine input-requiring notification, even when Cursor imported it.
|
|
545
|
+
The non-input `notification_type` filter and per-question `--dedupe-key` still
|
|
546
|
+
apply, so no extra noise or duplicates.
|
|
547
|
+
|
|
533
548
|
### 0.6.7
|
|
534
549
|
|
|
535
550
|
- **Notification project name now matches your IDE.** The per-turn completion
|
package/dist/src/cli.js
CHANGED
|
@@ -20,7 +20,7 @@ import { serveStdio } from "./mcp.js";
|
|
|
20
20
|
import { setup } from "./setup.js";
|
|
21
21
|
import { uninstall } from "./uninstall.js";
|
|
22
22
|
import { cmdConfig } from "./config.js";
|
|
23
|
-
import { onStop,
|
|
23
|
+
import { onStop, parseCursorStopStatus, cursorStopStatusToKind, clickTarget, projectLabel, } from "./on_stop.js";
|
|
24
24
|
import { notifyDesktop, requestDesktopPermission, desktopDisabledByEnv, } from "./desktop_notify.js";
|
|
25
25
|
import { resolveNotifySettings } from "./config.js";
|
|
26
26
|
import { deriveRepoIdentity } from "./repo_key.js";
|
|
@@ -795,8 +795,23 @@ export async function cmdOnNotification(args, deps = {}) {
|
|
|
795
795
|
const hookStdin = deps.hookStdin !== undefined
|
|
796
796
|
? deps.hookStdin
|
|
797
797
|
: await (deps.readStdin ?? readStdinIfPipe)();
|
|
798
|
-
|
|
799
|
-
|
|
798
|
+
// NOTE (2026-07-28): we DELIBERATELY do NOT suppress Cursor-imported Claude
|
|
799
|
+
// hooks here (unlike the `on-stop`/completion path). The `cursor_version`
|
|
800
|
+
// suppression exists to avoid DOUBLE notifications when BOTH a native Cursor
|
|
801
|
+
// hook AND the imported Claude hook fire for the same turn. That double-fire
|
|
802
|
+
// only happens for COMPLETION: Cursor's native `stop` hook works, so its
|
|
803
|
+
// imported Claude `Stop` would duplicate it → suppress.
|
|
804
|
+
//
|
|
805
|
+
// For QUESTIONS there is no competing native hook to dedupe against: Cursor's
|
|
806
|
+
// own question signal (the `AskQuestion` `postToolUse` hook) is BROKEN upstream
|
|
807
|
+
// (Cursor docs: "postToolUse ... excluding the AskQuestion tool, which is a
|
|
808
|
+
// known bug") and Cursor has NO `Notification` event at all. So when Claude
|
|
809
|
+
// runs inside Cursor and asks a question, the imported Claude `Notification`
|
|
810
|
+
// hook is the ONLY signal we get. Suppressing it (the old behaviour) silently
|
|
811
|
+
// dropped every in-Cursor Claude question — the exact "questions don't notify"
|
|
812
|
+
// regression. We now always forward a genuine input-requiring notification,
|
|
813
|
+
// regardless of whether Cursor imported it. The per-turn `--dedupe-key` still
|
|
814
|
+
// coalesces any accidental repeat of the SAME question.
|
|
800
815
|
const notificationType = parseClaudeNotificationType(hookStdin);
|
|
801
816
|
if (notificationType !== undefined &&
|
|
802
817
|
!CLAUDE_INPUT_NOTIFICATION_TYPES.has(notificationType)) {
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Single source of truth for the CLI version. Keep in sync with package.json.
|
|
2
|
-
export const VERSION = "0.6.
|
|
2
|
+
export const VERSION = "0.6.8";
|
package/package.json
CHANGED