Changelog

What's new

Every improvement, fix, and new feature — documented as it ships.

v1.6.0 Latest
May 2026
New
  • Overdue Work Orders dashboard card — surfaces WOs past their due date that are still pending or in progress, sorted by due date with a per-row days-late count
  • Production Summary dashboard card — stacked horizontal bar chart + legend of active production orders by status. Tap the paintbrush icon to recolor any of the five buckets (Pending / In Progress / Awaiting Parts / QC / Other) — colors persist per-user via @AppStorage
  • Reports Hub top-level sidebar destination — 11 reports with a global HTML/CSV/PDF format picker plus per-card Print, Save, Email actions. Customer History and BOM Cost Rollup gain direct-print via an entity picker sheet
  • Print Queue promoted to top-level sidebar destination (was buried inside Production)
  • Sign Out + tier badge now in the sidebar footer
  • Settings IA split — one-tool-per-page with breadcrumbs. "Account & License" → "License & Subscription" + "Account"; "Cloud & Team" → "Cloud Sync" + "Team"; "Work Orders" → "Work Order Templates" + "Work Order Fields" + "Progress Tags"; "Labels" → "Label Templates" + "Label Designer" + "Label Library" + "Intake Labels" + "Production Labels"; "Printers" → "Printers" + "Print Server"
  • Settings → Account: Mint Privacy Comp admin button — generates a Privacy Edition license key by email without leaving the app
  • LoginView sheet auto-dismisses on successful sign-in (previously stayed up until ESC)
  • Privacy Edition: full Reports Hub port (Share replaces Email since Privacy has no networking)
  • Privacy Edition: device transfer flow — shows your cached license key with Copy + guarded Deactivate so you can cleanly move your license to another Mac or iPad without accidentally locking yourself out
  • Privacy Edition: "PRIVACY EDITION" amber pill in the sidebar to distinguish from the main app at a glance
  • Web app live at app.stringstheoryinv.com — 11-report Reports Hub, 28 Settings sub-pages, full Customer Intake Kiosk runtime, Label Designer, Print Queue, Receipt OCR, Order Import Wizard, Production Workflow Hub, all caught up with native
Improved
  • "Status Tags" renamed to "Progress Tags" everywhere (matches the underlying STProgressTag model and web terminology)
  • "Daily / Operational" Reports section renamed to "Daily Operations"
  • Stale displayId fallback in the Work Order list now shows "WO-NNNNNN" (derived from createdAt) instead of "WO-NEW" so kiosk-printed labels are unique pre-sync
  • Critical-priority announcements now bypass per-user dismissal — important shop-wide notices can no longer be suppressed permanently by accident
  • LicenseService validates against the backend first when a Supabase JWT is present, so stale Dodo keys can't override a legitimately recognized backend license
  • Backend: Supabase ES256 + JWKS support, CORS pattern middleware with Vercel preview suffix matching, idempotent comp endpoints, first-user-is-admin in fresh tenants, license-recovery falls back to first active user
Fixed
  • libmalloc double-free crash on test teardown via the swift_task_deinitOnExecutorMainActorBackDeploy polyfill — fixed by opting 7 singletons out of the @MainActor-isolated deinit code path
  • HIGH-RISK and MEDIUM-RISK force-unwraps eliminated across the codebase (audit-driven cleanup): Calendar.date!, tierGroups[k]!, filtered[k]!, parts.last!, lastChecked!, location!, notes!
  • Privacy Edition: two stack-overflow recursions in MotionAccessibility.swift that crashed the app on launch
  • Privacy Edition: PrivacyLicenseService is now @Observable — the activation screen actually dismisses when you paste a valid key (previously it appeared to do nothing)
  • Privacy Edition: orphaned AnnouncementDTO removed (it violated the airgap rule)
