From f4e354b72be080da2c843f7199a87db31eea41e6 Mon Sep 17 00:00:00 2001 From: JeremyDev87 Date: Sat, 4 Apr 2026 00:52:15 +0900 Subject: [PATCH] fix(plugin): use resolve_data_dir in notifications (#1231) Replace hardcoded ~/.codingbuddy default in notify() with resolve_data_dir() so webhook secrets are found when CLAUDE_PLUGIN_DATA points to a custom directory. --- packages/claude-code-plugin/hooks/lib/notifications.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/claude-code-plugin/hooks/lib/notifications.py b/packages/claude-code-plugin/hooks/lib/notifications.py index 40dc9ba3..8ed49bbe 100644 --- a/packages/claude-code-plugin/hooks/lib/notifications.py +++ b/packages/claude-code-plugin/hooks/lib/notifications.py @@ -14,6 +14,8 @@ from urllib.request import Request, urlopen, build_opener, HTTPRedirectHandler from urllib.error import URLError +from data_dir import resolve_data_dir + class _NoRedirectHandler(HTTPRedirectHandler): """Refuse all HTTP redirects to prevent secret leakage.""" @@ -139,7 +141,7 @@ def notify( Args: event: The notification event to send. config: Parsed codingbuddy.config.json (event toggles + platform list). - secrets_dir: Override secrets directory (default: ~/.codingbuddy). + secrets_dir: Override secrets directory (default: resolve_data_dir()). Returns: Dict mapping platform name -> success boolean. @@ -149,7 +151,7 @@ def notify( return {} if secrets_dir is None: - secrets_dir = os.path.join(os.path.expanduser("~"), ".codingbuddy") + secrets_dir = resolve_data_dir() secrets = load_secrets(secrets_dir) notifications = config.get("notifications", {})