Files
clockula/docs
makiolaj d2bf4349c5 fix(alarms): never announce an alarm that has since stopped ringing
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
2026-10-21 19:18:19 +02:00
..

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.