Delete empty folders.
When a folder has no artifacts left, you can delete it from the folder page. If something is still inside, cristina tells you how many artifacts to move first. Nothing disappears by accident.
What shipped, in the order it mattered. Quiet updates for Motive's artifact wiki.
When a folder has no artifacts left, you can delete it from the folder page. If something is still inside, cristina tells you how many artifacts to move first. Nothing disappears by accident.
The in-page URL strip and summary strip are gone. Your browser address bar and the share menu already carry the link. More room for the artifact itself.
On an artifact with no comments yet, the comments control jumps straight into highlight mode. Tap or click the element you mean, then write. The panel opens once a target is selected.
The right-side markers stay hidden until there are element comments, or until you are picking a target. Empty artifacts keep a full-width reading surface.
Handle-prefixed URLs from create and update responses, and from copy/share flows, land people in the right workspace. Cross-workspace joins send the CSRF token so recipients can actually get in.
The link you copy is now /your-handle/a/the-slug. Whoever opens it lands in the right workspace, not whichever one they happened to have open. Browse your wiki and the address bar updates to this form. Old /wiki/a/:id links still resolve and quietly upgrade.
When someone opens a shared artifact signed out, sign-in says they are joining your team for that artifact. After they authenticate, they return to the artifact they were sent, not a generic home. Matching auto-join domains and pending invites let them in automatically.
Owners can change the workspace handle in settings. Every link shared at the old handle keeps resolving. The old handle becomes a permanent alias. Handles that collide with app routes stay reserved.
Click highlight, then click any element in the artifact. A heading, a paragraph, a chart, a cell. Your comment attaches to that element, tracks it as the page scrolls, and stays anchored after edits.
A column on the right holds a marker for every commented element, lined up with its place in the document. Hover a marker to light up its element. Each marker shows the thread count.
View counts on folder cards, recent, and the artifact toolbar combine team views with public visits. Open the eye menu for the team-vs-public split.
The slug field appears on create and edit. It auto-fills from the title. Change it before saving if the generated one does not fit. Edit a slug after sharing and cristina warns that the old URL will stop resolving. The permanent /a/:id URL stays put.
The sidebar and folder panel show an unclassified entry when anything sits outside a folder. Click it to list everything unfiled. It disappears when every artifact has a folder.
Hover a folder name to reveal the pencil. Rename inline. The slug stays the same so links do not break. Drag the grip in the sidebar to set order. Both changes persist immediately.
Download sits in the artifact toolbar between version history and share. It saves the raw content as .html, .md, or .txt with the artifact title as the filename.
Every new workspace includes a getting started folder covering the API, folder organization, and sharing. A short product tour runs on first login. Relaunch it from the ? menu anytime.
Search is global, not scoped to one folder. It lives in the sidebar and looks across titles and HTML content. HTML tags are stripped before indexing. Press ⌘K from anywhere to focus it.
⌘K focuses search. N opens the new artifact form when you are not typing elsewhere. Esc clears search and closes the dropdown.
/docs is a public API reference. /llms.txt is the machine-readable version agents can fetch when they need the protocol.
Credential management, email delivery, and passkeys run through WorkOS User Management. Session tokens remain cristina JWTs, so the auth middleware stayed the same.
Every artifact gets a slug from its title. Post Q3 Revenue Analysis and the URL becomes /wiki/a/q3-revenue-analysis. Share the slug in Slack. Agents keep the art_ ID. Both work forever. Collisions get a -2 suffix.
Each teammate generates their own API key in settings. Artifacts posted with your key appear under your name. Rotating your key leaves everyone else alone. Settings also builds a system prompt you can paste into your agent.
contentType markdown renders headers, code blocks, and tables inside the sandboxed iframe. contentType txt wraps content in a clean preformatted block. Same sandbox either way: allow-scripts only.
Free workspaces hold up to 25 artifacts. Settings shows the count as a progress bar. Owners can remove members. Auto-join by domain lets company emails join automatically. Consumer email providers stay out.
Click any spot on an artifact to leave a note. Annotations store as percentages of the iframe, so they hold across window sizes. The comment panel pushes the iframe. It does not cover it. Threads resolve and collapse.
Artifacts can be made public from the header menu. Public artifacts get an /a/:id URL with no login and no chrome. That URL uses the stable art_ ID, not the slug, because you cannot take it back once it is out.
The core loop: post HTML, get a URL, find it later. If your agent produced it, cristina files it. Spaces, member roles, and recent are ready on day one.
Color-coded, slug-addressed, optional. File an artifact into zero spaces or one. The sidebar updates right after creation.
art_ IDs are assigned at POST time and frozen. If you shared a link a month ago, it still works. That is the whole promise.
Renamed from htmlwiki to wiki cristina. The mark is a tilted yellow sticker with a lowercase c. The color system is warm cream paper, sunshine yellow, and chunky stamp shadows.
Variable optical sizing means it gets more expressive at scale. At 5rem it is a billboard. At 1.2rem it is a sidebar wordmark.
4px 4px 0 ink on every card and button. It feels hand-placed, like someone labeled the file.
One endpoint, one API key. Your agent sends HTML and a title. Cristina sends back a permanent URL. The response shape is frozen so pasted curl examples keep working.
Include spaceSlug in the request body and the artifact lands in the right space without an ID lookup. Missing slugs post unspaced instead of failing.
The iframe runs allow-scripts, not allow-same-origin. allow-same-origin would let an artifact read parent cookies. This constraint is load-bearing.
The HTML string goes straight into the iframe attribute. No file storage, no CDN, no second domain. Self-contained agent HTML is the common case.
Every query includes workspace_id. Retrofitting tenancy after the schema exists is painful. It goes in on day one or it never goes in cleanly.
Sign up and land directly in your wiki. No create-workspace step. The workspace gets a handle from your email. Rename it in settings.
Access tokens expire in one hour. Refresh tokens last seven days and rotate on use. The raw token only ever lives in an httpOnly cookie.
this page covers what changed for users.
api docs →