R8 kept androidx.work.impl.WorkDatabase_Impl but pruned its no-arg constructor: nothing calls it directly, Room only reaches it reflectively. Room then threw InstantiationException, surfacing as "Failed to create an instance of androidx.work.impl.WorkDatabase". WorkManager builds that database from a startup ContentProvider, so 0.3.0 died before any of our code ran — every install, every launch. We don't depend on WorkManager directly; it arrives via Glance. AGP 9's stricter R8 is what tipped this over, which is why 0.3.0 was the first release to hit it. Keep the Room no-arg constructor, and the ListenableWorker constructor alongside it — same pruning hazard on the path WorkManager uses to instantiate workers by name, which would have bitten once a Glance widget update actually ran. Reproduced the reporter's stack trace frame-for-frame on a releaseTest build, then confirmed it launches clean afterwards. Fixes #1. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Agendula
A modern Material 3 Expressive task app for Android.
Reads, writes, and reminds — on top of an existing tasks provider, with no own
sync stack.
Agendula is the task-list sibling to Calendula.
Where Calendula is a pure front-end over Android's CalendarContract, Agendula is
a pure front-end over the OpenTasks TaskContract provider — the store that
DAVx5 (and SmoothSync, DecSync, …) syncs your CalDAV VTODO tasks into. No own
database, no reinvented sync.
The name rhymes with its sibling on purpose: Agendula is agenda — Latin for
“things to be done” — given Calendula's -ula ending. Calendula keeps your days;
Agendula keeps your to-dos. (A Calendula flower head is botanically a cluster of
many small florets — so the two apps are florets of one bloom.)
Status: data layer done, UI in progress. The full non-visual stack over the
TaskContractprovider — provider resolution, live-updating reads, writes, smart-list filtering, and a self-scheduled reminder engine — is built and unit-tested. The Material 3 Expressive screens are now being built on top, one at a time. Seedocs/ROADMAP.mdfor status,docs/ARCHITECTURE.mdfor how it's built, anddocs/PLAN.mdfor the A-now-B-later design rationale.
Sync sources (by design)
Agendula works with anything that writes to the tasks provider — DAVx5 (CalDAV), SmoothSync, CalDAV-Sync, DecSync CC, or any Android sync adapter — because it builds on the provider, not on any one sync app. Google Tasks / Microsoft To Do are out of scope by design (proprietary; they would mean owning a sync stack). Open standards — CalDAV / iCalendar / DecSync — are the lane.
License
MIT — see LICENSE.