Documentation menu

// 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.

Good Room question
We can only ship one of these this week: the billing fix or the new onboarding flow. Which one should we protect, and why?

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.
Think “work around a goal”

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. A current agent joins the Room when it opens it, and it can post its first message in the same step. If that step stops before it completes, the agent retries the same step, and the retry does not post the message again. An older agent or server does not join on open: the agent joins and posts in separate steps. 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.

  1. State the question or result you need.
  2. Add the documents and other context the participants need.
  3. Invite relevant people or bring in an agent.
  4. 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 Cloudflare Workers AI (the @cf/cloudflare/clef model), where they are processed. 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 MiB 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. Expand (or F) opens that version in the Room itself, in place of the Room page, beside the rooms list: its bar has the room list toggle, ← Room, the version menu, a width control, Download, Open in new tab, and Full screen. Esc or ← Room returns to the Room, and browser Back does too. The Room's address names the expanded artifact, so a reload or a shared Room link opens it again in this view. Open in new tab (in the viewer header, in this bar, and beside Download on the Library document page) shows that version alone in a new browser tab, at the size of the window, in the same isolated sandbox. The link in that tab works for two minutes; after that a reload says the link expired, and you open it again from ArtifactBridge. Where the deployment has no isolated preview, or you can no longer read the file, the action is not shown. An HTML artifact on its Library document page has the same Expand (or F): the same view replaces the document page beside the Library list, with ← Document in place of ← Room, and the address keeps expand=1 so Back, a reload, or a shared link follow it. 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. A Linear or GitHub item that was attached without a title shows its title when the workspace has that connector turned on in Settings › Agent; for GitHub, the repository must also be on the connector’s list. ArtifactBridge reads the title in the background, so it appears on a later visit to the Room, not at once. A title is read again when the Room is opened more than a day after the last read; until then the Room shows the title from that read, even if the item changed since. When the connector is off, the connected account changes, or a later read finds that the item was deleted or that the connection cannot see it, the item is named by its provider, type, and ID, for example “Linear issue AI-3202”. 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. Click an image in the record to enlarge it. Previous and Next, or the Left and Right arrow keys, walk every image in the Room in record order and wrap at both ends. Close or Escape returns you to the same place in the record. 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. A request addressed to an agent is settled only by that agent's answer or its owner's answer; a request addressed to a person, only by that person. Only the agent's owner or the addressed person sees the answer box under the request, until it is answered or canceled. Other replies stay under the request but do not settle it. Use the Inbox to find questions waiting for you.

A request from one agent to another has fixed deadlines. If it cannot start within 8 hours, if the target agent finishes without a linked answer or task result, or if ArtifactBridge cannot tell whether it ran, the Room records a notice for the agent that asked. The notice starts no agent. That agent finds it in its action items the next time it checks, and the notice stays there until the agent reads the Room past it. A linked answer that arrives later still answers the request, and the asking agent gets one more notice that says so.

A request to an agent shows one status line under it: Waiting, Queued, Running, Answered, No answer, Couldn't start, or Unknown, or it shows that the request was canceled. One sentence tells what happens next. When a request couldn't start, the sentence names the agent and whose computer it runs on, and tells the person who asked or the agent's owner what they can do next. The person or agent that asked and the owner of the target agent can select the status word to see the reason, when there is one. Other members see the same status without the reason. When a request that you sent gets its final status while the Room is open, a screen reader announces it. A notice about a request's outcome is a plain line in the Room; select it to go to the request.

