Commit Graph

1319 Commits

Author SHA1 Message Date
68298c8b70 sync: auto-sync from HOWARD-HOME at 2026-06-05 14:06:17
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-05 14:06:17
2026-06-05 14:06:24 -07:00
3c071069c7 sync: auto-sync from HOWARD-HOME at 2026-06-05 14:04:58
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-05 14:04:58
2026-06-05 14:05:09 -07:00
47b71b7b3a rmm dashboard redesign (Gemini live review) + CDP Chrome driver
- .claude/scripts/cdp.py: drive Chrome via DevTools Protocol; screenshots to disk
  (so Gemini/Grok can see the live site). Fixes invisible-window + no-disk-screenshot.
- reference_cdp_chrome_driver.md (+ MEMORY index)
- gururmm submodule pointer -> dashboard redesign docs (local 3cef6ba)
- session log

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 13:10:37 -07:00
c4ec2ed4b0 memory: Syncro bot alerts must include ticket link
Feedback from Mike (Bardach #32387): every Syncro ticket bot-alert needs a
clickable link (https://computerguru.syncromsp.com/tickets/<internal_id>).
post-bot-alert.sh posts raw text, so the URL must be in the message.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 13:10:37 -07:00
b9474ff286 remediation-tool skill: enforce required Syncro ticket fields (priority, user_id, problem_type)
Adds explicit Syncro ticket creation section to remediation-tool.md.
Ticket #32387 was created without priority, assignee, or a valid issue type.
Now specifies required fields, valid problem_type values, and an enforcement
checklist to prevent null fields in any POST payload.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 12:20:46 -07:00
ef23753956 sync: auto-sync from HOWARD-HOME at 2026-06-05 12:18:49
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-05 12:18:49
2026-06-05 12:18:59 -07:00
08e194f592 bardach: M365 account investigation + Security Defaults MFA enforcement
Investigated barbara@bardach.net login issues (account-locked message, INKY SSL
errors). Finding: active distributed password-spray against the tenant (also
hitting admin@), NOT a breach — no successful attacker sign-in, no mailbox/rule/
forwarding changes. Root exposure: MFA not enforced (no Entra P1 -> no CA).

Remediation (Mike confirmed): enabled Security Defaults tenant-wide. Both active
accounts MFA-ready (Authenticator) -> no lockout; legacy auth now blocked.

- 2026-06-05-account-investigation-mfa-enforcement.md (full report)
- 2026-06-05-barbara-note-draft.md (client note, for Mike to send)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:52:46 -07:00
51b3d799f5 scc: Session save and push from GURU-5070 at 2026-06-05 10:35
glaztech: :3436 backup-job recon + Tom's architectural reply; session log update.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:35:16 -07:00
185a329770 glaztech: commit final Tom message + quo() fix-list
- 2026-06-05-tom-message-draft.md: Mike's final relief-framed wording
- 2026-06-05-quo-sql-fix-list.md: 80 live quo call sites across 15 files (C3)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:35:16 -07:00
9e98ca00cf sync: auto-sync from HOWARD-HOME at 2026-06-05 11:21:47
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-05 11:21:47
2026-06-05 11:21:58 -07:00
a8abe4a14b glaztech: staged-remediation pacing strategy + Steve approval + softened Tom message
Adds the "from emergency to deliberate staged objectives" pacing strategy
(severity unchanged, tempo deliberate - the depth of the Glaz tools estate makes
rushing the bigger risk) and records Steve's blanket approval (Tier A
execution-cleared). Softens the Tom outreach to a partnership / not-a-fire-drill
tone per Mike.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 10:40:14 -07:00
e18792ecf7 sync: auto-sync from HOWARD-HOME at 2026-06-05 10:26:08
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-05 10:26:08
2026-06-05 10:26:21 -07:00
21043d42bd glaztech: minimal-Tom remediation path (v0.2) + Tom outreach draft
Grok + Gemini consensus reframe of the way forward: ACG-owned containment
(E-bucket, DB de-privilege, WAF, SQL network segmentation) is the real C0
reduction; the audience/network split is real only for the employee surface.
Tom's one within-skill ask = parameterize the 59 quo() SQL queries (ACG hands
him the exact lines); tokenized payments is a deferred scaffolded sub-project.
Steve Eastman gave ACG blanket approval to proceed (Tier A execution-cleared).
Includes a relief-framed draft message to Tom.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 10:18:55 -07:00
1e957fa922 glaztech: least-privilege tom DB migration scope + 2026-06-05 session log
Scope (v0.3) for replacing the website's sysadmin login 'tom' with a
least-privilege login: two-phase plan (GTIware co-residency forces keeping
cc_file in Phase 1), Grok + Gemini independent review folded in, and live
RMM recon findings that materially changed the picture - the website is a
cross-office + Sage accounting + payroll + msdb hub on one sysadmin
credential, SQL is centralized on GTI-INV-SQL\GTISQL:3436 (not per-site).
PARKED pending a full network recon. Session log covers the website outage
fix (incomplete E1 ACL hardening) + the scoping + recon.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 10:01:18 -07:00
ac0106f254 feat(agy): add keyless image-analyze + search modes
image-analyze: independent second-model vision over OAuth (pins the
gemini-3.1-pro-preview vision model; the default flash-lite router
hallucinates image content) — reads an image via read_file and describes it.
search: Google-grounded live web results with citation URLs (google_web_search).
Both verified working on the keyless Google OAuth. Image GENERATION
(nano-banana) still needs an AI Studio key + extension and stays Grok's lane.
Includes a scoped best-effort output sanitizer for image-analyze (preview
model occasionally leaks reasoning tokens); text/verify/review/search
unchanged. migrate-identity.sh now upgrades the gemini capabilities array.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 09:03:21 -07:00
2d409a4e7a fix(grok): self-healing embed fallback for review modes
If a grok read_file-based review (review/review-files/review-diff) returns
empty (the 0.2.20-style headless tool-gating regression), retry once with
the file(s)/diff embedded inline via the no-tools text path, when content
is under 256KB; otherwise emit a clear skip note. Keeps grok-reads-files as
the default happy path (works on 0.2.22) and degrades gracefully instead of
returning silence. text/verify/raw unchanged; Windows path handling intact.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 08:32:28 -07:00
90e2cb2dd7 sync: auto-sync from GURU-5070 at 2026-06-05 08:06:47
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-05 08:06:47
2026-06-05 08:06:54 -07:00
ce9744832d feat(skills): add /mailprotector — CloudFilter held-mail search + release
Live Mailprotector CloudFilter REST client (emailservice.io/api/v1,
Bearer auth via vault msp-tools/mailprotector.sops.yaml). Lists mail-flow
logs and held/quarantined messages across client domains and releases them
(POST messages/{id}/deliver, deliver_many). Read-only by default; every
release/rule-add/config-change gated behind --confirm. Mirrors the
packetdial skill pattern. Built after diagnosing a Dataforth held-outbound
message that never reached ACG.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 07:03:47 -07:00
bf58675142 fix(remediation): URL-encode role_assigned() Graph $filter
role_assigned() sent an unencoded space in the OData $filter
(principalId eq '...'), so the query always failed and the function
always returned false -> onboard-tenant.sh always printed
"MISSING -> ASSIGNING" and relied on the conflict-tolerant POST for
idempotency. Fixed to %20; corrected the stale PIM-misdiagnosis comment.
Verified live against the ACG tenant. Roles still assign correctly;
PRESENT/MISSING reporting is now accurate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 07:03:27 -07:00
2cd0c3ddd0 feat(skills): add AGY — Google Gemini CLI second-opinion router
Sibling of the grok skill: routes text/verify/review (+ review-files,
review-diff, raw) to the official Google Gemini CLI (gemini, npm global,
v0.45.1) for an independent second model. ask-gemini.sh mirrors ask-grok.sh
(identity-aware gating, binary auto-locate, cygpath hardening, prompt-file
inputs, clean stdout/stderr separation, JSON .response extraction). review
modes copy targets into a temp dir + --include-directories to bypass
Gemini's gitignore/workspace sandbox. verify/review pinned to
gemini-3.1-pro-preview (GEMINI_MODEL overridable). migrate-identity.sh
auto-detects gemini and writes a per-machine identity.json gemini block.
Auth: Google OAuth (no key). Fleet Gemini host: GURU-5070.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 06:45:00 -07:00
a87cb66b32 sync: auto-sync from HOWARD-HOME at 2026-06-04 21:22:05
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-04 21:22:05
2026-06-04 21:22:16 -07:00
4ab272faab grok skill: cygpath path-hardening + review-files/review-diff modes
Fixes the two Windows pain points when routing code review to the Grok CLI
(native Windows grok.exe driven from Git Bash):

- winpath() (cygpath -w; no-op off Windows) on every path handed to grok.exe
  (--prompt-file, --cwd) -> deterministic, space-safe; removes reliance on
  MSYS's argv auto-conversion heuristic (the 'confounded by Windows paths').
- review mode resolves to an absolute Windows path (handles absolute/spaced paths).
- NEW review-files [-i instr] <f1> [f2...]: review a set of files together.
- NEW review-diff [-C <repo-dir>] [-i instr] <gitref> [-- <pathspec>]: review a
  git diff; -C targets submodules (e.g. guru-rmm). Diff goes via --prompt-file,
  not a shell arg -> no 'quote hell'.

Tested: text, review (spaced abs path), review-files (2 tray modules),
review-diff (self-review of these changes). SKILL.md updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 20:45:48 -07:00
fdec4b7772 sync: auto-sync from GURU-5070 at 2026-06-04 19:33:04
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 19:33:04
2026-06-04 19:33:08 -07:00
b93c9d9e94 sync: auto-sync from GURU-5070 at 2026-06-04 19:29:23
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 19:29:23
2026-06-04 19:29:28 -07:00
8389e64a02 sync: auto-sync from GURU-5070 at 2026-06-04 19:27:51
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 19:27:51
2026-06-04 19:27:56 -07:00
e08488ae5e sync: auto-sync from GURU-5070 at 2026-06-04 19:08:11
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 19:08:11
2026-06-04 19:08:18 -07:00
e95fa07cfe chore: auto-recover 1 unsaved session log(s)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 19:08:18 -07:00
295126ee6c sync: auto-sync from GURU-BEAST-ROG at 2026-06-04 16:05:04
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-04 16:05:04
2026-06-04 16:07:29 -07:00
a51715e0ba sync: auto-sync from HOWARD-HOME at 2026-06-04 16:03:16
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-04 16:03:16
2026-06-04 16:03:23 -07:00
532be659de sync: auto-sync from HOWARD-HOME at 2026-06-04 15:42:39
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-04 15:42:39
2026-06-04 15:42:47 -07:00
e61966db20 sync: auto-sync from HOWARD-HOME at 2026-06-04 13:52:07
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-04 13:52:07
2026-06-04 13:52:19 -07:00
d8581225f9 fix(grok): macOS compatibility - use gtimeout from coreutils
The ask-grok.sh wrapper script used 'timeout' command which doesn't
exist on macOS by default. Updated to detect macOS (darwin) and use
'gtimeout' from GNU coreutils instead.

