Refresh the README for 1.0.2: setup wizard, install steps, Windows status
Windows build / build (push) Canceled after 0s

This commit is contained in:
2026-10-05 12:07:36 +05:30
parent 7e060545e1
commit 49f587842d
+29 -5
View File
@@ -8,8 +8,15 @@ connection. The only optional network feature is the ERPNext push, which you con
Targets: Void Linux (xbps, WebKitGTK 2.50 or newer) and Windows 10/11 (NSIS installer, WebView2). Targets: Void Linux (xbps, WebKitGTK 2.50 or newer) and Windows 10/11 (NSIS installer, WebView2).
Current release: **1.0.2**. Installers and the Void package are attached to the release on the project's Gitea
page (see "Installing").
## Features ## Features
- **First-run setup.** A four-step wizard (business, branding, bank, numbering) starts blank: no vendor, bank or tax
details are pre-filled, and a business name and state are required. **Settings, Data, Run setup again** reopens it
with your current details; invoices, clients and backups are kept, and numbering carries on unless you change the
series prefix or digits.
- **Invoices.** Automatic numbering in a persistent series (for example `INV/2026-001`) with a one-click new series, - **Invoices.** Automatic numbering in a persistent series (for example `INV/2026-001`) with a one-click new series,
drafts, issue and cancel. An issued invoice is immutable: it stores a snapshot of the vendor, client, GST figures drafts, issue and cancel. An issued invoice is immutable: it stores a snapshot of the vendor, client, GST figures
and layout. Line items are a fixed amount or rate x quantity (per second, minute, hour, session or unit), with and layout. Line items are a fixed amount or rate x quantity (per second, minute, hour, session or unit), with
@@ -67,13 +74,27 @@ npm run app:dev # tauri dev, served from localhost:1420 (does not exercis
| `npm test` | `vitest run`, about 7 minutes; run on a quiet machine because load starves the sweep tests | | `npm test` | `vitest run`, about 7 minutes; run on a quiet machine because load starves the sweep tests |
| `npm run fonts:verify` | Checks the bundled fonts against `public/fonts/manifest.json` (`fonts:manifest` regenerates it) | | `npm run fonts:verify` | Checks the bundled fonts against `public/fonts/manifest.json` (`fonts:manifest` regenerates it) |
| `npm run logo:measure` | Regenerates `src/pdf/templates/slots.generated.ts` from the Canva PDFs; must be idempotent | | `npm run logo:measure` | Regenerates `src/pdf/templates/slots.generated.ts` from the Canva PDFs; must be idempotent |
| `npm run thumbnails` | Regenerates `public/templates/*.png` | | `npm run thumbnails` | Regenerates `public/templates/*.png` from the synthetic sample invoice (neutral vendor and bank, generated wordmark) |
| `node scripts/logo/make-sample-logo.mjs` | Regenerates the synthetic sample logo in `src/pdf/testing/fixtures/` |
| `npm run templates:compare` | Canva vs Voiced side-by-side PNGs under `/tmp` | | `npm run templates:compare` | Canva vs Voiced side-by-side PNGs under `/tmp` |
| `cargo test --manifest-path src-tauri/Cargo.toml` | Rust unit tests | | `cargo test --manifest-path src-tauri/Cargo.toml` | Rust unit tests |
| `npm run app:build` | Production build for the current platform (custom-protocol) | | `npm run app:build` | Production build for the current platform (custom-protocol) |
The release procedure, including the manual first-run checklist, is in `docs/RELEASE.md`. The release procedure, including the manual first-run checklist, is in `docs/RELEASE.md`.
## Installing
Download the files for your platform from the release page of the project on `git.bongbetic.com` (Releases, then
`v1.0.2`).
- **Windows 10/11:** run `Voiced_1.0.2_x64-setup.exe`. It is a per-user install and is not code-signed, so Windows
SmartScreen may warn: choose "More info", then "Run anyway".
- **Void Linux:** install `voiced-1.0.2_1.x86_64.xbps` from a local repository (see "Installing on Void Linux").
On first launch the setup wizard asks for your business details, logo, bank account and invoice numbering. Nothing is
pre-filled. Uninstalling does not delete your data (see "Where data lives"); to start from scratch use
Settings, Data, Run setup again, or remove the data directory after taking a backup.
## Where data lives ## Where data lives
The Tauri identifier is `com.bongbetic.voiced`. Voiced uses two directories, which differ only on Windows: The Tauri identifier is `com.bongbetic.voiced`. Voiced uses two directories, which differ only on Windows:
@@ -184,7 +205,8 @@ Hosts without an `nsis` package (for example Void Linux):
# from https://github.com/tauri-apps/nsis-tauri-utils/releases # from https://github.com/tauri-apps/nsis-tauri-utils/releases
``` ```
The installer has not been run on a real Windows machine. The installer has been installed and run once in a Windows 11 virtual machine; it has not been tried on physical
hardware.
## Installing on Void Linux ## Installing on Void Linux
@@ -241,6 +263,7 @@ src/ React + Carbon frontend
fonts/ Font registration, roles, glyph priming fonts/ Font registration, roles, glyph priming
render/ renderCore, Web Worker, latest-wins client render/ renderCore, Web Worker, latest-wins client
flatten.ts assemble.ts Rasterise at 300 DPI and rebuild an image-only PDF flatten.ts assemble.ts Rasterise at 300 DPI and rebuild an image-only PDF
testing/ Goldens (layout fingerprints), self-test fixtures, synthetic sample logo
src-tauri/src/ Rust backend src-tauri/src/ Rust backend
db.rs Schema as numbered migrations (copies the DB aside before migrating) db.rs Schema as numbered migrations (copies the DB aside before migrating)
gst.rs Integer-paise money and GST maths gst.rs Integer-paise money and GST maths
@@ -250,7 +273,7 @@ src-tauri/src/ Rust backend
integrations/erpnext/ ERPNext client, mapping, discovery, push integrations/erpnext/ ERPNext client, mapping, discovery, push
selftest.rs Unattended real-webview self-test selftest.rs Unattended real-webview self-test
public/fonts/ Bundled TTF families, OFL texts, manifest.json (plus legacy IBM Plex web fonts) public/fonts/ Bundled TTF families, OFL texts, manifest.json (plus legacy IBM Plex web fonts)
public/templates/ Template thumbnails public/templates/ Template thumbnails (rendered from synthetic sample data)
docs/ Template specs, voiced.invoice.v1, release checklist docs/ Template specs, voiced.invoice.v1, release checklist
scripts/ Font, logo, template, thumbnail and ERPNext end-to-end tooling scripts/ Font, logo, template, thumbnail and ERPNext end-to-end tooling
packaging/void/ xbps-src template, build-xbps.sh, desktop entry, INSTALL and REMOVE scripts packaging/void/ xbps-src template, build-xbps.sh, desktop entry, INSTALL and REMOVE scripts
@@ -272,9 +295,10 @@ Settings, Diagnostics.
## Known limitations ## Known limitations
- Windows and WebView2 have never been run on a real machine; the NSIS installer is cross-compiled only. - Windows and WebView2 have only been exercised in a Windows 11 virtual machine, not on physical hardware; the NSIS
installer is cross-compiled and unsigned.
- The 13 Canva-derived templates are re-creations of Canva designs. Canva's content licence may restrict this, so - The 13 Canva-derived templates are re-creations of Canva designs. Canva's content licence may restrict this, so
ship them only in this vendor's build until it is confirmed. distribute them only to the intended customer until it is confirmed.
- The SAC code for the vendor's services and the signature rule still need confirmation from a chartered accountant. - The SAC code for the vendor's services and the signature rule still need confirmation from a chartered accountant.
- Now, Gotham and Open Sauce One are replaced by free look-alikes unless you import licensed files. - Now, Gotham and Open Sauce One are replaced by free look-alikes unless you import licensed files.
- ERPNext: only v15 is verified; HTTP is allowed only for local hosts; see "Not covered" above. - ERPNext: only v15 is verified; HTTP is allowed only for local hosts; see "Not covered" above.