A notice is now re-checked against the engine before a screen shows it, so an alarm switched off or deleted by any path - the ring screen, a notification, an intent, a restore - is never announced as set. A retract takes the publish lock, so a publish already past its read cannot put the notice back. Settling is per alarm: switching one alarm off in the list no longer cancels the repeat days still settling on another. The identical-words dedupe is gone, since it could swallow a real confirmation. The editor's writes that move a fire time, with their reschedule and announcement, run on the application scope. Pick, OK, back could otherwise cancel the reschedule half-way and leave a stored time the system had not been given. upcomingFor() reads alarm and state under the engine lock, so a fire cannot land between the two reads. Refs #19
Clockula — documentation
Clockula is a Material 3 Expressive clock app for Android: alarms, timers,
stopwatch and world clock. Third floret of the bloom, after
Calendula (calendar) and
Agendula (tasks). See the top-level
../README.md for the pitch.
Unlike its siblings, Clockula owns its storage, because there is no open provider behind
a clock. What that costs and how the open-standards commitment is honoured anyway
is the first section of PLAN.md.
Index
| Doc | What it covers |
|---|---|
PLAN.md |
The spec. Thesis, locked decisions, the alarm engine, data model, system interop, identity, pipeline, and how ClockMaster is used. The "why". |
ROADMAP.md |
Status and the work queue: milestones M0–M11 and post-v1. What the build loop works through. |
ARCHITECTURE.md |
How Clockula is built today: layers, the data seam, the alarm engine, DI, build/tooling, manifest. Written from M2 onward. |
RELEASING.md |
How to cut a release. Written at M0 alongside the pipeline. |
PROVENANCE.md |
Third-party code and assets carried in-tree, and under what licence (PLAN.md §11). |
Also: ../CHANGELOG.md (Keep a Changelog format; tag sections
feed the release notes).
How the docs relate
- PLAN is the design decisions (stable; the "why").
- ARCHITECTURE is the current shape of the code (kept in sync as it grows).
- ROADMAP is the moving status layer (updated as milestones land).
- RELEASING is the operational runbook.