Skip to content

Commit cfd3e3c

Browse files
committed
docs(changelog): 0.2.2 — LiveKit host-link security fix, SMTP timeout, setup docs
1 parent 8fee4fb commit cfd3e3c

1 file changed

Lines changed: 37 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,42 @@ exact tag (`ghcr.io/calnode/calnode:0.1.0`) if you need stability between upgrad
1111

1212
## [Unreleased]
1313

14+
## [0.2.2] - 2026-08-12
15+
16+
### Security
17+
- **Fixed a LiveKit host-control leak.** For a booking held on a host's connected Google or
18+
Microsoft calendar, the calendar event added the attendee as a guest — and the provider then
19+
sent its own native invite email using that event's Location, which was the host's
20+
*privileged* join link. An attendee opening that invite (not Calnode's own confirmation email,
21+
which was never affected) got instant host controls in the room. CalDAV bookings were not
22+
exposed (its ICS never listed the attendee as a scheduling participant, so no native invite
23+
was ever sent). If you've run LiveKit bookings with a Google- or Microsoft-connected host
24+
before this release, treat any prior host links as having been shared more widely than
25+
intended.
26+
27+
### Fixed
28+
- The SMTP mailer had no timeout past the initial connection — a stalled or misconfigured
29+
server (e.g. a port/TLS-mode mismatch) could hang a send indefinitely, surfacing in the admin
30+
UI as "Send test email" stuck on **Sending…** forever with no error. Now bounded to 30s (or
31+
the caller's own deadline, if shorter).
32+
- `Settings → Google OAuth` now warns when the page is being viewed at a different domain than
33+
the server's configured `BASE_URL` — the usual cause of `redirect_uri_mismatch` after moving
34+
to a custom domain without updating `BASE_URL` to match.
35+
36+
### Added
37+
- **Storage setup instructions.** `Settings → Storage` had a status badge but no real
38+
instructions for configuring the recording/backups bucket; now shows a full numbered guide
39+
(provider suggestions, exact env vars, including `LITESTREAM_ENDPOINT`/`REGION` which weren't
40+
documented anywhere before). `.env.example` documents the full `LITESTREAM_*` set for the
41+
first time, and the previously-undocumented `MICROSOFT_CLIENT_ID`/`SECRET`/`TENANT` set.
42+
- `Settings → Video` now explains when meeting recordings need the storage bucket set up, with
43+
a link straight to `Settings → Storage`.
44+
- The Recordings page's "no notes yet" message now says precisely which of the notetaker's three
45+
requirements (recording on, a Deepgram key, an LLM configured) is missing, instead of a
46+
generic message that only ever mentioned the first.
47+
48+
[0.2.2]: https://github.com/Calnode/calnode/releases/tag/v0.2.2
49+
1450
## [0.2.1] - 2026-08-12
1551

1652
Compliance and admin-UX polish.
@@ -52,7 +88,7 @@ Adds per-account calendar selection and a set of admin-UX refinements from early
5288
### Fixed
5389
- Corrected the Google OAuth redirect path in `.env.example`.
5490

55-
[Unreleased]: https://github.com/Calnode/calnode/compare/v0.2.1...HEAD
91+
[Unreleased]: https://github.com/Calnode/calnode/compare/v0.2.2...HEAD
5692
[0.2.0]: https://github.com/Calnode/calnode/releases/tag/v0.2.0
5793

5894
## [0.1.0] - 2026-07-23

0 commit comments

Comments
 (0)