Changelog
What’s new in Unitae. Each release groups the work done on a given day.
View full commit history on GitHub →2026-07-20
Events and templates, unified
Programme models are renamed to a clearer Events and Templates vocabulary across the app, and event kinds are merged into templates so each template carries its own colour and defaults. Define custom per-part speaker and reader labels, delete custom templates you no longer use, and save system-template colours. Meeting-part role labels now display correctly on the dashboard’s next-meeting card.
2026-07-19
Assignment cadence strip and polish
The assignment info card is reworked around a cadence strip that shows each publisher’s rhythm of past parts at a glance, with part duration editable straight from the assign-part sheet. Assignment notifications now respect members who have left, SMTP failures surface instead of failing silently, suspended congregations are gated, and every event edit is recorded in the audit trail.
2026-07-16
Draft and released events
Programme events now follow a draft-and-released workflow: build a schedule privately, then publish it when ready. Absence and assignment conflicts surface across the whole app, not just the next meeting, and you’re returned to the page you intended after re-logging in. Bulk-select checkboxes moved inside the event cards.
2026-07-15
Faster programme editing and accurate inactivity
Section and track fields on programme parts autocomplete from what you’ve already used. Inactive publisher status is now computed from the missed-report streak rather than the current date, and inactive publishers are excluded from the header’s irregular count.
2026-07-14
Activity filters, richer statistics, split tool
The activity table filters by name, group, status, and type, with a configurable export dialog. The territory statistics page is restructured into four scoped zones with a sticky filter bar, a terrain section, and territory linking. A new map-driven split tool creates territories directly on the map (now powered by Terra Draw), and assignees are emailed automatically when their parts change.
2026-07-13
Notification system overhaul
Notifications are rebuilt around a single delivery layer, with feature-owned definitions registered through a plugin registry — making every email consistent and easier to extend.
2026-07-11
Territory edit-map impact preview
Editing a territory on the map now shows a live impact block summarising what each marker change will do — add, remove, or reassign — with tighter filtering of what’s displayed, so you can see the effect of a reassignment before you save.
2026-06-07
Unified territory search with proximity ranking
A single search box across every territory list matches publisher names, territory numbers, building addresses, postal codes, and neighbourhoods — case- and accent-insensitive. With a Google Maps key configured, type an address and results rank by distance from that point. Personal territory pages now show the attribution kind, and publishers are automatically flagged inactive after six consecutive missed reports.
2026-05-17
Time zones, template hours, date filtering
Congregation-aware time zones, configurable meeting hours per template, and a date filter on the programmes list.
2026-05-16
Programme PDF and statistics polish
Improvements to the programme PDF export and a consistency pass across the territory statistics page.
2026-05-14
Display board group rosters
Dynamic group rosters on the display board now include group leaders and render last names in uppercase for readability.
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.