Changelog

What’s new in Unitae. Each release groups the work done on a given day.

View full commit history on GitHub →

2026-05-12

Day-off awareness across the schedule

Fixed the dashboard “next meeting” widget surfacing days off as the next event — it now skips them and shows the actual next meeting. Day-off conflicts are also flagged on every future assignment, not just the next one. Programme part eligibility resolves correctly when responsibilities come from both built-in and custom roles.

2026-05-11

Members and accounts, now separate

Major refactor splitting the User model into Member (the person — appears in publishers, programmes and schedules) and UserAccount (the login). Members can be tracked and assigned without ever creating an account. A new AbsenceViewer permission grants read-only access to absences. Permissions now resolve consistently from built-in roles, custom roles and direct grants. Background workers get isolated Redis connections, and congregation imports have more headroom before timing out.

2026-05-10

Self-hosting hardening — full data transfer & RLS coverage

The data transfer export now includes the 11 feature tables that were previously skipped, so self-hosted congregations can move between instances without losing anything. Added missing row-level security policies on board document versions and dynamic document settings. The board PDF viewer surfaces error details to make support easier, and programme parts reorder uses absolute URLs to work behind a reverse proxy.

2026-05-09

Role-gated board sections & programme assignees

Information board sections can now be hidden per role, and a new BoardViewer permission grants read-only access without manage rights. Uploaders get a clear path to add documents with stricter gates on what they can change afterwards. On programmes, parts and services can restrict who is eligible to be assigned, based on role. Landscape PDFs auto-fit the viewer and gain dedicated zoom controls.

2026-05-08

Custom roles & assignments

Define your own roles in the congregation alongside the built-in ones, and assign them to members from a single settings page. Built on a new Role domain layer that keeps built-in roles in sync across upgrades, with permission descriptions sourced entirely from translations. Programme responsibles can now manage the programmes they are responsible for. Publishers search input stays visible when no results match, and the activity export no longer fails inside the RLS transaction.

2026-05-04

Assembly map — zones & perimeter editor

New assembly map editor lets admins define zones and the congregation perimeter through a dedicated UI, replacing legacy CSV inputs, hardcoded polygons, and raw GeoJSON imports. Tighter integration with the territory card overlays and simpler territory settings.

2026-05-03

Map overlays & calendar feed

Customizable card map overlays per congregation: admins can draw or import GeoJSON shapes for territory PDFs, replacing hardcoded boundaries. New personal iCalendar feed — members can subscribe to their own programme assignments and absences from any calendar app via a private authenticated URL. Static map viewport auto-fits the territory marker and overlays. Critical PDF rendering fixes for fonts and the map marker asset.

2026-05-02

Map-driven territory editing

When Google Maps is configured, the territory edit page promotes the map to the primary editing surface — click markers to add, remove, or reassign entrances across territories with atomic save and a two-step reassignment confirmation. New external speaker registry. Harmonized person dropdowns with built-in search and locale-aware sorting.

2026-04-30

Audit trail & polish

New audit trail records who changed what across the application. External speakers now appear on the live programme display board. Stronger test coverage across unit, integration, and end-to-end suites. Visual polish on padding, navigation, and sidebar.

2026-04-29

Server-side PDFs & programme UX

PDF generation moves from the browser to server-side routes for reliability. Programme UX overhaul: list redesign, bulk delete, event kind management. New territory options settings. External speakers can now be assigned to programme parts. Multi-track ordering and gender-aware publisher form fixes.

2026-04-28

Self-hosting fixes & documentation

Self-hosting setup fixes: single-tenant seed reuse, reliable base URL handling, init-db role attributes, and missing env vars added. Resolved error boundary alignment, password invalidation route, and a client-side PDF crash. Cron jobs documentation rewritten and content directory permissions fixed. Comprehensive documentation audit.

2026-04-26

Programmes, navigation & settings redesign

Redesigned programme export and display board with flexible per-template configuration. Revamped event and template editing pages. Polished sidebar navigation with search and collapsible sections. Redesigned settings section with new pages. Better error handling across the application.

2026-04-25

Board redesign, days off & security

Redesigned display board and days-off admin pages. Improved unsaved-changes guards across all forms. Non-superuser database role for stricter RLS enforcement. Dedicated Docker images for runtime, worker, and migrations.

2026-04-24

Notifications, export/import & dashboard

New notification system with debounce, cancellation, and user preferences. Congregation data export/import for cross-instance migration. Redesigned dashboard homepage. Dependency upgrades and onboarding fixes.

2026-04-22

UX improvements

Comprehensive UX polish to make Unitae feel like a native app — smoother navigation, better feedback, and refined interactions.

2026-04-18

Personal dashboard & email verification

New personalized dashboard homepage showing your territories, upcoming assignments, recent documents, and absences at a glance. Email verification for new accounts. Configurable email sender address.

2026-04-16

Dynamic board documents & PDF viewer

The information board now generates dynamic documents automatically: field service groups, pioneer lists, and programme views that update when data changes. In-app PDF viewer with cross-device rendering. Read tracking, document versioning, and expiration notifications.

2026-04-15

Board UX & internationalization

Drag-and-drop document reordering, search, thumbnail previews, and bulk operations for the information board. Full internationalization: the interface is now available in French and English.

2026-04-13

Programme management

New programme management system: define recurring meeting templates, assign speakers and service roles, detect conflicts with days off, and export polished PDFs. Parallel parts support for simultaneous rooms.

2026-04-12

GDPR compliance & audit logging

GDPR compliance foundation: structured audit logging for sensitive operations, PII redaction in logs, data retention cleanup, user anonymization, consent management, and data export tools.

2026-04-11

Row-Level Security & documentation

Replaced Prisma extension scoping with PostgreSQL Row-Level Security for strict data isolation per congregation. Added attribution history to publisher and territory views. Comprehensive product and technical documentation.

2026-04-10

AGPL-3.0 license & tenant isolation

Switched from MIT to AGPL-3.0 license to protect the open-source community. Hardened tenant data isolation to prevent any cross-congregation data leaks.

2026-04-09

Territory statistics & export fixes

Expanded territory statistics page with coverage rates, overdue tracking, and monthly trends. Fixed bugs in Excel, PDF, and S-13 export services. Trial expiration enforcement with suspension page.

2026-04-08

Redesign & rebranding

Complete visual redesign and rebranding for the next version of Unitae. New color palette, typography, and component library.

2025-09-07

Initial open-source release

First public release of Unitae as open-source software. Core features: territory management, publisher profiles, activity reports, and basic congregation settings.