Tested on macOS with:
- Text reasoning queries (working)
- Live web + X/Twitter search (working)

Requires: brew install coreutils (provides gtimeout)
2026-06-04 09:59:42 -07:00
1f2325ad79 sync: auto-sync from GURU-5070 at 2026-06-04 09:48:15
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 09:48:15
2026-06-04 09:48:20 -07:00
5554f807ba sync: auto-sync from GURU-5070 at 2026-06-04 09:46:14
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 09:46:14
2026-06-04 09:46:19 -07:00
5a78c56f36 sync: auto-sync from GURU-5070 at 2026-06-04 09:45:37
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 09:45:37
2026-06-04 09:45:42 -07:00
263039e21c sync: auto-sync from GURU-5070 at 2026-06-04 08:09:17
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 08:09:17
2026-06-04 08:09:24 -07:00
d2fd68bb0a sync: auto-sync from Mikes-MacBook-Air.local at 2026-06-04 06:22:27
Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-06-04 06:22:27
2026-06-04 08:08:58 -07:00
4c447ca489 sync: auto-sync from GURU-5070 at 2026-06-04 07:59:53
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 07:59:53
2026-06-04 07:59:58 -07:00
64b2d9e668 sync: auto-sync from GURU-5070 at 2026-06-04 07:07:43
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 07:07:43
2026-06-04 07:07:48 -07:00
a22bc8ea06 chore(gururmm): bump submodule -- dashboard human-flow polish + LOW fixes (beta)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 07:07:35 -07:00
19c2629197 sync: auto-sync from GURU-5070 at 2026-06-04 06:22:09
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-04 06:22:09
2026-06-04 06:22:13 -07:00
13f992c391 chore(gururmm): bump submodule -- dashboard button-size ergonomics sweep (beta)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 06:19:50 -07:00
8fb45e4263 chore(gururmm): bump submodule -- dashboard human-flow fixes (beta)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 21:00:19 -07:00
37ccc5f35c sync: auto-sync from GURU-5070 at 2026-06-03 20:07:24
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-03 20:07:24
2026-06-03 20:07:28 -07:00
10e8d7b6bb sync: auto-sync from GURU-5070 at 2026-06-03 19:39:32
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-03 19:39:32
2026-06-03 19:39:36 -07:00
a98fed14c9 sync: auto-sync from GURU-5070 at 2026-06-03 15:55:57
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-03 15:55:57
2026-06-03 15:56:04 -07:00
ae1ec4517a sync: auto-sync from GURU-BEAST-ROG at 2026-06-03 15:02:21
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-03 15:02:21
2026-06-03 15:03:07 -07:00
6de0ce6098 sync: auto-sync from GURU-5070 at 2026-06-03 11:52:45
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-03 11:52:45
2026-06-03 11:52:52 -07:00
6228793152 sync: auto-sync from HOWARD-HOME at 2026-06-03 11:51:39
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-03 11:51:39
2026-06-03 11:51:47 -07:00
c693dc1e24 sync: auto-sync from HOWARD-HOME at 2026-06-03 09:56:24
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-03 09:56:24
2026-06-03 09:56:31 -07:00