Commit Graph

885 Commits

Author SHA1 Message Date
64374e3ecb sync: auto-sync from HOWARD-HOME at 2026-05-26 12:40:52
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-26 12:40:52
2026-05-26 12:40:56 -07:00
3a0c83dd42 feat: add GuruScan standalone multi-scanner security suite
Adds a complete PowerShell-based malware scanning toolkit:

- Invoke-GuruScan.ps1: main orchestrator running RKill, AdwCleaner,
  Emsisoft, HitmanPro, and ESET in sequence with pre/post cleanup,
  whitelist support, ForceRemove blacklist, and -Headless switch
- Invoke-PostRebootCleanup.ps1: post-reboot temp-user session that
  shows a fullscreen splash, verifies boot-time cleanup completed,
  removes scanner files, and restores the original user login name
- Download-Scanners.ps1: downloads/refreshes scanner EXEs
- Get-ScanSummary.ps1: parses results.json with optional Ollama AI analysis
- Invoke-Remediation.ps1: re-runs scanners in clean mode

Key features: exit-code-based reboot detection, whoami-based user
capture (SYSTEM-safe via quser fallback), domain\user and local
MACHINE\user restore on login screen after cleanup reboot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:40:56 -07:00
d9ab515463 feat: add /wiki-compile skill + Syncro live-check in /wiki-lint
/wiki-compile: new skill that seeds or refreshes wiki client articles
from session logs and live Syncro PSA data.

- Three modes: seed (new article), refresh (surgical update), full (--full flag)
- Syncro enrichment for client targets: customer profile, contacts,
  open tickets, recent invoices, asset count
- Ambiguous customer search: pause and ask user to pick
- Customer not found: graceful warn + continue with session logs only
- Syncro is authoritative for all billing fields (hours, rate, contract type)
- Refresh mode: surgical edits only (hours, active tickets, frontmatter)
- Seed/full: Ollama qwen3:14b synthesis; Claude-direct fallback
- Asset count in Profile only — no asset detail tables in wiki
- Commits and pushes after write

