Product updates

Faida changelog.

Desktop release notes for new product capabilities, workflow improvements, bug fixes, and release engineering changes.

26 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.31

Changed

  • Updates the desktop prerelease version to 0.0.31.
  • Creates a fresh installer and updater metadata version after the previous GitHub Actions startup failures.
  • Keeps the current desktop app changes from the pending prerelease builds.

Tests

  • Ran desktop typecheck before release.

26 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.30

Changed

  • Updates the desktop prerelease version to 0.0.30.
  • Keeps the current packaged app changes on a fresh installer version so downloads and updater metadata do not reuse stale 0.0.29 artifact names.

Tests

  • Ran desktop typecheck before release.

26 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.29

Fixed

  • Restores the desktop release workflow to the Blacksmith runner labels used by the last successful release.
  • Rebuilds the desktop prerelease with the sales-order filter toolbar included in the packaged app.
  • Uses a fresh desktop version so users receive new installer and updater artifact names instead of any stale cached files.

Tests

  • Ran the production desktop build and verified the generated bundle contains the sales-order top/side filter controls, reset filter button, custom date range option, and pinned grid columns.
  • Ran the full desktop test suite.

26 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.28

Fixed

  • Rebuilds the desktop prerelease with the sales-order filter toolbar included in the packaged app.
  • Uses a fresh desktop version so users receive new installer and updater artifact names instead of any stale cached 0.0.27 files.

Tests

  • Verified the production desktop build contains the sales-order top/side filter controls, reset filter button, custom date range option, and pinned grid columns.

26 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.27

Added

  • Rolls forward the in-app Changelog dialog so release history is available from Settings.
  • Rolls forward the richer invoice and sales-order filters added for date ranges, payment status, fulfillment/inventory status, source, location, sales rep, terms, and balance.

Changed

  • Rolls forward the GitHub Actions startup fixes that keep release/CI jobs on GitHub-owned actions and standard runner labels.
  • Rebuilds the desktop prerelease after validating that the macOS 0.0.25 DMG checksum, Developer ID signature, and stapled notarization ticket are valid.

Fixed

  • Rolls forward the document payment improvements for pasted amounts, focus behavior, shorter balance labels, and failed-recording errors.
  • Rolls forward the sales-order payment fix that can create and attach a missing invoice when recording a customer payment against an eligible uninvoiced sales order.
  • Rolls forward readable unit-code display for saved sales and purchase document lines.

Tests

  • Ran desktop typecheck and the full desktop test suite before release.
  • Verified the existing macOS prerelease DMG with hdiutil, codesign, and stapler; the local "damaged" dialog was caused by macOS syspolicyd returning "Too many open files", not a corrupted DMG.

26 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.26

Added

  • Added an in-app Changelog dialog under Settings so users can review desktop release history from packaged release notes.
  • Added parser coverage for changelog release-note ordering, dates, sections, and inline code formatting.
  • Added richer invoice and sales-order filtering, including date shortcuts, payment status, fulfillment/inventory status, source, location, sales rep, terms, and balance filters.

Changed

  • Release and CI Linux/Windows jobs now use GitHub-hosted runners while macOS release builds stay on the self-hosted macOS runner.
  • Release and CI workflows now avoid third-party setup/release actions so repository action policies cannot block startup before jobs are created.
  • Sales order filters can now be shown as top filters or side filters, with configurable visible filter controls.
  • Sales and purchase document lines now show readable unit codes when saved data contains company-scoped unit ids.
  • Document payment popovers now clean pasted amounts, select the amount on focus, use shorter balance labels, and show a clear error if recording fails.

Fixed

  • Recording a customer payment against an eligible uninvoiced sales order can now create and attach the missing invoice automatically.
  • POS receipt sales orders are no longer eligible for generated invoices from the customer payment flow.
  • Data grid selection now uses stable row identity so selections survive filtering and sorting more reliably.

Tests

  • Added document-line unit formatting tests.
  • Added changelog parsing and sorting tests.

25 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.25

