The changelog.
What's shipped, what's mended, and the occasional bit that's been quietly taken away. Newest at the top.
Faster responses & shopping cart fix on long conversations
This release reduces the size of internal product and cart data by ~80%, making Lærke faster and more cost-efficient across long conversations. It also fixes two bugs that could cause a shopper's cart to disappear or the chat to break after a conversation was automatically restarted.
Product and cart data stored in the conversation is now ~80% smaller, keeping responses faster over long chats.
A customer's cart could be silently lost when the chat restarted mid-purchase — it is now always carried forward correctly.
A rare crash during tool processing could cause the chat to break and refuse to reload.
0.16.2
Routine 4xx errors from crawlers and stale links no longer trigger false error alerts.
Prompt caching, MCP resilience & ops hardening
This release significantly improves chat response efficiency through prompt caching, makes the AI more resilient when shop tool connections are unstable, and adds monitoring heartbeats and better error reporting across all background jobs.
Lærke now uses Claude's prompt caching, so repeat conversations load faster and cost less.
Shop tool configurations are now cached; a temporary connection hiccup no longer disables tools mid-conversation.
If a tool call fails during a chat turn, Lærke now recovers gracefully instead of ending the conversation.
Storefront and customer account tool connections are now isolated — a failure in one no longer blocks the other.
The version pill in the app footer now always shows the live deployed version, even before a changelog entry is published.
Conversation history is now sorted deterministically, preventing rare message-order inconsistencies on page refresh.
Shop-injected reference material no longer appears as shopper messages in the chat widget history.
The rotation summarizer no longer accidentally includes app-injected reference material in conversation summaries.
0.16.0
Replies in long conversations start noticeably faster — the assistant now reuses conversation context between messages far more efficiently.
A temporary hiccup in Shopify's storefront services no longer makes product-search or cart tools disappear mid-conversation; the assistant keeps its full toolset and continues normally.
A failed tool call now gets a graceful reply instead of interrupting the conversation.
Correct bot answers directly from the Feedback page
You can now correct a bot answer directly from a feedback card, without leaving the Feedback page.
Saving a correction automatically marks the feedback item as resolved.
A clear message now appears if the original message no longer exists and cannot be corrected.
Shopify UCP catalog & cart integration
Lærke now connects to Shopify's new Unified Commerce Platform (UCP) storefront endpoint for catalog search and cart management, while keeping the legacy endpoint as a fallback for policies/FAQ tools.
Catalog search now uses Shopify's new UCP endpoint, delivering more accurate and up-to-date product results.
Cart actions create_cart and cancel_cart are now supported alongside the existing update and clear actions.
Cart state is preserved across conversation rotations, so shoppers no longer lose their basket mid-chat.
Removing items via UCP full-state cart updates no longer requires the shopper's add-to-cart consent bubble.
Product search responses are now smaller, reducing response times and keeping conversations faster.
Shopify Pages as bot knowledge + PC Builder integration
This release adds a major feature: your Shopify store pages can now be synced and used as a knowledge source for the bot.
New Pages tab in training: sync your Shopify pages (FAQ, shipping, about, policies) so the bot can answer from them.
Synced pages start inactive — you choose which ones the bot uses for answers.
The bot now searches active page content alongside your other knowledge sources when answering customer questions.
Analytics: Latest AI-Assisted Orders List
The Analytics page now includes a paginated list of orders where Lærke's recommendations played a role.
Analytics now shows a paginated list of your latest AI-assisted orders, with items bought via recommendation and attributed revenue per order.
Each order row links directly to the Shopify admin order page and to the Lærke conversation that drove it.
The orders list is scoped to the same date range selected on the Analytics page and shows 10 orders per page.
In-app live support chat
You can now contact Lærke support directly from your Shopify admin — no need to send an email or leave the app.
New Support page in the app lets you open tickets and chat with the Lærke team without leaving Shopify admin.
The conversation updates automatically every few seconds so you see new replies without refreshing.
You'll get an email notification when the support team replies and you're no longer viewing the conversation.
You can close a ticket when your issue is resolved, and reopen it any time if you have follow-up questions.
Smarter rate limiting: per-conversation instead of per-IP
Rate limits are now tracked per chat conversation instead of per IP address. This fixes inaccurate throttling caused by Shopify's App Proxy routing all shopper traffic through shared Cloudflare IPs, making the limits much more fair and effective.
Chat rate limits now apply per conversation session instead of per IP address, giving each shopper their own fair allowance.
Feedback submission rate limits are now scoped per store rather than per IP, for the same reason.
Shoppers were incorrectly sharing a rate-limit pool because Shopify's App Proxy made all traffic appear to come from the same IP.
Chat abuse protection & conversation continuity
This release adds platform-wide safeguards to keep chat healthy for all shoppers, plus automatic conversation rotation that preserves context so shoppers never feel like they're starting over.
Messages longer than the configured character limit are now rejected before they reach the AI model.
The chat input in the widget now enforces the same character limit, so shoppers see a natural typing boundary instead of an error.
Long-running conversations are automatically rotated onto a fresh thread once they hit the message-count limit.
When a conversation rotates, the AI is given a short summary of the previous thread so context is preserved for the shopper.
The widget silently updates its session to the new thread ID after a rotation — no interruption to the shopper.
Initial release
This is the initial release for "Lærke"!