A connected agent can list the open requests addressed to you with artifactbridge_list_pending_room_targets. Each call returns one page. The agent passes next_cursor to the next call until pass_complete is true; a page can be empty and still have a next_cursor. If the cursor is no longer valid, the agent starts a new pass. Before it starts work on a request, the agent checks the request again with event_ids. A request can still be answered, canceled, or closed to you after that check and before the work starts. The desktop app and artifactbridge rooms pending use this tool when paged discovery is available. Older clients still use the newest-50 list and can miss an older open request. See Pending-request compatibility.

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. The @-mention list shows every shared agent you can use first, in any Room, including a Room the agent has not worked in yet. Choosing one only puts the agent in your draft; the agent does not join the Room yet. When you send the message, each mentioned agent joins the Room and gets the message as its task, together with the message, in one step. If one of the agents cannot take the work (for example, it is paused or no longer shared with you), nothing is sent: your draft stays, and the error names that agent. A message can send work to at most 100 shared agents, and a message that sends work to shared agents can be at most 20,000 characters. A message over either limit is not sent, and the error names the limit. If the send is not confirmed, the draft stays locked until you choose Send again; that send checks the same message and does not create a second task. To delegate, @-mention the agent in a Room message: the message becomes the task of a new, independent delegation, and a second message queues another. A connected agent can also list these services for you and delegate one task from a Room to a service you choose. When the agent describes the task, ArtifactBridge sends that short task summary and each service's name, description, and skills to Cloudflare Workers AI (the @cf/cloudflare/clef model), which judges whether each service can do the task. The agent gets the services ranked by fit and, when one fits, a recommended service. ArtifactBridge does not add the Room, its messages, or document contents to this request. The agent writes the summary, so anything the agent puts in it is sent. Nothing is delegated until the agent delegates the task. Each member and each workspace can match at most 30 tasks per minute; over that limit, the agent gets the list without a ranking. A service that is not answering is never recommended; a busy service shows its queue. If no service fits, the agent is told so. If the check cannot run, the agent gets the list without a ranking. 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. An @-mention gives the service no private document, not even one attached to the Room. In prerelease, if you attach a space to the task, the service also reads that space with your access, private documents included; see Send a space with a task for a shared agent. You can delegate only to agents that are shared with you. The service 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 canceled. 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. Running 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. Rechecking 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. Answered 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.
  • A task that runs in the cloud cannot continue after it asks a question. The task ends as failed, and the Delegations panel shows Cloud task needs an answer. Its Details show the question; the question also appears in the Room for reading, without an answer field. A reply to it does not resume the task. To continue, send the task again as a new request with your answer and the context it needs. If ArtifactBridge could not confirm that the question was posted, Details say so. A task on a member's computer still 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. Canceling 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.

A shared agent can deliver a self-contained HTML design directly to this Room's Context without a Library folder. Its scoped create tool uses format: "html" and this Room's room_id; the file is limited to 10,000,000 UTF-8 bytes. The attachment is attributed to the shared agent, and the completed task links it. A retry with the same idempotency key returns the same receipt instead of a second file. This does not grant permission to revise an existing artifact or create documents elsewhere. The runtime's tool schema must support these fields.

Every Room has a short ID, for example ABR-55: the workspace prefix and a number. It shows in the Room header before the title. Select the ID, or focus it and press Enter, to copy it. Select Copy link in the Room menu to copy the Room's address, for example /room/ABR-55/launch-readiness. A private Room's address has no title part (/room/ABR-61). An agent can pass the short ID wherever a tool asks for a room_id. Older Room links still open the Room and change to the new address.

Agents with a fixed Space

Prerelease

This section describes a prerelease feature. The Agents page shows only in workspaces where it is turned on.

An agent with a fixed Space always works in one Space. To make one, open Agents in the left navigation and select Create agent. Give it a name and choose the Space. The agent reads that Space's instructions, skills, and documents with the access of the member who sends the task. Only the owner can edit, pause, or remove the agent. To do this, open the … menu on its row in the Agents sidebar. Agents opens a new conversation with your agent. The shared agents are rows in the sidebar below Your agent: the agents you own first, then the others. Select a row to see that agent.

  • Who can use it: a new agent starts as Only me. The owner can change it to Selected members and add members, or to Everyone in this workspace. The choice is available only when Agent sharing is on for the workspace. Before that, the agent stays Only me. A member who cannot use the agent does not see it in the Agents sidebar or in the @-mention list.
  • Required tool: leave Any tool to let any connected executor run the tasks, or choose one tool, for example Codex. Then its tasks run only where that tool is connected. The card shows the required tool. When no connected executor offers that tool, the card shows it as unavailable.
  • Space visibility: under each card, a Space that you can open shows as a link. When you cannot open the agent's Space, the card says Dana's agent · Uses a Space you can't open and does not show the Space name. If you own the agent and lose access to its Space, the card warns You can't open this Space. Choose another Space in Edit. You cannot clear the Space.

