Mobile Inventory
Menu

Changelog

What changed, and why

One page, newest first. Every entry describes something that is live today or says plainly that it is not.

23 October 2026

What the sixth review found

  • A count that follows the shelf. The count list groups items under their aisle tag, can show only what is still uncounted, and a Next uncounted control moves the cursor — 700 SKUs no longer mean 111 screens in SKU order. It stays blind until review.
  • An export that leaves nothing behind. The JSON backup now carries every stocktake's counted lines with the quantity expected at the start and the variance, and every member with their name (email for owners and managers). Proved against the hosted project, not only locally.
  • A shop switcher. A person in two shops chooses which one the console shows; the choice survives a reload and no other shop's stock leaks in.
  • Offline, said honestly. The banner reads what is actually on screen, and starting a count without a connection is disabled with the reason instead of doing nothing.
  • Invited colleagues land in your shop. Following an invitation joins the shop that invited them, with the role they were given, instead of asking them to name a shop of their own.

22 October 2026

The integration surface

  • The ledger has an API. GET /api-movements returns every change oldest-first with a cursor, so a spreadsheet or an accounting tool can reconcile instead of trusting a total.
  • A written contract. openapi.json describes all three operations, the errors and the cursor; a drive checks it against live responses, so the document cannot drift quietly.
  • MCP for AI clients. A read-only tool set (search, stock levels, low stock) and one scoped write, over stdio or a hosted endpoint. No tool can name a shop: the token is the shop.
  • Per-token limits. 1,000 reads and 200 writes an hour by default, adjustable per token; a loop gets a 429 with Retry-After, and other tokens are unaffected.

22 October 2026

Webhooks you can operate

  • A submitted count is an event. count.submitted now fires with the stocktake, its lines and movements — the checkbox used to exist without a sender.
  • Replay from the panel. A delivery that gave up shows Replay; it is queued for the next dispatch and the row returns to Waiting.
  • A receiver's guide. Payloads, the HMAC over timestamp and body, the retry ladder, the eight-attempt cap and dedupe by event id are documented.
  • A signature that covers the timestamp. The signing input is timestamp.body, and the guide's example rejects anything older than five minutes.

22 October 2026

The web app

  • Scan with the camera. The trial scans a barcode on a phone, opens the item, or fills the create form when the code is new.
  • Install and open offline. A manifest, an install control and a service worker; offline the app says so, and says the Android app is the one that queues changes.
  • Tokens and webhooks in Settings. Create a token (shown once), revoke it, add an endpoint, pause it, read recent deliveries.
  • A signup that recovers. If a confirmation email cannot be sent, the form explains why and offers a resend instead of a provider error.
  • The shop survives confirmation. The name typed at sign-up is created on first sign-in; confirming no longer asks twice.

22 October 2026

Chat and mail

  • Telegram and Slack ask the shop. A one-time code connects a group or channel; /low and /stock answer from that shop only, never prices.
  • Access ends with membership. Removing a member deletes their chat link, and every message re-checks membership; an owner can disconnect a chat and only an owner code reconnects it.
  • Email-in. A worker posts a parsed message; the address is the shop and the sender is the member. Replies go through Resend; inbound routing waits on MX.

22 October 2026

Trust and the site

  • A privacy notice and operating terms. What is collected, where it is stored, the processors, export and deletion — and the terms that are true today, with counsel's items named.
  • A blind count in the demo. Opening Count hides on-hand and value until the review, so the demo keeps the promise it makes.
  • A read-only audit, closed. Tenant isolation and filter injection were clean; SSRF, token lifetime, dispatcher double-send, cross-tenant re-activation and error text were fixed.
  • Not yet: paid plans. Nothing is charged today. The 14-day trial is the only state until store billing opens, and the site says so wherever it mentions a price.