v1.5.1
May 2026
New
  • Customer Intake Kiosk redesigned — turn a shared iPad into a self-service drop-off station. New Simple Mode (default) walks customers through 4 steps: You → What's going on? → Details → Sign. Power Mode preserved via Settings toggle for shops that want the full Category → Template flow
  • "Other / Not Sure" path on the kiosk — creates a work order with status Pending Triage so the shop owner can triage it later
  • Tap-anywhere Welcome screen and labeled step indicator (You · Service · Details · Sign)
  • "Hand to Customer" button — large amber button on the Dashboard and Work Orders toolbars launches the kiosk full-screen in one tap. PIN gate preserved
  • Seven built-in repair label designs — Repair Hangtag, Case Sticker, Customer Receipt, Parts Bag, Status Sticker, QC Pass, Ready for Pickup. All editable in the Label Designer
  • Auto-print on intake submit — adaptive print router fires configured repair labels when a customer submits the kiosk. Three targets (Print Server / Local Printer / None), three output modes (Auto / Native / Sheet), per-design copies and enable toggles, fail-soft to Print Queue if the printer is unreachable
  • Multi-up sheet rendering — lay multiple thermal labels on a letter or A4 sheet with crop guides, for shops without a thermal printer
  • Eight-status work order workflow — Pending Triage, Pending, Awaiting Parts, In Progress, QC, Ready for Pickup, Completed, Cancelled. Replaces the previous 4-status pipeline
  • Dashboard workflow callouts — Pending Triage and Ready for Pickup counts shown on the Dashboard, tap to jump to Work Orders pre-filtered to that status
  • Four new merge fields for labels: {{customer_phone_last4}}, {{customer_email}}, {{date_promised}}, {{service_summary}}
  • Help system — four new in-app articles (Customer Intake Kiosk, Auto-Print Labels on Intake, Repair Labels, Work Order Statuses) and three glossary entries (Pending Triage, Ready for Pickup, Simple Mode)
Improved
  • Accessibility pass — required-field markers (*) with VoiceOver "required" hints on Inventory, Work Order, and Intake forms
  • Reduce-Motion guards on all 28 animation sites in the app — toasts, sheet transitions, multi-select toggles, and progress animations become instant when Reduce Motion is on
  • VoiceOver labels on Dashboard stat cards and global search results, with button traits where appropriate
  • Dynamic Type support on Help articles and the iPad sidebar navigation
  • App display name on the home screen / Dock / Spotlight now reads "Inventory" — bundle ID, in-app branding, and App Store listing are unchanged
  • Square integration now reads currency from the per-location API response instead of hardcoded USD — shops outside the US get correctly-tagged inventory updates
  • Four new XCUITests for the customer intake kiosk flow — all passing on iPad Pro 13" M4 simulator
v1.5.0
April 2026
New
  • Order Import Wizard (Beta) — scan supplier invoices with OCR, extract line items, match to inventory, and create FIFO cost lots. Supports Mouser, DigiKey, CE Distribution, D'Addario, Newark, and more
  • First-class sourcing fields — manufacturer part number, manufacturer name, distributor SKU map, HTS code, country of origin, ECCN, RoHS compliance tracked per item
  • Sourcing section in item detail view — shows manufacturer, MFG part number, distributor SKU cross-reference, and compliance data
  • Part number intelligence — 18 distributor SKU pattern classifiers, 320+ manufacturer registry, priority waterfall matching across distributors
  • Page classifier — automatically skips certificates of compliance, tracking logs, remittance stubs, and terms pages during invoice scanning
  • Beta Features section in Settings — enable experimental features with toggle controls
Improved
  • Settings reorganized — Work Orders section consolidates templates, tags, and component fields
  • Standardized app icons across all StringsTheory products
  • 770+ invoice parsing keywords across 35 vendor formats
v1.4.5
April 2026
New
  • Privacy Edition — fully offline product with all networking code physically removed. One-time purchase for security-conscious organizations and air-gapped environments
  • Label element rotation rendering with CSS transform support
  • Email send feedback with toast notifications across all work order views
  • Email template backup and restore support
  • BOM validation — prevents self-referencing components
  • Print server failure visibility with error messages shown in print queue
Improved
  • 95+ bug fixes across 7 comprehensive audit rounds
  • Hardened Square integration: improved variation handling, precise decimal quantities, deleted item filtering, retry logic with exponential backoff
  • Enhanced Shopify and Google Sheets integrations with retry logic and improved data handling
  • Delta-based quantity tracking for Google Sheets (prevents overwrite of local changes)
  • Tier-ordered sync chunking — parent entities always sync before children
  • Conflict persistence — unresolved conflicts survive across sync cycles
  • Server-side delete protection — checks for pending local changes before cascading
  • Restore/sync coordination — auto-sync paused during backup restore
  • Email merge field HTML sanitization (XSS prevention)
  • Rate limiting on authentication and sync endpoints
  • Row-Level Security on all database tables
  • Cross-tenant isolation hardened on all child entities
  • HSTS security headers