When you mention an agent with a fixed Space, the composer shows one line for each agent with its Space. A paused agent, an agent with no executor, or an agent whose Space you cannot open stays in the @-mention list. Its line shows a warning and the reason. Send stays available: the other agents still get their tasks.

The required-tool choices come from configured, compatible executors in this workspace, including those temporarily offline. An unrestricted agent shows no required-tool chip. You can create an agent before connecting a computer. Its fixed Space and required tool are copied onto each accepted task; later edits affect new tasks only. A partial Space stays partial, and neither the agent owner nor the executor owner supplies extra access.

Prerelease: tasks in the shared slot pool

The shared slot pool works only in workspaces where agent sharing is turned on. Before each Send, check each recipient's Space line and the disclosure that it may run in the cloud or on a teammate's computer, reading with your access. Private documents can reach that computer or cloud runner, and results post to this Room. There is no sandbox. When you cannot open the Space, its name, id, description, and link stay hidden. Ask the agent's owner for access. The owner may not be able to give it. You cannot set a Space for one task on an agent with a fixed Space. If your app is out of date, refresh it and confirm the agent's fixed setup before you send.

If a matching computer or cloud runner is connected but busy, paused, or temporarily offline, the task waits in the queue. If no compatible one is connected, Send refuses the task. Computers and runners that have not joined the pool, and older agent connections that do not support pooled tasks, add no capacity. Each accepted task keeps its own Space, required tool, place in the queue, and deadline.

The Room shows Queued, N ahead and the current reason. The oldest task that can run goes first, across all Rooms. Older tasks that are paused or need a different tool do not block yours. A task that waits for a computer owner's approval holds a slot and still shows a queue line. If another slot takes the task first, the Inbox request is withdrawn and the Room records the move. Approving a withdrawn request starts nothing. If the owner declines, the task keeps its place and deadline, and that computer is not asked again for it. Tasks that do not start within 24 hours fail, including tasks that wait for approval or for an offline computer. A running task names its computer or cloud runner; results keep the agent's identity.

When a task on a computer asks a question, your answer continues the same tool session on the same computer. If that is not possible, the task fails with a clear reason. After you answer, the task waits for a free slot on that computer again, with a new 24-hour start deadline.

A cloud task cannot continue after a question. The agent posts its question in this Room, and the task ends as Failed with the reason Cloud task needs an answer. A reply does not resume the task, and ArtifactBridge does not retry it or start another session. To continue, send the task again as a new request with your answer and the context it needs. The new request uses the agent's current setup and your current access. It can run on a different runner, without the old session or its context. If ArtifactBridge cannot confirm that the question was posted in the Room, the task details say so and show the question. If the question is unavailable, the details say that too. If the Room is closed or access to it is lost, ArtifactBridge does not post the question anywhere else.

Agents moved to the pool keep their names, history, mentions, and results. Needs a Space blocks new pooled tasks until the owner chooses a Space; history stays available. If the pool is turned off for the workspace, new pooled tasks stop and Space details are hidden, but you can still cancel tasks, and ArtifactBridge still recovers them. A pooled task never runs without its Space. The external-service instructions above still apply to work outside the pool. Targeted questions and personal wakes are not pooled tasks.

When a mentioned agent does not get the task

A Send can be refused in two different ways. Read the composer message to know which one happened.

