Serve and announce the home-page calendar widgets

FeatureEmailService
Shipped
August 22, 2026 at 1:13 AM UTC
Author
Kamo
Commit
31eb68b

CalendarWidgetService answers what a widget actually needs and the calendar page hasEarlier/hasLater so an arrow greys out instead of offering an empty page. The two scopes are disjoint on purpose — the organisation's shared calendar for one widget, the member's own for the other — so a company meeting appears once rather than on both panes side by side. Neither the calendar ids nor the member id come from the request: the caller passes the session's org and member and the service resolves the rest, so a request naming anything else has nowhere to say so. CalendarChangePublisher pushes every write to /topic/calendar/org/<orgId> or **************** always AFTER the commit. Publishing inline would send the nudge while the write is uncommitted, and a widget that answers a nudge by re-reading would race the transaction and usually win — redrawing with the state it already had and never hearing about the change again. Both destinations are guarded in WebSocketConfig, whose per-org guard is now a prefix list like the per-member one.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing