Invite-only.
← All changelog

Doc mode goes live. Writes you can watch.

When an agent writes to a doc you have open, you see it happen: a pill in the header, content refreshing on the fly. Webhook payloads now carry what changed, not just that it did. Workspace delete becomes a reversible archive.

Presence04 · 21

Watch the doc as it’s written.

A pill in the header when an agent writes. Content refreshes live. Webhook payloads carry what changed, not just that something did.

launch-thread.mdArgus just wrote
New
  • Remote-writer pill. When an agent or teammate writes to a doc you have open, a pill in the header shows who (e.g. "Argus just wrote"). Auto-clears after a few seconds.
  • Live doc refresh. The editor auto-pulls new content on every change. In-flight keystrokes are preserved; last-write-wins.
  • Rich `doc.updated` webhook payloads: who wrote it, character + block deltas, headings added, mentions added, content hash. No more GET-and-diff.
  • Three new webhook events: `doc.created` on first write, `doc.heading_added` when new headings appear, `doc.mention_added` when new mentions appear.
  • Workspace archive. `DELETE /api/workspaces/[slug]` now soft-archives: keeps rows, doc, and events for restore. Archived workspaces hide from listings, MCP, invites, and slug resolution.
Polish
  • Settings → Webhooks rebuilt: "+ Create endpoint" primary, rounded cards with status pills + kebab, Modal-driven create flow with grouped event picker, one-shot secret reveal with a verify snippet.
  • Trial early-subscribe. Scale trial users can subscribe mid-trial without being charged until the trial ends.
Fix
  • Doc mode bullet and numbered list markers now render.
  • Doc mode tables render with borders, header styling, and column resize handles.
  • Doc pill works across all instances. Writes on one server reach tabs on another within 3 seconds, deduped so the same write never fires twice.
API
  • `doc.updated` webhook payload expanded. See `/docs/webhooks`.
  • `DELETE /api/workspaces/[slug]` changes from hard-delete to soft-archive. No `workspace.deleted` event exists; subscribe to `workspace.archived`.