PLAN.md: the Files edge sweep

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Mitchell-Johnson
2026-10-11 20:32:34 -07:00
co-authored by Claude Fable 5.1
parent 1038c010fa
commit 05161bf7ef
+19
View File
@@ -774,6 +774,25 @@ something long in one, switch away and back, refresh — it's all still there.
- *Not done, on purpose:* no restart-from-a-seek beyond what is encoded (the encode is
faster than watching; a seek far ahead waits), no bit-rate ladder or adaptive
switching, no subtitles, no keeping a finished re-encode for next time.
- **Files edge sweep** — **2026-10-11** (v0.1.0-214), asked for as "a full bug sweep of
the Files section, every example and edge case". Every handler and both UI files read
through with odd inputs in mind, then a battery of ~60 requests against the live hub
(`sweep.py`, not kept: listings of files, missing and forbidden paths, NUL bytes, names
with spaces/#/%/?/umlauts, links to files, folders and nothing, a pipe, over-size saves,
uploads with bad names and clashes, renames and moves onto things, protected paths,
thumbnails of empty and mislabelled images, playback of an image and an audio-only mp4,
root-mode variants). One real data bug: **a save over the 8 MiB cap truncated the file
and kept the first 8 MiB, answering 204** — the body is now read whole first and refused
with 413, the file untouched. The rest: a link to a file showed the link's own time; a
link to nothing read as an empty 200; a bad codec or size was answered by inspecting
the file; a failed stream was handed back to the next identical request; a player
leaving mid-start made the recipe loop try the next engine; a root-mode ffmpeg's end
could wait forever; a page closing kept its stream for ten minutes (a beacon now
releases it at once); the path box took only absolute paths (it resolves like a shell
now, in the tab and the Move picker, with a test); a dropped folder became a nameless
empty file; the upload toast counted intentions; the viewer called a pipe a binary
file. Not bugs, left alone: `rm -rf` of a mount point empties it (the console is
root-capable by design); a folder of ten thousand rows is slow (no virtual list).
- **Docker read-only view** — `docker ps`/logs; dockhand stays the source of truth.
- **Notifications** — push on service failure / SMART warning / UPS event.
- **Terminal extras** — search, copy-mode, font/theme, split panes, upload via