sync: auto-sync from HOWARD-HOME at 2026-05-29 23:33:53
Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-05-29 23:33:53
This commit is contained in:
@@ -558,3 +558,85 @@ Howard then asked why the knowledge cutoff exists and whether a Claude update wa
|
||||
|
||||
- Claude Code version: 2.1.158 (latest)
|
||||
- Active model after switch: Opus 4.8 (1M context), id `claude-opus-4-8`
|
||||
|
||||
---
|
||||
|
||||
## Update: 23:33 PT — GuruRMM roadmap quick-wins (PR #29)
|
||||
|
||||
## User
|
||||
- **User:** Howard Enos (howard)
|
||||
- **Machine:** Howard-Home
|
||||
- **Role:** tech
|
||||
|
||||
## Session Summary
|
||||
|
||||
Reviewed the GuruRMM feature roadmap (`projects/msp-tools/guru-rmm/docs/FEATURE_ROADMAP.md`, ~1955 lines) and identified the safest, most self-contained quick-wins that could be shipped without disturbing roadmap-fragile areas. Worked the safest tier through the full coordinator pipeline and shipped them as a single PR.
|
||||
|
||||
Followed the coordination protocol throughout: checked unread coord messages (none) and gururmm locks (none) at start, claimed a per-batch lock on the dashboard resources, released each lock when its batch finished. Each batch ran Coding Agent (explore+implement) -> Code Review Agent (final-authority APPROVE) -> Gitea Agent (commit). Commit messages were drafted via local Ollama (`qwen3:14b`, Tier 0). All work was frontend-only with no backend/API/DB/migration changes, deliberately avoiding the fragile areas (migration 046 sqlx-checksum hazard, the dead-code admin tunnel skeleton, blocked Windows thermal collection).
|
||||
|
||||
Batch 1 (SiteDetail.tsx): BUG-014/SPEC-010 Item B (P1) extended the Site Detail agent-list search to also match os_name and logged-in user; the search was found already partially implemented (hostname + os_type). SPEC-010 Item F (P3) added an inline SiteNotesCard to edit/add site notes without the full edit modal, saving via the existing sitesApi.update. A forward-compat optional `logged_in_user?` field was added to the Agent TS interface (frontend-only; server-side population is SPEC-010 Item D). Committed as a7a4260.
|
||||
|
||||
Batch 2 (5 files): SPEC-012 (P2) added client-side sortable table column headers via a new shared `useSortState` hook + `SortableHeader` component, wired into Clients/Sites/Agents list pages (asc/desc toggle, aria-sort, keyboard-operable button). BUG-012(a) fixed a stale `localhost:3001` API endpoint fallback in Settings.tsx by importing the canonical `API_BASE_URL` from the api client. BUG-012(b) added aria-expanded/aria-controls/aria-label to the LogAnalysis FindingCard expand toggle. Committed as d5aaea6.
|
||||
|
||||
Both Code Review Agent passes returned APPROVE with no required changes. After the safest tier was complete, the user chose to push and open a PR (rather than continue to the next tier). The Gitea Agent pushed the branch and created PR #29 against `main`. The next-tier items were recorded as a coord to-do for later pickup.
|
||||
|
||||
## Key Decisions
|
||||
|
||||
- Scoped the work to frontend-only, self-contained items with established patterns; explicitly avoided migration 046 (editing an applied migration breaks its sqlx checksum, reproducing the BUG-003 outage class), the admin tunnel (server-side dead-code skeleton), and Windows thermal collection (blocked pending driver replacement).
|
||||
- Batched the work by shared context/file rather than one-item-per-branch, to keep each Code Review pass coherent while minimizing agent round-trips.
|
||||
- Kept the forward-compat `logged_in_user?` TS field (Code Review confirmed it is spec-sanctioned by SPEC-010 Item D and well-documented) rather than removing it.
|
||||
- Committed locally and held the push until the user explicitly chose "push & open PR" — push is outward-facing to the shared gururmm repo.
|
||||
- Did NOT merge PR #29 — left for independent review/merge per the user's choice.
|
||||
|
||||
## Problems Encountered
|
||||
|
||||
- `bash .claude/scripts/whoami-block.sh` initially failed (exit 127) because the shell working directory had persisted inside the `projects/msp-tools/guru-rmm` submodule from earlier `cd` calls. Resolved by using absolute paths (`/c/claudetools/...`).
|
||||
- Coord todo POST initially failed: the endpoint requires `text`, `created_by_user`, `created_by_machine` (not `title`/`description`), and the raw heredoc JSON hit a body-parse error. Resolved by building the payload with `jq` and the correct schema.
|
||||
- Public Gitea host (git.azcomputerguru.com) is Cloudflare-fronted and blocks non-browser API calls; the Gitea Agent created the PR via the internal endpoint `http://172.16.3.20:3000` with basic auth from the SOPS vault.
|
||||
|
||||
## Configuration Changes
|
||||
|
||||
GuruRMM submodule (`projects/msp-tools/guru-rmm`, branch `fix/quickwins-sitedetail-ux`, pushed to origin, PR #29 — NOT merged):
|
||||
- `dashboard/src/pages/SiteDetail.tsx` — search filter extension + SiteNotesCard (commit a7a4260)
|
||||
- `dashboard/src/api/client.ts` — added optional `logged_in_user?: string | null` to Agent interface (a7a4260)
|
||||
- `dashboard/src/hooks/useSortState.ts` — NEW shared sort hook (d5aaea6)
|
||||
- `dashboard/src/components/SortableHeader.tsx` — NEW shared sortable header component (d5aaea6)
|
||||
- `dashboard/src/pages/Clients.tsx`, `Sites.tsx`, `Agents.tsx` — wired sortable headers (d5aaea6)
|
||||
- `dashboard/src/pages/Settings.tsx` — canonical API_BASE_URL fallback (d5aaea6)
|
||||
- `dashboard/src/components/LogAnalysis.tsx` — FindingCard aria attributes (d5aaea6)
|
||||
|
||||
ClaudeTools repo:
|
||||
- `session-logs/2026-05-29-session.md` — this update section appended
|
||||
|
||||
## Credentials & Secrets
|
||||
|
||||
- No new secrets. Gitea PR creation used basic auth from SOPS vault `services/gitea-howard.sops.yaml` (read by the Gitea Agent into an env var, not printed/hardcoded).
|
||||
|
||||
## Infrastructure & Servers
|
||||
|
||||
- Coord API: `http://172.16.3.30:8001/api/coord` (messages, locks, todos)
|
||||
- Gitea internal endpoint (PR creation): `http://172.16.3.20:3000` (public host git.azcomputerguru.com is Cloudflare-fronted, blocks API calls)
|
||||
- Ollama: `http://localhost:11434`, model `qwen3:14b` (commit-message drafting)
|
||||
|
||||
## Commands & Outputs
|
||||
|
||||
- Lock claim/release: `POST`/`DELETE http://172.16.3.30:8001/api/coord/locks` — lock IDs 43a83074 (SiteDetail), 99115ed0 (batch 2), both released
|
||||
- Coord todo created: id `15a5440f-53c0-448d-8d3e-a364dfc05e39` (next-tier quick-wins, assigned howard, project gururmm)
|
||||
- Dashboard verification (per batch): `npx tsc -b` exit 0, `npm run build` (tsc -b && vite build) exit 0, eslint clean on touched files (~20 repo-wide lint errors are pre-existing in untouched files)
|
||||
- `git push -u origin fix/quickwins-sitedetail-ux` — new branch pushed
|
||||
- PR created via Gitea API (HTTP 201) — PR #29
|
||||
|
||||
## Pending / Incomplete Tasks
|
||||
|
||||
- PR #29 awaiting review/merge (NOT merged this session).
|
||||
- Next-tier quick-wins (coord todo 15a5440f, do after #29 merges): BUG-009/010 isError sweep (Logs.tsx + 8 pages); BUG-011 replace 14 `: any`; BUG-008 metrics.rs -> internal_err(); BUG-015/SPEC-011 agent in Windows Programs & Features (WiX-only).
|
||||
- Non-blocking review follow-up: always-render LogAnalysis FindingCard details with `hidden` so aria-controls resolves when collapsed.
|
||||
|
||||
## Reference Information
|
||||
|
||||
- PR #29: https://git.azcomputerguru.com/azcomputerguru/gururmm/pulls/29
|
||||
- Branch: `fix/quickwins-sitedetail-ux` (base `main`)
|
||||
- Commits: a7a4260 (Site Detail search + notes), d5aaea6 (sortable headers + Settings URL + a11y)
|
||||
- Roadmap: `projects/msp-tools/guru-rmm/docs/FEATURE_ROADMAP.md`
|
||||
- Specs: `docs/specs/SPEC-010-agent-ux-improvements.md`, `docs/specs/SPEC-012-sortable-table-headers.md`, `docs/specs/SPEC-011-arp-programs-features-registration.md`
|
||||
- Coord todo: 15a5440f-53c0-448d-8d3e-a364dfc05e39
|
||||
|
||||
Reference in New Issue
Block a user