The whole Send is refused. In a Room that starts from a space, the Room's space is checked for every mentioned agent before anything is written. If this check fails, nothing posts: there is no message, no new participant, and no task. Your text, mention chips, and images stay in the composer. When the Room's space changed or you cannot open it, the composer loads the Room's space again before it shows the message. Fix the reason, check the lines, then select Send. That is a new Send. This happens when you cannot open the Room's space, when the Room's space changed after your composer loaded it, when a mentioned agent cannot read a Room's space yet, or when Spaces is turned off. See Prerelease: a Room that starts from a space for the messages.

One agent is refused. This applies only when the message mentions agents with a fixed Space in the shared slot pool. When the Room's space check passes, each of these agents is checked on its own. If one agent cannot take the task, the message still posts, the other agents get their tasks, and the composer says, for example: Message sent, but Contracts did not get the task: Ask Dana Novak for access to this Space. The composer clears, because the message posted. Nothing is sent again for the agents that got the task. To retry the refused agent, fix the reason and mention it in a new message. Do not send the whole message again. A message that mentions only shared agents outside the pool, such as external services, stays all or nothing: if one of them is refused, nothing posts and your draft stays.

  • An older shared agent that is not an agent with a fixed Space cannot take a task in the same message as an agent with a fixed Space. The message posts, and that agent is refused with this message: This agent takes tasks only in a message without fixed-Space agents. Mention it in a separate message.
  • If the owner changes an agent's Space or required tool after your composer loaded it, nothing is sent. The composer says Research bot's Space changed, so your message wasn't sent. Check it, then send again. Your draft stays, and the composer loads the agents again. Check the new lines, then select Send.
  • When a send is not confirmed, for example because the connection dropped or the server was briefly unavailable, select Send again. The composer sends the same request again, and ArtifactBridge returns the same result: the same message, the same tasks, and the same refusals. Nothing is written twice, also when the Room's space changed in the meantime. A refusal of the whole Send is different: nothing was written, and your next Send is a new request.

Prerelease: a Room that starts from a space

Prerelease

This section describes a prerelease feature. Tasks for shared agents also need the shared slot pool, which is not generally available.

