docs: mark M1 done
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,3 +21,11 @@ Tag sections feed the release notes — see [`docs/RELEASING.md`](docs/RELEASING
|
||||
translations, release (F-Droid repo + Codeberg release + Google Play) and
|
||||
Renovate, with the F-Droid reproducibility rules intact.
|
||||
- The locked specification: `docs/PLAN.md` and `docs/ROADMAP.md`.
|
||||
- Preferences over floret-kit's new `core-prefs`: `SettingsPrefs` holds the
|
||||
appearance slice (theme mode, dynamic colour) in a DataStore of Clockula's own,
|
||||
under the family's key names. The theme now follows the stored preference —
|
||||
light/dark override and dynamic colour persist across launches instead of
|
||||
always following the system — and an unrelated preference write no longer
|
||||
re-emits it.
|
||||
- floret-kit's `core-di` supplies the `@IoDispatcher` the preference store runs
|
||||
on, so Clockula no longer declares its own dispatcher qualifier.
|
||||
|
||||
+16
-5
@@ -10,10 +10,10 @@ Status legend: ✅ done · 🚧 in progress · ⬜ not started
|
||||
|
||||
## Current state (one line)
|
||||
|
||||
✅ **M0 done.** The project builds, installs and shows a themed placeholder;
|
||||
floret-kit is wired in as a composite build, the identity is seeded, and the
|
||||
full Codeberg-canonical release pipeline is in place. **M1** (the `core-prefs` +
|
||||
`core-di` extraction into floret-kit) is next.
|
||||
✅ **M1 done.** floret-kit 0.4.0 ships `core-prefs` and `core-di`, and Clockula's
|
||||
theme now follows its own stored preference over a typed DataStore. **M2** (the
|
||||
whole storage stack — Room, domain models, repositories, and the first
|
||||
`ARCHITECTURE.md`) is next.
|
||||
|
||||
---
|
||||
|
||||
@@ -69,7 +69,7 @@ The project exists, builds, is themed, and ships itself.
|
||||
unwritten by design — M2 writes it, once there is an architecture to
|
||||
describe.
|
||||
|
||||
### ⬜ M1 — floret-kit: `core-prefs` + `core-di`
|
||||
### ✅ M1 — floret-kit: `core-prefs` + `core-di`
|
||||
Pay the extraction the kit's roadmap has been waiting for a third app to trigger.
|
||||
- In the kit: `core-prefs` (`ThemeMode`, `dynamicColor`, typed DataStore wrapper,
|
||||
`toEnum()`) and `core-di` (`@IoDispatcher` + provider), each with tests, module
|
||||
@@ -79,6 +79,17 @@ Pay the extraction the kit's roadmap has been waiting for a third app to trigger
|
||||
- **Done when:** the kit's tests pass, Clockula builds against the new modules,
|
||||
and both repos are committed (submodule first, then the pointer bump).
|
||||
|
||||
✅ floret-kit 0.4.0. `core-prefs` (56 kit tests) gives the family a typed
|
||||
`Pref<T>`/`PrefStore` over DataStore; reads degrade to the default instead of
|
||||
throwing, and `flow()` is distinct-until-changed. The appearance key names are
|
||||
frozen at what Calendula and Agendula already write, so the sibling migration —
|
||||
a follow-up in the kit's roadmap, not here — needs no data migration.
|
||||
`core-di` carries `hilt-compiler` itself, since an `@InstallIn` module only
|
||||
reaches a consumer's component if its own library was processed; Clockula's
|
||||
`assembleDebug` is the integration test for that binding. Clockula's theme now
|
||||
reads the stored preference, with the DataStore built on a corruption handler
|
||||
so an unreadable prefs file cannot brick startup.
|
||||
|
||||
### ⬜ M2 — Data layer
|
||||
The whole storage stack, headless. No UI.
|
||||
- Room: `alarms`, `timers`, `world_clocks`, `stopwatch_laps` (`PLAN.md` §5),
|
||||
|
||||
Reference in New Issue
Block a user