Commit Graph

703 Commits

Author SHA1 Message Date
ae791e321d client/cascades: Phase 2.6 COMPLETE — 13 printers, 4 GPOs, 5 accounts disabled
Detailed context:
- Task: Cascades of Tucson Phase 2.6 — printer migration, GPO deployment, account cleanup
- Changes:
  - phase2-print-server.ps1: all 13 printers complete, Epson driver/share notes added
  - active-directory.md: 5 stale accounts disabled, 4 GPOs created, pending issues cleared, printer share table updated
  - Session log: 2026-05-20 Howard session covering all Phase 2.6 work
- Status: Phase 2.6 complete

Files modified:
- clients/cascades-tucson/docs/migration/scripts/phase2-print-server.ps1
- clients/cascades-tucson/docs/servers/active-directory.md
- clients/cascades-tucson/session-logs/2026-05-20-howard-phase2.6-printers-gpos-account-cleanup.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:04:08 -07:00
dc29e2ff24 client/cascades: phase2-print-server.ps1 — 8 printers installed on CS-SERVER
Rewrote with verified IPs and confirmed drivers. All 8 printers created and
shared via GuruRMM 2026-05-20. Deferred: FrontDesk Epson (needs Epson
Universal driver), Health-206 Konica Minolta (needs KM PCL6 Universal driver).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:04:08 -07:00
ba8526eae7 fix: make check-messages.sh hook path-agnostic for D: and C: roots
Hook now tries D:/claudetools then C:/claudetools so it works on both
Mike's machine and Howard's without either needing machine-local config.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:04:08 -07:00
75e3d38de8 client/cascades: n.castro cleanup, share docs, hook path fix
- active-directory.md: disable n.castro (AD + M365), fix stale Alma.Montt
  pending entry (she is intentionally cloud-only), restructure SMB shares
  section into new Phase 2.5 / legacy / system buckets (verified live via
  GuruRMM Get-SmbShare 2026-05-20)
- settings.json: remove hardcoded D:/claudetools UserPromptSubmit hook
  (machine-specific path belongs in settings.local.json only; Howard's
  machine is C:/claudetools)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:04:08 -07:00
098e1d4156 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 10:58:31
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 10:58:31
2026-05-20 10:58:35 -07:00
1f8a9dbc8d Session log: EOP access fix + Alma Montt mailbox investigation (Cascades Tucson)
- Fixed Exchange.ManageAsApp missing from Security Investigator app registration
- Granted role directly in Cascades tenant via Graph API
- Investigated Alma Montt mailbox: no delivery blocks found, specific sender TBD

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 10:39:15 -07:00
020ae0cc1c feat: Discord bot — per-session rules, user identity, and DISCORD_CLAUDE.md
- Add DISCORD_CLAUDE.md as the Discord bot's dedicated system prompt,
  replacing the main CLAUDE.md for bot sessions. Covers: no-interactive
  rules, Discord user authorization, vault/remediation guidance, /save
  after every task, and formatting rules for Discord.

- config.py: add discord_system_prompt field (default: projects/discord-bot/
  DISCORD_CLAUDE.md, overridable via env var).

- client.py: _load_system_prompt() now loads discord_system_prompt path
  with fallback to CLAUDE.md if file is missing.

- message_handler.py: inject [DISCORD_CONTEXT] header into every agent
  message containing Discord username, display name, user ID, channel,
  and guild so the agent always knows who is asking.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 10:11:36 -07:00
377ab3a63f sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 09:02:03
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 09:02:03
2026-05-20 09:02:06 -07:00
f4b935b394 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 08:25:48
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 08:25:48
2026-05-20 08:25:53 -07:00
35ee135b0f sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 07:37:32
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 07:37:32
2026-05-20 07:37:43 -07:00
35c1270941 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 06:52:41
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 06:52:41
2026-05-20 06:52:58 -07:00
5b99e4b80b sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 05:51:25
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 05:51:25
2026-05-20 05:51:29 -07:00
7bca175176 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-20 05:10:44
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-20 05:10:44
2026-05-20 05:13:16 -07:00
d246992d09 Session log: Coordination hook auto-initialization fix
Comprehensive session log documenting the fix for broken coordination hooks
across all machines. The UserPromptSubmit hook now auto-creates the required
.claude/current-mode file with "general" as default if missing.

