Commit Graph

172 Commits

Author SHA1 Message Date
cabbc0eb6e sync: auto-sync from HOWARD-HOME at 2026-06-17 12:34:44
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-17 12:34:44
2026-06-17 12:35:36 -07:00
1dd2f208a0 ct-thoughts: web-search bots reliability = MUST FIX (Mike) + research-method correction
Mike's correction: web search (grok xsearch + gemini search) carries at least as much weight as
live API probing - the searches gave the real leads this session (connector proxy, teleport setting
path); blind endpoint-probing is "highly suspect" (mostly 404s). And the search bots MUST be properly
fixed - both returned empty repeatedly on UniFi research despite the same-day partial grok fix.

- docs/CT_THOUGHTS.md: Thought 2 (HIGH PRIORITY) - web-search reliability must-fix, with the observed
  failures + a proper-fix investigation plan (capture failing-query JSON; max-turns/streaming-json/
  retry; cross-fallback grok<->gemini; 5/5 acceptance).
- memory feedback_web_search_over_probing: lead with web search/docs; probe only to CONFIRM a
  hypothesis, never as primary discovery. Reading our own config is fine; guessing paths is not.
- errorlog correction logged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 09:36:36 -07:00
7e7358957c unifi-wifi: cloud Site Manager backend (gw-sitemanager.sh) + UOS-parity connector tier
New backend reaching ANY of the ~36 ACG UniFi consoles remotely via api.ui.com with the
account key (vault services/unifi-site-manager) - no UOS server, no LAN/VPN. Mapped the API
surface empirically (key live), corroborated by grok+gemini web search:

- Tier 1 (Site Manager): fleet/devices/sites/isp commands - inventory, site health (counts,
  IPS, ISP/ASN), and WAN/ISP time-series (latency/throughput/downtime).
- Tier 2 (CLOUD CONNECTOR -> console LOCAL Network API = UOS PARITY): the `net` command proxies
  /v1/connector/consoles/<id>/proxy/network/api/s/<site>/stat/{device,sta}, returning the SAME
  ace_stat depth as the UOS Mongo path - per-radio cu_total airtime/channel/bw/tx_power/num_sta/
  satisfaction and per-client rssi/signal/noise/satisfaction/rates. Verified live on Brooklyn/
  Skybar (standalone UDM, WAN-firewalled): `net brooklyn radios` + `net brooklyn clients` work.

This achieves parity with (and broader coverage than) the UOS server for non-UOS consoles.
Added references/site-manager-api.md (full catalog + 3 tiers), a Plane 3 note in SKILL.md, and
updated the reference memory. Read-only; POST actions (device restart, client block) exist, not wired.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 08:32:00 -07:00
7ac55e56fe sync: auto-sync from HOWARD-HOME at 2026-06-16 21:34:19
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-16 21:34:19
2026-06-16 21:34:40 -07:00
a3ce9434de grok: fix xsearch (multi-agent web_search), pin grok-build, RTFM doc sweep
Root-caused the long-standing `ask-grok.sh xsearch` "no result (stopReason=)"
failure by reading Grok's bundled docs (~/.grok/docs/user-guide + README) instead
of probing:
- web_search runs a SEPARATE multi-agent model (grok-4.20-multi-agent), so the
  wrapper's blanket --no-subagents strangled it -> indefinite hang, 0 bytes. Scoped
  --no-subagents OFF xsearch; use --yolo (documented headless tool-run posture).
- xsearch prompt mandated X/Twitter search on every call (slow multi-agent) and the
  budget was 240s -> still timed out. Now web-primary (X only when relevant), 300s.
  Validated end-to-end through the wrapper: 23s, correct answer + 3 sources.

Model: pin -m grok-build (xAI flagship, 512k, the documented default) for the
reasoning modes (text/verify/review*) so quality is deterministic and not at the
mercy of the runtime default (this machine drifted to grok-composer-2.5-fast, a fast
Cursor coding model). xsearch + image/video keep the runtime default. Validated text
mode on grok-build (13s).