v1.3.1
February 2025
New
  • Delta-based inventory sync — Square & Shopify pull operations now apply quantity deltas instead of overwriting local counts, making StringsTheory the true source of truth
  • Multi-device cloud sync expanded to 19 entity types with tier-ordered sync — covers ProductionField, BOMItem, LabelTemplate, LabelDesign, BusinessSettings, and more
  • ConnectivityService — real-time offline detection via NWPathMonitor with sync status indicator in the sidebar
  • Admin UI — invite team members, assign roles, and manage seat limits from within the app (Annual)
  • Backend email service — work order emails now sent via backend (Resend); Monthly tier: 20 emails/month, Annual: unlimited. Customer replies go directly to your shop email
  • Backend OAuth integrations for Google Sheets, Square, and Shopify — full authorize/callback/disconnect flow with web app redirect support
  • Supabase auth — email & password sign-in with registration; hybrid auth supports both JWT Bearer and API key
  • Cloud sync settings — auto-sync toggle, connection test, and conflict history viewer
Improved
  • Shopify quantity field switched to "on_hand" per Shopify API documentation for accurate stock representation
  • iPad polish — new IconActionButton component, ScrollHintOverlay, and UI improvements across all views
v1.3.0
January 2025
New
  • OAuth security hardening — PKCE, CSRF state validation, and HMAC token verification across all integrations
  • Encrypted token storage for all OAuth credentials
  • Shopify shop domain input field for OAuth connection setup
  • Square sandbox / production credential separation in Developer settings
Improved
  • Integration error messages now surface actual backend errors instead of generic failures
  • Direct OAuth used by default when no backend URL is configured, with graceful fallback
  • Stale error messages cleared automatically on successful OAuth callback
  • Sparkle auto-update download proxy added; sandbox mode disabled for production update checks
  • Developer settings tab hidden behind Easter egg (10 taps on Updates/Backup header)
Fixed
  • Cloud sync decoding failure on ISO 8601 date fields
  • Backend sync sending typed values instead of strings, causing client-side decode errors
v1.2.0
December 2024
New
  • Production Tracking: import serialized units from Google Sheets per-item worksheets with preview, auto-matching, and NEW/UPDATE badges
  • Unmatched worksheet picker when importing production data — no more hunting for the right tab
  • Auto-serialize prompt for items not yet set up for serialized tracking
  • Wholesale item linking — connect wholesale items to base retail items with independent sale price
  • Bulk select in inventory: change category, location, and sync flags across multiple items at once
  • Right-click context menus throughout inventory for fast actions
  • Push to All services via inventory right-click menu
  • Granular per-type backup/restore — choose exactly what you restore
  • Label designer for fully custom label layouts
Improved
  • Google Sheets sync now uses Internal SKU as the primary key for more reliable two-way syncing
  • Import preview now supports all providers — review before you commit every time
  • Duplicate serial number detection with auto-cleanup on import
  • Work order PDF layout improvements for better print fidelity
  • Shopify location mapping is now configurable per integration setup
Fixed
  • CSV import taxonomy approval dialog occasionally not appearing on first run
  • Barcode scanner not dismissing correctly on iPad after item creation
  • COGS margin calculation rounding error for items with fractional unit costs
  • Work order template pre-fill not applying custom fields
v1.1.0
November 2024
New
  • COGS Reports: revenue, gross profit, and margin summaries with date range filtering
  • Transaction ledger with manual transaction recording
  • Breakdown by item, category, day, or month in COGS view
  • Bill of Materials: build assemblies with automatic cost rollup from components
  • Auto-sync with configurable intervals for Square, Shopify, and Google Sheets
  • Per-service push and pull controls in integration sidebar
  • Print queue for batch label printing in Production Tracking
  • Cloud sync with StringsTheory backend for multi-device data (Pro)
  • Server-pushed announcements and in-app notifications
Improved
  • Square POS sync now supports per-item exclusions
  • Customer search is now instant with indexed lookups by name, email, phone, and company
  • Work order kanban board performance with large datasets
  • Label template management now shows printer assignment per template
Fixed
  • Shopify sync incorrectly updating zero-quantity items on pull
  • Customer CSV import validation not catching malformed email addresses
  • Low stock alert badge persisting after stock was updated
v1.0.0
August 2024
Initial Release
  • Core inventory management with create, edit, duplicate, and delete
  • Auto-generated SKU with configurable format
  • Camera-based barcode scanning on macOS and iPad
  • Serialized item tracking with per-unit management
  • Work orders with Kanban and list views, signature capture, PDF generation
  • Customer profiles with CSV import/export
  • Production tracking with serial number ranges and status filtering
  • Dymo-compatible label printing with configurable templates
  • Google Sheets two-way sync
  • Square POS two-way inventory sync
  • Shopify two-way inventory sync
  • Backup and restore with local, Dropbox, and Google Drive storage
  • Free and Pro license tiers with activation
  • Light, dark, and system theme support
  • macOS auto-update via Sparkle