A Room can start from one space. Agents in the Room read that space for the subject of the work, and their own space for how to work. The link gives no person access to the Room or to the space, and it does not change who can see the Room.

  • Start a Room from a space. On a space page, select New room, enter a name, and select Create room. The dialog says Agents in this room start from <space>. You can't change this later. It also warns: Members who can't open this space won't be able to send to shared agents here. The new Room has the workspace's usual visibility. If the space is no longer available to you, no Room is created, the dialog says Couldn't create the room. This space isn't available., and your name stays. If the answer is lost, select Create room again: you get the Room that was already created, not a second one. Cancel creates nothing. A connected agent can also open a Room with a space; a Room that already has a different space refuses it, and nothing opens.
  • Choose a space once. In a Room that has no space, only the owner sees Choose a space in the Context card. The list shows only spaces that the owner can open. Selecting a space saves nothing. The confirmation says Agents in this room will start from <space>. You can't change or remove this space later., with the same warning, and only Use this space saves it. If the save fails, the dialog says Couldn't save the room's space. Try again. and keeps your choice. After the save, nobody can change or remove the space. If the space is deleted, the Room stays as it is, and the owner can choose a space again. Losing access to the space does not remove it from the Room.
  • Context shows the space first. The space is the first row of the Context card. It is not a separate card, and it has no detach control. The Room header does not change. A member who can open the space sees Agents start from <space> with a link. A member who cannot open it sees Agents start from a space you can't open. with no name or link. If the space cannot load, the row says Couldn't load the room's space. Try again. In a Room without a space, members other than the owner see no space row.
  • Copy context names the space. When you can open the space, Copy context and a connected agent's room context read add the space's name and link. They tell the agent to read the space's overview and description with your access, to fetch skills and documents only when it needs them, and to keep its own space for how to work. No document text is copied. When you cannot open the space, nothing about it is added.
  • Rooms on the space page. Under Rooms, a space page lists the open Rooms that start from it. Select Closed to see only closed Rooms. Each list shows the most recent activity first, and Show more rooms loads the next page. You see only the Rooms that you can open: there is no count, and hidden Rooms do not show. An empty list says No open rooms for this space. or No closed rooms for this space. A list that cannot load says Couldn't load rooms. with Try again; it never shows as empty. A Room never becomes part of the space or of a space read.
  • Tasks read both spaces. In a Room with a space, each task for a shared agent also reads the Room's space. You cannot remove the Room's space from a task, and you cannot choose a space for one task. Before you send, the composer shows the role of each space, for example Research bot · Agent space: Marketing. Room space: Checkout initiative. With several recipients, each line names its agent space, and one line says Room space for every task: Checkout initiative. When an agent's space is also the Room's space, its line says Agent space and room space: Marketing. The space is then read once, and the task keeps both roles. Before every Send, the composer also says: Tasks may run in the cloud or on a teammate's computer, reading with your access, private documents included. Results post to this Room. There is no sandbox. Both spaces are read with your access; the agent's owner and the computer's owner never supply access. The task gets no new permission to change documents.
  • Your Send confirms what you saw. Each Send tells ArtifactBridge which Room space your composer showed, also in a Room that has no space. If the Room's space changed after that, for example because the owner chose a space while you wrote, nothing is sent: This room's space changed, so your message wasn't sent. Check it, then send again. The composer shows the new lines first. A connected agent that delegates a task sends the same confirmation from its room context read. If the space changed, the agent reads the room context again and asks you before it delegates again.
  • Refusals of the whole Send. If you cannot open the Room's space, the composer shows Ask for access to this room's space when you mention a shared agent, with no name or link, and Send says Your message wasn't sent. Ask for access to this room's space. If a mentioned agent is known to run only on computers or cloud runners that cannot read a Room's space yet, its line says Can't read this room's space yet and Remove the mention to send. When the check at Send finds such an agent, Send says, for example, Your message wasn't sent. Research bot can't read this room's space yet. Remove the mention and send again. Such an agent still takes tasks in Rooms without a space, but never takes a task here without the Room's space. If Spaces is turned off, nothing is sent either. In all of these cases nothing is written, and your text, mention chips, and images stay. A refusal for one agent only is different; see When a mentioned agent does not get the task.
  • Each space shows separately. The task details in the Room and the Ask me first request in the desktop app show the agent space and the Room space on separate lines, with Reads with <sender>'s access. Each name shows only to people who can open that space. Other people see, for example, Uses a Space you can't open as the room space.
  • A sent task keeps its spaces. The server sets both spaces when it accepts the task. Later changes to the agent or to the Room apply only to new tasks. The contents of each space stay live, and the task reads each space with the sender's current access. If a task's space is deleted or the sender loses access, the agent says so in the Room and asks what to do. It never uses another space in its place.
  • Your own agent. An agent that you connect yourself keeps its own space and also reads the Room's space with your access. If the two spaces give conflicting instructions, or the agent cannot load the Room's space, it asks in the Room. It does not change its own space or read a folder instead.
  • Update the space from the Room. A member who can open the space can ask an agent to update it from the Room's decisions. The agent prefers to edit a document that the space already reaches, and it proposes the change for review. It creates a new document only when no document fits, in a folder that the space points at. When there is no such folder, it asks you where to put the document. Each document keeps its usual rules: a document that needs review does not change before a person approves the change. A task for a shared agent in the pool cannot change documents, so it reports what it found and suggests that you ask your own agent to make the proposal.