Changed

  • Updated Electron Builder to 26.15.3 for the desktop release pipeline.
  • Pinned app-builder-lib to 26.15.3 so macOS and Windows packaging use the same builder library version.
  • Refreshed the prerelease macOS and Windows installers with the updated packaging toolchain.

Tests

  • Ran desktop typecheck and the full desktop test suite before release.

24 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.24

Changed

  • Rebuilt the current prerelease desktop app with the latest release pipeline.
  • Refreshed the downloadable macOS and Windows installers on the prerelease channel.

Tests

  • Ran desktop typecheck before release.

24 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.23

Fixed

  • Payment recording now reads the latest workspace data when applying customer and supplier payments, avoiding stale balances after recent document changes.
  • Batch supplier payments now allocate against the latest purchase order and payment number state.
  • Document payment popovers now disable inputs while recording and show a visible Recording spinner.

Tests

  • Ran desktop typecheck and the full desktop test suite.

24 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.22

Fixed

  • Update installation can now continue when an update is already downloaded even if a later native updater warning leaves the visible state as an error.
  • The update notice now treats a known downloaded version as install-ready instead of incorrectly saying the update is not ready.

Tests

  • Added update-controller coverage for installing a downloaded update after a stale native updater error.

24 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.21

Added

  • Added a native Flutter Faida POS mobile client with pairing, local sign-in, restaurant POS, table, kitchen, and settings screens.
  • Added a desktop local command endpoint so paired LAN clients can open restaurant orders, save order lines, send items to kitchen, settle orders, manage table state, and cancel or close orders through the desktop host.
  • Added QR pairing payload support on the desktop local server screen for pairing the mobile POS app.
  • Added mobile CI coverage for Flutter dependency install, formatting, analysis, and tests.

Fixed

  • Local server table snapshots now include restaurant areas, tables, table states, orders, and kitchen items for paired clients.
  • Local command execution is serialized on the desktop host so paired client writes are applied in order.

Tests

  • Added desktop local server coverage for pairing, local auth command rejection, command forwarding, invalid command payloads, and serialized command execution.
  • Added Flutter model, connection-store, and pairing-screen tests for the mobile POS client.

22 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.20

Added

  • Sync upload acknowledgements can now include record aliases so desktop clients rewrite local queued mutations and cached records to the server canonical ids.
  • Standard imports now stamp stable source identities for products, customers, suppliers, sales orders, purchase orders, and opening-stock movements.
  • Product records can now be edited from the product list or product detail screen with the same product form, including image management.

Fixed

  • Re-importing the same standard import data no longer creates duplicate synced records when source or natural identities match.
  • Server sync now deduplicates product, party, order, and opening-stock uploads per company and rejects conflicting identity matches.
  • Purchase returns now clamp return quantities to available stock and only show received stock that can actually be returned.

Tests

  • Added desktop coverage for sync alias rewriting, standard import source identities, sync queue alias acknowledgements, and purchase return eligibility.
  • Added server upload coverage for sync identity deduplication, alias responses, company isolation, and identity conflict rejection.

21 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.19

Fixed

  • macOS update installs now use the native Electron updater restart flow.
  • Windows and Linux update installs continue to use silent install flags.
  • The update notice now starts installation directly after an update is downloaded instead of showing a second confirmation dialog.
  • The update notice now shows a clear error when installation is requested before an update is ready.

Tests

  • Added update-controller coverage for macOS and Windows/Linux install behavior.
  • Ran focused desktop update tests and desktop typecheck.

21 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.18

Improved

  • macOS desktop release builds now target self-hosted macOS runners.
  • macOS signing continues to use an explicit temporary keychain for CI-safe certificate storage.
  • Self-hosted macOS signing now imports Apple's Developer ID certificate chain without interactive trust prompts.
  • macOS notarization now passes team API keys directly to Electron Builder to avoid locked notary keychains on self-hosted runners.

Tests

  • Ran the bundled desktop release workflow to verify the self-hosted macOS runner path.

21 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.17

