Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 01:47
· 7 commits to main since this release

[1.2.0] - 2026-08-12

Added

  • 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).
  • Fetch-all list paths (client filters/sort, mailbox tree, problems-only, CSV export): warn above 2 000 matching rows and refuse above 10 000.
  • 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.