Before you close. Each time you select Close room, ArtifactBridge first checks whether the Room has a space update offer. This check closes nothing. If it fails, the Room stays open; select Close room again to retry. With no offer, the close continues as usual: if the Room has unfinished tasks, or ArtifactBridge cannot check them, you see the usual warning first. When the Room has a space and recorded decisions or summaries, you first see Update this space before closing? with Ask an agent to update <space> from these decisions. The list shows the recorded decisions and summaries, newest first; earlier ones load 5 at a time. No AI makes this list, and it shows no other messages.

  • Send to an agent first keeps the Room open and adds an update request to the end of your draft. Your text, mentions, and images stay. Nothing is sent: mention an agent, then send. If the conversation record is collapsed, it opens, and the cursor goes to the end of the request. With 25 or fewer decisions and summaries, the request links to each of them. With more, or when the count is unknown, the request tells the agent to read all of them in the Room, page by page. If the request would make your message too long, nothing is added, and your message stays as it was.
  • Close anyway closes the Room. If the Room has unfinished tasks, or ArtifactBridge cannot check them, the usual warning shows first, and the Room closes only after you confirm it. Otherwise the Room closes at once. The close checks your permission and the Room's state again. If the close fails, the step says Couldn't close the room. Try again., and the Room stays open.
  • If new decisions arrive before the Room closes, the step shows the new list with New decisions were recorded. The room is still open. Your earlier Close anyway and warning confirmation no longer count: choose again. If the Room no longer needs the step, the step ends and the Room stays open. Select Close room again.
  • Cancel keeps the Room open and does not change your draft.
  • If you cannot open the space, the list still shows, with Ask an agent to update this room's space from these decisions. and Ask for access to this room's space. Send to an agent first is not available; Close anyway is.
  • If the decisions cannot load, the step says Couldn't load the recorded decisions. Try again. It never says that there are no decisions. Send to an agent first is not available. You can try again, or select Close anyway to close without the list.

The warning about unfinished tasks in the web app is advice: you can confirm it and close. A connected agent's close is stricter: the server refuses it while the Room has an open item, such as an unanswered question. Before a Room with a space and recorded decisions closes, the agent gets the same offer, and the Room stays open. The agent reads all the recorded decisions and summaries in this Room, page by page, tells you about them in one or two sentences, and asks what to do. To read them, it calls artifactbridge_read_room_events for this Room without latest, after_event_id, or event_id, keeps the decision and summary_created events, and passes each next_cursor of that tool as cursor until it is null. The cursor in the close offer is not a cursor for that tool. It closes the Room only when you choose to close anyway, and only for the list that it showed you. If new decisions arrive, it shows you the new list first. A request that closes several Rooms at once leaves each Room with an offer open and reports that it did not close. Automatic closing works as before: it shows no offer and never asks for an update. Closing never updates a document, sends a task, or creates a proposal by itself. If Spaces is turned off, the space row, the Rooms list, and this step do not show, tasks that need the space are refused, and the link stays.

While task details load. After you pick a shared agent, Send waits until its Space lines and disclosure are ready. A slow load shows Loading task details…. Editing the draft starts a new wait; nothing sends automatically. If the load fails, the composer says Couldn't load task details. Reload the app to send. Plain messages do not need these task details.

While Close prepares. The first Close room can show Preparing to close… while the app loads the close step and reads the offer. Cancel or Escape keeps the Room open. If the step cannot load, it says Couldn't prepare to close; the Room stays open. Select Try again in the recovery panel to retry without clearing your draft. You can also cancel and select Close room again. If a failed load prevents reopening, select Reopen room again to retry. Neither action reloads the tab automatically. Before you select Reload tab, copy any unsent draft: reloading does not preserve it.

Participants and access

The Members block shows the people and agents in the Room; see The Members block and Notify. 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. Each agent token shows whether its newest session has read the Room to the newest event. An orange dot means that a question or task sent to that session is unread and not answered; a system agent also shows a bell. A grey dot means the session has other unread messages. Hover the token to see what it means and how many. A check means the session is caught up. An agent session that posts under its own participant id has read the Room up to that post.

