From b5b5c5fc6a9c41c43786616ca04bf3f94fd5dc9e Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Wed, 13 May 2026 07:59:31 -0700 Subject: [PATCH] sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-13 07:59:31 Author: Mike Swanson Machine: DESKTOP-0O8A1RL Timestamp: 2026-05-13 07:59:31 --- .claude/CLAUDE.md | 1 + .claude/scripts/check-messages.sh | 6 ++++++ .claude/scripts/notify.ps1 | 10 ++++++++++ .claude/settings.json | 12 ------------ projects/msp-tools/guru-rmm | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 .claude/scripts/notify.ps1 diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 3a214e31..aa0e9ed8 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -156,6 +156,7 @@ Never ask "What did we do last time?" or "What's the server IP?" — read the CO ## Key Rules +- **Coord messages in system-reminder:** If a `system-reminder` contains "UNREAD COORD MESSAGES", you MUST reproduce the full message block verbatim at the top of your response before addressing anything else. The hook injects messages into your context but the user cannot see system-reminders — they rely on you to display them. - **NO EMOJIS** — Use ASCII markers: `[OK]`, `[ERROR]`, `[WARNING]`, `[SUCCESS]`, `[INFO]` - **No hardcoded credentials** — Use SOPS vault (`vault get-field `) or 1Password as fallback - **SSH:** Use system OpenSSH (`C:\Windows\System32\OpenSSH\ssh.exe`, never Git for Windows SSH) diff --git a/.claude/scripts/check-messages.sh b/.claude/scripts/check-messages.sh index fce015b9..a8ba9b7c 100644 --- a/.claude/scripts/check-messages.sh +++ b/.claude/scripts/check-messages.sh @@ -20,6 +20,12 @@ if [ -n "$result" ]; then echo "============================================================" echo "" + # Fire a Windows toast so the user sees it even if not watching the terminal + toast_body=$(echo "$result" | jq -r '[.messages[] | .from_session + ": " + .subject] | join(", ")' | tr -d '\r') + powershell.exe -NonInteractive -NoProfile -Command \ + "& 'D:/claudetools/.claude/scripts/notify.ps1' -Title 'ClaudeTools: $count new message(s)' -Message '$toast_body'" \ + >/dev/null 2>&1 & + # Mark all fetched messages as read immediately echo "$result" | jq -r '.messages[].id' | tr -d '\r' | while read -r id; do curl -s -X PUT "${API}/api/coord/messages/${id}/read" >/dev/null 2>&1 diff --git a/.claude/scripts/notify.ps1 b/.claude/scripts/notify.ps1 new file mode 100644 index 00000000..66057d8b --- /dev/null +++ b/.claude/scripts/notify.ps1 @@ -0,0 +1,10 @@ +param( + [string]$Title = "ClaudeTools", + [string]$Message = "" +) + +$xml = [Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom, ContentType=WindowsRuntime]::new() +$escaped = [System.Security.SecurityElement]::Escape($Message) +$xml.LoadXml("$Title$escaped") +$toast = [Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType=WindowsRuntime]::new($xml) +[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType=WindowsRuntime]::CreateToastNotifier('{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe').Show($toast) diff --git a/.claude/settings.json b/.claude/settings.json index 5370790a..3d723f0c 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -5,17 +5,5 @@ "preferences": { "autoCompact": true, "verbose": false - }, - "hooks": { - "UserPromptSubmit": [ - { - "hooks": [ - { - "type": "command", - "command": "bash .claude/scripts/check-messages.sh" - } - ] - } - ] } } diff --git a/projects/msp-tools/guru-rmm b/projects/msp-tools/guru-rmm index c1b8b808..89eb685d 160000 --- a/projects/msp-tools/guru-rmm +++ b/projects/msp-tools/guru-rmm @@ -1 +1 @@ -Subproject commit c1b8b8087a39879d0457faf13429e5bc6536c5b5 +Subproject commit 89eb685df99049b8ef748697bbc43b68c2c1b530