v5.9.3 24 February 2026 Improvement

API Documentation Complete & Docs Site Rendering Fixes

API Documentation Guides — Full Coverage

Completed the remaining four guide pages for docs.speybooks.com, bringing the static documentation to 23 pages covering the entire API surface.

  • Invoices & Quotes — full invoice lifecycle state machine, quote-to-invoice conversion, payment recording, PDF generation, and email delivery. Covers both vatTreatment enums (transaction lines vs categorisation endpoint).
  • Contacts & Directors — contact types with inclusive filtering, metadata merge semantics, safe deletion behaviour, director shareholding, connected persons for S455 aggregation, and the resign workflow.
  • Transactions & Journals — the absolute balance constraint, VAT annotation system (tax reporting metadata, not balancing lines), draft/posted lifecycle, bank import categorisation, and the account ledger.
  • Opening Balances — the OBCE 5-tier mapping strategy, balance proof with rounding injection, clearing mode for outstanding document imports, the singleton constraint, and the triple confirmation gate.

All guides validated against source code and cross-referenced with endpoint schemas.

Docs Site Rendering Fixes

Resolved two visual flicker issues on the documentation site.

  • Light mode FOUC eliminated — moved theme initialisation from the external enhance.js into an inline <head> script that runs before CSS parse. The browser now applies the correct colour palette on the first frame. Also respects OS prefers-color-scheme for new visitors who have not toggled manually.
  • Sidebar jitter eliminated — added @font-face declarations with font-display: block for Inter and JetBrains Mono, matching the self-hosted font filenames. Added <link rel="preload"> directives in the layout <head> so fonts download at the same priority as CSS. Added overflow-y: scroll on html to prevent horizontal layout shift between pages of different lengths, and reserved min-height on the search container to prevent sidebar links jumping during initialisation.