Changelog
What changed in each release. Newest first.
revision 808bf9e4
The product now carries one name, Anywe, everywhere a user or developer meets it. Earlier CLI releases, links and variables keep working.
Fixes
- [api] Fixed the notifications list answering 500 for a cursor with a missing or wrong flag; it now answers 400 invalid_cursor like any unreadable cursor.
Improvements
- [platform] Changed every remaining old product name to Anywe; old links, cookies and variables still work, but drafts, theme and unsent mobile messages reset once.
- [cli] Changed
anywe agent secretto export each variable under its new and former name, so one paste configures agents from either CLI release. - [cli] Changed the CLI to read former AICONNECT_ variables only when no ANYWE_ variable is set, and to name each former variable it reads.
revision bcce104d
The command-line tool now matches the pages that document it, a chart label that looks like another
is no longer a second category, and a message held for a busy agent is no longer answered with a
credential its wait outlived.
Action required
- [api] Changed chart labels to refuse every invisible character, so two labels a reader cannot tell apart are no longer two categories.
- [api] Changed chart category labels to be compared in NFC and without surrounding spaces, so two spellings of one label are now one category.
- [api] Changed a streaming partial without
seqto be refused as a bad request naming the field, instead of failing as a server error.
New features
- [web] Added a note to the quickstart that only Go is generated today, with where to go for other languages.
Fixes
- [web] Fixed the CLI page's agent create webhook flag to stop naming a command that does not exist.
- [web] Fixed /docs/sdk and category addresses like /docs/tooling to open the SDK page and the category's first page, not a 404.
- [cli] Fixed hints after
agent createnaming commands that do not exist, so what the CLI tells you to type runs.
Improvements
- [api] Improved the edit ceiling so a refused edit no longer spends an agent's budget, leaving room for the correction.
- [cli] Improved the installer to warn when it verifies a version it ships no pinned checksum for.
- [cli] Improved the installer's header to state exactly what it installs, where, and how to self-test it offline.
revision 448199d7
Agents can now send a chart: they give numbers and labels, and every client draws the same bar,
line, pie or scatter chart, in light and dark. The quickstart and CLI pages match the commands they
document, anywe agent delete withdraws an agent from the command line, and a refused agent reply
now says what was refused instead of promising the agent is still trying.
Action required
- [api] Changed replies so any block's numbers have at most 32 characters and an exponent within ±20, and its strings are valid UTF-8 without \u0000.
New features
- [api] Added a chart block, so an agent sends numbers and labels and every client draws the same bar, line, pie or scatter chart.
- [web] Added chart blocks, so an agent's numbers draw as a bar, line, pie or scatter chart with tooltip and legend, in light and dark.
- [mobile] Added bar, line, pie and scatter charts you can tap for exact values, in light and dark, so numbers no longer arrive as a table.
- [web] Added the three-agent limit,
anywe agent deleteand two-step headless sign-in to the quickstart and CLI page, so each command runs as written. - [web] Added a circuit-breaker section and the AGENT_LISTEN port setting to the quickstart, so a paused agent and a busy port are explained.
- [cli] Added
anywe agent delete, so an agent you own can be withdrawn from the command line by naming its handle back or passing --yes.
Fixes
- [mobile] Fixed a refused agent reply reading as "agent is working", so the message now says what was refused and promises no retry.
- [web] Fixed the note under a refused agent reply to say what was refused instead of promising the agent is trying again.
- [web] Fixed the quickstart's relay command to forward to the agent's /webhook route, so following it as written now gets a reply.
- [web] Fixed the CLI page's flag descriptions to match the CLI, so
agent createno longer says a webhook is required. - [api] Fixed agent message edits being refused for every body; an edit now refuses the blocks a reply refuses, with
invalid_blocks. - [cli] Fixed
anywe listen --relayforwarding to the generated agent's root, so deliveries reach its /webhook without passing --forward-to.
Improvements
- [cli] Changed
anywe login --emailwithout a terminal to send the code and exit, so a script signs in with a second run using --code. - [cli] Changed
anywe agent secretto printexportlines, so its output can be sourced straight into a shell.
revision 0eb028b9
Messages sent to an agent that is still answering, or that is offline, now wait in line and reach it
together in one delivery instead of opening parallel streams, and each one says so under its bubble:
waiting, offline since when, or not sent with a Send again button. A reply to a message sent while
the agent was away now lands when it comes back. The conversation holds still while a reply streams
in and loads older messages as you scroll up.
Action required
- [api] Changed deliveries so messages sent while your agent is still answering arrive together in one delivery; read every entry in
messages, not only the first.
New features
- [web] Added a "Waiting in line" note under a message held for a busy or offline agent, so a sent message is never left blank.
- [web] Added a "Send again" button on a message that was never sent after the queue limit, so retrying takes one click.
- [web] Added "Offline since" to the agent panel, so an unreachable agent shows when it was last reachable.
- [platform] Added a per-conversation message queue, so messages sent while an agent is still answering wait and reach it together instead of opening parallel streams.
- [mobile] Added waiting-in-line, agent-offline and not-sent lines under your messages, with a Send again button, so a held message no longer looks delivered.
- [web] Added full-text docs search, so a phrase that only appears in a page body is found with the sentence around it.
- [web] Added /llms.txt and a Markdown rendition of every docs page at /docs/md/..., so a model or a script can read the docs without the page shell.
- [web] Added a Copy page button to every docs page, so a page can be pasted into a model or a README as Markdown.
- [web] Added a pricing page at /pricing, so plans and their FAQ have a place of their own instead of the bottom of the landing.
- [web] Added six short films and an ambient hero loop to the landing, so a first visit can watch a contact, a block reply and a receipt happen instead of reading about them.
Fixes
- [platform] Fixed messages sent while an agent was offline going unanswered when it came back, so its reply now lands.
- [platform] Fixed the sample agent's last reply going missing when the platform was briefly busy, so a finished answer still appears after a short wait.
- [web] Fixed the conversation jumping upward when a new message arrives, so what you are reading stays where it is.
- [web] Fixed a message you send landing below the screen after a long reply, so it stays near the top where the answer streams in.
Improvements
- [web] Improved long conversations: older messages now load as you scroll up, and the message you were reading stays where it is.
- [web] Changed the docs rails: the right rail nests sub-sections under their heading and follows the reader, and long sidebar groups fold with a count.
- [web] Changed the seven landing films to the voiced cut (English voice-over, music, sound effects) with captions regenerated from the spoken lines.
- [web] Changed the 48-second brand film on the landing to the English master with real footage and English and Vietnamese caption tracks.
- [web] Changed the six "Watch it work" films to English masters with real footage and caption tracks in English and Vietnamese, so a language is a text file, not a re-render.
- [web] Added a live web preview and a copyable JSON example under every block in the Interaction Reference, and reshaped the reference, rendering and streaming pages around flow diagrams and tables.
- [web] Changed the API and security reference pages to show one request and one response each, with the API overview as a card hub over a two-surfaces table.
- [web] Changed the six Help pages to steps and tables (controls, tabs, settings, what-you-see/what-to-do), so a reader finds the action without reading a paragraph.
- [web] Added a still of an inbox conversation to the sign-in panel, so the page shows what signing in opens instead of a logo on a grid.
- [web] Changed the landing hero to open mid-story with two messages on screen, a light-mode ambient loop, a header transparent over the hero, staggered card reveals and mid-clip film posters.
- [web] Changed the CLI and SDK reference pages to a command table with the flag that matters, real invocations and output, and the SDK reply client, so a pasted line is one the binary accepts.
- [web] Changed Product in the header to a menu of the landing's sections, so any public page can jump to people, developers, films, trust or discovery in one click.
- [web] Changed the landing's film section to a player with a poster playlist beside it, so all six films are visible instead of a row of text tabs.
- [web] Added a grid, glow and slow orbs behind four landing sections and the sign-in panel, so the public pages have depth in both themes without a second colour.
- [web] Changed sign-in, privacy and invite to the same two-state theme switch the landing and docs use, instead of a three-way menu.
- [web] Changed the five Guides pages to the quickstart's form, so each opens with its path drawn, shows the code or JSON it talks about, and ends with what to do when it fails.
- [web] Changed the agent quickstart to the generated-agent path, so a first agent goes from
anywe initto a real reply in one sitting with every command shown. - [web] Changed docs headings to a heavier weight and the reading column to 800px, so a page's sections stand apart from its body copy at a glance.
- [web] Changed the landing, pricing, docs, sign-in, privacy and invite pages to one brand palette, so the header and its button keep one colour across pages instead of following the app accent.
- [web] Changed every public page to share one fixed header with a Developers menu, so the docs, quickstart, CLI and console are one click away from the landing, sign-in and pricing.
- [web] Changed the landing to twelve sections from nineteen, so a first visit ends at sign-in without scrolling past the FAQ and console tour.
revision d2aada7c
A reply the platform refused no longer disappears: a finished answer is never turned away for going
too fast, and when one is rejected for its shape the room says so instead of claiming it is looking
for a person. The message view holds still while a reply streams in, stays where you put it when you
scroll away, and every scrollbar in the app now fades out when you stop using it.
Action required
- [api] Changed file blocks to refuse an asset id the sending agent does not own, so a reply may only attach its own assets.
- [api] Changed file blocks to refuse a mime or size that disagrees with the asset, so those fields now match what confirming the upload returned.
New features
- [web] Added a way to expand a table, image, code block or card photo to a larger view, so you can read them without squinting.
Fixes
- [api] Fixed a final reply being refused with 429 once a stream had spent its rate budget, so a finished answer no longer goes missing.
- [web] Fixed the message view jerking upward partway through a streamed reply, so it now holds steady while the reply streams in.
- [web] Fixed the view snapping down to the newest message when a reply finished while you were reading elsewhere, so scrolling away during a stream now stays put until you scroll back.
- [web] Fixed scrolling to the bottom several times during a reply making the blank space below it keep growing, so it now stays the same size no matter how many times you scroll down.
- [web] Fixed the view scrolling past a just-sent message whose reply is still empty, so it now stops where the reply actually reaches.
- [web] Fixed a small jump when a streamed reply finished and its "still receiving" notice disappeared, so the view no longer shifts at that moment.
- [web] Fixed a reply the agent sent in the wrong format being described as checking whether a person is needed, so the room now says what actually happened.
Improvements
- [web] Improved audio and video messages to show as a compact player instead of a card, so they no longer look boxed in.
- [web] Improved a card's photo to always show a fixed 16:9 shape, so it no longer gets cropped to a fixed height.
- [web] Improved buttons inside a message to show a focus ring, so navigating by keyboard now shows which one is selected.
- [web] Improved scrollbars across the app to a thin, theme-matched style, so they no longer look like the browser's plain default.
- [web] Improved the conversation list scrollbar to fade out when you stop scrolling, so it no longer sits pinned down the side of the panel.
- [api] Changed streaming rate limits to count only partials, so a final now meets just the per-source ceiling of 5000 requests per 15 minutes.
Streaming replies now arrive at the agent's own pace instead of a fixed reading speed, a reply the
platform refused says why instead of going quiet, reopening a chat lands on the newest message, and the
blank space under a long reply no longer grows past what the screen needs. Delivery status is one line
per exchange, network failures name themselves next to Retry, and wide tables scroll inside their own
box rather than pushing the chat sideways.
New features
- [api] Added a replyRefused field on message deliveries naming the code a refused final got, so a client can show why no reply came.
- [web] Added a reason next to a failed message's retry notice, naming whether it was a timeout, network drop, or server error.
Fixes
- [web] Fixed a message going silent after "Agent is working…" when the agent's reply was refused, so it now names the reason instead.
- [web] Fixed reopening a chat landing on the oldest message instead of the newest, so a reload lands where you left off.
- [web] Fixed extra blank space building up below a long streamed reply, so it no longer grows past what the space actually needs.
- [web] Fixed a wide table pushing the whole chat sideways, so only the table scrolls and long cell values wrap instead of overflowing.
- [web] Fixed leftover blank space below a finished reply staying stuck instead of collapsing right away.
- [web] Fixed a streamed reply displaying slower than the agent under heavy load, so it now keeps pace.
Improvements
- [api] Improved replyRefused to also cover a final the schema rejected, so a malformed reply no longer reads as an agent that went quiet.
- [web] Improved a reply that goes quiet mid-stream to catch up to what has arrived right away, so it no longer crawls in slowly once the source pauses.
- [web] Improved delivery status to show one indicator per exchange instead of up to four, so a sent message no longer shows contradictory notices at once.
Relay-only agents no longer need a webhook to register, the sample agent streams at a
readable pace, and the developer console's check, usage and monitoring surfaces say what
they mean.
New features
- [web] Added an agent-not-ready notice to the conversation's agent panel on wide screens, so it's visible without sending first.
- [web] Added an optional webhook URL when registering an agent, so a relay-only agent no longer needs one to be created.
Improvements
- [platform] Improved the sample agent's streaming to about 40 words a second, so a first look at a streamed reply no longer reads as a slow platform.
- [cli] Improved anywe check to read an agent's webhook from its published manifest, so an agent id alone is enough to run the probes.
- [cli] Improved anywe check to skip an unreachable endpoint and name which of three reasons applies, so it points at the right next step.
- [web] Improved the Monitoring tab's link to Errors to heading-weight text, so it reads as a real pointer instead of a footnote.
- [web] Added links from the Developer console's agent table and Analytics tab to an agent's usage page, so owners can reach it without guessing the URL.
- [web] Fixed the usage page's "Not recorded" note covering a whole chart when only some days lacked data, so days with real counts no longer read as unrecorded.
- [web] Changed the usage page's streaming chart label from "Streamed replies/day" to "Streaming partials/day", so it names what it counts.
Fixes
- [web] Fixed the "Connect an agent" panel showing raw text labels, so its four steps now read as Build, Connect, Verify, Publish.
- [web] Fixed a missing agent description on registration showing an untranslated browser popup, so it now shows the app's own message.
Thumbs-up/down on an agent's reply, markdown in mobile message text, and fixes to messages
and rooms that stopped updating on their own after a failure.
New features
- [api] Added a per-message field telling a reader whether they have already rated an agent's answer, so a rating button can show its own state.
- [web] Added thumbs-up/down buttons on an agent's reply, so readers can rate an answer.
- [mobile] Added markdown rendering in message text, matching web's subset.
Fixes
- [web] Fixed a message staying on "Sending to agent…" after the send had already failed, so the room now shows the failure without a reload.
- [api] Fixed a thumbs-down after a thumbs-up counting as two opinions from one person, so an agent owner's feedback total now counts each reader once.
- [mobile] Fixed the feedback thumbs not showing your rating or letting you clear it, so tapping the lit thumb now removes your rating.
- [mobile] Fixed an open room not updating on its own after a delivery failed, so it no longer needs leaving and reopening.
A delivery's error now comes as a fixed code instead of free text, with a new
relay_not_connected reason, and a second final reply to one delivery is refused rather than
silently appended. An agent's readiness shows before you send it a message.
Action required
- [api] Changed a delivery's lastError to a plain sentence and errorCode to a fixed set of reasons, so branch on errorCode instead of parsing text.
- [api] Added a relay_not_connected delivery failure code, so handle it wherever you branch on a delivery's errorCode.
- [api] Changed a second final reply to one delivery to be refused with 409 instead of appending a duplicate message.
New features
- [platform] Added a /stream command to the sample agent, so a new room shows an answer arriving line by line instead of all at once.
- [web] Added a resend option when a streaming reply stops arriving mid-answer.
- [mobile] Added a resend option when a streaming reply stops arriving mid-answer.
- [api] Added a readiness state to each agent in a conversation, so a client can show that a message sent now has nothing to carry it.
- [web] Added a warning above the composer when the agent you are addressing may not receive messages right now.
- [web] Added a guide on Anywe's product voice — how copy addresses a reader and states an error.
Fixes
- [api] Fixed a delivery's transport always reading webhook, so a delivery the relay carried now says relay.
- [platform] Fixed a message to a connected relay agent being sent to an address that cannot answer, so its reply is no longer delayed.
- [cli] Fixed anywe logs dropping a delivery's failure code, hint, transport and timestamps, so the JSON output now carries every published field.
Improvements
- [platform] Improved the sample agent so it introduces itself in a new conversation instead of echoing your first message straight back.
- [platform] Changed the sample agent's greeting to name the /stream command, so a first-time visitor knows what to type.
- [mobile] Improved delivery failure reasons to translated, code-specific captions instead of raw text, so mobile users see a reason in their own language.
Security
- [api] Removed the platform's endpoint and address details from delivery failure text, so a failure reason no longer names infrastructure.
A streaming agent's final answer now reaches the room, a failed delivery says so instead of
reading as still sending, and you can sign a device out of your account.
New features
- [api] Added signing one device out from the account device list, so a session you do not recognise can be revoked.
- [platform] Added the running deploy version to /healthz.
- [api] Added a decline code for a top-up refused because a balance does not match its ledger.
- [web] Added a link from Payments to each of your agents' own usage page.
Fixes
- [api] Fixed a streaming agent's final reply being refused when it streamed at the published rate, so its answer now reaches the room.
- [web] Fixed a failed message delivery reading as still sending instead of failed.
- [mobile] Fixed a failed message delivery reading as still sending instead of failed.
- [web] Fixed the message composer not accepting multi-line text.
- [web] Fixed the Directory's empty message guessing at a cause for a new account that owns no agents.
- [web] Fixed the sidebar nav label reading "Task board" for a page titled Standing orders.
- [web] Fixed clicking your own avatar opening nothing — it now opens Account settings.
- [web] Fixed the working indicator repeating the draft bubble's own "still receiving" text after ten seconds.
- [mobile] Fixed the delivery caption repeating the draft bubble's own "still working" text after ten seconds.
Improvements
- [web] Improved the public docs pages to a consistent typography and layout.
Link previews, editing a sent message, an agent handing off to a person, and a Chat SDK adapter.
New features
- [web] Added a usage page for agent owners showing messages, streams, 429s, feedback and handoffs per day for the last 7 days.
- [mobile] Added a link preview card in messages showing the title, description and site name.
- [platform] Added link previews so a pasted URL shows its title, description and image.
- [api] Added an unfurl endpoint that only fetches a URL already present in the message, so it can't be used to fetch arbitrary addresses.
- [api] Added three distinct outcomes for a link preview attempt: fetched, platform-refused, or fetch-failed.
- [api] Added daily usage counts for agent owners, returning null for any day the platform was not yet counting.
- [web] Added editing a sent message.
- [mobile] Added editing a sent message.
- [api] Added an edit endpoint for both human and agent senders, keeping the replaced wording.
- [api] Added a needs_human block an agent sends to hand a conversation to a person.
- [web] Added a room-visible handoff state and push label when an agent hands off.
- [mobile] Added a needs_human block renderer, mirroring the intent block.
- [api] Added a way to replay a room's delivery chain, stating when partials are unknowable.
- [api] Added a Chat SDK adapter for Anywe, streaming replies through the official client.
- [web] Added animated typing dots in place of a static working line.
- [web] Added a public changelog page rendering release notes, newest first.
Fixes
- [platform] Fixed delivery history failing to load in a room after an agent handed off to a person.
- [platform] Fixed the link preview error message to say when a linked message was edited or removed.
A new block type lets an agent narrate what it is about to do while a reply streams.
Action required
- [api] Changed final replies to refuse an intent block with 400; use intent only in a partial.
New features
- [platform] Added a live status showing what an agent is about to do while it streams a reply.
New capacity limits for agent owners, and two unused push types removed from the wire.
Action required
- [platform] Changed the per-account agent limit to 3, enforced when an agent is created.
- [api] Changed the per-agent stream limit to 10 concurrent, refused with 429 and Retry-After.
- [api] Changed the full-account refusal to its own error code, account_agent_limit_reached.
- [platform] Removed the earned_unlock and offline_reply push types from the wire contract.
New features
- [api] Added a reason field on exhausted deliveries when the platform can determine one.
- [api] Added a way for an agent to record that it deliberately chose not to reply.
- [platform] Added a failure notification for standing order owners, not just on success.
Improvements
- [mobile] Improved the deliveries screen to show four distinct end reasons instead of one caption.
- [web] Improved streaming redraw to 2 times a second so long answers use less CPU.
Action required
- [api] Changed the /hooks rate limit from a 15-minute quota to a per-second budget with a fuse.
- [api] Changed the module path for 49 generated TypeScript SDK types; names and shapes unchanged.
New features
- [api] Added delivery-receipt access for an agent after its own delivery has closed.
- [api] Added a way for a client to declare which room is open, so drafts stream only to viewers.
- [api] Added an upload client to the TypeScript SDK with partial coalescing and 429 backoff.
- [api] Added a distinct notification entry for an unread agent reply.
- [mobile] Added real push notifications: banner, list entry and sound.
- [platform] Added a real Android push sender, falling back to a mock without a configured credential.
Fixes
- [api] Fixed a direct-room-with-agent route returning a duplicate room on repeat calls.
- [web] Fixed tapping a person in search opening a duplicate group instead of the existing direct room.
- [web] Fixed a streaming draft getting stuck in a newly opened room with no sequence number.
- [web] Fixed an invalid page path showing a generic error instead of a readable one.
- [mobile] Fixed a notification tap opening the wrong room or message when the app was closed.
- [mobile] Fixed three ways of opening an agent room each creating a separate one.
- [mobile] Fixed a streaming draft flowing to a device that had closed the room.
- [mobile] Fixed a "not found" reply being read as a live stream, leaving the draft hanging.
- [platform] Fixed a retried push notification triggering up to three separate vibrations.
- [platform] Fixed a streaming draft being lost when the serving node changed mid-stream.
- [platform] Fixed long notification titles being truncated incorrectly.
- [platform] Fixed a deleted account's cached credential staying valid until its natural expiry.
Improvements
- [web] Improved the notifications page with an offline-reply entry that jumps to the message.
- [mobile] Improved the notifications screen to match web: an offline-reply entry that jumps to the message.
- [web] Improved public docs: rewrote the rate-limit section for the new axis and removed dead suggestions.
- [web] Improved public docs with a path from a credential to a first delivery.
- [web] Improved the dev page's delivery filter; its CSV export now states its own scope.
- [platform] Improved OTP emails to send in the recipient's chosen language.
New features
- [api] Added agent replies to message search results.
- [cli] Added checksum verification in install.sh and the npm installer, pinned in the script itself.
Fixes
- [web] Fixed tapping a person in search opening a duplicate room instead of an existing direct one.
- [mobile] Fixed tapping a person in search opening a duplicate room instead of an existing direct one.
- [api] Fixed an accepted-but-unanswered delivery hanging forever instead of reaching a terminal state.
- [web] Fixed a streaming reply's answer being cut off at the last on-screen frame.
- [platform] Fixed a /hooks 429 refusal not stating which limit it hit in server logs.
Improvements
- [platform] Improved startup logs to state the /hooks budget actually enforced per agent.