sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-15 16:08:19

Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-15 16:08:19
This commit is contained in:
2026-05-15 16:08:22 -07:00
parent 8c522b3880
commit 457bcadb38
2 changed files with 87 additions and 1 deletions

View File

@@ -649,3 +649,89 @@ Speedup: 8.7x
- **Build script**: `/opt/gururmm/build-agents.sh` (production, runs as root via webhook)
- **Gitea webhook ID**: 1, repo `azcomputerguru/gururmm`, event `push`, URL `http://172.16.3.30/webhook/build`
- **Gitea app.ini**: `/data/gitea/conf/app.ini` inside `gitea` Docker container on Jupiter
---
## Update: 22:45 PT — Platform parity, token efficiency, Linux agent implementation
## User
- **User:** Mike Swanson (mike)
- **Machine:** DESKTOP-0O8A1RL
- **Role:** admin
- **Session span:** ~20:3022:45 PT
## Session Summary
This portion continued from the earlier webhook/build pipeline work (logged in the 15:20 PT update). The first task was completing the platform parity guideline that had been started before context compaction — a full matrix documenting Windows vs Linux vs macOS agent feature coverage was written into `.claude/CODING_GUIDELINES.md`, along with `#[cfg(...)]` gating guidance and a prioritized gap list.
Mike shared a screenshot of the terminal-bench@2.0 leaderboard showing "vix" ranked #1 at 90.2% accuracy using Claude Opus 4.7. Investigation of the vix GitHub repo revealed it is a third-party AI coding agent built on Anthropic's API with two optimizations: stem agents (preserve prompt cache across explore/plan/execute phases) and a virtual filesystem (code minification for token reduction). Both were evaluated for applicability to ClaudeTools. GrepAI semantic search was identified as the existing equivalent of the virtual filesystem — it eliminates reads entirely rather than just compressing them. The stem agent concept was implemented as a behavioral guideline (single-agent for coupled tasks) rather than new tooling. Four concrete optimizations were applied: CLAUDE.md trimmed ~45 lines, CODING_GUIDELINES.md got a GrepAI-first rule, OLLAMA.md scope expanded to 5 new tier-0 task types, and the agent dispatch section added single-agent guidance for coupled flows.
Mike clarified that "add feature X to the agent" means all three platforms (Windows + Linux + macOS) in the same change, no exceptions. The parity rule was sharpened to match this, and a feedback memory was saved so future sessions enforce it automatically.
The session concluded with a proper Linux agent parity audit via SSH Explore agent on 172.16.3.30. Five genuine gaps were identified: temperature sensors, user idle time, installed software list, running services list, and service checks. A Coding Agent implemented all five. Post-implementation: installed software and running services were already in inventory.rs — the earlier audit had overstated the gaps. Three real gaps were closed (temperature via `/sys/class/thermal`, idle time via xprintidle, service checks via systemctl). Build completed clean in 76 seconds, zero errors.
## Key Decisions
- **GrepAI over minification** — vix minifies code to reduce tokens; GrepAI avoids reading files at all. Semantic search is strictly superior; no minification layer added.
- **Stem agents as discipline** — cache preservation benefit achieved by guideline change (single-agent for coupled tasks), not new infrastructure.
- **Watchdog not ported to Linux** — systemd `Restart=on-failure` provides the equivalent; porting the in-process Rust watchdog would duplicate OS-level functionality.
- **xprintidle for idle time** — subprocess call, zero new Cargo dependencies, gracefully returns None on headless servers where xprintidle is absent.
- **Gaps 3 & 4 already done** — inventory.rs already had dpkg/rpm and systemctl list-units. Coding Agent verified before writing; only wrote what was actually missing.
## Configuration Changes
**Modified (claudetools repo):**
- `.claude/CODING_GUIDELINES.md` — GuruRMM platform parity matrix; GrepAI-first rule; sharpened parity rule wording per Mike's explicit statement
- `.claude/CLAUDE.md` — trimmed ~45 lines: Live State Tracking, Automatic Context Loading, File Placement, Ollama sections compressed; single-agent guidance added
- `.claude/OLLAMA.md` — expanded tier-0 scope: diff summarization, error categorization, agent phase handoff summaries, client email drafts, ticket classification with priority
- `.claude/memory/MEMORY.md` — added GuruRMM agent parity feedback entry
**Created (claudetools repo):**
- `.claude/memory/feedback_gururmm_agent_parity.md` — feedback memory: "add feature X" = all three platforms in same change
**Modified (GuruRMM repo, 172.16.3.30:/home/guru/gururmm):**
- `agent/src/metrics/mod.rs` — Linux temperature via /sys/class/thermal/thermal_zone*; Linux user idle time via xprintidle subprocess
- `agent/src/checks.rs` — Linux service check via systemctl is-active + optional systemctl restart with 3s re-check
## Credentials & Secrets
None new this portion.
## Infrastructure & Servers
- GuruRMM server/build server: 172.16.3.30 (Jupiter), SSH as guru
- GuruRMM agent repo: /home/guru/gururmm
- Build log: /var/log/gururmm-build.log
- Gitea internal: http://172.16.3.20:3000
## Commands & Outputs
```
# Linux parity build result
Finished 'release' profile [optimized] target(s) in 76s
# 53 pre-existing warnings, zero errors
# GuruRMM commits this portion
a3cce0a feat(agent): Linux parity — temps, idle time, service checks
cc3d4d8 fix(webhook): prevent zombie lock with thread-based build dispatch
```
## Pending / Incomplete Tasks
- **Policy wiring** (plan: ticklish-questing-stallman.md) — deferred, still pending
- **Pluto password not in vault** — `Paper123!@#` in memory only; needs `infrastructure/pluto-build-server.sops.yaml`
- **macOS agent builds** — not yet built or tested; build-agents.sh has TODO-MACOS marker
- **Linux idle time on headless servers** — xprintidle requires X11; returns None on servers. Future: D-Bus org.freedesktop.login1
- **Linux temperature lm-sensors** — /sys/class/thermal works on most systems; lm-sensors integration would improve coverage
- **IPC/tray on Linux/macOS** — still stubs; flagged in parity matrix
- **BB-SERVER enrollment loop** — pre-existing duplicate key constraint, unresolved
- **Portal changelog UI** — API exists, no dashboard UI
- **seafile-elasticsearch** container at memory limit (1.86 GB / 2 GB) — monitor
## Reference Information
- terminal-bench leaderboard (community benchmark): https://terminal-bench.com
- vix releases: https://github.com/kirby88/vix-releases
- Platform parity matrix: `.claude/CODING_GUIDELINES.md` § "GuruRMM Agent — Platform Parity"
- Claudetools commits: `ee900fd` (token efficiency), `8c522b3` (parity rule hardening)
- GuruRMM commit: `a3cce0a` (Linux parity — temps, idle time, service checks)