Added

  • User management actions for changing a user's local password from the Users page.
  • User management actions for setting, changing, or clearing a user's 4-digit local PIN.
  • Temporary password setup for other users with an option to require a password change after sign-in.
  • Row action menu entries for local credential management in the Users grid.

Improved

  • New user invites now enforce exactly 4 digits for optional local PINs.
  • Backup restore completion messages now include restored sales order and purchase order counts.
  • Large local snapshots now clear all live collections instead of only clearing collections whose source tables are empty.
  • Workspace snapshots are written after uploaded mutations are committed, keeping local restart state aligned after sync.
  • Desktop release workflows continue on Blacksmith macOS runners after the workflow migration.

Fixed

  • Large datasets no longer leave stale live collection rows behind when the app switches out of live collection mode.
  • Backup restore notifications now summarize restored business documents instead of focusing only on queued changes and files.
  • Local credential dialogs now enforce password confirmation and PIN length before saving.

Tests

  • Reused the desktop app test suite, typecheck, and production build coverage for the credential and live collection changes.
  • Reused the public changelog and route tests for the new bundled release notes.

21 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.16

Added

  • Local password reset from the desktop sign-in screen and local client sessions.
  • Cloud-backed local password reset emails that send a generated temporary password to the licensed desktop owner.
  • Local server password-reset forwarding through Electron IPC so LAN clients can request a reset from the host desktop.
  • Username or email sign-in now supports PIN entry as well as password entry.
  • Manual update check control in the status bar for idle, up-to-date, checking, and retry-check states.
  • Horizontally scrollable desktop tab bar with mouse-wheel support and left/right edge controls.

Improved

  • Local auth now reconciles restored users by email so existing password and PIN credentials survive a restored workspace user id.
  • Temporary local passwords now require the user to change the password after sign-in.
  • Local auth reset requests refresh local auth status after success or failure.
  • Update status actions now stay in the right status cluster with clearer labels and tooltips.
  • The public download page now shows release dates as friendly labels instead of raw timestamps.

Fixed

  • Restored local users with the same email no longer lose their existing local password or PIN credential.
  • Locked local sign-in accounts now keep the reset password action available without showing a disabled sign-in button.
  • Local client password reset requests now return clear errors when cloud sync is not connected or the target user is not eligible.
  • Update check errors now surface as retryable manual checks instead of disappearing into a non-actionable state.

Tests

  • Added local auth tests for restored-user credential migration and forced temporary password changes.
  • Added update notice tests for manual check labels, titles, and disabled states.
  • Added server API coverage for sending local temporary password reset emails with sync credentials.
  • Updated download route tests for friendly release date labels.

21 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.15

Added

  • FDZ offline backup archives with manifests, dataset snapshots, pending mutations, document attachments, and product image files.
  • Backup folder preferences plus backup create, list, restore, reveal, and delete actions in the desktop app.
  • Product image management with local import, primary/gallery roles, thumbnails, local desktop image serving, and backup/restore support.
  • Product detail pages with product images, BOM components, supplier records, stock movement history, and sales/purchase order history.
  • Product image media upload and download endpoints for cloud sync, including sync-token access and endpoint discovery.
  • Product image and product BOM component tables in desktop/server schemas and sync streams.
  • Purchase order payment controls and supplier payment allocation across selected outstanding purchase orders.
  • Purchase order return, receiving, payment, and fulfillment action helpers with focused tests.

Improved

  • Cloud sync uploads product image files before syncing product image metadata.
  • Supplier payments now use configured payment methods and can allocate one payment amount across multiple open purchase orders.
  • Purchase order forms and lists now show payment, receiving, return, and fulfillment status more consistently.
  • Purchase returns use landed unit cost allocation so non-vendor costs can be reflected in returned stock costs.
  • Backup and product screens have clearer action loading, route handling, and empty states.
  • Data snapshots, live collections, local SQLite, and cloud backfill now include product images and BOM components.

