diff --git a/CLAUDE.md b/CLAUDE.md index 59670b1..0bb6c59 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -28,7 +28,7 @@ The project has **re-platformed onto Proxmox**, with a locked **three-component > **Authoritative map:** `felhom.eu/documentation/architecture/02-controller-module-map.md` — the per-package **KEEP / PORT / DELETE(→agent) / DELETE(obsolete) / MODIFY** classification. Read it before touching `backup/`, `storage/`, `cloudflare/`, `system/`, or `config/`. Also doc 01 (topology/trust) and doc 03 (the host agent). -**⚠️ Status — do NOT assume the target state is implemented.** The de-privileging has only *started*: the recent `internal/appbackup/` extraction split the keep-side app-data-backup primitives from the delete-side disk/host code (groundwork, no behaviour change). The **bulk strip has NOT happened** — the current code STILL contains the full privileged storage / restic / cross-drive / disk / Cloudflare stack. The strip + the agent-local-API client land at **~slice 8**. So the code you see is the **pre-strip, still-privileged** controller; match the code, not the target, unless a TASK says otherwise. +**Status — de-privileging is DONE (slice 8C; as of controller v0.60.0).** The bulk strip HAS happened: the privileged disk subsystem (`internal/storage/*` scan/format/migrate, restic, cross-drive-to-other-disks, drive-restore, infra-backup, `monitor/watchdog`+`pinger`, the raw-disk storage UI) is **deleted**; `backup.Manager` is **app-data only** (DB dumps + Docker-volume tars + per-app recovery units + Tier-2 off-drive copies); disk management is **delegated to the host agent** via the pinned local-API client (`internal/agentapi` → agent `/disks`); the container is **de-privileged** (Docker-only, no Proxmox creds). Whole-guest backup (PBS vzdump) is the agent's. **Authoritative, code-verified architecture now lives in `felhom.eu/documentation/controller/`** (module map + feature docs). Match the current code, not this summary, if they ever drift. **Don't confuse the two ex-"controllers":** `felhom-agent` (host, operator-tier, was `proxmox-controller`) vs this `felhom-controller` (in-guest, was `deploy-felhom-compose`). diff --git a/CONTEXT.md b/CONTEXT.md index b95e792..c2a7f21 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -7,13 +7,20 @@ > > Ask Claude Code: "Please update CONTEXT.md with what we did today" -Last updated: 2026-06-13 (v0.59.0 audit fixes + docs centralization) +Last updated: 2026-06-13 (v0.60.0 backlog-Medium cleanup) -> **Live version: controller v0.59.0** (deployed on demo guest 9201), agent **v0.29.1**, hub **v0.11.0**. +> **Live version: controller v0.60.0** (deployed on demo guest 9201), agent **v0.30.0** (AGENT-001 deployed), hub **v0.11.0**. > **NOTE:** the long-form sections far below this banner are stale (last full pass ~v0.16.1). Current > state is the dated entries immediately below + `CHANGELOG.md` + the now-authoritative **central docs at > `felhom.eu/documentation/controller/`** (code-verified) + auto-memory `MEMORY.md`. > +> **2026-06-13 — v0.60.0 backlog-Medium cleanup (BUGHUNT reconcile):** +> - **M25** (Server.integrationMgr data race — constructor goroutine vs post-construction `SetIntegrationManager`): +> **FIXED** via `atomic.Pointer`; `-race`-verified. **M4/M5/M6** verified already FIXED (no action). +> - **M18** (dump re-validation every 5 min — perf) and **M19** (`deriveStackName` misattribution — low +> incidence) verified LIVE but cross-package-entangled → branches `fix/m18-dump-validation-cache` / +> `fix/m19-stackname-crossref` (notes + fix plan, PENDING REVIEW, not deployed). +> > **2026-06-13 — v0.59.0 audit fixes + documentation centralization:** > - Fixed the validated 2026-06-13 audit findings (records: `felhom.eu/documentation/audits/`): > **CTRL-001** (`.fab` import path traversal — manifest segment validator, fail the parse);