Doc accuracy (SKILL.md): corrected the model facts (default, the separate web_search
model, --effort unsupported on grok-build per supports_reasoning_effort:false);
documented the xsearch subagent exception. Fixed a stale in-script comment claiming
--rules/--disallowed-tools "tripped the CLI" (both are valid headless flags).

memory: add feedback_interview_ai_read_docs (read bundled docs / interview the model
before probing) + index; errorlog correction.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 19:25:07 -07:00
a5e851a144 sync: auto-sync from HOWARD-HOME at 2026-06-16 18:23:40
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-16 18:23:40
2026-06-16 18:23:49 -07:00
db38e50e49 sync: auto-sync from HOWARD-HOME at 2026-06-16 18:10:13
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-16 18:10:13
2026-06-16 18:10:43 -07:00
bf04924f2c harness: PS2 guard for onboarding probe + Windows quote-stripping memory
onboarding-diagnostic.ps1: add a PowerShell-version guard. The probe is PS3+ by
design (Get-CimInstance, [ordered], ConvertTo-Json); on stock PS2 (Win7 SP1 /
2008 R2 without WMF) it crashed with cryptic [ordered] errors and emitted empty
DIAG-JSON (first hit: AMT-PC). Now on PS<3 it emits a legible, parseable result
inside the DIAG-JSON markers (hand-built JSON) with a WMF 5.1 / KB3191566
remediation hint instead. Parses clean. True PS2-native probe stays an RMM Thought.

memory: add feedback_windows_quote_stripping (+ index) consolidating the two
recent embedded-double-quote incidents (PowerShell->curl.exe CommandLineToArgvW,
RMM->cmd.exe shutdown /c) into one root cause + fix, so future ref= entries land.

errorlog: the two self-logged entries from #32333 (preview-skip friction,
AMT-PC/Scileppi conflation correction).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 18:10:11 -07:00
4651bd52a6 sync: auto-sync from GURU-5070 at 2026-06-16 09:02:24
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-16 09:02:24
2026-06-16 09:02:39 -07:00
9f760c1724 memory: AAD Connect AdminSDHolder writeback-permission pattern
Reference memory + index entry: diagnosing/fixing AAD Connect "completed-export-errors"
(8344 INSUFF_ACCESS_RIGHTS) where AdminSDHolder strips the connector account's write
permission on a protected admin object. Covers msDS-KeyCredentialLink (Russo) and
msExchSafeSendersHash (Glaztech); csexport /f:x diagnosis + dsacls AdminSDHolder grant.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 07:45:32 -07:00
52c7d3f0a3 sync: auto-sync from GURU-5070 at 2026-06-15 17:49:06
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-15 17:49:06
2026-06-15 17:49:23 -07:00
36070f24bf memory: dream cleanup — dedup DM memory, correct Mail.Send fact, fix index dup
- Merge duplicate DM memories into canonical feedback_dm_wrapping_commands_to_mike
  (points at the productized discord-dm skill; keeps UA/Cloudflare-1010 + 50109
  gotchas); git rm the session-created feedback_dm_wrapped_command_lines duplicate.
- feedback_365_remediation_tool: record that Exchange Operator HAS Graph Mail.Send/
  Mail.ReadWrite (corrects an earlier "suite has no Mail.Send") + the EXO-vs-Graph
  token-audience gotcha + Get-MessageTraceV2 + fresh-onboard EXO 401 propagation.