Fixed

  • Product media access is scoped by company on sync media downloads.
  • Cancelled purchase orders no longer accept payment, receiving, or return actions.
  • Legacy JSON backups are not shown as valid FDZ backup archives.
  • Product image sync retries remain ordered so metadata is not uploaded before local media succeeds.
  • Purchase order balances and return eligibility handle paid, cancelled, received, service, and non-stocked lines consistently.

Tests

  • Added FDZ backup creation and restore coverage for attachments, product images, and paged pending mutations.
  • Added sync queue coverage for uploading product media before metadata mutations.
  • Added domain tests for product images, BOM normalization, and landed unit cost calculation.
  • Added server API tests for sync product image upload.
  • Added purchase order action tests for payment, receiving, return, and fulfillment states.

20 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.14

Added

  • Customer reports page with account statement, sales volume, outstanding balances, payment history, and invoice history views.
  • Customer report PDF export with a preview step before saving.
  • Reusable report PDF rendering utilities for branded landscape reports.
  • Customer account summary metrics for total sales, payments received, outstanding balance, open invoice balance, and document count.
  • Tests for sales order route shortcuts and customer report row/account summary logic.

Improved

  • Customer statements now share the richer customer report workflow while keeping the dedicated statement entry point.
  • Customer reports and statements now support report type, customer, search, minimum amount, and date range controls.
  • Aging reports now include total and paid columns in both the grid and CSV export.
  • Sales order list shortcuts now preserve the selected view in the URL for unfulfilled, unpaid, uninvoiced, and recent order views.

Fixed

  • Customer reports now open a real reporting surface instead of the generic placeholder page.
  • Sales order sidebar/report shortcuts no longer collapse every filtered order view back to the all-orders route.
  • PDF report export normalizes branded logo data before rendering so saved reports handle stored logo formats more reliably.

Tests

  • Added route map coverage for sales order filtered views.
  • Added customer report tests for payment, outstanding balance, and fallback payment summary behavior.

20 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.13

Added

  • Public changelog support for the Faida website, backed by bundled markdown release notes.
  • Configurable list filters with saved visibility preferences scoped by runtime, company, user, and connected client.
  • Payment status, balance, date range, party, location, stock, source document, and status filters across sales, purchasing, finance, inventory, audit, customer, supplier, product, location, and category lists.
  • Shared status badges for document, stock, and master-data list rows.
  • Standard import logic as a reusable tested module outside the main desktop store.
  • Sales order and invoice list double-click handling for opening row actions directly from the grid.

Improved

  • List toolbars now combine search, visible row counts, optional filter controls, and a filter chooser in a consistent layout.
  • Import previews now describe existing rows as compare/update candidates instead of unconditional overwrites.
  • Standard imports now report created, updated, and unchanged record counts in the import progress panel.
  • Product, customer, supplier, sales order, purchase order, invoice, stock movement, audit, location, sublocation, and category lists now use the same filter toolbar pattern.
  • Invoice list actions now support opening the source sales order from the row actions menu.
  • Data grid rows can provide a custom double-click action while preserving cell editing behavior.

Fixed

  • Existing imported records that have matching business values stay unchanged instead of always queuing updates.
  • Sales and purchase order imports can match existing records by order number, including case-insensitive matches.
  • Filter preferences ignore stale filter ids and fall back safely when browser storage is unavailable.
  • Payment and balance filters treat cancelled, void, paid, open, and partial documents consistently.
  • Import row tooltips remain available without the shared tooltip wrapper around every virtualized row.

Tests

  • Added focused coverage for standard import created, updated, and unchanged accounting.
  • Added list filter preference tests for storage scoping, stale ids, and defensive fallbacks.
  • Added document balance and payment-status filter tests.
  • Expanded import/export tests for sales and purchase order natural-key matching.

20 Jun 2026

Pre-release track

Desktop

Faida Desktop 0.0.12

