Commit Graph

  • 641e6865b0 docs: bring the QA verdict back in line with what has actually been run main null 2026-08-21 02:32:45 -0500
  • ebe5ab8d6f docs: record the day the archive learned to come back null 2026-08-21 02:29:02 -0500
  • 0ae92bd134 feat: let an archive come back, and refuse everything that is not one null 2026-08-21 02:27:42 -0500
  • 7910ffd05f feat: draw the cycle history instead of listing it null 2026-08-21 01:55:44 -0500
  • f91ba6ebe6 feat: offer the choice on screen, and say what each one means null 2026-08-21 01:53:09 -0500
  • 750fdaeb0d feat: let the app be opened by a PIN, a fingerprint, or either null 2026-08-21 01:47:01 -0500
  • 9b2b332a98 feat: give the lock a method, and every old install the one it had null 2026-08-21 01:32:37 -0500
  • f99197ffd5 feat: pin down which day, and let the reminder be any time null 2026-08-21 01:09:33 -0500
  • 5f6412856e fix: tell a broken reminder apart from a quiet cycle null 2026-08-21 01:06:13 -0500
  • cf09c7ab97 fix: apply a reminder's answer to the day it asked about null 2026-08-21 00:20:29 -0500
  • d31bfbd0e7 fix: step back through onboarding and the erase confirmation null 2026-08-21 00:19:35 -0500
  • b81a4fb43b docs: stop describing a biometric key that does not exist null 2026-08-21 00:13:01 -0500
  • f43d580cc7 fix: make a reminder arrive when the user asked for it null 2026-08-20 22:42:09 -0500
  • 65e8e574b7 fix: stop counting reminders the app could not send null 2026-08-20 22:08:44 -0500
  • 7447156cbc docs: record the two release-blockers and the reported trap null 2026-08-20 21:59:52 -0500
  • ff3cbe89ad fix: let the app actually stop asking null 2026-08-20 21:59:18 -0500
  • 7f67573e8a fix: make the lock fail towards opening, not towards a locked-out app null 2026-08-20 21:53:51 -0500
  • a12d8e5c49 fix: give every settings page a way out null 2026-08-20 21:49:57 -0500
  • ca7a187520 fix: make changing the PIN require knowing it null 2026-08-20 21:35:48 -0500
  • bde6528547 fix: stop "Ended" from recording the start of a period null 2026-08-20 21:28:47 -0500
  • b73bc85583 docs: record Batch 09, and close half the long-horizon QA gap null 2026-08-20 16:39:30 -0500
  • 866b7055f5 feat: project the next year onto the calendar, and say what it assumes null 2026-08-20 16:38:30 -0500
  • 426f5992c7 docs: separate the constants that are physiology from the ones that are tuning null 2026-08-20 16:32:16 -0500
  • 1761bf33a0 fix: account for not knowing her centre, not just her spread null 2026-08-20 16:30:00 -0500
  • 45aefbbcb6 fix: stop charging a drifting cycle for being followed correctly null 2026-08-20 16:27:14 -0500
  • e5001fedd4 fix: set the Medium threshold to the value that was measured null 2026-08-20 16:21:33 -0500
  • 2450c9d854 fix: stop charging a woman confidence for being measured null 2026-08-20 16:20:48 -0500
  • 335d0217a8 test: measure whether the engine actually learns, and keep measuring it null 2026-08-20 16:18:01 -0500
  • 861738c4e9 fix: make the learning loop keep the samples it earns null 2026-08-20 16:13:53 -0500
  • 93ec5b7f91 ui: add discreet launcher alias null 2026-08-20 02:37:29 -0500
  • 893d061400 ui: add Play listing assets null 2026-08-20 02:14:08 -0500
  • 53e6173497 ui: fix dark welcome artwork null 2026-08-20 01:59:30 -0500
  • 25102269d9 docs: log Batch 06 closing, four new guards, and an emulator that was not mine null 2026-08-19 22:17:42 -0500
  • 6591951c8d docs: the export's device checks are a release gate, not a memory null 2026-08-19 22:17:01 -0500
  • 9a0a644fdb feat: export my data, as one plaintext file the user places null 2026-08-19 22:13:07 -0500
  • 4456f351ac feat: the privacy promise appears in Settings, from one string null 2026-08-19 22:00:06 -0500
  • d7cdf740e5 chore: hiltViewModel comes from the package that still supports it null 2026-08-19 21:52:10 -0500
  • caf1244cf1 feat: the status bar shows this app's mark, not a framework glyph null 2026-08-19 21:51:54 -0500
  • 255808f2fc feat: a guard that every drawable has a night twin null 2026-08-19 21:37:43 -0500
  • 5e9184f377 docs: log the app lock, and the three defects testing found null 2026-08-19 04:05:53 -0500
  • fa1cfe5515 fix: a stray NUL byte made a Kotlin source file binary to git null 2026-08-19 04:04:25 -0500
  • 1d8d7cc688 feat: app lock, with no way to reset a forgotten PIN null 2026-08-19 04:02:47 -0500
  • 42a2d543ad docs: log the encryption decision, the crash it uncovered, and two false greens null 2026-08-19 03:09:26 -0500
  • 17cddb2a61 docs: record why the database is not encrypted, and drop the claim that it is null 2026-08-19 03:08:22 -0500
  • 424a513336 fix: a throw in a background flow no longer kills the process null 2026-08-19 03:06:10 -0500
  • 5ff9f00f04 docs: log the screenshot capture and what the seeding taught null 2026-08-19 01:48:44 -0500
  • e7d38bccbd docs: eleven app screenshots, from a seeded demo history null 2026-08-19 01:47:52 -0500
  • ba5ff3d0ed docs: log the full-bleed hero work and what the hash check missed null 2026-08-19 01:03:23 -0500
  • ae27ef6490 feat: full-bleed onboarding heroes, in density buckets null 2026-08-19 01:02:06 -0500
  • b74bc4b66a docs: onboarding illustrations recomposed for a full-bleed hero null 2026-08-19 00:49:22 -0500
  • 1f5bcfb50c feat: the wordmark has its space, and logo and banner say so null 2026-08-18 22:12:33 -0500
  • a1efbde973 feat: guard §45's logging rules, and stop the leak that needed no log call null 2026-08-18 22:01:33 -0500
  • addd6c14cb feat: the real emblem is the launcher icon null 2026-08-18 21:37:11 -0500
  • 8807951553 feat: Delete My Data, and fix a privacy option nobody could tap null 2026-08-18 21:03:16 -0500
  • f43e1c2824 feat: the designed Settings screen, structured as §36 specifies null 2026-08-18 20:44:15 -0500
  • 928680a61a fix: navigation labels wrapped mid-word at the largest font scale null 2026-08-18 20:34:38 -0500
  • 5fc94536fe feat: ship the onboarding artwork in both themes null 2026-08-18 20:25:59 -0500
  • 807b8a4600 docs: add the empty-state illustration, completing the set null 2026-08-18 20:10:19 -0500
  • 081257f69c docs: onboarding illustrations, matched light and dark null 2026-08-18 19:53:23 -0500
  • 9d2a4b2fb1 docs: add the onboarding concept cards as references, not assets null 2026-08-18 19:28:50 -0500
  • db46335a0f docs: record the brief the remaining art is judged against null 2026-08-18 18:53:25 -0500
  • 7f7513e7be docs: record the minSdk emulator, and the first run at API 26 null 2026-08-18 18:07:07 -0500
  • 0d280d5415 docs: a check-in needs the project UUID, not the slug null 2026-08-18 16:35:06 -0500
  • ad085fb4ce docs: correct 57 claims the code and tracker disagreed with null 2026-08-18 16:33:14 -0500
  • b338380cb2 docs: log the rename, and what it deliberately left alone null 2026-08-18 15:57:44 -0500
  • 4eed14f059 chore: rename the project to Privacy: Period Tracker null 2026-08-18 15:54:34 -0500
  • 96c0e95d5c docs: record Round 3 QA and the Batch 05 log entry null 2026-08-18 15:33:04 -0500
  • 0451fbe00a feat: the real brand — Privacy:Period Tracker null 2026-08-18 15:31:52 -0500
  • 99dbc36802 feat: reminders that stay quiet on a lock screen null 2026-08-18 15:26:59 -0500
  • 270de7b90f docs: log Batch 04, and a git mistake worth keeping null 2026-08-18 15:01:28 -0500
  • 418261b482 docs: a 2 is a question, not automatically a failure null 2026-08-18 15:00:49 -0500
  • d7fe58883c fix: restore docs/TOOLS.md, deleted by a stray test commit null 2026-08-18 15:00:17 -0500
  • c5b3a50dbb fix: the pre-commit hook refused every deletion-only commit null 2026-08-18 14:59:24 -0500
  • 6fc12b6c56 test: deletion-only commit (will be reverted) null 2026-08-18 14:58:20 -0500
  • 809a4317a7 chore: ignore .kotlin/, the compiler's session directory null 2026-08-18 14:57:07 -0500
  • adfb1961ae fix: stop committing bin/, which is build output that looks like source null 2026-08-18 14:56:29 -0500
  • 5da7c18364 feat: fertility that declines rather than stretches null 2026-08-18 14:56:05 -0500
  • 7185708547 docs: record Round 2 QA and the Batch 03 log entry null 2026-08-18 04:05:58 -0500
  • 19edf4c920 feat: Insights, and most of it is about staying quiet null 2026-08-18 04:04:49 -0500
  • 9d2d15038c feat: calendar whose states survive greyscale null 2026-08-18 04:01:47 -0500
  • 035a9d4162 feat: two-tap period logging, and spotting that cannot reset the cycle null 2026-08-18 03:56:52 -0500
  • afd22dddfa feat: the Today screen and its six states, with the number as the hero null 2026-08-18 03:50:28 -0500
  • 2479a1ddf4 feat: onboarding, and the Surface that dark mode was missing null 2026-08-18 03:44:46 -0500
  • e15c49752d docs: name the art package by its real path so doc-claims can check it null 2026-08-18 03:35:24 -0500
  • adaabfcec4 feat: placeholder vector artwork, and calendar markers that work in greyscale null 2026-08-18 03:35:04 -0500
  • da529b265f docs: log Batch 02, and the habit three pieces of work have now established null 2026-08-18 03:17:00 -0500
  • 2fe423cf47 feat: the prediction engine section 12 specifies, and it beats the baseline null 2026-08-18 03:16:12 -0500
  • b0b4f47a67 feat: detect a probable missed period without touching the history null 2026-08-18 03:06:38 -0500
  • eb3bebcf2f docs: record Round 1 QA and the Batch 01 log entry null 2026-08-18 03:01:33 -0500
  • f5e9fbe53c feat: module boundary guard, and two API-level bugs it uncovered null 2026-08-18 03:00:11 -0500
  • adc50751d8 feat: period CRUD end to end, and stop a double tap killing the app null 2026-08-18 02:52:35 -0500
  • 6d4592467f feat: repository layer, and stop backfilled history fabricating accuracy figures null 2026-08-18 02:41:05 -0500
  • 8d7a7252cb feat: DataStore-backed UserPreferences, separate from the cycle database null 2026-08-18 02:34:47 -0500
  • 67b3c45002 feat: Room database for cycle history, and the schema guard that actually works null 2026-08-18 02:32:07 -0500
  • d03eecde31 docs: name not-yet-existing paths without backticks so doc-claims passes null 2026-08-18 02:18:25 -0500
  • 96dd878ac5 chore: adopt the project template and add the Kotlin/Compose skeleton null 2026-08-18 02:16:47 -0500