15 Commits
Author SHA1 Message Date
Bendik Aagaard LynghaugandClaude Opus 4.8 8ab1b50310 chore: Release cnats version 0.3.2
Release / build (x86_64, ubuntu-latest, /sccache) (push) Successful in 1m30s
Release / docker (push) Successful in 13s
Release / build (aarch64, aarch64, /var/lib/gitea-runner/sccache) (push) Successful in 12m52s
Release / update-aur (push) Successful in 28s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-03 10:17:22 +02:00
Bendik Aagaard Lynghaug cc88f3c325 chore: Release cnats version 0.3.1
Release / build (aarch64, aarch64, /var/lib/gitea-runner/sccache) (push) Failing after 1s
Release / build (x86_64, ubuntu-latest, /sccache) (push) Successful in 1m32s
Release / update-aur (push) Skipped
Release / docker (push) Successful in 2m11s
2026-10-02 18:33:24 +02:00
Bendik Aagaard Lynghaug 0ad4b732e5 chore: Release cnats version 0.3.0
Release / build (aarch64, aarch64, /var/lib/gitea-runner/sccache) (push) Failing after 5s
Release / build (x86_64, ubuntu-latest, /sccache) (push) Failing after 2m45s
Release / update-aur (push) Skipped
Release / docker (push) Failing after 10m7s
2026-10-02 18:16:33 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 78e9c9ff94 Calls: screen share, mic/cam toggles, status badges, pin + fullscreen, call timer
Screen sharing swaps the outgoing video track on every peer's sender with
replaceTrack (same m-line, no renegotiation); the camera returns when the
share stops, including via the browser's own "Stop sharing" bar. Mic and
camera toggles flip track.enabled. A new Status signal kind broadcasts
mic/cam/screen state so tiles can show badges; newcomers get it directed
when their Join arrives.

Tiles carry a name label, click to pin as a stage (a peer's screen share
pins itself), double-click for fullscreen. The call bar has an elapsed
timer and a participant count. Controls are icon-only inline SVGs on
currentColor: plain with a strike when off, a soft glow and ticking LED
when live. Red is reserved for leave.

Also fixed along the way: the peer map was a non-reactive StoredValue, so
the tile list never re-rendered when someone joined; ICE candidates that
arrive before the remote description are now buffered instead of
rejected; a peer whose connection fails or closes is dropped.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3sD29ozDvqA7jozeZXZoB
2026-10-02 17:26:00 +02:00
Bendik Aagaard Lynghaug ed0e0229d4 chore: Release cnats version 0.2.6
Release / build (x86_64, ubuntu-latest) (push) Successful in 6m31s
Release / build (aarch64, aarch64) (push) Successful in 15m12s
Release / update-aur (push) Successful in 49s
Release / docker (push) Failing after 20m5s
2026-09-13 12:16:43 +02:00
Bendik Aagaard Lynghaug 1f47337c40 chore: Release cnats version 0.2.5 2026-08-16 14:42:39 +02:00
Bendik Aagaard Lynghaug 080b9c46d6 chore: Release cnats version 0.2.4 2026-07-30 15:06:52 +02:00
Bendik Aagaard Lynghaug 9c89cfbe9c chore: Release cnats version 0.2.3 2026-07-29 10:50:09 +02:00
Bendik Aagaard Lynghaug 9858460696 chore: Release cnats version 0.2.2 2026-07-28 12:03:23 +02:00
Bendik Aagaard Lynghaug e0061af9ce chore: Release cnats version 0.2.1 2026-07-28 10:53:51 +02:00
Bendik Aagaard Lynghaug 4cc0103448 chore: Release cnats version 0.2.0 2026-07-27 23:55:00 +02:00
Bendik Aagaard Lynghaug 650ed50c21 Kanidm group-gated rooms and minimal mesh calling
Rooms can now require a Kanidm group (via the `groups` OIDC claim,
mapped by `oauth2 update-claim-map` server-side) - dev/ops require
`developers`, enforced at every message path (send, history, SSE).

Adds a minimal WebRTC mesh call feature scoped to the lobby room,
signaled over a separate `call.room.*` NATS subject kept out of the
chat archive: public STUN only, no TURN, no SFU - small groups on
friendly networks, by design.
2026-07-27 23:52:27 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 46bdad1629 Pass NATS credentials explicitly: async-nats ignores userinfo in the URL
async_nats::connect() silently drops user:pass embedded in NATS_URL,
so the server rejected every connection with an authorization violation.
Parse the URL and feed credentials through ConnectOptions instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:33:20 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 ec3771f2e7 Persist chat history to Postgres via durable JetStream consumer
DATABASE_URL required at startup; schema self-initializes.
Compose gains a postgres service for standalone dev.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 22:14:26 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 6b97ec3b0f cnats: NATS-native chat with Leptos SSR and Kanidm SSO
Initial import plus deployment packaging: multi-stage Dockerfile
(cargo-leptos build -> debian-slim runtime), .dockerignore, and a
dev-only docker-compose (app + local NATS). Production deployment
lives in the infrastructure repo.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 21:53:56 +02:00