Added

  • In-app update checks, download progress, restart-to-install prompts, and status-bar update notices.
  • Release notes publishing for desktop builds. When a version has a matching release-notes file, the R2 release.json now includes the markdown notes and a public notes URL.
  • Document output preview before printing or saving PDFs, so invoices, orders, quotes, and other documents can be checked before sending to the OS print/save flow.
  • Persistent document tab drafts with unsaved-change protection when closing sales quote, sales order, and purchase order editor tabs.
  • Sales order payment recording from the order editor, including payment history, balance checks, configured payment methods, and payment notifications.
  • Sales order fulfillment and invoice shortcuts with checks for unsaved changes, stock availability, and order eligibility.
  • Inventory settings for allowing or blocking negative stock, used by POS, imports, and fulfillment checks.
  • Editable POS payment methods, including custom payment labels and custom payment method IDs.
  • Shared catalog selectors for customers, suppliers, products, categories, units, locations, sublocations, payment terms, tax codes, and price levels.
  • Resizable large form sheets and shared tooltip components in the desktop UI package.
  • React-call based callable dialogs for document preview and modal workflows.

Improved

  • Import workflow is now a guided choose, preview, and upload flow with clearer validation, row issue navigation, raw-data viewing, and highlighted rows/fields.
  • Import previews now handle migration fallback lines for sales and purchase orders with totals but no importable line items.
  • Opening stock and iNFLOW imports now respect the negative-stock policy and report negative quantity warnings/errors.
  • Sales order, purchase order, quote, invoice, product, POS, and settings forms now use richer searchable selectors instead of plain option lists.
  • Document PDF rendering now has more robust font handling, layout primitives, theme handling, and native IPC byte normalization for print/save.
  • POS product cards and cart behavior now use the shared inventory negative-stock setting and custom payment method labels.
  • Tabs are less likely to reopen a route after the user intentionally closes it.
  • Import and document background progress messages are clearer and use upload-oriented language.

Fixed

  • Native PDF print/save now accepts multiple byte shapes from the renderer instead of rejecting valid document bytes.
  • Closing a dirty document tab now prompts before discarding the draft.
  • Update download failures stay retryable instead of losing the available version state.
  • Import validation now blocks upload when row errors exist and reports the first actionable error message.
  • Sales order payments cannot exceed the open balance and cannot be recorded against unsaved edits.
  • Payment method settings no longer assume only the built-in fixed method list.
  • Negative stock behavior is normalized through inventory settings instead of duplicated POS-only flags.
  • DMG notarization and stapling remain verified as part of the release workflow before macOS artifacts are published.

Tests

  • Added focused tests for update state transitions.
  • Expanded import/export coverage for migration fallback lines, negative stock handling, and import warning/error behavior.
  • Expanded domain settings normalization coverage for inventory and payment method settings.

07 Jul 2026

Pre-release track

Desktop

Faida Desktop 0.0.32

Added

  • Sales orders now open inline in a master-detail layout: the search panel and an order card list stay on the left while the selected order opens on the right, with "Open in tab" still available.
  • Order editor gained an order-level stock Location selector, a selectable Sales rep (defaults to the signed-in user), an Order date / Invoiced date label toggle once an invoice exists, and a per-order History dialog (who changed the order, its invoice and its payments, and when).
  • Non-blocking insufficient-stock warning when a line quantity exceeds on-hand stock, shown regardless of the negative-stock setting.
  • Payment slips can be attached when recording a customer or supplier payment, with a paperclip indicator on each payment row.
  • Printed and PDF documents now include billing/shipping addresses, terms, sales rep and customer reference.

Changed

  • Invoices created from a sales order reuse the order number instead of a separate INV- sequence, and order lists show an "Invoiced" badge. Standalone invoices keep the INV- fallback.
  • Document numbers are generated with padding-aware sequencing so a new order can no longer collide with an imported zero-padded number (e.g. SO-31887 vs SO-031887).
  • Record ids now use crypto.randomUUID, removing collision risk during large inFlow imports.

Fixed

  • Faster stock-count, assembly and finance list rendering on large datasets via single-pass on-hand aggregation and map-based lookups; deferred search filtering on the orders list.

Tests

  • Desktop typecheck and unit tests, plus server test suite, run green before release.

Deploy

Stay current with Faida Desktop.

Download the latest desktop build for Windows or macOS and keep your shop on the newest release.