From 23bccf54347bc85c3a48e84b862182edf2a1de13 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sat, 13 Jun 2026 22:56:34 +0200 Subject: [PATCH] session: backlog-Medium verdicts (M4/5/6 fixed; M18/19/25 live) Co-Authored-By: Claude Opus 4.8 (1M context) --- SESSION-2026-06-13-cleanup.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 SESSION-2026-06-13-cleanup.md diff --git a/SESSION-2026-06-13-cleanup.md b/SESSION-2026-06-13-cleanup.md new file mode 100644 index 0000000..db29822 --- /dev/null +++ b/SESSION-2026-06-13-cleanup.md @@ -0,0 +1,19 @@ +# 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 `-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 / M19** → `fix/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.