Skip to content

v0.6.0

Choose a tag to compare

@dholbach dholbach released this 12 Sep 22:51
· 312 commits to main since this release
b5811f2

Minor release — the command palette replaces the nav bar as the primary way around the app.

Highlights

Command palette (⌘K) — ⌘K / Ctrl+K / /, or the header 🔍 button, opens a filterable palette combining search (clients, open inquiries, invoices, with c:/i: prefixes), 21 jump-to destinations and 8 quick-create actions. The nav bar is now four links — Übersicht, Klienten, Rechnungen, Focus Queue — with the Invoices/Finances/Admin dropdowns folded into the palette. global-search.js is retired. (P-047, #420)

Search matched every row for any multi-word or hyphenated query. SearchRank(...) > 0 was used as the match predicate in three places and isn't one: ts_rank returns exactly 0.0 only for a single-lexeme miss, while any multi-lexeme miss scores 1e-20. Two words trigger it — and so does anything Postgres splits on a hyphen, which means every invoice number. (#423)

Revenue report opened on an empty page unless you picked a year from the dropdown every time. It now defaults to the current year, falling back to the most recent year with paid invoices. (#421, #425)

Privacy mode is now enforced in both directions. Five templates were still rendering client data in the clear — including every client's full name in each <option> of the calendar-import select, the one place a CSS blur could never have worked. A new guardrail test ratchets both under-blur and over-blur, the latter having previously hidden form labels and client codes that are themselves the privacy-safe representation. (#424, #426, #428)

Quick-add forms return to the page they were started from, year and filter intact — adding a tax prepayment from the quarterly overview, a tag from a client's tag picker, or a task from the Focus Queue. (#431)

Also in this release

  • Dead bank_transaction_detail view removed — it rendered a template that never existed, so the routed URL had been a 500 since v0.1.0; nothing linked to it (#429)
  • Focus-queue tests failed for two hours every night, comparing a Berlin date against a UTC one (#430)
  • Header controls moved up to the title row, freeing the nav row's full width (#427)
  • Practice logo/signature decode cached across PDF renders (#419)
  • CI discovers JS test suites by glob instead of a hand-maintained list (#420)
  • P-XXX project numbering rule written down after an audit found 63 skipped numbers (P-047)
  • Deps: pypdf 6.18.1, ruff 0.16.7 (dev). pip-audit: 0 known vulnerabilities

Full detail: docs/CHANGELOG.md