- Remove a duplicate MEMORY.md index line --apply-safe added from a false-orphan.
- Log the memory-dream false-orphan/dup-index defect to errorlog for skill linting.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 11:54:00 -07:00
0a37a7daef sync: auto-sync from GURU-5070 at 2026-06-15 11:20:33
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-15 11:20:33
2026-06-15 11:20:56 -07:00
7084141b94 sync: auto-sync from GURU-5070 at 2026-06-15 09:41:53
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-15 09:41:53
2026-06-15 09:42:17 -07:00
2f312af41e sync: auto-sync from GURU-5070 at 2026-06-14 20:04:14
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-14 20:04:14
2026-06-14 20:05:02 -07:00
6df5dbdc70 sync: auto-sync from GURU-5070 at 2026-06-14 10:33:33
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-14 10:33:33
2026-06-14 10:33:49 -07:00
a50a4f2628 sync: auto-sync from GURU-5070 at 2026-06-13 12:10:56
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-13 12:10:56
2026-06-13 15:49:30 -07:00
6a0cc07bc0 sync: auto-sync from GURU-5070 at 2026-06-13 06:16:25
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-13 06:16:25
2026-06-13 06:16:44 -07:00
90d952b5cb sync: auto-sync from GURU-5070 at 2026-06-12 17:44:04
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-12 17:44:04
2026-06-12 17:44:21 -07:00
7b63bc84bc core: restore 'vault + document EVERY in-session credential' rule; memory: IX WHM API token method + feedback
Triggered by ~1h lost on 2026-06-12 when the IX WHM access method was forgotten and
password auth no longer worked. CLAUDE.md Key rules now mandates vaulting via the vault
skill + thorough documentation for any credential surfaced in a session.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 10:52:30 -07:00
dcdd9c3ec8 wiki/memory: retire GuruRMM 'VM' framing + correct Windows build chain
Two sweeps:
1. .30 is a PHYSICAL box (Lenovo ThinkCentre M83, Ubuntu 26.04), not a Jupiter
   VM — the VM was decommissioned 2026-06-12. Fixed inventory tables and the
   gururmm-build system page (overview, index, jupiter, gururmm-build,
   POWER_FAILURE_RUNBOOK).
2. Windows build chain: Beast (GURU-BEAST-ROG, tailnet 100.101.122.4, i9-14900K)
   is PRIMARY; Pluto (172.16.3.36) is FALLBACK. Verified against build-windows.sh
   (`attempt_build beast || attempt_build pluto`). Fixed overview, index,
   projects/gururmm (build-host table + flow + host detail), systems/pluto, and
   the reference_pluto_build_server memory.

