Skip to content

What's new ​

The headline changes, newest first. The full list lives in CHANGELOG.md.

v0.2.32 - no more empty-handed answers ​

When the assistant said "let me check" and then went quiet, or searched and searched and ended with "Sorry, I could not answer that one", it was the loop giving up, not the knowledge. Both now get a second chance: an announced lookup is nudged to actually happen, and a search that runs out of rounds is turned into an answer from what it found. The persona also has more room, six thousand characters, for the rules that keep a conversation on track.

v0.2.31 - no more "next event" that already happened ​

If the assistant was asked what is coming up and named an event from last month, that is fixed: the events lookup now tells the assistant plainly which events are upcoming, which are still running, and which are over, and says "nothing is scheduled right now" when that is the truth. Also fixed: the michi shield in the admin was missing on production.

v0.2.30 - you can watch an import happen ​

Importing a tenant used to mean staring at a spinning button and, for a big knowledge base, an error page when the connection gave up. Now the import starts and the page answers right away; the tenant page and the knowledge page show a banner that counts up, "7 of 9 documents, 3,120 of 7,003 chunks, embedding HS 2022 product codes", and ends with "Imported 9 documents in 70s" or the reason it failed. Documents that did not change are skipped. If someone starts a second import of the same tenant while one is running, they get a polite no with the current progress.

v0.2.29 - big imports and wide logos ​

Two things stopped saying "This page couldn't load": importing a large tenant file and saving a very large knowledge document. Both used to hit a hidden 1 MB limit; it is now 8 MB. And a tenant whose logo is a wide wordmark, not a square mark, now sees it whole in the chat header instead of cropped. In the tenant list, coach tenants carry a small badge.

v0.2.28 - staff see only their tenants ​

On Accounts you now tick which tenants a staff account may see, and that is all they see anywhere in the admin: tenant list, conversations, Unanswered, Usage, analytics, knowledge base. A staff account with nothing ticked sees nothing until you assign it, so a new login is safe by default. Owners keep seeing everything. If you already have staff accounts, tick their tenants after this update, or they will find an empty admin. Unanswered also got the tenant chips from Conversations.

v0.2.27 - the page head stays with you everywhere ​

The sticky head from the tenant form now applies to every admin page that has something to press up there: a transcript's Flag, Export, Delete and Back, the knowledge base and analytics links, the tenant filters on Conversations. Scroll as far as you like; the way back is always at the top.

When the assistant gives an email, a phone number or a web address, it is now a real link: tap to mail, tap to call, tap to open the page in a new tab. On the Analytics page the "What visitors reach for" bars used to show bare function names; each one now comes with a plain-words card saying what it does, what goes in and what comes back. The tenant form keeps its name, links and Save button in view while you scroll. And when the cafe website cannot report the weather, the assistant suggests a drink from the specials or the menu instead of apologising.

v0.2.25 - a second kind of tenant: the coach ​

Until now every tenant was a customer assistant for one business. There is now a second kind, coach: an application sends it facts with every message and it explains them to one learner, without the "I only answer questions about the business" reflex. The first one is Chess Mate, where Stockfish judges each move and the coach explains why in plain words. Nothing changes for a normal install: the Kind field only appears when the instance enables it (see Extending), and everything else (persona, keys, transcripts, usage) works exactly as before.

v0.2.22 - no more feeling lost at the Slack field ​

The Slack webhook field now teaches you how to get a webhook, right on the form: four steps, two minutes, free. The same walkthrough (with channel tips) is in Running it day to day.

v0.2.22 & v0.2.23 - guidance and the cobalt roofline ​

The Slack webhook field now teaches you how to get a webhook (four steps, right under the input). And the admin's look sharpened, on the owner's own brief - Danish architecture, calm walls with one precise roof detail: every panel wears a thin cobalt top edge, active items carry the same cobalt, corners are square everywhere, and a missing bottom border on the header chips (a real bug) is fixed, so the console reads crisp instead of faded.

v0.2.21 - the owner's to-do list, and friends ​

  • Unanswered - a new page listing every question the bot admitted it couldn't answer, with an "Add fact" shortcut. It is the knowledge base's to-do list.
  • Find the bad actors faster: a 🚩 Flagged chip and paging on Conversations.
  • Answer cache, visible: see the instantly-served answers per tenant (hit counts show what visitors ask most), evict a stale one, or clear all.
  • Retention: "delete conversations after N days", per tenant, automatic.
  • Failed turns show up in transcripts as a failed label instead of a silent gap.
  • The mobile admin got a burger menu - the old horizontal strip was bursting.

