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
This commit is contained in:
@@ -156,6 +156,7 @@ Never ask "What did we do last time?" or "What's the server IP?" — read the CO
|
|||||||
|
|
||||||
## Key Rules
|
## 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 EMOJIS** — Use ASCII markers: `[OK]`, `[ERROR]`, `[WARNING]`, `[SUCCESS]`, `[INFO]`
|
||||||
- **No hardcoded credentials** — Use SOPS vault (`vault get-field <path> <field>`) or 1Password as fallback
|
- **No hardcoded credentials** — Use SOPS vault (`vault get-field <path> <field>`) or 1Password as fallback
|
||||||
- **SSH:** Use system OpenSSH (`C:\Windows\System32\OpenSSH\ssh.exe`, never Git for Windows SSH)
|
- **SSH:** Use system OpenSSH (`C:\Windows\System32\OpenSSH\ssh.exe`, never Git for Windows SSH)
|
||||||
|
|||||||
@@ -20,6 +20,12 @@ if [ -n "$result" ]; then
|
|||||||
echo "============================================================"
|
echo "============================================================"
|
||||||
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
|
# Mark all fetched messages as read immediately
|
||||||
echo "$result" | jq -r '.messages[].id' | tr -d '\r' | while read -r id; do
|
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
|
curl -s -X PUT "${API}/api/coord/messages/${id}/read" >/dev/null 2>&1
|
||||||
|
|||||||
10
.claude/scripts/notify.ps1
Normal file
10
.claude/scripts/notify.ps1
Normal file
@@ -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("<toast><visual><binding template=`"ToastGeneric`"><text>$Title</text><text>$escaped</text></binding></visual></toast>")
|
||||||
|
$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)
|
||||||
@@ -5,17 +5,5 @@
|
|||||||
"preferences": {
|
"preferences": {
|
||||||
"autoCompact": true,
|
"autoCompact": true,
|
||||||
"verbose": false
|
"verbose": false
|
||||||
},
|
|
||||||
"hooks": {
|
|
||||||
"UserPromptSubmit": [
|
|
||||||
{
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "bash .claude/scripts/check-messages.sh"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Submodule projects/msp-tools/guru-rmm updated: c1b8b8087a...89eb685df9
Reference in New Issue
Block a user