// How-to
Work in Rooms
A Room is a shared conversation around one piece of work. People and agents can ask questions, bring in context and record the decision where everyone can find it later.
Use a Room when the answer needs other people
If an agent reaches a decision it should not guess, it can ask the right person in a Room and continue from the real answer.
What belongs in a Room
- A question that needs a person or another agent.
- The evidence people are using to decide.
- The decision once it is made.
- A proposed document change that came from the conversation.
A Room is not another general chat inbox. Open one when the conversation should stay attached to a specific piece of work or decision.
Start with a clear task
Use a Room for a discussion that should survive a single AI conversation: a project decision, review, investigation, or handoff. Start from the Rooms view or ask a connected agent to open a Room for the work. Give it a specific title and goal. In a workspace that has not held a Room yet, the Rooms view shows a prompt to copy into your connected AI tool; it opens your first Room and asks you one question in it.
- State the question or result you need.
- Add the documents and other context the participants need.
- Invite relevant people or bring in an agent.
- Ask participants to record decisions and results in the Room.
When an agent asks before it opens a Room
Rooms are shared workspace space. When a connected agent opens a new Room for untracked work (work with no Linear issue, GitHub pull request, or ArtifactBridge document), ArtifactBridge can check whether the work belongs to your job or company. The check sends the Room title, the brief, the workspace name, and the request that the agent reports to TypeSafe. The request is not stored. If the work looks personal or unrelated, a current agent asks you before it creates the Room. Say yes to create it, or no to create nothing. Older agent tools still open the Room without asking. Rooms for tracked work and Rooms that already exist are never checked. If the check is not available, the Room opens without asking. The agent reports the request, so the check prevents accidental Rooms. It is not an access control.
Use context and the conversation record
A Room attachment is a reference: an attached document stays a document in the Library, except a Room-scoped HTML document, which is Room context only. An attached image shows a thumbnail in the Context card and opens in a viewer inside the Room, with its versions, a link to the Library document, and a download of the exact version shown. Add context lists documents, images, and HTML design artifacts; Upload image or HTML… adds a PNG, JPEG, WebP, or GIF (3 MB or smaller) as a draft image you own and attaches it in one step. You can attach your own draft images; other working documents stay in the Library until they are governed. A self-contained HTML design artifact (a prototype, a visual comparison, an HTML deck) is Room context too: Upload image or HTML… adds one .html file (10 MB or smaller) as a draft you own and attaches it in one step, or a connected agent can create one directly for a Room by setting format to html and passing that Room's id. A Room-scoped HTML document is context, not a Library document: people open it from the Room, and it does not appear in the Library, document list, or search. Omit room_id only when a person asks for a standalone HTML document in the Library. HTML documents created before this change stay in the Library; manage or archive them there if needed. Share a design that has several screens as one HTML file: the whole flow in order, with each mockup image embedded in the file, a caption, and the approval state of each part. The preview cannot load other files, other pages, or frames, so a page that links to separate screens shows nothing. A revision is a new version of the same file. The Context card lists it as HTML and loads a small thumbnail of its latest version by itself. The thumbnail draws in the same isolated sandbox and runs none of the file’s scripts, so a page that builds itself with script shows only its static part there. When the thumbnail cannot load, the card shows a code icon instead. A page that sets no background of its own shows the same icon behind its content; that thumbnail loaded, and the viewer shows the page in full. The in-Room viewer opens the preview at once, with the version, a Source link to the document’s own page, and a download of the exact file in its header. The preview runs only inside an isolated sandbox on a separate preview origin: no web requests, no forms, no popups, and no access to your session. When a deployment has no preview origin, the viewer shows a card with the description, size, and version, and the download instead. One limit applies: a browser lets a page open a WebRTC connection, and ArtifactBridge cannot block it. An artifact can use that connection to reach a server its author names, and that server sees your network address. Open an HTML artifact only from people and agents you trust. The document editor does not open HTML artifacts; a new version is a new shared file. The record keeps the version that was shared: the attach line names it, a later version adds a “updated to” line, and a message can name an attachment at the version its author looked at. A message can name only a version that exists in the document. If a named version is later removed, the viewer shows it as unavailable and does not show another version in its place. People who cannot read a document see a Restricted reference without its versions. A connected agent can remove a document that was added as context when it works for the Room owner or for the member who added the document. The removal takes only the reference out of the Room: the document, its versions, and its access stay, and the record keeps the earlier lines and adds a “Context removed” line. A Library document stays in the Library. A Room-scoped HTML document does not move into the Library: it stays unlisted, and only a direct link or its id opens it. After a removal, earlier lines no longer show version numbers for that item. The item that the Room was opened for cannot be removed, and a closed Room keeps its context until it is reopened. The Room itself has no remove control yet. Every item in the Context card opens in the viewer inside the Room. A Markdown or CSV document shows the version that was shared with the Room, and a note when the document has a newer version; Open document goes to the Library. A Linear issue, a GitHub pull request, or another external item shows its source, type, and ID, and Open goes to that item. An item with no destination shows why, and what is known about it. A Restricted item shows only that it is restricted. The last item, Room brief, shows the context that ArtifactBridge gave the agents when the Room opened: the summary, the facts, the open questions, and the sources. The “Context published” line in the record names that context and opens the same brief. When nobody wrote a brief for the Room, the Room shows the summary of that context under the title, with its sources. The conversation record holds messages, questions, replies, progress, failures, and summaries. Use the Room’s brief and current summary to understand the discussion, then read the supporting messages before deciding.
Ask and answer in the right thread
Address a question to the person or agent who should answer it. Reply to the question itself so the response remains connected to the request. A general message elsewhere in the Room may not settle the pending item. Use the Inbox to find questions waiting for you.
Delegate work to an external service
A workspace can register external AI services that speak the A2A protocol (see Connect an external A2A service). A published agent appears in a Room under the name set in Settings; the Room never shows who owns it. To delegate, @-mention the agent in a Room message: the message becomes the task of a new, independent delegation, and a second mention queues another. A connected agent can also list these services for you and delegate one task from a Room to a service you choose. The Room records the task. The service receives short-lived access limited to that Room, to the workspace-visible documents, and to the private documents you list explicitly. It never receives your credentials.
- The Delegations panel in the Room shows each delegation with its service, requester, and state: queued (with its position on the service), delivery uncertain, status unknown, working, importing result, waiting for input, resume queued, done, failed, cancel requested, cancellation timed out, or cancelled. Each delegation is independent; ending one does not affect another. If the service is not answering, a queued delegation says so and waits; nothing is sent until the service is reachable again.
- ArtifactBridge asks the service about running work about once a minute and shows Last checked and, when the service reported a change, last progress on the card. Working means the service confirmed the task is running at the last check; it is not proof of progress, and there is no time limit on confirmed work. Status unknown means the last check did not reach the service, or the send was interrupted before the service acknowledged it. The work is not assumed stopped: its slot stays reserved, nothing is resent, and the next check retries.
- Importing result means the service reported that it finished and ArtifactBridge is retrieving and recording the output under the Room's rules. Nothing is rerun. If no output can be retrieved, the delegation is recorded as failed, never as successful.
- If a send could not be confirmed, the delegation shows Delivery uncertain and keeps its slot. The member who delegated the task or the Room owner can choose Reconcile on any running delegation, on a pending cancellation, or on a cancellation that timed out, to ask the service now. ArtifactBridge records the answer; it never sends the task again.
- The result arrives in the Room as one task result from the service. While it works, the service can post messages, evidence, questions, and images in the Room under its own name; the task result links those contributions instead of repeating them. Done means the service finished; it is not acceptance. Review and approval use the existing rules.
- If the service needs more information, a question addressed to you appears in the Room. Any Room participant can reply to that question. The service continues with the replies.
- The member who delegated the task or the Room owner can cancel it from the panel. Other participants can post a request to cancel. Cancelling ends the service's access to the Room at once and asks the service to stop. Work the service is already doing keeps its slot and shows Cancel requested until the service confirms. If the service has not confirmed five minutes after the request, the delegation shows Cancellation timed out: its slot is released, its access stays revoked, and the remote process may still be running. A result that arrives later is recorded on the delegation without reopening it. ArtifactBridge cannot guarantee that the remote process stops.
- Closing a Room with pending delegations shows a warning first. Closing makes them non-executable, revokes their access, and requests remote cancellation. A result that arrives after the Room is closed stays visible in the closed Room as a late result, without reopening it.
Participants and access
The participant list shows people and agents involved in the work. An agent is associated with a member and a tool. A Room reference does not automatically grant access to every attached document. An agent that only inspected a Room is different from an active participant. Before an agent joins, a new Room with no status shows one line in place of the member list and the status: “Waiting for your agent to join.” Invite is on that line when you can invite members.
Invite people to a Room
The Members in the room card is a plain list. Select Invite above the card to open one field inside it: Add people by name or email. Select Invite again, press Escape, or click outside the card to close the field. A closed Room has no Invite button.
- A name finds a person who is already in the workspace. Select Add to room. The person gets a notice in their Inbox and shows in the card as Invited · not here yet until they open the Room. This does not start their agent. A person who is already in the Room shows dimmed and cannot be selected. A current member invited to a private Room still needs access to that Room from its owner.
- A full email address that matches no member invites someone new. The option states the effect before anything is sent: the person is new to the workspace and gets access to this Room when they join. Only the owner of the Room can send this invitation. Other people can add current members.
A person invited by email shows in the card with a dashed envelope and Invited to your company · pending. The second line states that they get access to this Room when they accept. Nothing is shared before acceptance. When they accept, they join the company as a Member and land in the Room. For a private Room, they get access to it at that moment, if the inviter still owns it and the Room is still open. Their pending row then becomes a normal member row in the card. If the Room was closed in the meantime, they join the company without access to it, and the card no longer lists them. Hover the row to Resend or Revoke. A resend makes the earlier link stop working. Revoking cancels the person's whole company invitation and leaves no Room access. After an invitation is sent, a status line offers Copy invite link once; the link works for the invited address only. See Invite from a document, folder, or Room.
Continue a Room with your own agent
Open Send to agent in the Room header. Resume one of your saved local sessions, start a new Codex CLI or Claude Code CLI session, open a supported desktop AI app, or send the Room to ArtifactBridge AI. The options depend on the platform, Room state, and available agent. See Work with local agents for the full instructions.
Organize related work
Use tags to group Rooms by topic. Related Room links can describe dependencies, parent work, or duplicates. Save frequently used Rooms for your own navigation. Keep a Room title focused on its work and its summary focused on the current outcome.
Close and reopen
Use More room actions → Close room after the work and pending requests are resolved. The Room remains readable. Use Reopen room to continue the discussion later. If closure is blocked, resolve the open items first; closing a Room is not a substitute for answering a pending question.