Submodule advanced: build-pipeline doc comments corrected to match.
2026-06-12 07:46:15 -07:00
6bfdae214a submodule: advance guru-rmm (runbook cleanup done); memory: old VM decommissioned + .47 dropped 2026-06-12 07:38:49 -07:00
5f1c720310 sync: auto-sync from GURU-5070 at 2026-06-12 07:28:38
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-12 07:28:38
2026-06-12 07:28:53 -07:00
eafefa5376 memory: record GuruRMM log-analysis cutover to Claude Haiku (root cause + deploy shape) 2026-06-12 07:16:42 -07:00
557cd25e09 sync: auto-sync from GURU-5070 at 2026-06-12 05:57:38
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-12 05:57:38
2026-06-12 05:58:05 -07:00
9c9efdd34b memory: record Beast parallel Windows build (lever A) — 336s, target-dir + cargo-fetch gotchas 2026-06-11 21:11:40 -07:00
917d5c3ffe memory: Beast as primary GuruRMM Windows build host (Tailscale-on-.30, WiX 4.x, Pluto fallback)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 20:16:27 -07:00
fbd21e2b6f memory: GURU-5070 python3 is the MS Store shim — use python/py (coord+wiki tooling work; lock is claimable)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:32:39 -07:00
b0b4bfd089 sync: auto-sync from GURU-5070 at 2026-06-11 14:58:44
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 14:58:44
2026-06-11 14:59:00 -07:00
a80bd6b936 sync: auto-sync from GURU-5070 at 2026-06-11 11:10:31
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 11:10:31
2026-06-11 11:10:45 -07:00
78bbfedde8 sync: auto-sync from GURU-5070 at 2026-06-11 08:57:45
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:57:45
2026-06-11 08:57:57 -07:00
665afd6d1d sync: auto-sync from GURU-5070 at 2026-06-11 08:22:42
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:22:42
2026-06-11 08:22:55 -07:00
c6c8d4e79d sync: auto-sync from GURU-5070 at 2026-06-11 08:21:26
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:21:26
2026-06-11 08:21:38 -07:00
47db002b11 sync: auto-sync from GURU-5070 at 2026-06-11 08:10:50
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:10:50
2026-06-11 08:11:03 -07:00
f03cdc4360 sync: auto-sync from GURU-5070 at 2026-06-11 08:02:42
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:02:42
2026-06-11 08:02:55 -07:00
3389d616b2 sync: auto-sync from GURU-5070 at 2026-06-11 08:01:12
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:01:12
2026-06-11 08:01:27 -07:00
09e1d45e20 sync: auto-sync from GURU-5070 at 2026-06-11 08:00:04
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 08:00:04
2026-06-11 08:00:19 -07:00
e971002fa4 sync: auto-sync from GURU-5070 at 2026-06-11 07:45:33
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 07:45:33
2026-06-11 07:45:46 -07:00
2390581a1a sync: auto-sync from GURU-5070 at 2026-06-11 07:24:11
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-11 07:24:11
2026-06-11 07:24:27 -07:00
417a2dea07 sync: auto-sync from GURU-5070 at 2026-06-10 20:18:48
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-10 20:18:48
2026-06-10 20:19:05 -07:00
68612251e8 rmm: host-migration runbook + ratified architecture (memory + pointer)
Bump guru-rmm pointer (host-migration runbook). Record the migration architecture
decision in memory: physical box becomes .30 (all-but-Gitea-runner), VM retired,
MariaDB migrates (backs the coord claudetools DB per Gate-A).
2026-06-10 18:40:07 -07:00
15d582845f sync: auto-sync from GURU-5070 at 2026-06-10 16:02:59
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-10 16:02:59
2026-06-10 16:03:13 -07:00
767ec285e6 sync: auto-sync from HOWARD-HOME at 2026-06-10 13:25:54
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-10 13:25:54
2026-06-10 13:26:10 -07:00
10d471a639 sync: auto-sync from HOWARD-HOME at 2026-06-10 13:15:14
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-10 13:15:14
2026-06-10 13:15:27 -07:00
e95940388a sync: auto-sync from HOWARD-HOME at 2026-06-10 12:28:50
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-10 12:28:50
2026-06-10 12:29:01 -07:00
5a97967b4b wiki+memory: consolidate kittle-design -> kittle (redirect stub); add feedback memories (syncro preview, refresh-first, autonomy scope)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 17:28:17 -07:00
46e58ef7b5 sync: auto-sync from HOWARD-HOME at 2026-06-09 17:08:26
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-09 17:08:26
2026-06-09 17:08:39 -07:00
19b0e50ac4 sync: auto-sync from HOWARD-HOME at 2026-06-09 10:33:12
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-09 10:33:12
2026-06-09 10:33:25 -07:00
b4fcea91dc fix(remediation): close the recurring Exchange-Admin-role gap fleet-wide
EXO email-cleanup tasks (Search-UnifiedAuditLog, Get-MessageTrace, inbox rules) kept
401/403-ing per tenant because the Exchange Operator SP was missing the Exchange Admin
directory role — admin consent grants Exchange.ManageAsApp but never the directory role.
onboard-tenant.sh assigns it, but tenants consented before that step / by hand never got
it, and nothing audited for it. Hence the recurring 'next onboarding will fix it' (false
for already-onboarded tenants).

- NEW assign-exchange-role.sh: idempotent role assignment via the authoritative
  roleManagement/directory/roleAssignments API (the legacy directoryRoles/members list
  reads back unreliably). <domain|--all> + --verify/--dry-run.
- Backfilled the whole fleet (--all): 13 stragglers ASSIGNED, 12 already OK, 20 skipped
  (tenant-admin not consented), 0 errors. Safe Site included.
- Standing audit documented (assign-exchange-role.sh --all --verify) + memory so no future
  session repeats the empty promise.
- Adds wiki/clients/safesite.md (tenant + 4-source endpoint inventory + investigation).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 20:07:28 -07:00
e97d972285 sync: auto-sync from GURU-BEAST-ROG at 2026-06-08 08:40:52
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-06-08 08:40:52
2026-06-08 08:40:58 -07:00