Session highlights:
- Root cause analysis of missing machine-local mode file
- Implementation of auto-creation logic in check-messages.sh
- Documentation updates in CLAUDE.md and ONBOARDING.md
- Successful deployment and sync with 15 remote commits
- Zero manual setup required for future machines

Impact: Fixes coordination hooks permanently, prevents fresh-clone failures

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-20 05:10:24 -07:00
b62ea2d4e7 sync: auto-sync from HOWARD-HOME at 2026-05-19 22:36:25
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-19 22:36:25
2026-05-19 22:36:27 -07:00
7da6a81aa4 fix: add C:/claudetools to sync.sh candidate path list
HOWARD-HOME installs to C: not D:, causing sync.sh to fail with
"Not in a git working tree" on that machine.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 22:33:04 -07:00
468f4287bf client/cascades: session log + AD doc update 2026-05-20
Phase 2.5 complete. Folder redirection GPO decision documented — deferred
to Phase 3 (blocked on domain joins). Pending items carried forward.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 22:32:20 -07:00
3328a24742 client/cascades: Phase 2.5 AD groups and shares — COMPLETE
Created SG-Mgmt-RW, SG-Sales-RO, SG-Activities-RW in OU=Groups.
Created SMB shares Management, Sales, Activities, Server on D:\Shares
with ABE enabled and correct NTFS ACLs per group.
Scripts run on CS-SERVER via GuruRMM 2026-05-20. AD doc updated to live state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 22:32:20 -07:00
d5d2580dd5 chore: update gururmm submodule — PS format specifier fix
Points to 8404a3c: fix AddToGroup/RemoveFromGroup Windows build error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 19:09:21 -07:00
4b5bf0e7a9 chore: update gururmm submodule — agent compile fix
Points to e1ea40a: fix agent compile errors from audit remediation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 19:02:28 -07:00
9ac26b0963 chore: update gururmm submodule — audit remediation
Points submodule to 9d917c3: security, quality, and three new UI pages
from the 2026-05-19 audit pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 18:55:27 -07:00
7a23101a59 audit: GuruRMM end-to-end audit 2026-05-19 — 1 CRITICAL, 11 HIGH, 18 MEDIUM, 8 LOW
Updates guru-rmm submodule pointer to include the audit report
(reports/2026-05-19-rmm-audit.md) and updated UI_GAPS.md living doc
from the /rmm-audit skill run.

Note: .claude/CLAUDE.md (/rmm-audit command row) and
.claude/skills/rmm-audit/SKILL.md were committed in the prior
sync at 5ead5d4.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 18:20:29 -07:00
814310c9e1 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-19 18:02:34
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-19 18:02:34
2026-05-19 18:02:38 -07:00
3c4ae42fee feat: add /rmm-audit skill for periodic GuruRMM end-to-end verification
5-pass audit: API/route inventory, UI gap detection, Rust quality, TypeScript
quality, and data integrity/security. Produces timestamped reports in
projects/msp-tools/guru-rmm/reports/ and keeps UI_GAPS.md current.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 17:58:31 -07:00
5ead5d4dee sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-19 17:56:56
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-19 17:56:56
2026-05-19 17:57:02 -07:00
b918776eee chore: update guru-rmm submodule to e5ac537
Records new HEAD after user_inventory policy wiring (feat commit e5ac537).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 17:48:26 -07:00
b804a92a05 Session log: GuruRMM 4-bug fix + MSP360 backup integration 2026-05-19
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 16:54:06 -07:00
6608c05674 Session log: Howard Cascades Alma Montt account completion 2026-05-19
Cloud-only M365 user created, SPB license assigned, SSPR group added,
CA/MFA audit, Syncro billing for tickets #109316879 and #110120097.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:22:52 -07:00
d7dde25d92 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-19 09:48:16
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-19 09:48:16
2026-05-19 09:48:20 -07:00
ebd1d174fb fix: auto-create .claude/current-mode if missing for coordination hooks
The UserPromptSubmit hook requires .claude/current-mode to determine work mode
and gate coordination lock checks. This file is machine-local (gitignored) but
had no initialization logic for fresh clones, causing hooks to fail.

Changes:
- check-messages.sh: Added auto-creation logic with "general" as default
- CLAUDE.md: Documented auto-initialization behavior
- ONBOARDING.md: Added machine-local configuration section
- session-logs/2026-05-19-session.md: Documented investigation and fix

Impact:
- Fixes coordination hooks on all machines
- Prevents first-clone hook failures
- No manual setup required
- Backwards compatible

