diff --git a/.env.example b/.env.example index c861b5b..26514f3 100644 --- a/.env.example +++ b/.env.example @@ -43,7 +43,8 @@ SCORE_REJECTED_AT=2 SCORE_SOLITUDE_AT=3 SCORE_GRACE_DAYS=30 -# Libraries kept wholesale, seeded on first run only (comma-separated). -# Editable in the UI afterwards; this value is not re-applied on later starts. -KEEP_ALL_LIBRARIES=Family Videos +# Optional: libraries to mark keep_all on first run only (comma-separated). +# Empty by default — nothing is ever kept unless you say so, in here or in the UI. +# e.g. KEEP_ALL_LIBRARIES=Family Videos,4K Movies +KEEP_ALL_LIBRARIES= SCORE_RECENT_DAYS=90 diff --git a/docs/design.md b/docs/design.md index 7f07034..5c47ebe 100644 --- a/docs/design.md +++ b/docs/design.md @@ -132,10 +132,12 @@ film twice. Cross-library duplicate detection moves from "later candidate" to a concern (§6.5). **Some content must never be a deletion candidate, and no data can tell you which.** -*Family Videos* is 63 items and 38 GB of irreplaceable home video, 86% of it "never -played", which a naive reclaim score ranks highly. The same is true for reasons the tool -cannot see: content kept deliberately in case someone wants it later, or held at 4K -because re-acquiring it is expensive. Keep marks are a first-class concept (§6.6). +*Family Videos* is 63 items and 38 GB of what looks like home video, 86% of it "never +played" and therefore ranked highly by a naive reclaim score. The same applies for reasons +the tool cannot see at all: content kept deliberately in case someone wants it later, or +held at 4K because re-acquiring it is expensive. Keep marks are a first-class concept +(§6.6) — and because the tool cannot infer any of this, it does not try: nothing is kept +until a person says so. --- @@ -988,8 +990,15 @@ visible rather than silent. Nothing removes a keep mark except an explicit human guardrail, before any confirmation dialog. Removing the keep mark is a separate, deliberate act — deletion never offers to do it for you as part of the same click. -Seeded from the measured library, `Family Videos` ships with `keep_all` set. `Sports` and -anything else self-recorded is worth the same treatment (§15). +**Nothing ships kept.** No library is pre-marked, in seed data or in configuration — every +keep in the system got there because a person put it there. The `KEEP_ALL_LIBRARIES` +environment variable exists so a library *can* be marked from configuration when that is +convenient, but its default is empty and it stays empty unless someone sets it. + +That is a deliberate choice rather than an omission. A keep mark's value is that it +records a human judgement; one the application invented on the user's behalf would be +indistinguishable in the database from one they actually made, and would undermine the +audit trail that makes the Kept view worth reading. #### The number that keeps this honest @@ -1327,7 +1336,7 @@ All via environment variables, so the Portainer stack is the single source of tr | `SCORE_POPULAR_AT` | `3` | | | `SCORE_REJECTED_AT` | `2` | abandoned views for a full `rejection` score | | `SCORE_SOLITUDE_AT` | `3` | distinct watchers before `solitude` reaches zero | -| `KEEP_ALL_LIBRARIES` | `Family Videos` | comma-separated; seeds `library.keep_all` on first run only, editable in the UI afterwards (§6.6) | +| `KEEP_ALL_LIBRARIES` | *(empty)* | optional comma-separated library names to mark `keep_all` on first run. **Empty by default** — no library is ever kept unless someone says so (§6.6) | | `SCORE_GRACE_DAYS` | `30` | | | `SCORE_RECENT_DAYS` | `90` | | | `TZ` | `America/Regina` | so cron times mean what they look like | @@ -1642,11 +1651,13 @@ cross-library duplicates (§6.5), keep marks (§6.6), and two new seed views (§ 1. **Registry or image upload?** (§11.2) A registry is the better long-term answer but is infrastructure that doesn't exist yet. A preference, not a measurement. -2. **Which other libraries should be kept wholesale?** *Family Videos* is unambiguous and - ships with `keep_all` set. *4K Movies* is the obvious next candidate — 72.9% never - played and the most expensive content in the library to re-acquire — but that is a - judgement call, not a measurement. *Sports* (2 UFC items) looks like personal capture. - Worth settling before the first real report is trusted (§6.6). +2. **Which libraries, if any, should be kept wholesale?** Deliberately left unanswered — + nothing ships kept (§6.6), and this is a judgement to make against a real report rather + than in advance. The candidates the measurements suggest are *Family Videos* + (irreplaceable home video), *4K Movies* (72.9% never played and expensive to + re-acquire, though marking it removes 5 TB from consideration permanently), and + *Sports*, which looks like personal capture. All three are equally well served by + explicit marks on the items that actually matter. 3. **What should the 18.8% partial-view band mean?** Four times the abandoned share and genuinely ambiguous (§6.1). v1 stores and displays it without scoring it; a month of looking at real rows should settle whether it earns a component.