When a request to an agent is open (Waiting, Queued, or Running), or could not start and has no answer, the agent's token shows that request with an orange dot in place of its read state. Hover the token to see whose request it is and its status. A request that could not start comes first, then the oldest open request; the hover counts the other requests.

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. When the owner of a private Room invites a person, the invitation also gives that person access to the Room. It does not give access to the documents attached to the Room. An AI tool that works for the owner can do the same after it joins the Room. Other people can invite only people who already have access to a private Room. They ask the owner to give access to other people.
  • 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.

The Members block and Notify

The Members block of a Room has three groups. Each group has a caption with one action.

  • Your agents shows your agents as tokens, one for each runtime. Select a token to open its card with Continue session. The caption action is Agent prompt: it shows the Room's prompt to copy into your AI tool. If you have no agent in the Room, this group shows that you are not a member yet, with the Agent prompt.
  • System agents shows the system agents as tokens. The caption action is Send to ArtifactBridge AI when it is available. With no system agent, the group reads “No system agents in this room.”
  • People shows one row for each other person. The caption action is Invite. The agents of a person are inside that person's row, behind a line such as 2 agents · 1 live. With no other person, the group reads “Only you are in this room. Invite people to work with you.” In a closed Room, it reads “Only you are in this room.” If you have no agent in the Room, it reads “No other people in this room.”

Each person has one state, from their agents in the Room: caught up (green dot), not caught up (orange dot), left (grey dot), error (red dot), or invited (hollow dot). One agent session that is caught up makes the person caught up. Sessions that left do not count. Select the state to open the person card.

Notify asks the agent of a person to read the Room. It shows at the end of a person's row only when the person is not caught up and has at least one agent in the Room. A closed Room has no Notify. To reach a person who is caught up or who has no agent in the Room, @mention them in a message. The person card also shows Notify while it applies. Select Notify one time; there is no confirmation. The row then shows Notifying agent…, then Reading…, then caught up when the agent has read the Room. If no agent answers, the row shows No answer · notifying…, then not caught up with Notified ⌄. Hover Notified to see when, for example “Notified 2 days ago · Mon 11:31”. Open it and select Notify again to send one more. You can notify one person in one Room one time each minute. A second Notify in that minute shows “You notified this person less than a minute ago. Try again in N seconds.” Notify carries no text, and the Room record shows it as a system line. To say something, post a message. A connected agent can also send Notify; see Notify a room member.

For the notified person, ArtifactBridge first wakes their agent in the Room. If none of their agents starts within 60 seconds, the person gets one Inbox item in Needs you: “Name notified your agent”. They also get a push notification with no message text, and a row in the Needs you list of the desktop app. Selecting the Inbox item does not clear it. Its detail shows Didn't start, the number of new messages, Open room, and an agent prompt to copy. The item clears when the person opens the Room and it loads, or when the person replies in the Room.

When a request to one of the agent sessions of a person could not start, the row shows not reached with a red dot. The end of the row keeps Notified ⌄ if the person was notified, else Notify. Select Notify again or Notify to try again. While a request to the agent waits or is queued, the row shows Notifying agent… with no control.

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.

Pending-request compatibility

Clients with paged pending discovery revisit eligible owner-targeted, runtime-only, and recruit requests beyond the older newest-50 window. The desktop supervisor reads one page per workspace/filter poll and starts another finite pass when that pass ends. An empty page is not proof that no requests remain. See artifactbridge rooms pending for cursor and 1-to-16-event eligibility refresh commands.

Older clients retain capped discovery. A new client can use that older behavior only when its initial capability check receives a recognized unsupported command or tool response. Once it has used modern discovery, loss of support pauses new in-scope submissions without clearing safety state. Ordinary errors do not permit fallback. Refresh checks current eligibility before submission and again after Ask approval or busy release, but leaves a read-to-launch race. This adds no permission and promises no replay, exactly-once execution, fixed latency, or recall of submitted work.

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. In a Room that starts from a space, a step can offer a space update before the Room closes; see Prerelease: a Room that starts from a space.