2025-09-01T10:53:25Z - 2026-09-01T10:53:25Z

Overview

0 Active Pull Requests
75 Active Issues
Excluding merges, 1 author has pushed 96 commits to main and 96 commits to all branches. On main, 377 files have changed and there have been 42765 additions and 4319 deletions.

75 Issues closed from 1 user

Closed #58 Restore from an encrypted export 2026-08-21 02:27:46 -05:00

Closed #59 Show the cycle-length history as a chart, not a column of numbers 2026-08-21 01:55:48 -05:00

Closed #65 The lock's ViewModels and biometric path have no tests 2026-08-21 01:53:55 -05:00

Closed #63 App lock: a PIN just for this app, a fingerprint or face, or either 2026-08-21 01:53:54 -05:00

Closed #75 Deferred: §30's four-button follow-up and §29's custom reminder time 2026-08-21 01:09:37 -05:00

Closed #74 ReminderWorker, NotificationActionHandler and the scheduler have no tests 2026-08-21 01:06:51 -05:00

Closed #73 Worker failures are indistinguishable from "nothing to say", and an answered reminder stays in the shade 2026-08-21 01:06:16 -05:00

Closed #69 Reminder actions apply to today, not to the day they asked about 2026-08-21 00:20:32 -05:00

Closed #67 Onboarding and the forgotten-PIN screen still have no way back 2026-08-21 00:19:39 -05:00

Closed #66 SECURITY.md describes a biometric key that does not exist, and the checklist is missing the rows the log says it has 2026-08-21 00:13:07 -05:00

Closed #72 Changing the reminder time does not move it, rescheduling can fire it early, and a zone change never re-aims it 2026-08-20 22:42:12 -05:00

Closed #71 A denied notification permission is ignored, and unposted reminders still count as having asked 2026-08-20 22:08:47 -05:00

Closed #70 The check-in counter resets on every process start, so the app may never stop asking 2026-08-20 21:59:21 -05:00

Closed #64 A corrupt lock file can crash at boot, and a lockout that cannot be signed vanishes 2026-08-20 21:53:56 -05:00

Closed #61 The Settings tab pins itself to whichever settings page you were on, and no settings page has a back arrow 2026-08-20 21:50:00 -05:00

Closed #60 Change PIN never checks the current PIN 2026-08-20 21:35:52 -05:00

Closed #62 Setting a PIN can lock you out of the session you set it in 2026-08-20 21:35:52 -05:00

Closed #68 "Ended" on the period-end reminder records a new period instead of ending one 2026-08-20 21:28:51 -05:00

Closed #50 Commit the learning-curve simulation as a permanent guard 2026-08-20 16:41:11 -05:00

Closed #56 Evaluate a 13-day luteal phase against measurement 2026-08-20 16:41:11 -05:00

Closed #57 Project the next year onto the calendar, with its assumption said out loud 2026-08-20 16:38:33 -05:00

Closed #54 The constants that encode biology carry no evidence 2026-08-20 16:32:20 -05:00

Closed #55 The Insights banner promises accuracy before a single prediction has been scored 2026-08-20 16:32:20 -05:00

Closed #52 Windows tighten faster than the history earns, and coverage dips mid-learning 2026-08-20 16:30:03 -05:00

Closed #53 A well-tracked drift is punished with a widening window 2026-08-20 16:27:18 -05:00

Closed #51 A textbook-regular user never sustains High confidence 2026-08-20 16:20:51 -05:00

Closed #46 Forecast snapshots lose their lineage, so a retro-logged period teaches the app nothing 2026-08-20 16:13:57 -05:00

Closed #47 A scored snapshot outlives the period it was scored against 2026-08-20 16:13:57 -05:00

Closed #48 A retroactively logged start leaves its "not yet" answers behind to penalise the next cycle 2026-08-20 16:13:57 -05:00

Closed #49 CycleData.repository defaults to the retired baseline engine 2026-08-20 16:13:57 -05:00

Closed #31 Incognito launcher needs its own icon and label, and neither exists 2026-08-20 02:37:33 -05:00

Closed #32 Play Store listing assets do not exist, and Batch 08 says the listing must be submittable 2026-08-20 02:14:13 -05:00

Closed #44 Dark Welcome illustration is a forecast scene 2026-08-20 01:59:33 -05:00

Closed #35 Export My Data 2026-08-19 22:13:10 -05:00

Closed #37 The privacy promise and policy in Settings 2026-08-19 22:00:10 -05:00