Resolves: "cood hook seems to be broken on all my machines"

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-19 09:47:28 -07:00
7f2a99a4e5 Session log: GuruRMM agent deployment - clickable metrics feature now live
- Investigated auto-update system and agent deployment status
- Verified 35 agents (70%) already on v0.6.22 with process collection
- Confirmed process data collection and API functionality working
- Feature is fully operational in production for all v0.6.22 agents
- 15 offline agents will auto-update when they reconnect
- Updated guru-rmm submodule reference to commit 55e8a86

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-19 09:33:45 -07:00
1864dcad4c Session log: Howard caregiver reconciliation and new account provisioning 2026-05-18
Cascades of Tucson — created 4 new caregiver accounts, Alma Montt admin account,
terminated Niel Castro, reclassified Celia Lassey and Patricia Sandoval-Beck from
SG-Caregivers. Entra sync run; Alma Montt M365 license pending background task.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 21:25:15 -07:00
d744f9b656 Session log: MSP360 API credentials vaulted
Added MSP360 Managed Backup Service API credentials to SOPS vault.

Session work:
- Created temporary file for user to input API credentials
- Generated SOPS-encrypted vault entry at msp-tools/msp360-api.sops.yaml
- Verified decryption with vault wrapper script
- Committed and pushed to vault repository (5e8cb0b)
- Deleted temporary unencrypted file

Credentials stored for GuruRMM MSPBackups integration (P2 priority):
- API Login and Password for MSP360 authentication
- Bearer token flow documented
- Monitoring endpoint available for backup status polling

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 20:17:18 -07:00
ed409b7f1d Session log: GuruRMM Client Portal and three-level identity hierarchy
Documented completion of Client Portal feature work for GuruRMM. Extended
multi-tenancy architecture from two levels (Dev → Partner) to three levels
(Dev → Partner → Client).

Session work included:
- Added comprehensive Client Portal section to GuruRMM roadmap (~200 lines)
- Updated Multi-Tenancy section for three-level hierarchy
- Integrated Client Portal with PSA/CRM module
- Removed "customer portal" from PSA out-of-scope list
- Documented database schema (clients table, client_users table, client_id columns)
- Defined authentication/authorization for client users
- Specified UI/dashboard requirements for client portal
- Documented impersonation chain: Dev → Partner → Client

Commits referenced:
- guru-rmm be7b2ce: Client Portal feature
- ClaudeTools 201dfb1: Submodule update

This session was a continuation of earlier roadmap work that included PSA/CRM
module, standalone PSA capability, multi-tenancy identity model (ADR-001),
MSPBackups integration, and Integration Catalog.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 20:01:40 -07:00
201dfb1ed1 chore: update guru-rmm submodule for Client Portal feature
Updated guru-rmm submodule reference to include Client Portal feature and
three-level identity hierarchy (Dev → Partner → Client).

Submodule changes (be7b2ce):
- Added comprehensive Client Portal section to roadmap
- Updated Multi-Tenancy architecture for three-level hierarchy
- Integrated Client Portal with PSA module
- Removed customer portal from PSA out-of-scope list
- Documented impersonation chain and data isolation for clients

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:59:29 -07:00
095ee95ff5 chore: Update guru-rmm submodule reference
Added MSPBackups integration and Integration Catalog to roadmap (cc7dce0)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:47:39 -07:00
241258d9eb chore: Update guru-rmm submodule reference
Added multi-tenancy architecture decision and roadmap section (423e0af)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:33:20 -07:00
9b731a76b6 chore: Update guru-rmm submodule reference
Added standalone deployment capability to PSA/CRM roadmap (49260e6)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:19:45 -07:00
6bf66fa99e chore: Update guru-rmm submodule reference
Added PSA/CRM Module & Plugin Architecture to roadmap (687753d)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 19:10:53 -07:00
02d700e23c sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-18 17:25:32
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-18 17:25:32
2026-05-18 17:25:33 -07:00
1970919abd sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-18 15:57:51
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-18 15:57:51
2026-05-18 15:57:56 -07:00
f769a16846 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-18 11:28:04
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-18 11:28:04
2026-05-18 11:28:07 -07:00
a6a34ee478 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-18 11:00:37
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-18 11:00:37
2026-05-18 11:02:00 -07:00
3069b0ae51 Session log: Howard billing review and Syncro ticket updates 2026-05-18
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 08:50:26 -07:00
e3f703178a Session log: Mac Gitea connectivity diagnosis and sync resolution
Diagnosed and resolved ClaudeTools sync issues on Mac. Network connectivity
to internal Gitea server (172.16.3.20:3000) was working but slow through
Tailscale relay after office power failure recovery. Resolved submodule
conflict during rebase and successfully synced repository.

