Skip to content

v0.1.41-alpha

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 18:36
· 2 commits to main since this release
287ba21

v0.1.41-alpha — Basis services now run pinned to UTC

Deploy-only release. The two systemd units, basis.service and
basis-worker.service, now set TZ=UTC explicitly instead of inheriting the
host's timezone.

Why it matters: all-day events are stored as a wall-clock instant and
converted to Google's exclusive end date at the sync boundary. That
conversion tells a Basis-authored end (noon) apart from a provider-supplied
one (exact UTC midnight). On a host at an offset of exactly +/-12, local noon
IS UTC midnight and the two collapse — a one-day all-day event then pushes to
Google with start date equal to end date, which Google rejects. At an offset
of 13 or more the date arithmetic shifts by a day silently. Self-hosted boxes
are usually set to local time, so this cannot be left to the host.

Found while reviewing the outbound sync worker. Nothing has gone wrong on the
production box because it happens to run Etc/UTC already.

How it lands: systemd units do not travel through the in-app Update button.
The change takes effect on an existing box only after a one-time

sudo backend/deploy/native/install.sh --units-only --source <checkout>

run from the box's checkout. That reloads the units but restarts nothing;
the pin takes effect at the next service restart, which the next in-app
update performs. Fresh installs pick it up automatically. Until then the box
keeps whatever timezone it had, which on the production box is already UTC.

No migrations. No application code changes.

Install

curl -fL https://github.com/Springdale-Robotics/basis/releases/download/v0.1.41-alpha/basis-0.1.41-alpha.tar.gz | tar -xz
sudo bash basis-0.1.41-alpha/backend/deploy/native/install.sh --source basis-0.1.41-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.