# Part 1 — the stray-copy fix, 9202 proof (night 2026-10-22 → 23) Code: felhom-controller `66a69d4` (the fix) + `912e592` (`--no-healthcheck`). Image `0.340.0-rc.5` (= `66a69d4`). | File | What it shows | |---|---| | `00-9202-as-found.txt` | 9202 on 0.339.0, no labelled container | | `01-switch-rc5.txt` | rc.5 start: „start-up: no leftover second-drive copy container" | | `02a-VOID-test-files-outside-a-leg.txt` | VOID run: the 16 GB test folder sat outside Immich's copied folders, so the copy ended in 2 s, before the probe — the probe was then (correctly) NOT refused and started a restore of the nonexistent app `straycopyprobe`, which failed at once („nincs másodlagos fájlmásolat"); nothing changed | | `02-restart-mid-copy.txt` | the copy container `felhom-tier2-copy-immich-948f2280` running; the restore probe REFUSED („Éppen fut a második meghajtóra készülő mentési másolat…"); controller restarted; no labelled container 3 s later | | `02b-startup-after-restart.txt` | „start-up: removed a leftover second-drive copy container felhom-tier2-copy-immich-948f2280" | | `02c-old-controller-log-tail.txt` | the old controller's log from the trigger to its stop | | `03-redo.txt` | the copy redone: 16.5 GB, 54 s; source = copy (`ls -l` md5 and `du -sb` equal); no container left | | `04-timeout-case.txt` | test-only image (rc.5 + a binary from `912e592` with a 15 s copy limit, never pushed): the copy timed out, „its container … was removed (removed=true)", no container left, the partial copy (4.39 GB) stopped growing | | `05-teardown-9202.txt` | test files removed (source + copy), 9202 back on 0.339.0 healthy, test image removed (9202 and DooPlex) | Red-proofs (Docker-free seams, DooPlex): every `TestStrayCopy_*` test seen failing with its mechanism removed — no `rm -f` after an error (Timeout, Error), no name/label (NamedAndLabelled), the start-up loop not removing (StartUpRemoves), the stray flag ignored (Unremovable, FailedStartUp), no in-flight record (RefusedWhileACopyRuns), the web check removed (RestoreRefusedWhileACopyRuns), the main.go call removed (ClearIsWiredBeforeTheScheduler). ## Re-proof after the second review and the security review — rc.8 (= felhom-controller `1babfe9`) | File | What | |---|---| | `10-rc8-switch.txt` | rc.8 start: „no leftover" | | `11-rc8-two-runs-same-destination.txt` | two manual runs 4 s apart: the second waited for the first on each destination (both ended 2 s apart, 16.5 GB), no container removed, no failure (N4) | | `12-rc8-restart-mid-copy.txt` | the restore probe refused during the copy; the controller restarted mid-copy; at start „removed a leftover … felhom-tier2-copy-immich-948f2280"; no container left | | `13-rc8-redo.txt` | the redo: 16.5 GB, source = copy (`ls -l` md5 and `du -sb`) | | `14-rc8-teardown-9202.txt` | test files removed, 9202 on 0.339.0, healthy, no copy container |