/wiki-lint: add Step 6 — Syncro Live-Check
- Pulls live prepay_hours for every client article with a Syncro customer ID
- Auto-fixes stale hours in place; commits fixes in one batch
- Flags articles with open tickets and stale compiled date for review
- Adds Syncro section to lint report output

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 11:45:44 -07:00
2cbe246025 sync: auto-sync from GURU-5070 at 2026-05-26 11:30:54
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-26 11:30:54
2026-05-26 11:30:58 -07:00
464d28ae3d chore(submodule): advance guru-rmm — PRODUCT.md + .gitignore .claude/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 09:43:23 -07:00
6d726bfcc5 chore(submodule): advance guru-rmm — SPEC-008 expanded to multi-provider SSO
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 08:27:54 -07:00
b7c9d48e78 chore(submodule): advance guru-rmm — InventoryTab ReactNode fix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 08:21:55 -07:00
02df84fe80 chore(submodule): advance guru-rmm — SPEC-008 SSO / Entra ID
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 08:17:35 -07:00
940e679943 chore(submodule): advance guru-rmm — SSO removed, deferred to feature request
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 08:15:00 -07:00
1105a9bd52 sync: auto-sync from GURU-5070 at 2026-05-26 08:07:31
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-26 08:07:31
2026-05-26 08:07:34 -07:00
1c038c7c2c feat(coord): add due_at field to coord_todos
Migration 20260526_150000 adds nullable due_at datetime column. Model, schemas
(create/update/response), and sync.sh display updated. Sync output now shows
due:YYYY-MM-DDTHH:MM alongside any todo with a due date.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 08:05:00 -07:00
4be89035cc feat(coord): add todos system with per-user/machine/project scoping
New coord_todos table and API endpoints (GET/POST/PUT/DELETE /api/coord/todos)
supporting manual and auto-created items, sub-tasks via parent_id, and inclusive
for_user/for_machine filters (OR-null) for sync/save display. sync.sh Phase 7
now shows pending todos grouped by project after every sync. CLAUDE.md documents
auto-creation behavior for unresolved follow-up. Web/email pricing doc updated:
block time rate clarified, INKY reference removed, dates updated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 07:53:22 -07:00
7a5c12d2af sync: auto-sync from GURU-5070 at 2026-05-26 07:25:37
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-26 07:25:37
2026-05-26 07:25:41 -07:00
f962cb87d0 sync: auto-sync from GURU-5070 at 2026-05-26 07:05:06
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-26 07:05:06
2026-05-26 07:05:10 -07:00
29666be268 sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-26 06:19:08
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-26 06:19:08
2026-05-26 06:19:09 -07:00
2506bec52d sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-25 21:48:23
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-25 21:48:23
2026-05-25 21:48:24 -07:00
1924053d58 sync: auto-sync from GURU-5070 at 2026-05-25 20:25:37
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 20:25:37
2026-05-25 20:25:41 -07:00
265ef50a7c sync: auto-sync from GURU-KALI at 2026-05-25 20:24:03
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-25 20:24:03
2026-05-25 20:24:06 -07:00
0bfd1d0478 chore(submodule): advance guru-rmm — BUG-011 :any elimination merged
PR #27 merged (fix/bug-011-no-any -> main).
Merge SHA: 3aa9ea4fb08593f41bd6ed6f8d45c2fb20df85b7
Submodule HEAD: 1c09162e29ad3b031e8c0f9f0fb9873ad170ca1b

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 18:45:42 -07:00
ee6413655c chore(submodule): advance guru-rmm — BUG-009/010 isError handling merged
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 18:32:18 -07:00
b8a35b1790 chore(submodule): advance guru-rmm — BUG-008 metrics error leak fixed 2026-05-25 18:24:11 -07:00
da83bcbecc chore(submodule): advance guru-rmm — BUG-007 runtime sqlx fix merged
Advances submodule pointer to ccf1361 (PR #24 merge commit 940ced1).
Converts remaining compile-time sqlx::query! macros to runtime queries,
unblocking offline/no-prepare builds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 18:03:06 -07:00
414d303b3b chore(submodule): advance guru-rmm — feature/log-finding-dispatch merged
Adds collapsible FindingCards with agent command dispatch to log analysis.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 17:49:50 -07:00
0e2335e8fa chore(submodule): advance guru-rmm to post-audit-2-remediation merge
Points to main HEAD after merging fix/audit-2-remediation (BUG-002/003/006 fixes).
Feature branch feature/log-finding-dispatch preserved separately.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 16:03:59 -07:00
738d64efb9 sync: auto-sync from GURU-BEAST-ROG at 2026-05-25 15:52:25
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-25 15:52:25
2026-05-25 15:52:29 -07:00
d025804edf sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-25 15:51:15
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-25 15:51:15
2026-05-25 15:51:17 -07:00
6a53072dfa sync: auto-sync from GURU-BEAST-ROG at 2026-05-25 15:03:03
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-25 15:03:03
2026-05-25 15:06:20 -07:00
67182e0684 docs(rollout): reconcile Phase 5/6 docs — safe-rollout gating is inert (BUG-004)
Per the 2026-05-25 re-audit + Mike's decision (option b): the safe-rollout
promotion gating these docs describe/test is NOT live (update_rollouts /
update_health_metrics written-but-never-read; crash detection dead until the
unmerged BUG-002 fix). Added a [WARNING] STATUS banner to the test plan, verify
script, and the two 'complete' summaries so they aren't trusted as validating a
working feature. Automation is a roadmap Phase-2 item requiring a full re-spec.
2026-05-25 15:04:44 -07:00
9bee713d9c fix: Correct server name from Saturn to gururmm-build
Saturn is decommissioned. The GuruRMM build server at 172.16.3.30
is correctly named 'gururmm-build'.

Also fixed wiki standards template that incorrectly listed Neptune
as 172.16.3.30. Neptune is actually the Exchange server at Dataforth
(172.16.3.11), not the GuruRMM build server.

Updated files:
- PHASE_6_TEST_PLAN.md (all Saturn references)
- verify-rollout-system.sh (comments)
- session-logs/2026-05-25-session.md (all Saturn references)
- .claude/specs/wiki-layer/standards.md (Neptune example)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-25 14:24:02 -07:00
30cb6a8f2b sync: auto-sync from GURU-5070 at 2026-05-25 14:23:41
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 14:23:41
2026-05-25 14:23:44 -07:00
a1a4382fc8 save: GURU-5070 session update — identity audit, build unblock, v0.3.22 2026-05-25 14:21:47 -07:00
33056a0f29 sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-25 14:19:29
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-25 14:19:29
2026-05-25 14:19:46 -07:00
258042c189 sync: auto-sync from GURU-KALI at 2026-05-25 14:18:15
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-25 14:18:15
2026-05-25 14:18:16 -07:00
e1069aa567 sync: auto-sync from GURU-KALI at 2026-05-25 14:06:01
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-25 14:06:01
2026-05-25 14:06:03 -07:00
c99018ac42 test: Add Phase 6 testing plan and verification script
Created comprehensive test plan covering:
- Test 1: Beta-first build workflow
- Test 2: Health monitoring and crash detection
- Test 3: Promotion workflow with health gates
- Test 4: Rollback and force-downgrade
- Test 5: Dashboard UI testing
- Test 6: End-to-end integration testing

Added verification script for Saturn:
- Checks all 5 phases implementation
- Verifies database tables, source files, routes
- Validates build artifacts and service status
- Provides clear pass/fail status

Usage: Run verify-rollout-system.sh on Saturn before Phase 6 testing.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-25 13:59:28 -07:00
355c4acbc9 sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-25 13:53:11
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-25 13:53:11
2026-05-25 13:53:13 -07:00
072687b29a sync: auto-sync from GURU-KALI at 2026-05-25 13:52:42
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-25 13:52:42
2026-05-25 13:52:43 -07:00
0d1085b145 sync: auto-sync from GURU-KALI at 2026-05-25 13:49:31
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-25 13:49:31
2026-05-25 13:49:32 -07:00
c5f7c73381 fix: Strip .local suffix from hostname in coord message hook
Problem: macOS hostname command returns 'Mikes-MacBook-Air.local' but
coord messages are addressed to 'Mikes-MacBook-Air/claude-main'. Hook
script was querying for wrong session ID, so messages never displayed.

Fix: Strip .local suffix using bash parameter expansion before building
session ID.

Result: Coord messages now display correctly on macOS machines.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-25 13:18:33 -07:00
d74a726484 sync: auto-sync from GURU-BEAST-ROG at 2026-05-25 13:17:49
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-25 13:17:49
2026-05-25 13:17:52 -07:00
6582f73f87 sync: auto-sync from GURU-BEAST-ROG at 2026-05-25 13:13:02
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-25 13:13:02
2026-05-25 13:13:08 -07:00
19705d5ec0 sync: auto-sync from GURU-5070 at 2026-05-25 13:03:19
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 13:03:19
2026-05-25 13:03:22 -07:00
1e2c7b4283 sync: auto-sync from GURU-5070 at 2026-05-25 13:01:54
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 13:01:54
2026-05-25 13:01:57 -07:00
72d9e525d8 sync: auto-sync from GURU-5070 at 2026-05-25 12:58:05
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 12:58:05
2026-05-25 12:58:08 -07:00
6f16d4bfc2 sync: auto-sync from GURU-5070 at 2026-05-25 12:47:09
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 12:47:09
2026-05-25 12:47:12 -07:00
8ec6899fc7 sync: auto-sync from GURU-5070 at 2026-05-25 12:33:44
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 12:33:44
2026-05-25 12:33:50 -07:00
2161c1507f sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-25 12:15:42
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-25 12:15:42
2026-05-25 12:16:49 -07:00
ba8ce9a06e sync: auto-sync from GURU-KALI at 2026-05-25 09:36:22
Author: Mike Swanson
Machine: GURU-KALI
Timestamp: 2026-05-25 09:36:22
2026-05-25 09:36:23 -07:00
3de9c16743 sync: auto-sync from GURU-5070 at 2026-05-25 09:33:09
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 09:33:09
2026-05-25 09:33:14 -07:00
f2ece8eccf docs(claude.md): clarify guru-rmm submodule tracks the active repo
The submodule was described as a "stale reference copy"; it actually
tracks the active azcomputerguru/gururmm repo (the pinned commit lagging
main is normal, not stale). Also disambiguates the abandoned hyphenated
`guru-rmm` Gitea duplicate from the submodule, and notes that fresh
clones need `git submodule update --init` (now automatic in /sync).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 09:32:21 -07:00