From 9e09f4735e4cf39d06abc3e95c8f1cb0627e7724 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 3a214e3..aa0e9ed 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 fce015b..a8ba9b7 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 0000000..66057d8 --- /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 5370790..3d723f0 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 c1b8b80..89eb685 160000 --- a/projects/msp-tools/guru-rmm +++ b/projects/msp-tools/guru-rmm @@ -1 +1 @@ -Subproject commit c1b8b8087a39879d0457faf13429e5bc6536c5b5 +Subproject commit 89eb685df99049b8ef748697bbc43b68c2c1b530