What's New

Release notes for Healthcare Supply Manager. New features, fixes, and improvements — written for the people using the app, not the people building it.

App Store users can update through iOS as usual. Android tester builds are distributed through Firebase App Distribution while Google Play production qualification is in progress. Web users always get the newest release on their next page load.

1.2.23 April 23, 2026

Small fix release — better feedback when registering a beacon fails.

Fixed

  • Beacon registration error details. If registering a Bluetooth beacon fails, the error now sticks around for 10 seconds and has a Details button that opens the full error message instead of disappearing before you can read it.

1.2.22 April 23, 2026

Tightens up Bluetooth-beacon location tracking so only the beacons you trust contribute to indoor positioning.

Changed

  • Only registered beacons affect positioning. Previously, any Bluetooth beacon the phone saw could contribute to a location fingerprint. Now only beacons you've explicitly registered will — random beacons from the hallway or the break room get ignored. Beacons you register after the fact retroactively strengthen fingerprints you already saved.
  • Consistent beacon training on iOS and Android. The WiFi Training screen now looks and behaves the same on both platforms. Two clear sections: Contributing to this location (registered, currently in range) and Nearby — tap to register. Both platforms now have a + Add beacon manually option, which matters on iPhone where iBeacons can't be discovered without first declaring the UUID, and matters on Android if you want to pre-register beacons from a spec sheet before they're deployed.
  • Faster activation on iOS. Registering a new iBeacon UUID starts listening for it immediately, without having to stop and restart the training session.

1.2.21 April 23, 2026

Full Bluetooth-beacon support including iBeacons on iPhone, a fix for add-another-location when scanning, and a round of quieter crash reports.

Added

  • iBeacon detection on iPhone. iPhone hides Apple-format iBeacon advertisements from regular Bluetooth scanners, so previous versions couldn't see them. The app now uses Apple's own beacon-ranging system, so iBeacons register and broadcast to the app the same as Eddystone beacons always did. The WiFi Training screen now watches for the UUIDs you've already registered, and a new Monitor iBeacon UUID dialog lets you preload an unknown UUID if you're provisioning from a spec sheet.
  • Eddystone telemetry frames contribute to positioning. Telemetry (TLM) and ephemeral ID (EID) frames from Eddystone beacons now correctly link back to the beacon that sent them, so positioning benefits from every advertisement, not just the UID frame.

Fixed

  • Scanning at a new location for an existing product. When you scan a product at a location it isn't assigned to, the sheet that asks whether to Add as additional location or Update count here now actually does something. Before, both buttons just re-opened the product dialog without recording anything.
  • Registered beacons no longer show the Register button. After successfully registering a beacon, the Register button now correctly changes to the registered state. Previously it stayed visible and would let you register the same beacon repeatedly.
  • Quieter crash reporting. Routine FDA lookup misses (unknown GTIN, or product names with ® or ™ symbols) no longer show up as errors. Ad load failures stop retrying after 3 strikes per session. Web-to-mobile sync no longer crashes when a web edit lands on a phone.

1.2.20 April 20, 2026

The shelf-scan feature gets a major upgrade — true 3D tracking with ARKit on iPhone and ARCore on Android — plus three tools that were half-wired (Find Target, Verification mode, Bind to Location) and are now actually usable.

Added

  • Native AR shelf scanning. Shelf scan now uses real 6-DoF world tracking from ARKit (iPhone) and ARCore (Android). Barcode markers stay anchored to physical positions as you walk the aisle, instead of drifting with phone movement. If your device doesn't support AR, the app falls back to the older depth-and-IMU tracking automatically. On Android, if ARCore isn't installed, you'll see a banner offering to install it from Google Play.
  • Find Target in shelf scan. Tap the search icon in the shelf-scan app bar, look up a product by GTIN or name, and the overlay will highlight it in a distinct color and buzz + snackbar the moment it's detected. Useful for picks and for locating a specific lot on a dense shelf.
  • Verification mode in shelf scan. Tap the fact-check icon to snapshot the inventory you expect to find (at the currently-bound location, or across all of inventory) and compare against what you scan. Mismatches get a discrepancy badge — Expected 12 · Counted 9 (−3) — color-coded red (under) or amber (over).
  • Bind shelf scan to a real location. The Bind to Location dialog now picks a real shelf location from your list, instead of creating a disposable one. Items saved from shelf scan get stamped with the correct location and show up properly in location reports.
  • Better "unknown product" vs "lookup failed" messages. If an FDA lookup fails for a specific GTIN, the result card now shows a red error with a tap to retry message. Products that are genuinely unknown still show the amber help icon. You can now tell the difference at a glance.

