Skip to content

v0.1.6 — Accessible personal workflows, shared configuration and native mail replies

Choose a tag to compare

@FloKnapp FloKnapp released this 12 Oct 20:30
· 11 commits to main since this release
a5353ca

Nafinity now makes personal ticket work easier to find and operate. Save up to 20 named filter views per person and project, share ordinary authorized filter links, and open My tickets for current assignments across readable projects with status/sort choices and pagination. Workspace search groups matching projects and tickets, and linked-ticket search supports descriptive relationships with their inverses.

Board cards have clearer label contrast, larger action targets and readable screen-reader metadata for priorities, statuses, due dates and full assignee names. Keyboard navigation includes a skip link, labelled choice lists and focus restoration. Ticket creation, inline editing and discussion share the same drawer/page components, preserve unsaved drafts and allow personal sidebar visibility. Settings dialogs share stacked navigation, cancellation guards and reduced-motion behavior.

Notifications retain all-project changes by default. An optional relevance mode limits them to created, assigned, newly mentioned and personally followed tickets. Readers can follow tickets without editing them. Queued email checks current involvement, membership, notification preferences and project muting before delivery. Pre-upgrade in-app notifications have no relevance classification and remain available in all-changes mode.

Project invitations use expiring, one-use links so recipients choose their own credentials. Account administration adds bounded searchable tables, authorized lazy editors, transactional global-role updates and one-use local password recovery. Project management includes owner-confirmed deletion. Bulk properties are explicitly registered domain operations, preserving authorization and all-or-nothing transactions.

Administrators can manage shared branding and landing-page identity, publish custom interface themes and design outgoing email with isolated previews. Native email views share branding, CSS inlining and text alternatives. Installation overrides retain typed validation, source information, stale-write protection and encrypted private-file storage. Theme and preview handling includes Firefox-compatible isolated documents and the bundled symbols used by the interface.

Settled time now has a per-person journal, with personal PDF/CSV/text/JSON reports and invoice-position exports. Built-in adapters prepare invoice drafts for Lexware Office, sevdesk, easybill and FastBill using encrypted accounts, immutable previews and durable booking claims. Ambiguous external results require reconciliation instead of automatic resubmission; no adapter finalizes or sends an invoice. Existing export writers remain ticket-only by default and can opt into additional sources through the exporter registry.

Native Mail-to-Ticket polls a configured IMAP mailbox and appends authorized replies to existing tickets. A random public reference and the current requester address must match. Imports are deduplicated, and flags change only after the comment commits. Malformed or spoof-conflicting messages are skipped without blocking subsequent replies. SMTP and IMAP share host mail configuration; incoming mail does not create new tickets and does not import attachments.

An optional, separately installable Composer example demonstrates enforced column WIP limits through native settings and transactional change listeners. Refused admissions roll back ticket, audit, notification and queue changes. The core continues to use advisory WIP limits unless the example plugin is installed.

Upgrade

Back up the database and private storage, update Composer dependencies, run db:migrate up and rbac:sync, publish assets with nafinity:assets:publish, and restart long-running workers/services. The release requires PHP 8.3 or newer with sodium, naf/framework 0.2.10 or newer and naf/mail 0.2.3 or newer. Keep the private configuration files and their encryption key together in backups. Direct invoice drafts need a separate host export encryption key; IMAP remains disabled unless configured.

Apply the new migrations before serving the updated code. Existing ticket links remain symmetric relates to links. The time journal starts at migration; historical ticket totals and manual totals are not backfilled. Existing explicit theme choices are preserved.

Validation passed for the exact tagged merge commit on PHP 8.3 and 8.5 with MariaDB 11.4 and MySQL 8.4, including the IMAP integration suite, strict Composer validation and formatting checks. The package has 816 PHP tests and 146 browser-module tests. Browser acceptance covered personal-view persistence, pagination, subscription/preferences, accessibility-tree labels and layouts down to 320 CSS pixels. External invoice-provider accounts were not contacted by automated tests.