· v1.344

Voice input for chat, one-button warehouse and drag-and-drop uploads

Voice input for chat composer

This feature allows customers to interact with the chat via voice, making it easier to communicate and ask questions. It enhances the customer experience by providing a convenient alternative to typing.

One-button warehouse activation

Store owners can now activate their warehouse with a single click, simplifying the setup process. This saves time and reduces the complexity of getting inventory ready for sales.

Drag-and-drop supplier document uploads

Store owners can easily upload supplier documents by dragging and dropping them into the specified upload box. This simplifies document management and speeds up inventory processing.

Also shipped

  • Let AI assistant generate video clips through the store API
  • Make the mic the send button and enable voice on every AI assistant surface
  • Add ledger, lot and receiving schema
  • Compact scanned PDFs before extraction
  • Count stock through a dialog on Warehouse stores
  • Filter the stock list by goods expiring within 30 days
  • Let merchants write off and trace a stock layer
  • Let test mode move stock like live
  • Make the Movements tab readable and exportable
  • Open layers when lot tracking is switched on
  • Post corrections against a named layer
  • Re-encode photographed documents before upload
  • Replace the reconcile cron with a daily expiry sweep
  • Route every stock write through the ledger
  • Show opening layers and pick correction targets
  • Show warehouse quantities only where they exist
  • Store stock layers on receipt lines
  • Supplier documents, receipts, lots and warehouse activation
  • Sweep supplier documents that no receipt references
  • Warehouse admin UI with Stock, Incoming, Movements and Lots
  • Correction invoices from refunds, checkout NIP check, retry
  • Send the signup placement as a subscriber field
  • Dispatch and release inventory inside the status transition
  • Flag lot-missing and traceability-gap orders in the list
  • Make the sidebar's stock section answer for the dispatch
  • Say whether a refund releases or returns the goods
  • Let the store API attach digital download files to variants
  • Record first-time onboarding milestones
  • Tag support-origin Linear issues with a Support label

Fixes

  • [admin]Track actual action promises for loading state
  • [api]Refuse Warehouse half-states in PATCH /api/v1/modules
  • [api]Resolve legal pages by the store's own href
  • [auth]Drop the "http://undefined" trusted origin
  • [auth]Pin better-auth back to 1.7.2
  • [builder]Check save results before feedback and navigation
  • [builder]Keep store secrets out of sandbox command text
  • [catalog]Honor selected IDs in lite product browsing
  • [checkout]Reject foreign carts before payment finalization
  • [checkout]Scope address saves to the requested store
  • [checkout]Store a signed-in shopper's typed address as the cart's own row
  • [checkout]Wait for successful saves before confirming payment
  • [cron]Skip the WAL tick when another run holds the slot
  • [domains]Stop logging routine domain states as errors
  • [ai]Pass a numeric low-stock threshold to the daily triage query
  • [furgonetka]Gracefully skip non-Furgonetka shipping methods in auto-fulfill
  • [hooks]Use the latest debounced callback and cancel on unmount
  • [instaview]Surface HikerAPI rejections and stop retrying a dead key
  • [inventory]Answer a duplicate supplier document with a conflict
  • [inventory]Clear a correction's layer pick on re-match
  • [inventory]Dispatch even when the delivery note cannot be built
  • [inventory]Gate every Warehouse surface on one predicate
  • [inventory]Keep untracked variants untracked on an order edit
  • [inventory]Let a correction into an expired layer be voided
  • [inventory]Make a refused external stock sync visible
  • [inventory]Normalise document extraction into one draft shape
  • [inventory]Record a carrier dispatch of an unassigned lot line
  • [inventory]Reduce committed lines when a legacy order is refunded
  • [inventory]Resolve a named layer in the store before adjusting it
  • [inventory]Scope document line variants to the writing store
  • [inventory]Show the supplier's own quantity on a document line
  • [inventory]Store extracted unit prices in minor units
  • [inventory]Store supplier documents in a private Blob store
  • [inventory]Surface inventory issues in the Issues view
  • [inventory]Switch environments in a fixed number of statements
  • [inventory]Take the ledger scope lock before order and variant rows
  • [inventory]Translate stock history reasons and page the sheet
  • [mailerlite]Keep the product catalog in sync after connect
  • [orders]Drop reserved from the status dropdown
  • [orders]Lock the cart during finalize and confirm a paid order once
  • [orders]Tidy the order write path around the inventory ledger
  • [vercel]Stop an unparseable API error body masking the real failure