diff --git a/PROGRESS.md b/CHANGELOG.md similarity index 93% rename from PROGRESS.md rename to CHANGELOG.md index 3d289c4..3766f49 100644 --- a/PROGRESS.md +++ b/CHANGELOG.md @@ -1,58 +1,29 @@ -# Progress +# Changelog -Running record of what has actually landed. Newest entry first. -The full design and step list live in the plan file at -`/config/.claude/plans/i-want-to-create-playful-quiche.md`. +What has actually landed in ipodderx-rs, newest first. Each entry says what changed and, where it +matters, what was wrong before -- the reasoning is the point, not the diff. -## Build order +See [README.md](README.md) for what the thing is, and [docs/](docs/) for how to run it. -- [x] **1. Repo skeleton** — git init (`main`), `cargo init --name ipx`, deps pinned, LICENSE, - README, this file. -- [x] **2. `config.rs` + `db.rs`** — TOML config structs + SQLite schema. -- [x] **3. `feed.rs`** — conditional GET, RSS-then-Atom parse, persist entries. -- [x] **4. `download.rs`** — downloads, filters, dedupe. -- [x] **5. `retention.rs`** — oldest-first quota + age reaper. -- [x] **6. `ipc.rs` + daemon** — UDS JSON-lines server, TTL scheduler, CLI-proxies-to-daemon. -- [x] **7. `torrent.rs`** — librqbit, seed to ratio/time, stall abort. (swarm download unverified — - see the step 7 entry) -- [x] **8. OPML + polish** — import/export, add/rm/status, tracing setup, systemd units, README. +## 2026-09-11 — Documentation -### Phase 2 — web front end +`PROGRESS.md` became this changelog; the finished step lists moved to an appendix. The README is now +an overview that points at `docs/`: [configuration](docs/configuration.md) (every key, path and +environment variable), [cli](docs/cli.md), [users](docs/users.md) (what several people share), +[sso](docs/sso.md) (refreshed for accounts and the admin-only settings), and +[architecture](docs/architecture.md) (modules, the scan, the schema, the socket protocol, the HTTP +API). `CLAUDE.md` collects what someone working on the code needs to know and has already been +learned the hard way here -- `pkill -x` not `-f`, the page being compiled in, the dead columns on +`entries`, the Playwright worker that deleted its own database. -Decided with Ray: axum serving plain HTML/JS (no WASM toolchain), running **inside the daemon** -process so it reads SQLite and the event bus directly, LAN-bindable with a shared token. +--- -- [x] **9. Config hot-reload + web skeleton.** `Ctx.cfg` becomes `RwLock>` so the UI can - edit feeds without a daemon restart. `[web]` config section (enabled/bind/token, token - auto-generated and saved on first run). axum server started by `ipx daemon`, token checked by - middleware, `?token=` sets a cookie so `