You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expand-to-fit control on long textarea form fields so admins can grow the editor to content without leaving the form.
Syntax-highlighted, foldable editor for Sieve script fields (form detail views).
Active column on System and User Sieve script lists (isActive), matching the per-account Sieve list behaviour.
Coloured progress bar for Usage/Quota columns on Accounts and Groups (percent used; unlimited still shows ∞).
CSV export on admin panel lists (same columns and formatting as the table).
Bulk “Change quota…” action on Accounts and Groups lists (bulk-quota-change-action in SCHEMA_DEVIATIONS.md).
Getting Started checklist page (domain, DKIM, TLS certificate, admin account) under Management (onboarding-checklist-nav-entry).
Getting Started hides from the sidebar once every required checkable step is done.
Richer list empty state: icon plus Create CTA when the list has no rows (and Create is allowed).
Header icons on the Appearance and Changelog pages.
Overview page (sidebar, under Getting Started when shown): Community-friendly inventory of directory objects, mail readiness, access & apps, and report counts via JMAP totals — distinct from the Enterprise live-metrics Dashboard (community-overview-nav-entry in SCHEMA_DEVIATIONS.md).
Overview attention badges: queue backlog, certificates expired/expiring soon (30 days), and sampled DMARC/TLS/ARF rows with quarantine/reject/failed/incidents.
Getting Started v2: optional DMARC-reports check, SPF/DMARC docs, and schema-resolved deep links to spam settings / listeners.
Generic prompted mass-action dialog (PromptSetPropertyDialog); bulk quota change is a thin consumer of it.
Log Entries: named filter presets (localStorage) and optional auto-refresh every 10s (respects refresh cooldown).
DMARC/TLS/ARF lists: "Problems only" toggle to show reports with quarantine/reject, failed sessions, or incidents (report-problems-only-filter).
Community/OSS home: land on Overview when the Enterprise Dashboard is locked or hidden; Enterprise upsell offers “Open Overview”.
List text filters show “Exact match only”; empty state distinguishes “no filter matches” (with Reset) from a truly empty list (Create).
Dev server restarts automatically when .env.development.local changes (e.g. after regenerating a token).
Command palette: CustomComponent pages (Overview, Getting Started, …) and Appearance/Changelog are searchable; fork pages get keywords (queue, dkim, theme, …).
Dev: Vite proxies OAuth /login?..., /auth, and /logo to the local Stalwart server so interactive /login works without VITE_ACCESS_TOKEN.
Queued messages list: empty and backlog guidance with links to Delivery Trace and Log Entries when those views are accessible.
List accessibility: column scope/aria-sort, labeled sort controls, filter label association + focus on open, keyboard-activatable rows, row-actions label, and visible Enterprise field hints.
Appearance: list density (Comfortable / Compact) persisted with other UI prefs and applied to admin list tables.
Upstream sync playbook (docs/UPSTREAM_SYNC.md) for merging stalwartlabs/webui while revalidating SCHEMA_DEVIATIONS.md.
README: Community vs Enterprise matrix; screenshots for Overview, Getting Started, queue backlog, Log Entries, Problems only (TLS), command palette, Changelog, and Appearance list density.
Changed
Dependency updates (excluding TypeScript 6.x).
Object-list combobox cache: invalidate only related types after create/update/destroy instead of wiping every list on each view change.
Move remaining fork UI strings (empty main content, unknown view/component, empty dashboard) into en.json.