149 lines
11 KiB
Markdown
149 lines
11 KiB
Markdown
# Session Log — 2026-05-31 — BEAST: identity.json migrations + tooling rollout observed
|
|
|
|
## User
|
|
- **User:** Mike Swanson (mike)
|
|
- **Machine:** GURU-BEAST-ROG
|
|
- **Role:** admin
|
|
|
|
## Session Summary
|
|
Two coord-driven identity.json migrations were applied to GURU-BEAST-ROG over 2026-05-26/27, plus
|
|
routine syncs through 2026-05-30 that pulled the team's GuruConnect tooling rollout. No new
|
|
substantive workstreams from this machine — this log exists so future BEAST sessions can see when
|
|
the centralized-identity onboarding completed here and what tooling is now expected to be present.
|
|
|
|
**Phase 1 (2026-05-26)** — coord message from Mikes-MacBook-Air requested every machine add
|
|
`claudetools_root` to its local `.claude/identity.json`. Detected the path via
|
|
`git rev-parse --show-toplevel` (`C:/Users/guru/ClaudeTools`), added the field via an Edit (preserved
|
|
existing key order), validated the JSON parses, and replied via coord (`a266aa66`). The pulled
|
|
commit `f94849f feat(identity): read claudetools_root from identity.json` confirmed `sync.sh` and
|
|
`syncro.md` now consume the field, so BEAST is compatible.
|
|
|
|
**Phase 2 (2026-05-27)** — coord message requested running `bash .claude/scripts/migrate-identity.sh`
|
|
to add Python/platform/Ollama config. Reviewed the script before running (it does detect-and-merge,
|
|
no destructive ops); ran it, validated identity.json, and replied via coord (`6768c863`). The
|
|
detection set `python.command: py`, `platform: windows`, `architecture: amd64`,
|
|
`ollama.endpoint: http://localhost:11434` (Beast hosts Ollama locally), fallback Tailscale endpoint
|
|
`100.101.122.4:11434`, and `prose_model: qwen3:14b` (BEAST is not in the 12 GB-VRAM list that gets
|
|
qwen3:8b). The 2-second Ollama curl probe per Tier-0 call is now eliminated on BEAST.
|
|
|
|
**Syncs through 2026-05-30** pulled the team's broader expansion of the audit/feature-request
|
|
tooling — a new `/gc-audit` skill (GuruConnect end-to-end audit, 7 passes), a new `/rmm` skill (run
|
|
commands and remote scripts via the agent fleet), `/mailbox` (M365 mailbox), and `/gc-feature-
|
|
request`; plus the `post-bot-alert.sh` helper grew prefix-based routing between `#bot-alerts` (Syncro
|
|
+ general) and a new private `#dev-alerts` (`1509998508198068484`, RMM/Dev only). Wiki additions:
|
|
`barbaragrygutis.md`, `lonestar-electrical.md`, `quantumwms.md`; updates to `gururmm.md`,
|
|
`pluto.md`, `birth-biologic.md`, `cascades-tucson.md`. The `.gitignore` now also excludes
|
|
`.claude/commands/autotask.md` (Syncro stays the default PSA; `/autotask` is opt-in).
|
|
|
|
## Key Decisions
|
|
- **Read `migrate-identity.sh` before running it** — it's a config-writing script from another
|
|
session. Confirmed it's a safe detect-and-merge (no destructive ops, preserves prior fields)
|
|
before executing on this machine.
|
|
- **Did not commit `identity.json`** — it's gitignored by design (machine-local). Both Phase 1 and
|
|
Phase 2 changes stay on BEAST only.
|
|
- **Used the deterministic `whoami-block.sh`** for the User block per the new `/save` flow rule.
|
|
Output emitted no `[WARNING]`, confirming identity.json/users.json/hostname agree on BEAST.
|
|
|
|
## Configuration Changes
|
|
- `.claude/identity.json` (gitignored, BEAST-local) — manual Phase 1 edit (added `claudetools_root`),
|
|
then `migrate-identity.sh` Phase 2 (added `python`, `ollama`, `platform`, `architecture`,
|
|
`last_updated`). All earlier fields preserved.
|
|
- No tracked files modified by this machine this session. All other changes (Phase docs, tooling,
|
|
wiki) were pulled from team commits, not authored here.
|
|
|
|
## Credentials & Secrets
|
|
- None created, rotated, or discovered this session. Existing build-server SSH password remains at
|
|
`infrastructure/gururmm-server.sops.yaml` field `credentials.password` (used read-only in the
|
|
prior session; unchanged here).
|
|
|
|
## Infrastructure & Servers
|
|
- **This machine:** GURU-BEAST-ROG (Windows / amd64). Hosts Ollama locally on `localhost:11434`
|
|
(Tailscale fallback exposed at `100.101.122.4:11434` for other machines).
|
|
- **Discord:** new private alerts channel `#dev-alerts` id `1509998508198068484` (RMM/Dev,
|
|
Howard + Mike); existing `#bot-alerts` id `624710699771232265` remains the default.
|
|
- **Coord API:** `http://172.16.3.30:8001/api/coord` (unchanged).
|
|
- **gururmm:** no work this session. The earlier audit-2 remediation branch
|
|
`fix/audit-2-remediation` is still pushed and unmerged at gururmm origin (per
|
|
`2026-05-25-beast-gururmm-audit-2-remediation.md`).
|
|
|
|
## Commands & Outputs
|
|
- `git rev-parse --show-toplevel` → `C:/Users/guru/ClaudeTools` (Phase 1 path detection).
|
|
- `bash .claude/scripts/migrate-identity.sh` (Phase 2) — detected `py` / windows / amd64 / local
|
|
Ollama / qwen3:14b; merged into identity.json.
|
|
- `bash .claude/scripts/whoami-block.sh` — clean (no `[WARNING]`).
|
|
|
|
## Pending / Incomplete Tasks
|
|
- None from this machine. Open threads from the prior session remain: gururmm
|
|
`fix/audit-2-remediation` awaiting Mike's merge; `update_rollouts` (a) Phase-2 re-spec; Mac-agent
|
|
product decision (A ship vs B defer + quiet the freshness check); MacBook deploy go/no-go.
|
|
|
|
## Reference Information
|
|
- Coord replies sent this session: `a266aa66` (Phase 1 claudetools_root), `6768c863` (Phase 2
|
|
migration complete).
|
|
- New skills observed (pulled, not authored here): `/gc-audit`, `/rmm`, `/mailbox`,
|
|
`/gc-feature-request`.
|
|
- `post-bot-alert.sh` channel routing: `[RMM]/[DEPLOY]/[DEV]/[BUILD]/[GURURMM]/[SMARTBADGE-WATCH]`
|
|
prefixes auto-route to `#dev-alerts`; everything else (incl. `[SYNCRO]`) stays in `#bot-alerts`;
|
|
overridable via 2nd arg (`dev`/`bot`/raw channel id).
|
|
- Pulled commits of note: `f94849f` (identity field consumers), `6c4c17a` (migrate script),
|
|
`251bb35` (Windows-compat fixes), `c70cd70` (gc-audit skill), `df6a2dd` (GuruConnect v2 direction
|
|
memory), `e8ac759` (SPEC-017 mobile/Apple cert).
|
|
|
|
---
|
|
|
|
## Update: 19:20 MST — Crash recovery, onboarding-diag hardening, GuruRMM PR #29 merge
|
|
|
|
### User
|
|
- **User:** Howard Enos (howard)
|
|
- **Machine:** Howard-Home
|
|
- **Role:** tech
|
|
|
|
### Session Summary
|
|
Resumed after a mid-task crash during "minor fixes for GuruRMM." First established that no work was lost: the GuruRMM quick-wins branch (`fix/quickwins-sitedetail-ux` @ fd9bc09) was already committed and pushed to origin as open PR #29, and the only uncommitted artifact was an in-progress edit to the root-repo onboarding diagnostic plus two crash-artifact JSON files. Removed the artifacts (`pr33.json`, `prs.json`).
|
|
|
|
Reviewed and hardened the uncommitted `onboarding-diagnostic.ps1` change (3rd-party-AV detection that downgrades two Defender findings from critical to info). Code Review Agent returned APPROVE WITH NITS and flagged two real false-positive holes; both were fixed before commit. Committed (b1a5bc9), rebased onto 4 incoming GURU-5070 commits, repushed as 959b3a1.
|
|
|
|
Investigated GuruRMM PR #29: open, mergeable, no branch protection, no CI/status checks, unreviewed. Ran the dashboard diff through Code Review Agent (APPROVE WITH NITS — only nit a pre-existing server COALESCE limitation). Merged PR #29 via Gitea internal API (merge commit 5e391ca; CI then auto-bumped to 529b0b2), deleted the head branch, advanced the submodule working tree to main, and bumped the root submodule pointer (root commit 9d21c23, pushed).
|
|
|
|
Routed the still-pending dashboard build/deploy to Mike (coord message to GURU-5070/claude-main + durable todo assigned to mike) since the deploy runs from his machine. Created a follow-up todo for the notes-clear limitation.
|
|
|
|
### Key Decisions
|
|
- Left the GuruRMM submodule pointer uncommitted in the root repo until PR #29 actually merged — bumping the parent to a non-main feature-branch commit would be wrong.
|
|
- Pushed root `main` directly rather than via `/sync`, because `/sync` stages the submodule pointer (which we deliberately wanted to leave alone until merge).
|
|
- Fixed the two review nits before committing the onboarding-diag change rather than tracking them as follow-ups, because both actively suppress *critical* AV-coverage alerts in common fleet scenarios (Datto RMM present; lapsed OEM AV).
|
|
- Merged PR #29 as a standard merge commit (not squash); nothing gated it after a clean review.
|
|
- Did NOT mark the gururmm/dashboard coord component as deployed — the merge is to main only; no build/deploy occurred. Handoff sent to Mike instead.
|
|
|
|
### Problems Encountered
|
|
- Root `git push` initially rejected: origin/main had advanced (4 GURU-5070 commits). Resolved by fetch + verifying the incoming commits did not touch our file, then a clean rebase (handled by Gitea Agent, preserving the unstaged submodule gitlink).
|
|
- Coord API POSTs failed repeatedly: todos require `text` (not `title`) plus `created_by_user`/`created_by_machine`; messages POST 400'd on inline multi-line `-d` JSON (shell quoting) and succeeded via `--data-binary @-` heredoc. A stray "test" message was marked read to keep it out of Mike's unread queue.
|
|
|
|
### Configuration Changes
|
|
- Modified + committed: `.claude/scripts/onboarding-diagnostic.ps1` (root commit b1a5bc9 -> rebased 959b3a1) — 3rd-party-AV detection now requires SecurityCenter2 `productState` RTP-enabled bit (0x1000); Datto fallback requires a Datto name AND an AV/EDR token and excludes RMM/Backup/Workplace/Continuity/File; corrected a misleading "reuse data" comment.
|
|
- Submodule pointer bumped: `projects/msp-tools/guru-rmm` 6f31d22 -> 529b0b2 (root commit 9d21c23).
|
|
- Deleted (crash artifacts): `pr33.json`, `prs.json`.
|
|
- guru-connect submodule working tree advanced to 1601745 to match the pulled index (no commit).
|
|
|
|
### Credentials & Secrets
|
|
- Gitea API (non-browser) must use the internal endpoint `http://172.16.3.20:3000` (Cloudflare fronts the public hostname and blocks API calls). Howard's Gitea account uses basic auth; password vaulted at `services/gitea-howard.sops.yaml` field `credentials.password`. No new secrets created.
|
|
|
|
### Infrastructure & Servers
|
|
- Gitea internal API: `http://172.16.3.20:3000/api/v1` (repo `azcomputerguru/gururmm`).
|
|
- Coord API: `http://172.16.3.30:8001/api/coord` (messages, todos).
|
|
- GuruRMM dashboard live host: `https://rmm.azcomputerguru.com` (still serving v0.2.32 — PR #29 changes not yet deployed).
|
|
|
|
### Commands & Outputs
|
|
- `[Parser]::ParseFile(...)` on onboarding-diagnostic.ps1 -> PARSE OK (post-fix). Logic checks: productState 0x1000 set->active, clear->ignored; Datto EDR/AV->detected, Datto RMM/Backup->excluded.
|
|
- PR #29 merge: `POST /repos/azcomputerguru/gururmm/pulls/29/merge {"Do":"merge"}` -> merged:true; head branch DELETE -> 204.
|
|
- Root push: `959b3a1..9d21c23 main -> main`.
|
|
|
|
### Pending / Incomplete Tasks
|
|
- **Mike:** build/deploy gururmm dashboard (PR #29 changes) via build-server.sh, then bump coord component gururmm/dashboard. Coord msg 9b247556 + todo 929ce451.
|
|
- **Follow-up (Howard):** todo ab091bae — allow clearing Site notes (server COALESCE($3,notes) blocks empty; send explicit null for empty-string in sitesApi.update + server handler).
|
|
- **Unblocked next tier (existing todo 15a5440f):** BUG-009/010 isError handling, BUG-011 remove `any`, BUG-008 metrics internal_err, BUG-015 agent in Programs & Features.
|
|
|
|
### Reference Information
|
|
- PR #29: `azcomputerguru/gururmm` — merge commit 5e391ca, main tip 529b0b2 (CI version-bump).
|
|
- Root commits: b1a5bc9 -> 959b3a1 (onboarding-diag), 9d21c23 (submodule bump).
|
|
- Coord todos: ab091bae (notes-clear, howard), 929ce451 (deploy, mike). Coord message: 9b247556 -> GURU-5070/claude-main.
|