Skip to content

BUS Core v1.3.0

Choose a tag to compare

@truegoodcraft truegoodcraft released this 18 Jun 20:26
Immutable release. Only release title and notes can be modified.
24d3e73

BUS Core v1.3.0 Release Notes

Date: 2026-06-18
Tag: v1.3.0

Summary

BUS Core 1.3.0 combines the local Invoice Truth MVP with selectable UI theme variants. This release keeps Core local-first: invoices, invoice lines, printable invoice HTML, and theme preference all stay inside the local app experience without adding cloud billing, payment processing, telemetry, CDN assets, or backend theme configuration.

What's New

Invoice Truth MVP

  • Added Core-owned invoice tables and services for local invoice headers, lines, statuses, totals, and invoice numbers.
  • Added canonical invoice API routes under /app/invoices for listing, creating drafts, editing draft headers and lines, issuing, marking paid, voiding, reading detail, and printing.
  • Added a dedicated #/invoices UI with invoice list/detail editing, draft line controls, tax handling, totals, status badges, issue/paid/void actions, and print access.
  • Added job-to-invoice flow so a job can create a local draft invoice and open it in the invoice editor.
  • Added printable invoice HTML at /app/invoices/{invoice_id}/print for browser print or save-to-PDF workflows.
  • Added invoice read/write permissions and route guard coverage for claimed mode.

UI Theme Variants

  • Added a UI-only theme manager using localStorage["bus.ui.themeVariant"].
  • Reused the existing Settings theme dropdown as the single selector.
  • Added four visual variants:
    • BUS Core Default / Forge Dark
    • Clean Light
    • Workshop Slate
    • High Contrast
  • Applied themes through data-bus-theme and CSS variables so visual authority stays in CSS.
  • Preserved backward compatibility for legacy values: dark, system, current, and default map to Forge Dark; light maps to Clean Light.

Release Hygiene

  • Bumped public VERSION to 1.3.0; INTERNAL_VERSION is 1.3.0.1 after the browser cache-busting release fix.
  • Updated package metadata, Windows version metadata, SOT, API/UI contract docs, README, Home latest-update copy, changelog, and release notes.
  • Removed accidentally tracked local GitHub CLI tooling from .tools/ and ignored .tools/ going forward.
  • Added the Invoices sidebar icon mapping and icon asset.
  • Added browser cache-busting for the native launcher, root/UI redirects, shell CSS/JS asset URLs, and /ui/* response headers so users do not need to manually hard reload after updating.

Boundaries

  • Invoice lines are billing records only and do not mutate inventory.
  • Marking an invoice paid records one local invoice-linked sale CashEvent.
  • This release does not add email sending, payment links, customer portals, accounting sync, recurring billing, reminders, or Pro automation.
  • Theme state is browser presentation state only and is not backend config, auth, business, inventory, finance, or release-update authority.

Upgrade Notes

  • Release tag should be v1.3.0 to match the strict SemVer authority in core/version.py.
  • Startup schema materialization remains code-driven and additive; no separate migration runner is introduced.
  • Existing local data remains in the operator's BUS Core AppData-backed SQLite database.

Manual Test Checklist

  • Start BUS Core and verify the Home card reports the 1.3.0 release update.
  • Start BUS Core from the native launcher and confirm the opened URL includes ?v=buscore-1.3.0.
  • Reload /ui/shell.html normally and confirm the browser requests current app.css?v=buscore-1.3.0 and app.js?v=buscore-1.3.0.
  • Open Settings and confirm the existing theme dropdown contains Forge Dark, Clean Light, Workshop Slate, and High Contrast.
  • Change the theme, reload the app, and confirm the selected theme persists.
  • Open #/invoices, create a draft invoice, add/edit/delete a line, issue it, print it, mark it paid, and confirm void rules still behave as expected.
  • From a job detail screen, create a draft invoice and verify it opens in the invoice editor.
  • Confirm finance transaction visibility includes invoice-linked paid invoices.
  • Confirm inventory quantities do not change when invoice lines are created or edited.
  • Confirm claimed-mode users without invoice permission cannot use invoice read/write routes.

Known Limitations

  • Invoice print is browser-rendered HTML; Core still does not generate a server-side PDF.
  • Invoice sending, online payments, customer portals, accounting sync, recurring billing, and reminders remain outside Core.
  • Theme variants are a reversible UI spike and are intentionally local browser state.