Repository navigation
v0.6.0
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_detailview 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-XXXproject numbering rule written down after an audit found 63 skipped numbers (P-047)- Deps:
pypdf6.18.1,ruff0.16.7 (dev).pip-audit: 0 known vulnerabilities
Full detail: docs/CHANGELOG.md