{
  "version": "2026.10.06.211225",
  "published_at": "2026-10-07T04:18:44Z",
  "notes": "Dashboard counts and tiles load in one trip on offsite computers. Item photos: click a picture to view it (double-click to replace), and the arrow keys work in the viewer. View Transaction no longer pops over an open dialog.",
  "changelog": {
    "header": "2026-09-11",
    "body": "- Repair tags: the quoted total now prints on the tag, above the intake date\n- Label builder: Repair Total, Deposit, and Balance are available as placeholders on repair tags\n- Client screening: the client's OFAC screening status shows under the client in New Transaction, Sale, and the client panel\n- Reports: added an OFAC Client Screening Status report (one row per client with first/last screened and standing)\n- Pawn tickets: added the Military Lending Act attestation line under the disclosure sentence\n- Loan view: the period column reads \"Period N of Cycle M\"; the last day of a period still counts as that period, due on that day\n- Messages: photos can be rotated, and sideways photos from phones now display the right way up\n- Buy tender: a single payment method can be split into several tender lines\n- Wires: payment instructions pick the loan and show the generated memo instead of a free-text box\n- Phone payments: several tickets can be paid in one phone payment, and a loan being paid on one device is locked from a second payment until the first completes\n- Updates: old downloaded update packages are cleaned up automatically (the newest two are kept)"
  },
  "history": [
    {
      "version": "2026.09.11.131500",
      "header": "2026-09-11",
      "body": "- Repair tags: the quoted total now prints on the tag, above the intake date\n- Label builder: Repair Total, Deposit, and Balance are available as placeholders on repair tags\n- Client screening: the client's OFAC screening status shows under the client in New Transaction, Sale, and the client panel\n- Reports: added an OFAC Client Screening Status report (one row per client with first/last screened and standing)\n- Pawn tickets: added the Military Lending Act attestation line under the disclosure sentence\n- Loan view: the period column reads \"Period N of Cycle M\"; the last day of a period still counts as that period, due on that day\n- Messages: photos can be rotated, and sideways photos from phones now display the right way up\n- Buy tender: a single payment method can be split into several tender lines\n- Wires: payment instructions pick the loan and show the generated memo instead of a free-text box\n- Phone payments: several tickets can be paid in one phone payment, and a loan being paid on one device is locked from a second payment until the first completes\n- Updates: old downloaded update packages are cleaned up automatically (the newest two are kept)"
    },
    {
      "version": "2026.09.03.203806",
      "header": "2026-09-03",
      "body": "- GIF picker: opens far faster \u2014 it now pulls preview-sized GIFs instead of full-quality ones (about a seventh of the data), loads them in small batches so the first rows appear straight away, and remembers what it already downloaded, so reopening it is instant"
    },
    {
      "version": "2026.09.03.202827",
      "header": "2026-09-03",
      "body": "- Messages: schedule a text to send later \u2014 a clock button beside Send, and the thread shows what's queued\n- Messages: a conversation with something unread now previews the unread message instead of the last thing we sent\n- Sign-in: you can close LuxeOS from the sign-in screen (there was no way out but Task Manager)\n- Sign-in: a staged password reset is now picked up right at the sign-in screen\n- Calls: a call with no recording says so, instead of showing a play button that does nothing\n- Scan ID: scanning a customer's ID now reliably saves with the client record\n- New Transaction: the form no longer clears itself from stale prefill\n- Bank feed: Dismiss works on entries with no matching bank line, and the false \"Partial\" warning is gone\n- Bank feed: archived rows show the amount instead of a timestamp\n- Wires: long lists scroll inside the window instead of stretching it off screen"
    },
    {
      "version": "2026.09.03.134016",
      "header": "2026-09-03",
      "body": "- Reviews: the reviews list no longer redraws itself every few seconds while you work\n- Labels: a ticket barcode that would print too fine to scan is now flagged instead of printing silently\n- Labels: label settings edited outside the app no longer stop labels from printing\n- Settings: removed a \"Ticket Prefix\" box under Loan Settings that never actually did anything \u2014 the one that works is under Numbering\n- Messages: image and GIF loading now reports problems instead of failing quietly"
    },
    {
      "version": "2026.09.01.130058",
      "header": "2026-09-01",
      "body": "- Messages panel: if the connection ever signs out, the panel now says so and shows the sign-in screen right away \u2014 no more quietly showing old conversations\n- Messages panel: staying signed in no longer expires while you're using LuxeOS \u2014 only a computer untouched for a full month needs to sign in again\n- Bank imports: reworked into a Months view \u2014 drop a statement once, the balance chain checks itself, and matched items reconcile automatically\n- Bank feed: searchable accounts, a Post Matched button, and column widths that finally stick\n- Appointments: the list shows a full 60 days, each row shows the type and what the client is bringing, and you can text or open the client right from the detail\n- Dashboard: faster tab switching (each period keeps its own cache) and month-rollover figures corrected\n- Fixes: two reconciliation-close crashes on PostgreSQL, and a sale-logging error"
    },
    {
      "version": "2026.08.21.200000",
      "header": "2026-08-21",
      "body": "- Label builder: the repair tag preview now shows exactly what will print \u2014 rotation, margins, and barcode \u2014 and updates live as you change the size fields\n- Label builder: new \"Print test label\" button prints a sample tag through your real printer, so calibrating never uses up a real ticket"
    },
    {
      "version": "2026.08.21.180000",
      "header": "2026-08-21",
      "body": "- Repair intake: finding an existing client now searches as you type"
    },
    {
      "version": "2026.08.21.170000",
      "header": "2026-08-21",
      "body": "- Repair-first shops: the dashboard headline now leads with completed repairs picked up this month\n- Labels sent from the phone print with nobody signed into the desktop \u2014 the app starts its label watcher the moment it launches\n- Thermal label printing can now talk to the printer directly (per-machine setting), sidestepping Windows driver quirks that rotated or split labels\n- Label prints state their orientation explicitly instead of trusting the printer driver\n- Repair intake receipts now embed photos taken on the phone (cloud photos were skipped before, leaving only a \"+N more photo(s) on file\" note)\n- Fixed cash-transfer audit events failing to record"
    },
    {
      "version": "2026.08.20.180000",
      "header": "2026-08-20",
      "body": "- Fixed labels sent from the phone not printing after signing back into an already-open LuxeOS \u2014 the desktop's label watcher now restarts on every sign-in\n- If label printing from the phone stops working, the desktop log now says so plainly instead of staying silent"
    },
    {
      "version": "2026.08.20.160000",
      "header": "2026-08-20",
      "body": "- Pawn contracts and purchase agreements can be previewed on screen \u2014 the ticket button now offers Print or Preview\n- LuxeConnect: the messaging pane has a refreshed, warmer design with a cleaner layout and a full-width conversation feed\n- LuxeConnect: internal notes on a thread show the author's initials\n- Web form leads: threads are titled by the person's name, the \"Web lead\" tag clears once you reply, and the inbox tells web chats apart from web form messages\n- Notifications: in-app banner alerts plus a notification center for reviewing recent alerts; Macs also get native system notifications\n- Wire transfers: incoming wires can send secure payment instructions, message templates can carry a wire-details link that fills in at send, and completed wires record the confirmation and expected arrival date\n- View Transaction: wider details pane, and payment history now shows each payment's date\n- Dashboard: mini-charts and dollar lines no longer clip at the edges\n- Fixed restored table columns coming back narrower than their minimum width"
    },
    {
      "version": "2026.08.18.190000",
      "header": "2026-08-18",
      "body": "- Fixes an update prompt that kept reappearing after installing \u2014 the build was stamping the app with no version at all, so every check reported it out of date"
    },
    {
      "version": "2026.08.18.180000",
      "header": "2026-08-18",
      "body": "- Client card: the Messages tab now mirrors the LuxeConnect thread \u2014 call details, photos open in the app, and appointments show inline\n- Call popup: recordings play right in the window instead of opening a browser tab\n- Bank feed: committing a match clears its staged links, so coverage stops double-counting\n- New transaction: picking an existing client no longer wipes scanned or typed details when you revisit the tab"
    },
    {
      "version": "2026.08.17.200000",
      "header": "2026-08-17",
      "body": "- LuxeConnect: the missed-calls badge on the Calls tab clears when you open the call log, like the iPhone's phone app\n- Reports: Profit & Loss, Balance Sheet, and Cash Flow drop the redundant \"Section\" column \u2014 the bold group headers already carry it (CSV exports keep it, since flat files have no headers)"
    },
    {
      "version": "2026.08.17.190000",
      "header": "2026-08-17",
      "body": "- Sale screen: item details are now editable straight from the cart (cost stays locked) \u2014 including bullion and other lines that previously opened read-only\n- Metal calculator: the refinery payout in the summary now shows its percentage too, like \"$238.69 \u00b7 98%\", and hides fully with hide-margin"
    },
    {
      "version": "2026.08.17.180000",
      "header": "2026-08-17",
      "body": "- Metal calculator: tapping a recent or saved estimate now loads it (estimates saved from the iPhone app load too)\n- Metal calculator: refinery payout shows in the summary (hidden by the hide-margin toggle) and each payout % shows the price per gram, like \"70% \u00b7 $1.50/g\"\n- Sale review: Item Details can be edited right from the sale, with the same permissions as the cart\n- Add Client on the sale screen: names and addresses are tidied into proper capitalization on both the New and Edit tabs\n- Payment receipts now state the next 30-day period's start date and the interest and fees that will accrue for it\n- Appointments show \"Today\", \"Tomorrow\", or the weekday name for dates this week\n- Outgoing text messages are auto-capitalized at send \u2014 fast lowercase typing goes out looking polished, and correctly typed text is never changed"
    }
  ],
  "mac": {
    "url": "https://updates.theluxeexchange.com/LuxeOS_2026.10.06.211225.dmg",
    "sha256": "71c83874f5f6486e20e9607a0aff8ded5a9ee6ecfb86182210fbabff2a5da5dc"
  },
  "dmg_url": "https://updates.theluxeexchange.com/LuxeOS_2026.10.06.211225.dmg",
  "sha256": "71c83874f5f6486e20e9607a0aff8ded5a9ee6ecfb86182210fbabff2a5da5dc",
  "windows": {
    "url": "https://updates.theluxeexchange.com/LuxeOS_2026.10.06.211225_windows.zip",
    "sha256": "3dbedfc0cd023618c391805f0c31af5874188d7e93a434a5e020a250b31eec5d"
  }
}