v0.2.19 & v0.2.20 - design polish ​

The "Choose File" chip on the PDF and CSV imports now matches the admin's own buttons, and each step of the PDF import shows exactly one primary button, so the next action is always obvious. Small AI tidy-ups also got headroom on providers that "think" out loud.

v0.2.18 - PDFs into the knowledge base ​

Upload a PDF on the knowledge-base page and the analysis is free: it reads the text out, strips page numbers and repeated headers at no cost, flags scanned files and table-heavy content, and shows what an AI tidy-up would cost before you run it. Delete what customers don't need, run the tidy-up (or skip it), review, save. The actual token usage is reported after, so the estimate earns its keep. Owners: the step-by-step tutorial is Turn a PDF into knowledge; the reference lives in Knowledge base → Import from a PDF.

PDF import: free analysis with a token estimate

v0.2.17 - a cleaner console ​

The admin navigation got a redesign: normal-case labels with hairline icons and a clear active marker. The knowledge-base page now explains how to bring facts in from a PDF or Word file (copy the text, paste, tidy into short sections).

v0.2.16 - transcripts that teach ​

Every assistant turn in a transcript now carries a label for how the answer was produced, one of four cases: cached, guardrail, used tools, or model only. Hover the label and the tooltip explains the case, why the turn does or doesn't show tokens, and why the debug block is there or not.

v0.2.15 - flagging the baiters ​

Shaped by a weekend of people probing the live bot.

  • Flagged conversations. Prompt-injection bait and /command probes get a fixed refusal (no model runs), the turns are stored, and the conversation is auto-flagged 🚩 in the admin with the reason. You can also flag or unflag any conversation by hand.
  • Shorter refusals. Off-topic questions get one polite sentence, not an essay, and requests for help with the admin portal, passwords, or account recovery are declined outright, whoever claims to be asking.
  • Optional visitor analytics. Point GA_MEASUREMENT_ID at a GA4 property and the visitor chat pages report per tenant; the admin stays untracked.

v0.2.14 - cache visibility ​

Transcript turns served from the answer cache are now badged "cached".

v0.2.13 - readable tool debugging ​

The tool-calls expander in transcripts pretty-prints each call and its result.

v0.2.12 - readable transcripts ​

Conversation transcripts are now a chat view (visitor right, assistant left), and every admin timestamp shows in your own timezone instead of the server's.

v0.2.11 - honest thermometer ​

Weather answers now state the air temperature, and only call the heat index "feels like".

v0.2.10 - right events, phone-friendly ​

"What's coming up?" now answers with events that are actually upcoming, judged in the cafe's own timezone. The admin works properly on phones, and the chat footer fits one line.

v0.2.7 - smoother chat ​

Messages and chips now animate in, and image builds are much faster.

v0.2.6 - faster, safer, more accurate ​

Upgraded the framework to Next.js 16, which clears the outstanding security advisories. Faster tool answers (caching + parallel + shorter timeouts), no invented menu items or bean origins, and raw backend errors never shown to visitors.

v0.2.2 - safety hardening ​

Shaped by real questions people asked the live bot on launch day.

  • Protection rules per tenant. A plain-words box on the tenant form for hard boundaries ("never quote rental prices", "no stories"). It can only tighten the bot, never loosen the platform rules. See The admin UI.
  • Answers only from real data. The bot no longer names menu items from memory; if the live menu does not list something, it says so. No invented dishes.
  • No off-topic writing. Stories, poems and role-play are declined.
  • Stays private about itself. It won't discuss its tools, data sources, models or hosting, even to someone claiming to be the owner.
  • Speaks the visitor's language. English, Filipino, Taglish, and more, matched automatically.
  • Instant refusal of obvious attacks, with no model call, plus a multilingual model backstop for the rest.

v0.2.0 - the platform grew up ​

  • Roles and an audit trail. Owner and staff logins; every change is recorded. See Running it day to day.
  • Analytics per tenant. What visitors ask, which tools they reach for, busy hours, and where they come from.
  • Move a whole tenant as one file. Export settings and knowledge, import elsewhere.
  • Instant repeat answers. Common questions are cached and served at zero cost.
  • Graded answer quality. A second model checks the bot's answers for faithfulness.
  • Branding: your logo, accent colour, light/dark, and a visitor notice.

v0.1.0 - first release ​

The multi-tenant assistant: per-business persona, tools and knowledge base, an embeddable widget, and the operator admin.