Fixed

  • Manual capture from the scanner finally decodes reliably. A mismatch between how photos are stored in memory vs. how they were being passed to the barcode decoder meant manual captures (tapping the shutter button) and gallery imports would usually fail to decode. Fixed.
  • Dense-shelf undercount in continuous scan. If you scanned many different products close together, the app could incorrectly treat neighbors as duplicates of the first one, hiding items from the result list. Now only same-product neighbors get deduped.
  • Stacked UDI labels save correctly in shelf scan. Stacked barcodes (a GTIN on top, lot/expiration below) now save as a single combined entry. Previously, shelf scan would save the secondary barcode as a separate unlinked entry.
  • The LIVE timer in continuous mode ticks. The "LIVE 00:00" banner now updates every second even when you're panning and no detection arrives.
  • Continuous session no longer keeps running in the background. Backgrounding the app now properly pauses the continuous-scan session. Previous versions would silently let it run and drift.
  • Expiration math survives Daylight Saving Time. 22+ places in the app that counted days-until-expiration or days-since-scan were occasionally off by one on DST transition days. Normalized everywhere.
  • Scanning the same item in multiple locations no longer corrupts counts. If a supply existed at Location A with 5 units and Location B with 3 units, scanning it at Location B used to overwrite both rows. Now each location's count updates independently.

1.2.19 April 20, 2026

Cycle counting is now a first-class feature, count schedules can target shelf locations (not just product classes), and Bluetooth beacons can augment WiFi-based indoor positioning.

Added

  • Cycle counting is live. Schedule recurring counts, run guided counting sessions, and launch either one straight from the dashboard's new Cycle Counts quick action. The dashboard surfaces scheduled counts that are due, and a guided session walks you through the items with scan-to-verify and a reconciliation step at the end.
  • Location-based count schedules. Count schedules now target shelf locations in addition to product classes — useful if you want to count "everything on Shelf B-12" instead of "all gauze". Legacy product-class schedules keep working, and the web app flags them so you can decide whether to migrate.
  • Bluetooth beacon registration for indoor positioning. Register Bluetooth beacons around your supply rooms to sharpen WiFi-based location tagging. Each beacon you register augments the location fingerprint captured at scan time, so supplies show up in the right shelf on inventory cards and maps. The scanner builds a smoothed average of the beacon's signal strength (8 samples by default) to filter out the noise that's typical of Bluetooth.

Changed

  • Faster app startup. Trimmed unnecessary Firestore listener activity and log noise on launch. Cold-start is measurably quicker.
  • More resilient sync. Sync self-heals when the cloud database schema drifts from the app's version, which can happen when one device upgrades before another. History streams now use date windows instead of loading everything on every reconnect.

Fixed

  • Guided count sessions no longer crash on exit. Exiting a session mid-build used to throw.
  • Count schedule list refreshes after a session ends. You no longer have to pull-to-refresh to see that a schedule's next-due date has advanced.

1.2.18 April 15, 2026

Quality-of-life polish and smarter scanner math.

Added

  • Scanner quantity calculator. When you're adjusting quantity at the scanner, the sheet now shows the starting count, a live +N / −N pill for the delta, and the full expression you've typed (e.g. 24 + 6 × 2 = 36). Double-tap an operator to swap it. Divide-by-zero is a clear error instead of silent.
  • Richer crash and usage insights. Crashes now include user context (your team, department, app version, DB version, and recent screen names) so we can triage issues faster. Navigation breadcrumbs are route names only — no product data, no PII.

Changed

  • Quieter sync during flaky connections. Transient Firestore errors no longer flood the crash reporter with retries.
  • Inventory filter sheet is live. Changing filter/sort chips rebuilds the list immediately without a save.

Older releases

For the full history including 1.2.17 (multi-department tenancy, Sign in with Apple, 3D AR shelf scanning), 1.2.16 (audit trail, archived items browser), and earlier, see the source repository or drop us a line at support@ledesign.dev.

Got feedback?

Bug reports, feature requests, and workflow questions are all welcome at support@ledesign.dev. We read every one.