Skip to content

v0.1.39-alpha

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Sep 08:02
· 4 commits to main since this release
ab80871

v0.1.39-alpha — outbound discovery and sweep worker

Phase 2, tasks 3 and 4. Still INERT: isOutboundCalendar requires
isReadOnly === false and nothing is unlocked, so the sweep finds nothing and
no edit reaches Google. Task 5 is what turns it on.

What DOES change for a household in this release: Basis now refuses to edit
or delete a single occurrence of a repeating event on a calendar synced with
an external provider, and says why.

That refusal is the point. Deleting one occurrence adds an EXDATE to the
master row rather than creating an exception row, so it would have reached
the outbound path looking like an ordinary master edit — and pushing it
would have replaced Google's whole recurrence array, wiping exclusions it
held, then marked the row clean. The occurrence would have vanished in Basis,
stayed on every device reading Google, and previously-deleted occurrences
there would have come back, silently and permanently.

The spec always deferred per-occurrence editing of a synced series to v2.
What nobody had noticed is that EXDATE-on-master IS per-occurrence editing.
Refusing at the point of action is that decision, honestly applied: better to
tell a household what Basis cannot do than to accept an edit it cannot deliver.

Also fixed: all-day events converted correctly at the Google boundary in both
the create and update paths (Basis stores an inclusive end, Google's end.date
is exclusive), and an edit-form path that grew a synced all-day event by a day
on resave.

Local, unsynced calendars are untouched — every single-occurrence path still
behaves exactly as before.

Install

curl -fL https://github.com/Springdale-Robotics/basis/releases/download/v0.1.39-alpha/basis-0.1.39-alpha.tar.gz | tar -xz
sudo bash basis-0.1.39-alpha/backend/deploy/native/install.sh --source basis-0.1.39-alpha

Basis installs natively (Node/Postgres/Redis + systemd); there
is no Docker image. Local development still uses Docker for
Postgres/Redis/Ollama via backend/docker-compose.dev.yml.