DorkOS 0.66.0
Rooms become real shared workspaces where people and agents edit and merge files together, agents learn to speak only when they have something to say, scheduled tasks pick which runtime and model they run on, and the desktop app stops going black or lying about updates.
This release turns rooms into a real shared workspace: a room can now hold its own files, and people and agents edit them side by side, with DorkOS stepping in only when two edits actually collide. Agents get a new kind of judgment, choosing to answer, react, or stay quiet instead of posting every single time. Scheduled tasks can now say which runtime and model they run on. And the desktop app got two long-standing headaches fixed: a window that fails to draw now recovers on its own, and "Restart to install" finally installs.
Highlights
Rooms grow real files
A room can now hold its own files that people and agents view, edit, and merge — with conflict handling when two edits collide.
Agents decide when to speak
With the new experiment on, an agent in a room or DM can answer, react with an emoji, or stay quiet instead of posting every turn — and a routing gate (on by default) stops agents burning turns reading messages plainly meant for someone else.
The desktop app stops going black — and stops lying about updates
A window that fails to draw now recovers itself, and "Restart to install" actually installs.
Scheduled tasks pick their own runtime
A task can now say which runtime and model it runs on, right in its Advanced settings — and its run history records what each run actually ran on.
All Changes
Added
-
Sending a message to a room now tells you who it went to. The reply from the server names the agents the room asked to reply, and names the ones that will not be answering along with the reason — the back-and-forth hit its reply limit, that agent has already taken its turns in this exchange, or the agent is no longer set up on this machine. It is the room's first answer, not its last: if the room later changes its mind about one of those agents, it says so in the conversation the way it always has. A chat window can now explain why nothing is happening instead of just sitting there (DOR-786)
-
There is now a ceiling on how many turns your agents can start by messaging each other. Every route into an agent — another agent, an outside system, a webhook answering back, a scheduled task running — is counted in the same place, so two agents told to keep each other posted stop after a while instead of talking all night. It ships at 1,000 turns an hour for any one agent and 5,000 across DorkOS, the same allowance rooms have. When it stops something, it says which limit it was and the message stays in the agent's inbox to be read later. A turn DorkOS accepted but couldn't run, because every slot was busy, doesn't count against you. Change either number with
dorkos config set relay.maxAgentTurnsPerAgentPerHour/relay.maxAgentTurnsTotalPerHour, or set them tonullfor no limit at all — but note that0stops your scheduled tasks too, since they start turns the same way (DOR-791) -
Search results from your Claude Code and OpenCode chats now open on the exact message you searched for, the way channel results already do. The message sits in the middle of the screen, so you can read what was said around it. When DorkOS can't find the message, from an old link or a chat that has changed since, it opens the chat as before (DOR-1579)
-
Rooms that have files of their own now show them, in the room panel. The list is read-only for now, and every entry says who last changed it and when. Rooms without files of their own look exactly as they did.
-
Files can be opened straight from a room's list: text and markdown show in place, and anything that can't be shown — a picture, something too big, a link — says so plainly.
-
A room's file list hides the machinery by default — dotfiles,
node_modules, and the folders your tools keep for themselves — with an eye button to show it again. The session Files panel already hid its own; now both do, and one button means the same thing in both. -
Your agents can now find a room by its name, so "post that in #backend" or "put it in my DM with Ana" works without you looking up an id for them. They can also ask which of their rooms a particular person is in — which is how an agent checks whether a direct message with someone already exists instead of opening a second one (DOR-1610)
-
An agent can now see a room in full before it speaks: what the room is about, and everyone in it, with each person's @handle and whether they are a person or another agent. It only works for rooms the agent is actually in — a room you never added it to stays invisible, exactly as it was before (DOR-1610)
-
A scheduled task can now say which agent runtime it runs on — Claude Code, Codex or OpenCode — which model, and how hard that model thinks. Pick them under Advanced settings when you create or edit a task, or set them in the task's file, over the API, from the
dorkos task createcommand, or by asking an agent to make you a task with them (DOR-1615, DOR-1347) -
The task form tells you when a choice no longer works: a runtime you have not turned on, or a model that runtime does not offer — which is what you see if you pick a model for one runtime and then move the task to another. It never drops the choice for you (DOR-1615, DOR-1347)
-
A task that runs somewhere other than its agent says so on its row, and nowhere else — the tasks that simply follow their agent stay quiet (DOR-1615, DOR-1347)
-
Leave all three unset and nothing changes: the task runs on whatever its agent runs on, which is what every scheduled task did before. Setting one is an override, and clearing it goes back to following the agent (DOR-1615)
-
Run history now records what each run ran on, not what the task says today. Move a task to a different runtime next week and its old runs still report the truth about themselves (DOR-1615, DOR-1347)
-
An agent can merge its work into a room's files (DOR-1598)
-
Your Codex and OpenCode agents can now use the same DorkOS tools your Claude Code agents already have — posting in rooms, reacting with an emoji, reading back what was said, and remembering things between sessions. It is off to start with: turn on DorkOS tools in every runtime in Settings under Experiments, and it takes effect on those agents' next turn. Expect their turns to cost a little more, since they now carry a longer list of tools (DOR-1613)
-
When DorkOS cannot get its screen working, it now shows you a page that says so instead of leaving you with a black rectangle. It offers you three things: start over, reset the window and restart, or save a report you can send us. Your projects, your sessions and your agents are not touched by any of them — they live on your computer, not in that window (DOR-1453)
-
Agents can manage rooms when you switch it on — open a channel or a direct message, bring people and agents in, take them out, rename a channel, and leave a channel they are finished with. It is off for every agent until you turn it on, in that agent's own Tools settings. (DOR-1611)
-
This switch is a lock, not a hint. Unlike the four tool groups beside it, turning it off blocks the calls: the agent is refused and told to ask you. Only you can change it — an agent cannot turn it on for itself. (DOR-1611)
-
Whatever you switch on, an agent can never remove you from a room, and any room holding two agents holds you too. It cannot rename your home channel, and it cannot leave a direct message — those stay until you archive them. (DOR-1611)
-
An agent can name you and your other agents the way the app does — by @handle, or by the id it sees on a room's member list. You do not need a handle of your own for it to put you in a room. (DOR-1611)
-
An agent cannot rename a direct message, whichever way it asks: a direct message is named after who is in it. It can still write the topic. (DOR-1611)
-
If you launch DorkOS from the window that opens when you double-click the download, it now offers to move itself into your Applications folder, so updates keep working. An app run from that window can't update itself, which is the difference between getting new versions and quietly never getting one again. DorkOS asks once, takes no for an answer, and doesn't ask again unless you move it somewhere else. Mac only. (DOR-1495)
-
Your agents can decide when to speak. Right now, whatever an agent writes during its turn in a room gets posted, so it answers every single time it is triggered. With Agents decide when to speak on, it chooses instead: it can answer, it can just react with an emoji, or it can decide nothing needs saying and stay quiet — and its thinking stays in its own session rather than landing in the room. It works the same way in direct messages, where an agent could not choose before at all. It is off to start with: turn it on in Settings under Experiments, and for Codex and OpenCode agents turn on DorkOS tools in every runtime first (DOR-1613)
-
When you ask an agent something and it decides not to reply, the room says so — one line, "Ana read this and did not reply", so you are never left wondering whether it saw you. When nobody asked and an agent simply had nothing to add, the room stays exactly as it was and the "working" pill fades out saying it finished with nothing to add (DOR-1613)
-
A new setting caps how many messages one agent may post into a room during a single turn, so a single answer cannot arrive as nine bubbles. Three by default, in Settings (DOR-1613)
-
The Files section of a room now tells you when somebody has work the room hasn't got yet. Each agent in a room with files works in its own copy of them, and that copy can sit there for days: the badge names who is holding something, and hovering it says whether that is commits nobody merged or changes nobody committed. It shows up only when there is something to see (DOR-1599)
-
Agents working in a room's files are now told where they are and what to do there. Every turn in one of those rooms says which copy of the files the agent is working in, where the room's own copy is and that it must not write there, how far the room has moved on since it last looked, how to catch up before editing, and how to hand finished work back to the room (DOR-1599)
-
A room that has files of its own now shows them in the room panel, and you can open one to read it. Each file says who last changed it and when, and the room's ROOM.md sits at the top where you can find it (DOR-1600, DOR-1601)
-
You can now edit a room's markdown files in DorkOS and save them. Each save is one entry in the room's history, with your name on it, so the room can always say who wrote what. Other kinds of file are still read-only for now (DOR-1601)
-
If somebody else changes the same file while you have it open, DorkOS will not quietly write over their work or throw yours away. It tells you who got there first and what they said they were doing, and you choose: open their version, or save yours over it (DOR-1600, DOR-1601)
-
If somebody changes a room's files outside DorkOS — in a terminal, say — saving in that room stops until it is sorted out, and the room now says so instead of just refusing. It lists what changed and gives you two ways out: keep it all as one saved change, or throw away exactly the files you tick (DOR-1600, DOR-1601)
-
Saving a file that is too large now says so plainly, instead of answering with a server error that told you nothing you could act on (DOR-1600)
-
A room can now have files of its own: a folder everyone in the room works on together. It holds real files rather than attachments: scripts, notes, a whole small project. The room keeps one shared copy of them, and every agent in the room gets its own copy to work in, so two agents can be busy at the same time without writing over each other. Finished work goes back to the shared copy by merging, which is the only way anything lands there (DOR-1592, DOR-1596)
-
There is no button for giving a room files yet. Today it is a request to the DorkOS API, described in Rooms. Only you can make it, never an agent. Everything else here works normally once a room has files (DOR-1592)
-
An agent's copy of a room's files sticks around between conversations, so work in progress is still there tomorrow. DorkOS clears one away only when it has been untouched for a while and holds nothing the room has not already got. Anything unsaved or not yet handed in is left alone, and the room shows you who is holding it (DOR-1596)
-
New settings for all of this under Room files: whether rooms may have files at all, how long an untouched copy is kept, and how big a file, a room, and a
ROOM.mdmay get. See Configuration (DOR-1591) -
A room that has files of its own now has a
ROOM.md. It is the room's front page, written by the people and agents in it. Whatever it says reaches every agent in that room, on every turn, so "how we work here" is written down once instead of repeated in every message (DOR-1593) -
Agents are told plainly where those rules came from: they are additions to the agent's own instructions, from the room's members, and never a replacement. If a room's rule clashes with an agent's own, the agent follows its own and says so (DOR-1593)
-
Editing
ROOM.mdtakes effect on the next thing an agent does, never in the middle of something it is already working on. And if the file grows past the size a turn can carry, agents are told it is too long to send rather than being handed part of it. Half a rule reads like a whole one (DOR-1593)
Changed
- Agents in a channel no longer stop and think about every message they overhear. After you talk to an agent it keeps following the conversation for a while — that part is unchanged — but it now skips a message that plainly was not for it: one that named a different agent, or a reply in an exchange it is not part of. Before, each of those cost a full turn that ended in the agent saying nothing. In a channel with four agents, asking one of them a question used to wake all four.
- Nothing goes missing. A skipped message still reaches the agent as background the next time it does reply, so it knows what was said while it stayed out of it.
- A message that names an agent, and anything you say in a direct message, is never skipped. If you asked, you get an answer.
- You can turn this off with
dorkos config set rooms.responseGate offif you would rather every agent weigh every message. - dorkos.ai has a new home page. It opens with the short film about Dave, who gets three agents and stops doing everything himself, and then shows you the same thing working for real: scroll, and one conversation plays out in front of you, apps land in it as they are used, and the whole thing settles into a laptop at the end. The old page told you what DorkOS was. This one shows you (DOR-1562)
- Underneath the film there is a shelf for short walkthroughs. The only thing on it today is the film itself, cut to fit a phone. The rest are empty frames, and the page says so on each one rather than pretending otherwise. You can leave your email on any tile and hear when the walkthroughs are made (DOR-1562)
- The story page's footer now links to npm as well as GitHub, so it ends the way every other page on the site does (DOR-1562)
- The list of features and the answers to common questions are still there, in the same words, further down the page where someone who has decided to check goes looking for them (DOR-1562)
- The menu at the bottom of the home page now moves you around the page instead of pointing at other pages, and folds the rest of the site behind one button. Every other page keeps the menu it had (DOR-1562)
- The newsletter signup boxes on dorkos.ai now turn away a flood of sign-ups coming from one place. Signing up works exactly as before. Someone sending attempt after attempt is asked to wait a few minutes (DOR-1581)
- The rest of the public endpoints on dorkos.ai now turn away a flood coming from one place: sending feedback, checking on feedback you sent, the two links in our newsletter emails, and the three places DorkOS reports anonymous usage to. Everything works exactly as before. Someone hammering one of them is asked to wait a few minutes, and each endpoint is counted on its own, so a flood at one never blocks another. Unsubscribing and reporting usage get generous room on purpose, so a real person is never turned away (DOR-1586)
- One thing changed in what we do with your IP address when DorkOS reports anonymous usage: we now count how many requests come from it in the last few minutes, so nobody can flood those endpoints. That count lives in memory for a few minutes and then it is gone. Your address is still never saved, never written to a log, and never passed to anyone else (DOR-1586)
ROOM.mdandREADME.mdnow sit at the top of the file list, where you'd look for them. This applies to the session Files panel too.- The Files panel on a session and the new file list in a room are the same thing underneath now, so anything either of them learns, both of them get.
- The permissions dial on a task now describes what will actually happen on the program the task runs on, instead of always describing Claude Code. And if you move a task to a program where its setting means "never stop to ask", the app asks you first rather than making the change quietly (DOR-1615)
- Scheduled runs used to happen on Claude Code no matter what the task or its agent said, on whatever model came out of the box. They now walk the same ladder every other kind of turn walks: the task's own setting, then the skill file's, then the agent's, then your default for that runtime (DOR-1615, DOR-1347)
- A task set to a runtime you have not turned on now fails its run and says so, naming the runtime and what to do about it. It never quietly runs somewhere else — a run on a different runtime is a different run, billed to a different account, and you would have had nothing on screen to tell you (DOR-1615)
- A task that remembers its last run, and that you then move to a different runtime, starts a fresh conversation instead of trying to pick up one that lives in another program's history. Its earlier runs are all still there to read (DOR-1615)
- One rough edge worth knowing: if a task remembers its last run and you change its model, the next run may carry on with the old model until that conversation is put down. Tasks that start fresh each time — the default — always use the model you picked (DOR-1347)
- The Mac install steps now tell you to open DorkOS from your Applications folder rather than from the window the download opened, and say why it matters. (DOR-1495)
Removed
- The bar across the top of the home page is gone. The floating menu at the bottom does that job now, and it moves you around the page. Every other page keeps its top bar (DOR-1562)
- The old home page is gone, and so is what only it carried: the scrolling activity feed at the top, the cards about what goes wrong when you run agents by hand, the history of how DorkOS was built, and the closing note with the contact address in it. The address is still in the footer of every page (DOR-1562)
Fixed
- Open the same chat in a second window and you now see the reply that is already being written, plus the Stop button, right away. Before, that window could sit blank and say "Live updates lost".
- A chat link that leaves out the folder now shows the conversation and stays live. DorkOS looks up the folder the chat is running in instead of falling back to a default one. The name in the title bar can still be wrong on those links — that part is not fixed yet.
- Opening a room while an agent is working in it now shows that straight away, instead of after up to ten seconds of looking idle. The room's details panel had a worse version of the same problem: opened over a different room, it could never see who was working and quietly drew nothing, which looks exactly like a room where nobody is working. It now knows the difference, and says "No one is working right now" only when that is actually true (DOR-786)
- If an agent is taken out of a room while a message is still waiting for it, the room now says so. Before, the message was quietly dropped and nothing was written anywhere, so from inside the conversation it looked like the agent had simply ignored you (DOR-786)
- When a scheduled task completes or fails, it now shows up in your activity feed right away, instead of only after the next refresh. This already worked on some setups; now it works on every setup (DOR-1573)
- An agent you set up to run on Codex or OpenCode is now handed its Telegram and Slack messages on that program, the same one it already used in rooms and in the app. Before, every chat message went to Claude Code no matter what the agent was set to — the wrong program replying under the right agent's name, with nothing anywhere saying so. Which program owns a chat conversation is now decided the moment the conversation starts, from the agent's own settings, and written down, so every later message in that conversation goes to the same place (DOR-1614)
- Chat replies now use the model and effort you chose for that agent on the program it actually runs on. A model name only means something inside the program that offers it, so a Codex agent no longer gets handed a Claude model name it cannot use (DOR-1614)
- A chat message meant for a program this copy of DorkOS did not start is now turned down with a message saying which program is missing, instead of being quietly handed to a different one (DOR-1614)
- Approving or denying a tool from a chat now reaches whichever program is waiting on the answer, not only Claude Code (DOR-1614)
- The sidebar no longer flashes its phone layout for an instant when you widen the window (DOR-1558)
- Screen readers now hear the "1 minute left" warning on a permission request even when the tab was in the background and the clock skipped a second (DOR-1558)
- Fixed the address DorkOS gives Codex for the panel it uses to open things on your screen. It was fixed to one form of "this machine", which is not always the one DorkOS is listening on — so on some Macs, and inside Docker on Windows, Codex could not reach it at all (DOR-723)
- The desktop app now tells you when an update fails to install, instead of quietly offering you a restart that cannot work. It writes down which version it was about to install, and the next time you open DorkOS it checks whether that version is the one actually running. If it isn't, the sidebar says so and offers a fresh copy to download — the one thing that always works. Your settings and your agents stay exactly where they are. Before this, an update could fail every time for weeks with nothing on screen but "Update ready — Restart" (DOR-1454)
- Update errors are no longer hidden. A problem that showed up after an update finished downloading used to be swallowed by the "Update ready" card, which kept sitting there as if everything were fine. Now the card shows what actually happened (DOR-1454)
- If the DorkOS app's screen ever fails to come up, the app now notices and fixes itself. It waits ten seconds for the window to draw; if nothing appears, it reloads. If that doesn't work it clears what the window has saved and reloads again, and after that it offers to restart DorkOS with graphics acceleration turned off — and asks first if your agents are still working, so nothing is interrupted without you. It counts across restarts, so a window that breaks every single launch still gets each of those tried once. Before this, a window that came up black simply stayed black: nothing retried it, nothing recovered it, and nothing wrote down what went wrong (DOR-1453)
- The "DorkOS couldn't start" message used to tell you to check a folder that only exists on a Mac. It now names the folder on the computer you are actually using
- Clicking "Restart to install" now actually installs the update. DorkOS used to step in front of the installer's own restart — shutting itself down its own way and quitting — which left the installer with nothing to install, so the app came back on the old version every time. It now gets out of the way: it asks about any agents still working, stops its background server, and then hands the restart to the installer (DOR-1455)
- DorkOS clears out its own downloaded update once it has caught up with it. A copy left over from an earlier attempt used to be handed to the installer on every quit, for ever — and if you had installed a newer version yourself, that leftover could quietly put you back on the old one (DOR-1455)
- If an update cannot install itself, DorkOS now recovers instead of sitting there. Handing the restart to the installer means shutting down first, and on the rare occasions the installer gives up without saying so, DorkOS starts itself back up within a few seconds and tells you the update did not go in (DOR-1455)
- DorkOS notices when you install a new version while it is still running. It keeps running in the menu bar after you close its window, so dragging a new copy into your Applications folder used to change nothing: opening it just brought the old one back. Now it tells you the new version is there and offers to restart into it — and it makes sure a half-finished download from before cannot land on top of the copy you just installed (DOR-1455)
- A missing or broken app file now shows up as a clear error in your browser's network tab instead of a silently blank window (DOR-1474)
- Taking an agent out of a room no longer leaves the room pointing at it as the one that answers messages addressed to nobody in particular. Those messages used to reach nobody at all, silently. (DOR-1611)
- If DorkOS can't reach its server when it opens, it now says so and keeps trying. Before, you got an empty window — or, if you had used DorkOS before, a full screen rebuilt from what your browser remembered last time, where none of the rooms, agents or buttons in it actually worked. The new screen tells you the server may still be starting, has a Try again button, and clears itself the moment the server answers (DOR-1475)
- A server that has stopped answering without ever refusing the connection now gets the same screen, after fifteen seconds of silence, instead of leaving you in a window where everything you press hangs (DOR-1475)
- Opening DorkOS while its server was down could also drop you into the first-run setup screens, as if this were a brand new install — and anything you answered there had nowhere to be saved. It doesn't do that any more (DOR-1475)
- The little "working on it · 12s" counter beside a busy agent now keeps true time. It used to slip a fraction of a second further behind with every second it counted, so on a long turn it read short (DOR-1642).
Security
- Leaving the folder out of a request no longer reads a chat that naming the same folder would be refused for. Every session request is now checked against your allowed folders, whether you named one or DorkOS worked it out.
- With Require login on, deleting a scheduled task or cancelling a run now needs a person signed in to DorkOS. A program holding one of your API keys is refused, the same as when it tries to change how a task runs. The approvals guide now says plainly that if you leave agents running on their own and they can use a shell, you should turn on Require login — without it, one of those agents can approve its own scheduled task. (DOR-1574)
- Connection errors from chat integrations can no longer write access tokens into log files.
Install / Update
npm install -g dorkos@0.66.0
