sync: auto-sync from HOWARD-HOME at 2026-05-31 20:13:56

Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-05-31 20:13:56
This commit is contained in:
2026-05-31 20:14:07 -07:00
parent 633c3fcff2
commit 887f0a21a9
3 changed files with 51 additions and 0 deletions

View File

@@ -21,6 +21,7 @@
- [GuruRMM user_session command context](reference_gururmm_user_session_context.md) — command API `context=user_session` runs as the logged-on user (WTS); does interactive-only cmds that fail as SYSTEM. Needs an active (admin) user.
- [Pluto Build Server](reference_pluto_build_server.md) — Windows build VM: hostname PLUTO = Unraid VM "Claude-Builder" = 172.16.3.36 (all the same box). MSVC + WiX. No `pluto` vault entry. Drive via /rmm (agent enrolls as PLUTO) when SSH key isn't authorized.
- [Coord /messages API shape](reference_coord_messages_api_shape.md) — GET /api/coord/messages returns {total,skip,limit,messages[]} NOT a bare array; parse .messages[], strip control chars, read flag may be null.
- [Gitea API credential](reference_gitea_api_credential.md) — Gitea API (PRs/merges) as howard uses services/gitea-howard.sops.yaml password on internal http://172.16.3.20:3000; NOT the gururmm-server SSH password.
## Users
- [Howard Enos](user_howard.md) — Mike's brother, technician, full access. Machines: ACG-TECH03L, Howard-Home (authoritative in users.json).

View File

@@ -0,0 +1,12 @@
---
name: reference_gitea_api_credential
description: Gitea API auth (PRs, merges) uses services/gitea-howard.sops.yaml, NOT the gururmm server SSH password
metadata:
type: reference
---
For Gitea API operations as Howard (create/merge PRs, delete branches, etc.), authenticate against the **internal** endpoint `http://172.16.3.20:3000/api/v1` (the public `git.azcomputerguru.com` is Cloudflare-fronted and blocks non-browser API calls) with basic auth `howard:<pw>` where the password comes from **`services/gitea-howard.sops.yaml` field `credentials.password`** (Howard's site-admin Gitea account).
Do NOT use `infrastructure/gururmm-server.sops.yaml credentials.password` for Gitea — that is the `guru` server SSH/sudo password for 172.16.3.30. It was rejected by the Gitea API for a write (PR merge) on 2026-05-31; the gitea-howard credential is the correct one. The two are separate accounts; don't assume they're interchangeable.
Related: [[reference_gururmm_server]] (the guru SSH/server password), [[reference_coord_messages_api_shape]].

View File

@@ -196,3 +196,41 @@ Recon via the agent showed the server repo clone (/home/guru/gururmm) was alread
- Coord: component gururmm/dashboard -> deployed v0.2.34; lock 7ec5ac68 released; todo 929ce451 (deploy) done; messages to GURU-5070/claude-main.
- #dev-alerts: dispatch + completion alerts posted (cmd c49adad8).
- Procedure ref: wiki/systems/gururmm-build.md:122-127 (server + dashboard deploy steps).
---
## Update: 20:10 MST — Fixed + deployed clearable Site notes (PR #33)
### User
- **User:** Howard Enos (howard)
- **Machine:** Howard-Home
- **Role:** tech
### Session Summary
Fixed and shipped the notes-clear follow-up (todo ab091bae). Root cause: SiteDetail.tsx sent `notes: notes || undefined`, coercing an emptied notes box to undefined, which JSON-omitted the field; the server's `UPDATE sites SET notes = COALESCE($3, notes)` then kept the old value. Coding Agent verified the server already binds `Some("")` correctly (server/src/api/sites.rs:234 passes req.notes verbatim, no empty->None coercion), so the fix is client-only: send "" instead of dropping it. Two call sites changed (inline notes editor ~933 -> `{ notes }`; Edit Site modal ~1215 -> `notes: data.notes ?? ""`); other fields keep `|| undefined` partial-update semantics. Confirmed the third caller (Sites.tsx:387) is unaffected.
Code Review: APPROVE. Gitea Agent branched fix/clear-site-notes, committed 048306f, opened PR #33, merged (873e9ca), deleted branch; CI bumped to 342d3a1; root submodule pointer bumped (fa57fab) and pushed. Deployed via the gururmm RMM agent on .30 (synced repo to origin/main, npm build + rsync), exit 0, live bundle index-CiQNGkLY.js, dashboard v0.2.35.
### Key Decisions
- Client-only fix (no Rust change): server COALESCE already clears on Some(""); '' is the correct sentinel since the UI treats empty notes as "no notes."
- Deploy command syncs the repo clone explicitly (git reset --hard origin/main) rather than relying on the push-to-main webhook timing, and was prepared to re-run on "interrupted" since that webhook restarts the same agent used for RMM exec (it completed clean).
### Configuration Changes
- gururmm: dashboard/src/pages/SiteDetail.tsx (2 call sites). PR #33 merged to main.
- Production deploy on .30: rebuilt dashboard + rsync --delete to /var/www/gururmm/dashboard/. Live index-CiQNGkLY.js. v0.2.35.
- Root repo: submodule pointer bump fa57fab.
- Memory added: reference_gitea_api_credential.md (+ MEMORY.md index line).
### Credentials & Secrets
- Gitea API auth correction (now in memory): use `services/gitea-howard.sops.yaml` credentials.password as howard on internal http://172.16.3.20:3000 — NOT the gururmm-server SSH password (which the Gitea API rejected for the PR #33 merge).
### Commands & Outputs
- Deploy cmd f501d83f (exit 0): HEAD synced to 342d3a1, BUILD_OK, built_asset=index-CiQNGkLY.js, DASHBOARD_DEPLOYED_OK.
### Pending / Incomplete Tasks
- Unblocked next tier (todo 15a5440f): BUG-009/010 isError, BUG-011 remove `any`, BUG-008 metrics internal_err, BUG-015 agent in Programs & Features. (Not started.)
### Reference Information
- PR #33: merge 873e9ca; main tip 342d3a1; submodule branch commit 048306f.
- Root pointer-bump commit: fa57fab.
- Coord: component gururmm/dashboard -> deployed v0.2.35; lock 427369c8 released; todo ab091bae done.