Files
felhom-controller/SESSION-2026-06-13-cleanup.md
T
2026-06-13 22:56:34 +02:00

2.0 KiB

Session 2026-06-13 — backlog-Medium cleanup + doc currency + live-drive runbook

Working/checkpoint log. Commit/push after each Part. Controller-only (agent v0.30.0 left alone).

Progress log

  • 23:1x — Start. Controller main d6aacf2, demo 9201 on v0.59.0 healthy. Verified the 6 backlog Mediums.
  • Backlog-Medium verdicts (commit d6aacf2):
    • M4 (SubdomainInUse I/O under RLock) — FIXED @ stacks/deploy.go:67-80 (collects dirs under RLock, RUnlock, then LoadAppConfig with lock released).
    • M5 (MigrateEncryption encKey nil-check race) — FIXED @ stacks/manager.go:129-131 (nil-check now inside m.mu.Lock(); SetEncryptionKey writes under same lock).
    • M6 (MigrateEncryption holds lock across I/O) — FIXED-in-practice @ stacks/manager.go:128-191 — lock still spans the I/O loop, but runs once at startup (main.go:154) strictly before scheduler (sched.Start) and HTTP server; nothing concurrent to block. Acceptable, no action.
    • M18 (ListDumpFiles re-validates every dump every 5min) — LIVE @ appbackup/dbdump.go:469. Perf; cross-package-entangled (settings cache has no size/modtime; signature change + bridge). → escape-hatch branch.
    • M19 (deriveStackName naive suffix-strip) — LIVE @ appbackup/dbdump.go:536-551. Low-incidence correctness (misattributes a stack literally named <x>-cache/-db); needs deployed-stack list injected into appbackup. → escape-hatch branch.
    • M25 (Server integrationMgr data race) — LIVE @ web/server.go:119-120 (constructor launches go SyncFileBrowserMounts) vs :162 SetIntegrationManager (post-construction, unsynchronized) read at handlers.go:358,360,1433. Real race. → clean fix (atomic.Pointer), ship in v0.60.0.

Plan

  • Ship M25 (atomic.Pointer) in controller v0.60.0 + concurrency -race test.
  • M18 / M19fix/m18-* / fix/m19-* branches (pushed, NOT deployed) with implemented fix + notes (escape hatch: entangled cross-package changes, not forced at 2am).
  • Part 2 docs, Part 3 runbook.