This release ships the agent demo section on the landing page — a live card handed to an agent and played out in the browser with no React bundle — alongside a site-wide OG image with a polished layout and agent avatar. On the backend, the agent run lifecycle gains more robust card-edit handling: any card change (including colour, attachments, and removals) now restarts live runs, a racing finish can no longer drop a human's edit, and the assignment context always delivers the full card plus the waking comment even across long feeds.
New
- Agent demo section on the landing pageThe landing page now shows a real card being worked by an agent in real time. The card, its detail rail, and its comment thread are rendered from the product's own React components on the server and driven by a small vanilla script, so no React bundle is shipped to visitors. A "Play again" control resets and replays the scene from the start, and both entry-point markers pulse with a soft ripple that respects reduced-motion preferences.
a9b845c 4daf5a5 08e36b6 7667959 38e1715 - Site-wide OG image with agent avatar and polished layoutAll pages now share a default
og:image and twitter:image served from www/og.png, generated via bun run og:generate (scripts/og.ts). The image features the product wordmark, headline, support copy, and Nina's inline agent mark with an online presence dot. The generator requires the compiled stylesheet to be present and will refuse to run without it. 81be1ab dc38123 f6fb7d8 eb50401 5a0ad3e c972e76 9212e23 32f1968
Improved
- Assignment context now delivers the full card alongside the message feedThe agent's
bridge.assignment() call now returns the assignment messages, the full card data, and the card page in a single response, so the agent has complete context without a separate card fetch. The card list limit is unified under RUN_BRIDGE_LIMITS.cardListLimit and enforced consistently across all bridge endpoints. 3ef2ccf b9cf904
Fixed
- Public comments posted while an agent is parked now reach the next assignmentWhen a user posts a comment while an agent run is waiting for input, that comment is included as an instruction message in the agent's assignment context when the run resumes. Long message feeds are paginated so the waking comment always appears at the end of the delivered page, and deleting a comment retracts it from the feed.
ced8fd2 33fb7c8 - Any card edit — including colour changes and attachment changes — restarts live agent runsPreviously only certain field edits triggered a run restart. Now every card write (including colour, due date, attachments added or removed) cancels the active run with
human_followup and requeues it so the agent always sees the latest card state. The fresh claim after a restart carries the updated card version and can renew normally. 36292a8 d504d52 7ad84b8 - A racing agent finish can no longer discard a human's card editIf an agent run finishes at the same moment a user saves a card edit, the edit is now preserved regardless of the run's terminal state. A failed reconcile on the agent side also cannot cause the card save to return an error.
a64c2b3 e763182