diff --git a/docs/history/DEVELOPMENT_LOG.md b/docs/history/DEVELOPMENT_LOG.md index 334e971..d749f4b 100644 --- a/docs/history/DEVELOPMENT_LOG.md +++ b/docs/history/DEVELOPMENT_LOG.md @@ -32,6 +32,63 @@ written and stay true. It is exempt from review for the same reason a receipt is ## Entries +### 2026-08-18 — Renamed to Privacy: Period Tracker + +"Period" was always a working name — `PRODUCT_PLAN.md` §55 said so — and the real +identity arrived with the brand guide. Everything that called the project Period +now calls it **Privacy: Period Tracker**. + +**The rename was mostly about deciding what NOT to touch.** "Period" is the +product name and the central domain word at the same time. `PeriodRecord`, +`PeriodWriteResult`, `confirmPeriodStart`, the `period_records` table and the +button reading "Started period" all describe a menstrual period rather than a +product — 239 references, every one of them left alone. A find-and-replace would +have turned the data model into nonsense. Sixteen files changed in total. + +Also deliberately unmoved, and written down so the absence reads as a decision: + +- **The package `dev.privacyllc.period` and `applicationId`.** They already read + correctly under the new name — `privacyllc` is the company, `period` the app — + and changing them would rewrite 68 files, rename the Room schema directory and + break the hardcoded path in `schema-guard.sh`. +- **`period.db`.** Renaming a database file orphans the data on every device + that already has it. The emulator's existing install opened fine afterwards, + which is the proof. + +**The repository was renamed in place**, not recreated: `null/Period` → +`null/Privacy-Period-Tracker`, keeping all 30 commits, 27 issues, 8 milestones +and 4 labels. Counted on both sides rather than assumed, because "a rename is +lossless" is exactly the sort of thing that is true until it is not. + +**Three names have to agree**, and only two of them are obvious: the Forgejo +repository, the git remote, and the Command Center's `forgejoRepo` mapping. The +third is the silent one — a stale mapping degrades to *"pointing at a repository +that does not exist"* on the next reconcile and the site quietly stops counting. +All three verified, and the reconcile afterwards reported `0 pointing at a +repository that does not exist`. + +**The Command Center slug could not be renamed.** `PATCH` accepted a `slug` field +and ignored it; `period` still resolves and `privacy-period-tracker` returns 422. +It is an internal key, invisible on the card, and recreating the project to +change it would throw away its history — so it stays, recorded here rather than +retried later by somebody who assumes it was missed. + +**One inconsistency created on purpose.** The canonical name has a space after +the colon; the supplied wordmark does not. `BRAND_GUIDE.md` §10 now says the +space form and says plainly that the drawn mark disagrees. Filed as #28 rather +than papered over, because redrawing a lockup needs an artist. + +- **Closed:** nothing — this is a rename, not a deliverable. #28 filed. +- **Next action:** Batch 06 — Privacy and Security, unchanged by the rename. File + its issues first; the milestone is empty. Biometric and PIN lock, export, + irreversible delete, the privacy promise in Settings, and making §45's logging + rules true in a release build. +- **Blockers:** #9, the Command Center webhook, still needs a person. Its body + named the old repository path and has been corrected in the tracker, so + whoever picks it up gets a command that works. The four QA gaps are unchanged + and still the better spend: nobody has looked at a real lock screen, TalkBack has never been run, + text has never been scaled, and nothing has run at `minSdk` 26. + ### 2026-08-18 — Batch 05 shipped, and the app got its real brand Reminders landed and the milestone closed. **Five of eight batches are done, and