Repository navigation
Releases
v1.3.0
Approve proposals from your phone: every new proposal can now also come to you as a Slack message, with Approve and Dismiss. The room keeps running on your computer, and nothing on it is opened to the internet.
New: approving from Slack
- A message per proposal. The Exec Room's Slack app sends you a direct message for each new card: what kind it is, who proposed it, the room and chat, the summary and where it goes (the maker, the repo, the Notion database, the email recipients, the file). Drafts, briefs, issue text and email text stay in the room.
- Approve or Dismiss with a tap. A tap does exactly what the card's button does, with the same checks. Sending a proposal back for a revision needs a note, so that stays in the room. Approving an email draft records the decision; you send it from the room, as always.
- Only you decide. Only taps from the Slack member set as the approver count; anyone else's tap does nothing.
- The message keeps up. After a decision, in Slack or in the room, the message shows what happened (done with a link, failed with the reason, or dismissed) and the buttons go. An open room page picks up a decision made in Slack by itself, and the card and the Decisions list say "in Slack".
- Nothing listens on your computer. The room connects out to Slack (Slack's Socket Mode) and taps come in over that connection.
- Off until you set it up. About 10 minutes: create the Slack app from
docs/slack-app-manifest.json, put its two tokens in 1Password, and add aslackblock toroom.config.json. The README's Approving from Slack has the steps, including how to reuse a Slack app you already have. If a token can't be read or a setting is wrong, the room starts without Slack and says why, in the terminal and on the page.
Changed: Node.js 22 or newer
The Exec Room now needs Node.js 22+. Node 20 no longer gets security updates, and approving from Slack uses the WebSocket that Node 22 has built in. setup.sh checks for it, and the tests run on Node 22 and 24. On an older Node, the room says that Slack needs Node 22.
Updating
- Check your Node version with
node --version. If it starts withv20or lower, install Node 22 or newer first. - Pull the new version and restart the room.
Nothing changes until you add the slack block: without it, the room works as before.
v1.2.2
What's Changed
- Page catches up by itself on turns it missed by @carolinevrauwdeunt-lab in #72
- Version 1.2.2 by @carolinevrauwdeunt-lab in #73
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
- README: Notion text in one Notion section in setup order by @carolinevrauwdeunt-lab in #69
- Can use: names the agents you built that a switched-on tool doesn't reach, with a button to their settings. by @carolinevrauwdeunt-lab in #70
- Version 1.2.1 by @carolinevrauwdeunt-lab in #71
Full Changelog: v1.2.0...v1.2.1
v1.2.0
Agents can now save rows to any Notion database you add to a room: a content calendar, a lead list, a task list. You decide per column what an agent may fill. Nothing is saved until you approve it.
New: Notion databases per room
-
Add a database by its link. Room settings → Can propose → Notion databases. The Exec Room reads the database's columns from Notion.
-
A draft value per database. You choose it once, for example Status = Draft. Every row the room saves gets it, set by the room, never by an agent. A database without a suitable column can get one with Add a Status column with Draft (through Connect, only when you click it).
-
You choose what happens to each column:
- Agent fills: the agent proposes the value, and you see it on the card.
- Always this value: the room sets the same value on every row.
- Leave empty.
The title, text and links start as "Agent fills"; in a post database (one with Channel and Post Content), only the post columns do. Everything else starts empty, and so does a column added in Notion later.
-
Safe by default:
- Status columns are never filled by an agent, because automations often watch them.
- People, relations, files and formulas always stay empty.
-
Checked twice. Every value must fit its column (an option of a select, a date, a number, a link) when it is proposed, and again against the database in Notion when you approve. If a column or option was removed in the meantime, nothing is saved and the card says why.
-
Posts keep working in any database with Channel and Post Content columns, and follow the same column choices.
Improved
- Makers say what they skipped. When a maker's own instructions include a step the room has no tool for (logging, posting, sending, scheduling), it skips that step and says so, instead of asking you to do it by hand. The room takes the draft from there.
- Fixed: saving to Notion through Connect. Notion changed how it writes a database's address, and saving a post through Connect stopped working. Both forms are read now.
Updating
Pull the new version and restart the room.
- If you listed databases under
notionDatabasesinroom.config.json, they move into the rooms that allowed them, with Status = draft. You don't need to do anything. - From now on, add databases in Room settings. The config key is only read for this move.
- Open a room's settings once to have its databases' columns read.
What's Changed
- Makers: skip steps the room has no tools for; Notion Connect: read data sources written in {{ }} by @carolinevrauwdeunt-lab in #66
- Notion databases per room, with column rules for rows by @carolinevrauwdeunt-lab in #67
- Version 1.2.0 by @carolinevrauwdeunt-lab in #68
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Agents can now save files to your computer: a document from the web, or one of their own drafts as Markdown or Word. They propose it on a card, and nothing is saved until you approve it.
New: saving files
-
A save folder per room. Room settings → Can propose → Folders for saved files. Every room starts with none, so nothing changes until you add a folder. Agents can't open these folders unless you also list them under "Folders it can read".
-
Downloads from the web. An agent proposes an
httpslink, a file name and a folder. When you approve, the Exec Room downloads the file itself. Allowed types:- documents: PDF, Word, PowerPoint
- spreadsheets: Excel, CSV
- data and text: JSON, plain text, Markdown
- images: PNG, JPEG, GIF, WebP
Files can be up to 25 MB.
-
Drafts as Word files. An agent's draft can be saved as Markdown, or as a Word file the Exec Room builds itself. It keeps headings, bullet and numbered lists, links and tables. It works the same on macOS, Linux and Windows, with nothing extra to install.
Safety
- Agents still only write to
drafts/, and they never get a download tool. The Exec Room does the saving, and only after you approve. - It downloads only from
httpslinks on the public internet. Links to your own computer or home network are refused, including through redirects. - A file must really be what its name says. A web page passed off as a PDF (a sign-in page, for example) is not saved.
- Nothing that can run is ever saved: no programs, installers, scripts or zip files.
- An existing file is never overwritten. The new one gets " (2)" added to its name.
- Details: SECURITY.md.
Updating
Pull the new version and restart the room. Rooms from 1.0.0 keep their settings and have no save folder until you add one.
What's Changed
- Save files: agents propose saving a download or a draft into a room's save folder by @carolinevrauwdeunt-lab in #64
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
- Security policy: what the room passes on to the programs it starts by @carolinevrauwdeunt-lab in #55
- Proposals: show the block to use, and say so when one is in the wrong block by @carolinevrauwdeunt-lab in #56
- Bump the npm group with 3 updates by @dependabot[bot] in #57
- MCP servers on the Exec Room settings page, and Notion through Connect by @carolinevrauwdeunt-lab in #59
- Before going public: GitHub in the catalog, the renewal log, the release review's fixes by @carolinevrauwdeunt-lab in #60
- Bump marked from 18.1.1 to 18.1.3 in the npm group across 1 directory by @dependabot[bot] in #58
- Money Magician's token route at mcp.moneymagician.eu by @carolinevrauwdeunt-lab in #61
- Connect: a rate-limited renewal is tried again, not taken as a refused sign-in by @carolinevrauwdeunt-lab in #62
- Connect: keep renewing after a token ran out while the failure is passing by @carolinevrauwdeunt-lab in #63
New Contributors
- @dependabot[bot] made their first contribution in #57
Full Changelog: v0.2.0...v1.0.0
v0.2.0-beta.2
What's Changed
- Show the step an agent is on while it works by @carolinevrauwdeunt-lab in #30
- A finished step keeps its words, and activity shows as soon as it starts by @carolinevrauwdeunt-lab in #31
- Dismiss asks first and takes an optional reason; a dismissed proposal can be read again by @carolinevrauwdeunt-lab in #32
- Coen is told when the owner dismisses a proposal, with the reason by @carolinevrauwdeunt-lab in #33
- Agents get only what the room gives them, checked at every start by @carolinevrauwdeunt-lab in #34
- Notes to agents carry no pronoun for the owner by @carolinevrauwdeunt-lab in #35
- Reword one comment that still used a pronoun for the owner by @carolinevrauwdeunt-lab in #36
- A room that lists a Notion database the config lacks is answered again by @carolinevrauwdeunt-lab in #37
- Room page: keyboard and screen-reader fixes, spoken turn updates, 12px status text by @carolinevrauwdeunt-lab in #38
- Fields get an edge at 3:1, spoken notices and errors, and an Accessibility section in the README by @carolinevrauwdeunt-lab in #39
- A click on Coen's avatar shows him read-only by @carolinevrauwdeunt-lab in #40
- Email drafts: the text stays 7 days after approval, and the Outlook link gets a measured limit by @carolinevrauwdeunt-lab in #41
- Runs can't switch permission checks off, ~/.azure off limits, two notes in SECURITY.md by @carolinevrauwdeunt-lab in #42
- A chat that is already going is told once when its room's settings change by @carolinevrauwdeunt-lab in #43
- The API key stays out of gh and op, a no-shell rule in code, system folders off limits by @carolinevrauwdeunt-lab in #44
- Runs and gh get a short fixed environment, hooks are off, and no MCP server starts on a key by @carolinevrauwdeunt-lab in #45
- Connector tools the room doesn't know get blocked by themselves; a page notice when the Notion token is missing by @carolinevrauwdeunt-lab in #46
- On a key, the key is taken out of everything a run sends out by @carolinevrauwdeunt-lab in #47
- Dark mode: follows the system, with Auto / Light / Dark and three dark styles by @carolinevrauwdeunt-lab in #49
- A room-built advisor with the Notion or mail group gets those read tools by @carolinevrauwdeunt-lab in #50
- A Notion page the room made can be updated, with the previous version kept by @carolinevrauwdeunt-lab in #51
- Notion page update: the copy of the old content is accepted by Notion by @carolinevrauwdeunt-lab in #52
- A reply can be opened in a large window, and the panel takes the spare width by @carolinevrauwdeunt-lab in #53
- A chat can be archived and put back by @carolinevrauwdeunt-lab in #54
Full Changelog: v0.1.0...v0.2.0
v0.1.0-beta.1
What's Changed
- Room: edit and reorder Notion places, edit folders by @carolinevrauwdeunt-lab in #1
- Update proxy-addr to 2.0.8 (CVE-2026-90711) by @carolinevrauwdeunt-lab in #5
- Room: eight more avatar presets, and Coen's owl shows as taken by @carolinevrauwdeunt-lab in #4
- Room: taken avatars get their own labelled line with the agent's name by @carolinevrauwdeunt-lab in #6
- Relicense to AGPL-3.0 with a commercial licence by @carolinevrauwdeunt-lab in #7
- Add a CLA check: contributors sign in their own pull request by @carolinevrauwdeunt-lab in #8
- Move the note on what ANDRS charges for out of the CLA and qualify it by @carolinevrauwdeunt-lab in #9
- Attach files to a message, and a copy icon under each reply by @carolinevrauwdeunt-lab in #11
- Attachments: long names, clearer messages, folder checks, clean shutdown by @carolinevrauwdeunt-lab in #13
- Reword the comment on room folders that hold attached files by @carolinevrauwdeunt-lab in #14
- Setup: offer to start the room when it finishes by @carolinevrauwdeunt-lab in #15
- README: add badges under the title by @carolinevrauwdeunt-lab in #16
- Ignore .claude/memory/ by @carolinevrauwdeunt-lab in #17
- Record who decided and list a room's decisions in Room settings by @carolinevrauwdeunt-lab in #19
- Never give a new room the id of a live or deleted room by @carolinevrauwdeunt-lab in #21
- Update marked to 18.1.0, including the copy the page loads by @carolinevrauwdeunt-lab in #22
- Tests: use a neutral repo name in the proposals fake by @carolinevrauwdeunt-lab in #23
- Room brief and chat list by @carolinevrauwdeunt-lab in #24
- README: screenshots of a demo install, and a shorter hint in a narrow message box by @carolinevrauwdeunt-lab in #25
- Run on an API key instead of the Claude plan, chosen at start-up by @carolinevrauwdeunt-lab in #26
- README: say what "never get a shell" means by @carolinevrauwdeunt-lab in #27
- On an API key, read the Notion pages and databases a message links by @carolinevrauwdeunt-lab in #28
New Contributors
- @carolinevrauwdeunt-lab made their first contribution in #1
Full Changelog: https://github.com/ANDRS-Projects/exec-room/commits/v1.0.0