Closed #43 Notification small icon is a framework dialog asset 2026-08-19 21:51:58 -05:00

Closed #42 Guard that every drawable has a drawable-night twin 2026-08-19 21:37:46 -05:00

Closed #34 Biometric and PIN app lock 2026-08-19 04:02:52 -05:00

Closed #45 Application scope has no CoroutineExceptionHandler — a Room flow throw kills headless processes 2026-08-19 03:06:14 -05:00

Closed #9 Register the Forgejo webhook for Period on the Command Center 2026-08-19 01:55:50 -05:00

Closed #40 A unified onboarding step, with a full-bleed adaptive hero 2026-08-19 01:02:10 -05:00

Closed #41 Illustrations are decoded at 4× — ship them in density buckets 2026-08-19 01:02:10 -05:00

Closed #39 Onboarding artwork as full-bleed landscape masters 2026-08-19 00:49:26 -05:00

Closed #28 Redraw the wordmark so the logo matches the written name 2026-08-18 22:12:36 -05:00

Closed #38 Make §45's logging rules true in a release build, and guard them 2026-08-18 22:01:36 -05:00

Closed #30 Launcher icon is still the placeholder vector, not the supplied emblem 2026-08-18 21:37:15 -05:00

Closed #36 Delete My Data, surfaced and irreversible 2026-08-18 21:03:19 -05:00

Closed #33 The designed Settings screen, with §36's sections 2026-08-18 20:44:18 -05:00

Closed #29 Onboarding artwork: four of the seven steps have none 2026-08-18 20:26:03 -05:00

Closed #8 Add the three branding marks at docs/data/img/ 2026-08-18 15:31:58 -05:00

Closed #27 Notification settings: independent toggles and a reminder time 2026-08-18 15:27:03 -05:00

Closed #24 Notification copy that honours the three privacy modes 2026-08-18 15:27:02 -05:00

Closed #25 Schedule reminders with WorkManager and no exact alarms 2026-08-18 15:27:02 -05:00

Closed #26 The check-in notification, its actions, and knowing when to stop asking 2026-08-18 15:27:02 -05:00

Closed #21 Estimate ovulation and the fertile window, with uncertainty inherited from the forecast 2026-08-18 14:56:09 -05:00

Closed #22 Show fertility on Today and the Calendar, with the disclaimer wherever it appears 2026-08-18 14:56:09 -05:00

Closed #23 Daily fertility likelihood labels that never say safe 2026-08-18 14:56:09 -05:00

Closed #20 Insights: show the user what the app has learned 2026-08-18 04:04:52 -05:00

Closed #19 Calendar with states that are distinguishable without colour 2026-08-18 04:01:51 -05:00

Closed #18 Period start and end logging in one or two taps 2026-08-18 03:56:56 -05:00

Closed #17 The Today screen and its six dynamic states 2026-08-18 03:50:32 -05:00

Closed #16 Onboarding: seven screens ending in a forecast, with no account 2026-08-18 03:44:48 -05:00

Closed #15 Placeholder vector artwork behind replaceable resource names 2026-08-18 03:35:08 -05:00

Closed #10 Recency-weighted robust centre, replacing the baseline median 2026-08-18 03:16:15 -05:00

Closed #11 Prediction window and confidence from variability rather than a fixed spread 2026-08-18 03:16:15 -05:00

Closed #12 "Not yet" conditions the forecast instead of clamping the window 2026-08-18 03:16:15 -05:00

Closed #14 Swap the engine binding and prove the replacement beats the baseline 2026-08-18 03:16:15 -05:00

Closed #13 Detect a possible missing period and ask, never correct it silently 2026-08-18 03:06:41 -05:00

Closed #7 Module-boundary guard: domain stays Android-free and ads cannot reach cycle data 2026-08-18 03:00:14 -05:00

Closed #6 Period record CRUD: add, edit and delete a confirmed period 2026-08-18 02:52:39 -05:00

Closed #5 Repository layer over Room and DataStore 2026-08-18 02:41:08 -05:00

Closed #4 DataStore-backed UserPreferences 2026-08-18 02:34:51 -05:00

Closed #3 Room database for cycle history, with entities, DAOs and a migration test 2026-08-18 02:32:11 -05:00

Closed #1 Adopt the project template into this repository 2026-08-18 02:16:52 -05:00

Closed #2 Kotlin, Compose and Material 3 project skeleton that builds and launches 2026-08-18 02:16:52 -05:00