From 6114add4a6b21a129ff4647351d09315197f0536 Mon Sep 17 00:00:00 2001 From: rays Date: Fri, 11 Sep 2026 03:00:25 +0000 Subject: [PATCH] Documentation: docs/, a changelog, and CLAUDE.md PROGRESS.md becomes CHANGELOG.md with the finished step lists moved to an appendix. The README is an overview pointing at docs/: configuration, cli, users, sso (refreshed for accounts and admin-only settings), and architecture. CLAUDE.md collects what working on this code actually requires -- pkill -x not -f, the page being compiled in, the dead columns on entries, the Playwright worker that deleted its own database. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01AdXho5tTkjFLeUXKbEjKBh --- PROGRESS.md => CHANGELOG.md | 129 ++++++++---------- CLAUDE.md | 119 +++++++++++++++++ README.md | 253 +++++++++--------------------------- docs/architecture.md | 134 +++++++++++++++++++ docs/cli.md | 91 +++++++++++++ docs/configuration.md | 118 +++++++++++++++++ docs/sso.md | 26 +++- docs/users.md | 83 ++++++++++++ 8 files changed, 684 insertions(+), 269 deletions(-) rename PROGRESS.md => CHANGELOG.md (93%) create mode 100644 CLAUDE.md create mode 100644 docs/architecture.md create mode 100644 docs/cli.md create mode 100644 docs/configuration.md create mode 100644 docs/users.md 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 `