- Comprehensive network diagnostics (Tailscale, routing, connectivity)
- Manual submodule conflict resolution (guru-rmm reference)
- Context recovery from recent PC sessions (power failure recovery, GuruRMM dev)
- Directives refresh confirmed

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 08:28:29 -07:00
9403dccffe sync: auto-sync from Mikes-MacBook-Air.local at 2026-05-17 22:18:07
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-05-17 22:18:07
2026-05-17 22:23:02 -07:00
3baaf91183 sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-17 22:07:52
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-17 22:07:52
2026-05-17 22:07:59 -07:00
acb0af9d3a sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-16 18:09:05
Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-16 18:09:05
2026-05-16 18:09:33 -07:00
12dcce4050 Session log: VWP source code recovery from three backup rotation drives
Comprehensive session log covering today's work on the Valley Wide
Plastering app modernization project. Recovered Darv's VB6 source from
a set of backup rotation drives, including the production Orders_10A.exe
from the 97-Server\VWP2\ iteration workspace. Resolved the 4-year gap
question: no .vbp source newer than 2020-06-09 exists on any of the
three rotation drives; Darv worked in rename-and-try on the compiled
EXE only from 2021 onward.

Includes quick-resume instructions for tomorrow when the next drive is
connected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 18:08:21 -07:00
9a2a05e3cb feat(valleywide): drive 3 deep dive - VWP1.VHDX mount + 97-Server\VWP2 grab
Drive 3 yielded the biggest finds in the project so far.

VHDX mount + scan (D:\WIN7-Orders\Darv-2\VWP1.VHDX, 117 GB Hyper-V disk):
- Mounted read-only as F:, scanned in 85s, dismounted
- NOT Darv's dev box - it's the office "owner" admin workstation
- No newer source code found inside, but:
  - Vwp11.mdb (2023-07-27, 369 MB) - NEWEST DB snapshot anywhere
  - Vwp.mdb (2022-12-23, 769 MB) - on Desktop\Darv VWP
  - Orders Versions/ desktop folder with 2 EXEs + 7 shortcuts
  - The .lnk shortcuts all pointed to G:\VWP2\Orders*.exe - the
    "Aha!" that revealed where Darv's iteration happened
- Saved to source-code/from-VHDX-VWP1/

The VWP2 grab (D:\97-Server-G-Drive\g$ 2024-04-10\VWP2\):
- This is Darv's actual iteration workspace on the production
  Orders server (G: drive)
- 16.36 GB total, 1,061 files. Grabbed 886 files (~893 MB) filtered to
  *.exe, *.rpt, *.ocx, and VB6 source extensions:
  - 64 Orders*.exe versions - complete iteration history (includes the
    production Orders_10A.exe + Orders_10Z.exe variant + dozens more
    with Darv's "iterate-and-rename" naming pattern)
  - 820 Crystal Reports (.rpt)
  - 2 .ocx supporting controls
- Skipped 23 historical .mdb backups (15.8 GB) - we already have
  newer snapshots from 000_ASource and VHDX
- Skipped 6 large subfolders (HOLD, HHOLD, Pay_2021_0325, GWAC,
  20220205, 20211010 RPT) - mostly more MDBs
- Saved to source-code/from-VWP2-97server/

What we learned about the 4-year gap:
- No source code newer than 2020-06-09 ORDERS_C.vbp baseline found
  on any of the three rotation drives
- The 64 EXE versions in VWP2 go through 2022 - Darv was iterating
  and rebuilding compiled output but not updating his .vbp source
  control. This is consistent with his "rename and try" workflow
- The production exe (Orders_10A.exe) is in this batch - now we can
  use VB Decompiler Pro on it without needing the original drive

Helper scripts:
- scan_vhdx.ps1 - fast PowerShell scan of a mounted VHDX for source/DB
- find_vwp2.py - cross-CSV search for the VWP2 path
- vwp2_summary.py - size+type breakdown of the VWP2 folder
- debug_vwp2.py - one-off debug helper

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 18:02:47 -07:00