repos

Record Phase 12 ship infrastructure in PLAN.md

8fa1d984 by Isaac Bythewood · 1 month ago

modified PLAN.md
@@ -32,8 +32,9 @@ and resume cleanly from this file alone, keeping token use low._Last updated: 2026-05-22_**Current phase:** Phases 0 through 11 complete and verified. Next: Phase 12(Polish + ship).**Current phase:** Phases 0 through 11 complete and verified. Phase 12(Polish + ship) is underway: the ship infrastructure is done; the final UIpolish pass is the one remaining item.**Roadmap (restructured 2026-05-22, see decisions log):** the home-pageredesign and commodities are pre-ship MVP phases. Order: 9 Search +
@@ -415,10 +416,39 @@ schema, unused for now.    (1280px) and phone (390px) both render with no horizontal overflow and    zero console errors.- **Phase 12 ship infrastructure.** Done — the final UI polish pass below is  the remainder of the phase.  - `Dockerfile`: multi-stage `rust:alpine` builder + `alpine:3.23` runtime,    modelled on `analytics` but with no chromium and no Typst (finance renders    no PDFs). The runtime stage copies the binary, `dist/`, `templates/`,    `migrations/`, and `universe/` (the seed reads `universe/starter.csv`),    runs as a non-root uid-1000 user, and sets `FINANCE_DATA_DIR=/data`.    `docker-compose.yml` (container name `finance`, `/srv/data/finance:/data`    volume) and `.dockerignore` alongside it.  - `samplefiles/` gained `Caddyfile.sample` and `post-receive.sample` next to    the existing `env.sample`, matching the sibling apps' standard    `git push server master` deploy.  - `README.md` and the project `CLAUDE.md` written.  - Sitemap bug fixed: `routes/seo.rs` still listed the dropped `watchlists`    page; it now emits `/` and `/search` only. The favicon was already done    in Phase 4 (an inline SVG served at `/favicon.ico`).  - `git init -b master` plus an initial commit (71 files; `.env`, `data/`,    `dist/`, `target/`, `node_modules/` all correctly gitignored). No remote    configured and nothing pushed — creating the GitHub repo and the `server`    remote is left to the user.**Resuming, next action**Start **Phase 12 (Polish + ship)**: sitemap, favicon, the final Paper Ledgerpolish pass (deferred from Phase 4), Dockerfile, docker-compose, sample files,README, CLAUDE.md, `git init`. See the Phase 12 entry below.**Phase 12 (Polish + ship) — final UI polish pass.** The ship infrastructureshipped (see the Phase 12 entry in the Done list and the decisions log): thesitemap fix, Dockerfile + docker-compose + .dockerignore, the Caddyfile andpost-receive sample files, README.md, the project CLAUDE.md, and `git init`plus the initial commit. The favicon was already done in Phase 4. The oneitem left in Phase 12 is the final Paper Ledger polish pass deferred fromPhase 4 — a dedicated pass over the running app (home, symbol, search,health, 404; phone + desktop) to tighten spacing, hierarchy, and rough edgesbefore ship. It is deliberately a look-at-it-together pass: run the app andreview it with the user. Registering the project in `taproot` is a manualstep left to the user.Note: because `^RUT`/`^VIX` stay historyless, `meta.seed_completed` is neverset, so the boot seed re-runs on every restart (cheap: ~2 Stooq calls that
@@ -634,10 +664,11 @@ Timestamps are UTC epoch-ms; trading dates are `TEXT` `YYYY-MM-DD`.  shrunk, or moved off the landing view; decide when building). It is also  where user-added symbols (Phase 9) find their place on the home view.  Built in the Paper Ledger system.- [ ] **Phase 12 — Polish + ship.** Sitemap, favicon, the final Paper Ledger  polish pass (deferred from Phase 4 — see decisions log),  Dockerfile, docker-compose, sample files, README, CLAUDE.md, `git init`.  Registering the project in `taproot` is left as a manual step for the user.- [ ] **Phase 12 — Polish + ship.** Ship infrastructure done (sitemap fix,  Dockerfile, docker-compose, sample files, README, CLAUDE.md, `git init`);  the favicon was already done in Phase 4. Remaining: the final Paper Ledger  polish pass (deferred from Phase 4 — see decisions log). Registering the  project in `taproot` is left as a manual step for the user.Phases 13 through 19 are the post-MVP backlog: ideas captured during planning,to be built after the Phase 12 ship. Order among them is loose, and several
@@ -974,6 +1005,21 @@ finance/  client live-nudges the trailing point onto each new quote. The phone  sparkline grid stays one column; a 2-up phone layout is left as a Phase 12  polish candidate.- **2026-05-22: Phase 12 ship infrastructure shipped.** The deploy and docs  scaffolding for the standard `git push server master` flow: a multi-stage  `Dockerfile` (`rust:alpine` builder + `alpine:3.23` runtime) plus  `docker-compose.yml` and `.dockerignore`, modelled on the `analytics`  sibling but with no chromium and no Typst (finance renders no PDFs); the  runtime image also copies `universe/` since the seed reads  `universe/starter.csv`. `Caddyfile.sample` and `post-receive.sample` joined  `env.sample` in `samplefiles/`. A `README.md` and a project `CLAUDE.md`  were written. The sitemap in `routes/seo.rs` still listed the dropped  `watchlists` page — fixed to emit `/` and `/search` only. `git init` plus  an initial commit (71 files). Per the workspace convention the project is  NOT registered in `taproot` (`projects.conf` / Caddyfile) and no GitHub  remote was created — both are manual steps for the user. The favicon was  already done in Phase 4. The one Phase 12 item left is the final Paper  Ledger UI polish pass.---