docs: bring the docs in line with what shipped
STORAGE-AND-SYNC.md asked for a follow-up pass on ARCHITECTURE.md §7 and the
ProviderResolver KDoc, which still defined Posture B as "bundle OpenTasks and
find org.dmfs.tasks first" — the plan that was withdrawn as a dead end. That pass,
plus the status the doc left open.
ARCHITECTURE.md now describes the app as built: two modules, the storage-mode
table with the permission each needs, the autoMode rule and why it keys on
holding an external provider's permission, the two-not-three mode vocabulary, and
a manifest section that says what :provider contributes and what is deliberately
absent (GET_ACCOUNTS, INTERNET). §7 records squatting the dmfs authority as a
dead end rather than a road not yet taken, so it doesn't get re-proposed.
ROADMAP.md turns "Posture B, later" into what actually landed and lists what
didn't: the frontend surfaces, the DAVx5 issue, the sync adapter, and device
verification. Two open decisions resolved and struck through — the authority
choice, and recurrence-aware editing, which fix/provider-interaction-review made
stale.
STORAGE-AND-SYNC.md gets per-step status. Open question 3 ("does it work with no
account?") is answered, with the caveat that the test proving it is Robolectric
and skips on ARM64 — answered by construction, not yet on a device.
PLAN.md gets a banner. It's the original design document and still holds the
reasoning behind the layering, but two of its premises are overturned and it
should not be read as current.
README.md was telling users they need a tasks provider installed. They don't, and
that's the headline feature: a table of where tasks can live, that our provider
coexists with OpenTasks rather than replacing it, and that everything exports as
standard .ics.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
50
README.md
50
README.md
@@ -3,8 +3,8 @@
|
||||
<h1>Agendula</h1>
|
||||
|
||||
<p><strong>A modern Material 3 Expressive task app for Android.</strong><br>
|
||||
Reads, writes, and reminds — on top of an existing tasks provider, with no own
|
||||
sync stack.</p>
|
||||
Keeps your tasks on your device, or on top of a tasks provider you already use.
|
||||
Open standards, no account required.</p>
|
||||
|
||||
<a href="https://codeberg.org/jlmakiola/agendula/actions"><img src="https://codeberg.org/jlmakiola/agendula/actions/workflows/ci.yaml/badge.svg?branch=main" alt="CI"></a>
|
||||
<img src="https://img.shields.io/badge/Android-10%2B-3DDC84?logo=android&logoColor=white" alt="Android 10+">
|
||||
@@ -15,31 +15,47 @@ sync stack.</p>
|
||||
</div>
|
||||
|
||||
Agendula is the task-list sibling to [Calendula](https://codeberg.org/jlmakiola/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.
|
||||
Where Calendula is a pure front-end over Android's `CalendarContract`, Agendula
|
||||
speaks the **dmfs `TaskContract`** — the same shape DAVx5 (and SmoothSync,
|
||||
DecSync, …) syncs your CalDAV `VTODO` tasks into.
|
||||
|
||||
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 `TaskContract` provider — 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. See [`docs/ROADMAP.md`](docs/ROADMAP.md) for status,
|
||||
## Where your tasks live — your choice
|
||||
|
||||
| | Where | Sync | Needs |
|
||||
|---|---|---|---|
|
||||
| **On your device** *(default)* | Agendula's own task store, bundled in the app | none yet — sync of our own is planned | nothing. No account, no permissions, no other app |
|
||||
| **In a provider you already use** | OpenTasks or tasks.org | whatever syncs it for you — DAVx5 and friends | that app installed, and its read/write permission |
|
||||
|
||||
Agendula carries its own copy of the Apache-2.0 dmfs task provider, under its own
|
||||
name — so it **coexists with OpenTasks rather than replacing it**, and installing
|
||||
one never breaks the other. It is a fork of a proven schema, not a database
|
||||
written from scratch, which is why every CalDAV engine already understands it.
|
||||
|
||||
Your tasks are exportable as standard iCalendar `.ics` files at any time, because
|
||||
data you can't take with you isn't really yours.
|
||||
|
||||
> **Status: backend complete, UI catching up.** Storage, provider, reads and
|
||||
> writes, smart-list filtering, a self-scheduled reminder engine, and export are
|
||||
> built and unit-tested. The Material 3 Expressive screens are being built on
|
||||
> top, one at a time — the storage-mode picker and export screen are not there
|
||||
> yet. See [`docs/ROADMAP.md`](docs/ROADMAP.md) for status,
|
||||
> [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) for how it's built, and
|
||||
> [`docs/PLAN.md`](docs/PLAN.md) for the A-now-B-later design rationale.
|
||||
> [`docs/STORAGE-AND-SYNC.md`](docs/STORAGE-AND-SYNC.md) for why storage works
|
||||
> the way it does.
|
||||
|
||||
## 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.
|
||||
In provider mode Agendula works with anything that writes to that 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.
|
||||
|
||||
## Translations
|
||||
|
||||
|
||||
Reference in New Issue
Block a user