Skip to content

Changelog

What changed, and why.

Every entry comes from the commits on main. Newest first.

Latest release

0.5.43

Shipped

PreviousVersion 0.5.42

The chat's "agent is working on it" line appears once, and goes away when the agent replies.

New
0
Changed
0
Fixed
1
Read the notes
v0.5.43Vesprr1 min readLatest

Version 0.5.43

The chat's "agent is working on it" line appears once, and goes away when the agent replies.

Fixed1

  • One "agent is working on it" line per message, removed on the reply. Two of DevBench's server processes could each post the line for the same message, and then neither copy was taken out when the agent replied. Now only one process posts it, and if two ever overlap, the second takes its copy back. The line is removed using the server's current record, so it goes away when the agent replies.
v0.5.42Vesprr1 min read

Version 0.5.42

Each App has exactly one librarian, even when several server processes react to the same change at once.

Fixed1

  • Duplicate App librarians. On the day librarians shipped, several server processes created them at the same moment, making 134 librarians for 51 Apps. Webnovi and vt-office briefly had three runs going at once. The extras were switched off and their runs stopped within minutes. The database now allows only one librarian per App (the duplicates are removed when this is deployed), and a short lock means a change seen by several processes starts one run, not several.
v0.5.41Vesprr1 min read

Version 0.5.41

Docs written on an App are shared with it by default, and every App gets a librarian that keeps its docs index and AgentBook current.

New

  • The App librarian. Every App now has a librarian, switched on by default: an agent that keeps the App's knowledge current. On each run it:

    • shares the App's code, deploy and decision docs with the App;
    • marks older and duplicate docs as superseded;
    • keeps one " docs index" doc;
    • writes the AgentBook pages Deploy and roll back, Environments and access (where things live, never secrets) and Local setup and testing;
    • raises one task for anything nobody has documented.

    It runs weekly, after 5 new docs, and when a workspace on the App is deployed, changes stage, is completed or stopped, with at most one automatic run every 6 hours. It runs in a read-only box on the App, so it never changes code. Run now, the on/off switch and its recent runs are on the App's Settings tab.

Changed

  • Docs are shared with the App by default. A doc written in a workspace that belongs to an App is listed in every workspace on it and in their APP.md. devbench doc create … --workspace-only keeps a working note to its workspace. devbench doc share <id> shares an existing doc, and devbench app docs lists every doc on the App.
  • Docs outlive their workspace. Archiving or deleting a workspace leaves its docs with its App.
  • One current version. A doc shared with an App under the same title as an older one there supersedes it, so the App shows one runbook, not two.
v0.5.40Vesprr1 min read

Version 0.5.40

The chat's "agent is working on it" line now quotes what the agent is doing, even when a long message fills its screen.

  • 1 Fixed

Fixed1

  • The "agent is working on your message" line quotes the agent again. When a long message was pasted into a busy agent, it filled the agent's screen and the line showed no quote. The latest note now comes from the agent's own record of its work, so it is there whatever is on its screen.
v0.5.39Vesprr1 min read

Version 0.5.39

Every message you send a project's agent now gets something back in the chat, and each message shows whether it reached the agent.

New

  • The chat answers when the agent is quiet. If the agent has said nothing a minute after your message, DevBench posts one line for it, quoting the agent's own latest progress: "Claude has been working on your message for 3 minutes and has not replied yet. Latest: "Server sign-in tests pass (14). Next: the push routes.""

    • The line updates in place while the agent works.
    • It disappears when the agent replies.
  • If the agent stops without replying, DevBench asks it once to answer. If it still doesn't, or its session is down, signed out or out of usage, the chat says so and the team is alerted.

  • Each message says what happened to it, under the time:

    • Sending to Claude…
    • Delivered to Claude
    • Held until the question is answered
    • Not sent to Claude (read as talk between people: mention @agent to send it)
    • Didn't reach Claude

    This shows on the web, the desktop app and the phone.

Fixed

  • A message is no longer lost when DevBench restarts while it is on its way to the agent, for example while a stopped project wakes up. It is sent again. If that fails too, the chat says to send it again and the team is alerted.
  • Agents are reminded mid-turn. In projects with the slim agent instructions, an agent that has worked 90 seconds on a chat message without posting is told to post a one-line update. Before, the reminder came only when its turn ended.
v0.5.38Vesprr1 min read

Version 0.5.38

A doc linked in a chat, a note or a doc opens in a pop-up over the page, as a file does, instead of as another project's tab.

  • 1 Fixed

Fixed1

  • A doc link opening among another project's tabs. A doc linked in one project's chat, clicked while another project was in front (side by side), opened as a tab of the project in front and closed one of its docs to make room. A doc linked in text, or a doc's card, now opens in a pop-up over the page, as a file does. From the pop-up it opens as a tab of its own project or in a new window, and a doc linked inside it opens in the same pop-up. Ctrl/⌘-click on the link opens a new window straight away.
v0.5.37Vesprr1 min read

Version 0.5.37

The AgentReview Explorer works in boxes that were running before it shipped, and a walk that cannot start says so plainly.

  • 2 Fixed

Fixed2

  • Explorer walks in older boxes. A box that was already running when the explorer shipped got the devbench explore command from DevBench's automatic refresh, but not the browser engine it runs. Every walk there stopped at step 0 with "The explorer is not installed in this box". The automatic refresh now installs the engines along with the CLI. A box that still lacks one downloads it from DevBench when a walk starts, so no restart is needed.
  • A walk that cannot start says so. The chat used to read "walked … 0 screens in 0 steps … What a user would run into (0): Full report:". It now says the explorer could not start, gives the reason, and says nothing was checked. No empty report is written, and the team is alerted.
v0.5.36Vesprr1 min read

Version 0.5.36

A suspended person can no longer sign in, and suspending someone signs them out on every device.

  • 1 Changed
  • 4 Fixed

Fixed4

  • Suspended people could still sign in. Sign-in now refuses anyone suspended in their team, and anyone whose access a super admin switched off. That covers an email code, a password and the WorkOS sign-in page. The sign-in screen says why: "Your access to <team> is suspended. Ask an owner."
  • Suspending someone signs them out at once, on the web, the desktop app, their phone and the command line. Before, their open sessions stayed signed in and only showed a "suspended" notice. Switching someone's access off does the same.
  • People who were already suspended are signed out of every device by this release.
  • A box's own token is left alone, so projects a suspended person started keep running.

Changed1

  • A refused sign-in is logged and posted to the team's chat, so owners see a suspended person trying to get back in.
v0.5.35Vesprr1 min read

Version 0.5.35

The AgentReview Explorer types realistic values a user would enter, letter by letter, and picks from the app's own suggestions.

New

  • Realistic typing. Each field now gets a few realistic values to choose from instead of one generic test value, and Jev predicts which one a real user would type there. The values come from three places:

    • the App's sample values;
    • the screen itself: the field's own example, and items already listed, so a new project is called "Website relaunch 2" rather than "Explorer Test";
    • what the field is: names, companies, cities, postcodes, prices, titles, messages and more.

    Mistakes (empty, the wrong format, too long, odd characters) are still tried on every form.

  • Letter by letter, with the app's suggestions. The walk types the way a person does. When an autocomplete or search list appears partway through, Jev picks the suggestion the user would choose, or keeps typing. If picking a suggestion leaves the field empty, that is reported as Choosing a suggestion did nothing.

  • What the explorer types, in an App's deployment defaults: sample values as Field = value lines, such as Project name = Website relaunch. These are offered first.

Changed

  • When the new links run out, a walk now goes back to screens that still have controls it hasn't tried, such as a form it left for a navigation link, instead of stopping with steps left.
v0.5.34Vesprr1 min read

Version 0.5.34

Drag a workspace's page tab to the sidebar to open it there, and the chat rail opens and closes smoothly.

  • 1 New
  • 5 Fixed

New1

  • Drag a page tab to the sidebar. Drag Overview, Terminal, Chat or any other page tab of a workspace to the right of the page, and it opens in the sidebar. Letting go anywhere else opens nothing.

Fixed5

  • Chat rail: no more ticks popping back. When the rail's pane closed, ticks for messages the pane had not drawn stayed hidden and then appeared all at once. Every tick now moves back with the rest, and the last frame of the close is the rail at rest.
  • Chat rail: ticks at the edges. A tick half past the top or bottom of the rail now travels with the others instead of fading in place.
  • Chat rail: scrolling during a close. The rows now follow their ticks while the thread scrolls.
  • Chat rail: the opening starts exactly from the rail. The first frame of the opening now matches the rail at rest.
  • Chat rail: changing your mind. Moving away while the pane opens, or back while it closes, now turns it round from where it is. It no longer finishes closing first.
v0.5.33Vesprr1 min read

Version 0.5.33

Lathe for PC 0.4.3 fixes the white window and hosted-device logs; code named after secrets no longer blocks a merge.

  • 1 New
  • 3 Fixed

Fixed3

  • Logs from an emulator or phone on a team computer (Lathe for PC 0.4.2). On Android 15, Lathe for PC skipped every log line, because each one carries a time zone it didn't expect, so an agent reading an app's crash got nothing. It now reads them. If logcat stops, or prints lines Lathe can't read, the log says so instead of staying empty.
  • A merge blocked by a file that only sounds secret. The review check refused any file with "secret" or "credentials" in its name, so code like the secret editor (EnvSecretEditor.tsx, and the desktop app's built copy of it) blocked every release that touched it. Code, styles and docs with those words in their names now pass; .env files, secrets.yml, credential files, keys and certificates still block.
  • Lathe for PC's window opening white on Windows (Lathe for PC 0.4.3). The panel had loaded, but the web view inside the window believed it could not be seen, so it drew nothing. That happened most after the computer woke or the screen was unlocked. The window no longer starts hidden, stops the web view guessing whether it is covered, and tells it it is visible again after a lock, a wake, a restore or a display change. Each of these is written to window.log.

New1

  • Merging over a false alarm with a reason. devbench mr approve <id> --override "<why>" merges over a blocking check and records the reason with the merge. On a project that allows self-merge, the agent may do this only for a file named like a secret, after checking it holds no real one. Red CI and drafts still need a person. The announcement of a self-merge now shows what it merged over, and why.
v0.5.32Vesprr1 min read

Version 0.5.32

A walk that opens on a sign-in page with no way in now stops and asks in the chat for a login link, or to skip sign-in.

  • 1 New
  • 1 Fixed

New1

  • The explorer asks for a way in. If a walk's first screen is a sign-in page and the workspace has no EXPLORER_LOGIN_URL (or EXPLORER_EMAIL and EXPLORER_PASSWORD), the walk stops at once instead of spending its steps there. It posts a card in the workspace chat that asks you to paste the link or account. Explore again walks once a way in is saved, and asks again if nothing is. Skip sign-in walks only what a signed-out visitor can see.

Fixed1

  • Pasting EXPLORER_LOGIN_URL=… or EXPLORER_EMAIL=… in a chat is now saved as a hidden workspace secret, like any other credential. Before, their names didn't look secret, so the link or address stayed in the chat as plain text.
v0.5.31Vesprr1 min read

Version 0.5.31

The AgentReview Explorer signs in by itself from workspace secrets, and says first when a preview is down or a walk is stuck at sign-in.

New

  • The explorer signs in by itself. Save EXPLORER_LOGIN_URL (a link that signs in, such as a demo user's login-token link), or EXPLORER_EMAIL and EXPLORER_PASSWORD for a test account, as workspace secrets. Paste NAME=value in the workspace chat, or use Settings › Secrets. Every walk then signs in first, whether started from Explore now, after a deploy or with devbench explore. The values are read by name in the box and hidden in its output. The Previews tab and the phone's Deploy screen say how walks sign in, and what to set when nothing is.

Changed

  • Setup problems come first, apart from the app's bugs.
    • A preview part that isn't running is the walk's first finding, with its last log line. For example, a backend that exits on start-up because its start command runs a command that doesn't exist.
    • A walk that never gets past the sign-in page reports Stuck at sign-in and names the secrets that would let it in. If it was given a way in, it says the link or account may have expired.
    • The estimate sent to the agent lists these first as setup problems with the preview, not bugs in its change.
v0.5.30Vesprr1 min read

Version 0.5.30

A file opened from a page shows in a pop-up with a close button, and dragging never puts views side by side.

  • 2 Changed
  • 1 Fixed

Changed2

  • Files open in a pop-up. A picture, a video, a PDF or a text file opened from a page (a workspace's Media page, a link in a chat, a doc or a task) shows over the page, with its copy-link, download and edit buttons. × or Escape closes it, and the page under it stays as it was.
  • Dragging no longer combines views. Letting go of a link, a picture, a search result, a bell item or a workspace tab over the page opens nothing beside it. To see workspaces together, group them. A tab can still be dragged along its row to move it, or onto another tab to group the two.

Fixed1

  • Clicking a picture to zoom it could turn into a small drag that opened the picture's address as a blank pane beside it.
v0.5.29Vesprr1 min read

Version 0.5.29

The AgentReview Explorer comes to the phone app, walks Android builds on Lathe phones, and is offered in the chat after every deploy.

New

  • Explore it, from the chat. When a preview comes up and isn't explored automatically, or a version is deployed to an environment, the workspace chat asks Explore it / Not now. For staging and production it warns that forms the walk fills in are submitted for real. A person answers. Explore it starts the walk, and its estimate follows in the chat.
  • Agents can ask you to run it. devbench explore ask "<why>" posts the same card, with the agent's reason. An agent cannot answer it itself.
  • The explorer in the phone app. The Deploy screen has an AgentReview Explorer section: Explore now, the after-every-preview choice (as the App says, always, or only when asked), and recent walks. Tap a walk to see its findings with the steps to reproduce them, open its report, or stop it. Settings has the same switch.
  • Android builds on Lathe phones. devbench explore --device <phone> --package <app id> walks an installed Android build the way the web walk does:
    • each screen is read from the phone's element tree;
    • taps, typing and Back go through Lathe, so the phone holder's switches decide what it may do;
    • a crash is the app's fatal error in the logs, or the app leaving the screen. The walk then reopens the app and carries on.

Changed

  • A walk's report link is included in the API (report_link), so the phone can open it.
v0.5.28Vesprr1 min read

Version 0.5.28

The AgentReview Explorer walks a workspace's preview as a user would, with Jev choosing each step, and tells the agent what breaks.

  • 3 New
  • 1 Changed

New3

  • AgentReview Explorer. It walks a workspace's live preview screen by screen, the way a first-time user would, and reports what that user would run into. Jev, TypeSafe's decision model, chooses what to press next and what kind of input to type (realistic, empty, the wrong format, too long, odd characters). It also judges how each action turned out: worked, showed a clear error, did nothing, broke, got stuck, or hit a dead end. Each form is tried three times: with Jev's choice, with bad input and empty. Crashes, failed requests (4xx/5xx), error pages and slow screens are recorded without asking Jev. Delete, pay, sign out, send, invite and anything that leaves the app are never pressed, and the report lists them.
  • Where it runs. Use Explore now on a workspace's Previews tab, or devbench explore in the box (--email/--password signs in with a test account first). Every preview can also be explored as soon as it is up. Switch that on for one workspace in Settings or on the Previews tab, for every workspace on an App in the App's deployment defaults, or in New project's deploy step.
  • What comes back. Each walk writes a report doc tagged agentreview-explorer, with every finding, the steps to reproduce it and the screens reached. A short estimate of what a user would hit is posted in the workspace chat and typed to its agent, unless the agent started the walk itself. The Previews tab lists past walks, with their findings and a Stop button while one runs.

Changed1

  • The box's devbench CLI has devbench explore [--base URL] [--steps N] | list | show <id>. The explorer's browser driver is installed beside the video recorder.
v0.5.27Vesprr1 min read

Version 0.5.27

Projects are now Workspaces everywhere, the top bar is reordered, and Home shows your notifications.

  • 3 Changed

Changed3

  • Projects are called Workspaces. The web app, the desktop app, the phone, emails, push notifications, the devbench CLI's help and output, and the instructions agents get all say "workspace" now. Addresses, CLI commands and flags (--project) are unchanged, so links and scripts keep working. Search takes @workspaces, and typing "project" still finds things.
  • The top bar is Home, Workspaces, Calendar, Docs, Apps, Settings, Organization settings. Calendar is what was Automate (Schedule, Agents, Watchers, Tools and Broadcasts), and opens on its Schedule. Settings is your own settings, and Organization settings is the organization's, for those who may open it. Lathe, Ship and Insights are in the organization's menu, as before. The desktop app's Go menu follows the same order.
  • Inbox has left the top bar. Home now lists your unread notifications: open one to go where it points (it is marked read), or Mark read / Mark all read. The bell's new View all opens the full Inbox.
v0.5.26Vesprr1 min read

Version 0.5.26

An agent can propose a message to every other agent in the organization, sent only once an owner or maintainer approves it.

  • 1 New

New1

  • Broadcasts. When you ask your project's agent to, it can propose one message to every other agent in the organization: an announcement, an org-wide change, a request to audit for a vulnerability. It appears as a card in the project chat showing the whole message and how many agents it would reach, and nothing is sent until an organization owner or maintainer approves it. Approve on the card to send it to every other project, or open Automate › Broadcasts to pick the projects. Only agents whose box is running receive it, each told it is an organization-wide message, and the chat says how many it reached. An agent can never send one on its own.
v0.5.25Vesprr1 min read

Version 0.5.25

Agents get Lathe's exact recipe format, and Lathe with live control is published for computer installs.

  • 1 Changed
  • 1 Fixed

Changed1

  • Agents know Lathe's recipe format. The Lathe guide every agent loads now gives the exact format of devbench/lathe/manifest.yaml and its pipeline file. Its examples are checked against Lathe's own validator, and it covers installing an APK you already have and how emulators on a team computer differ from phones. Agents no longer find the field names by trial and error.

Fixed1

  • Lathe with live control is downloadable. The Android build with Screen and Taps, which Add a phone and Set up a phone install from a computer, was missing from the downloads after 0.5.24. This release publishes it.
v0.5.24Vesprr1 min read

Version 0.5.24

Lathe for Android installs from its download link again, and long chat messages no longer show as empty bubbles on Android.

  • 1 Changed
  • 2 Fixed

Changed1

  • Lathe for Android installs from the download link. Play Protect blocks any app downloaded in a browser that uses an accessibility service, so the download no longer includes one. It takes builds, sends notifications, collects app logs and updates itself. Screen, taps and typing are in a second build, Lathe with live control, which the desktop app's Add a phone and Lathe for PC's Set up a phone install from your computer.

Fixed2

  • Long messages on Android. A message taller than the screen showed as an empty grey bubble in the phone app's chat and Agent screen. It now shows in full.
  • Lathe for PC 0.4.1 on Windows. The app window could stay blank white. It now starts on a clean web profile, and if the panel still hasn't drawn after 45 seconds it reopens on a new one.
v0.5.23Vesprr1 min read

Version 0.5.23

Space Lens shows what fills the server's disk, and closed projects now clean up after themselves.

  • 3 New
  • 2 Changed

New3

  • Space Lens. Settings, under System, now maps what is using the server's disk. Press a tile to drill in, from all storage down to one project's agent scratch. It measures itself every hour and after a cleanup, and Rescan measures again on demand.
  • Biggest things to clear. A list under Space Lens, with a button to clear one box's agent scratch or remove a Docker image nothing uses.
  • Low disk alert. The team is told when the server's disk reaches 90% and 95% full.

Changed2

  • Closed projects clean up after themselves. Moving a project to a finished column stops its previews. After 30 days closed it is archived, and archiving clears node_modules, virtual environments, caches and git-ignored build output. Source, commits and uncommitted work stay, and so do the App's databases.
  • Dead previews are cleared automatically, a short while after they end.
v0.5.22Vesprr1 min read

Version 0.5.22

Draw on images as you attach them, on the web and the phone, with every mark kept as its own layer.

  • 5 New
  • 1 Changed

New5

  • Draw on a picture before you send it. A pencil on an image in the project chat's message box opens a full-window editor with pen, arrow, box, circle and text. Each tool and colour has a key on the web, and the phone app has the same tools by touch.
  • Annotations. Add a note to a picture as its own layer. It starts hidden, so the picture stays clean until someone turns it on.
  • Every mark is a layer. Layers are saved inside the picture's own file, and the image itself is not changed, so anything that doesn't know about layers shows the original. Images can't be edited after sending, which keeps chat history intact.
  • Layers in the image viewer. Show or hide each layer, and on the web choose which ones to include when you download a flat image.
  • Agents get the picture with its marks. An agent receives the image rendered with its visible layers, and every mark described in words, including hidden annotations.

Changed1

  • The chat rail's pane closes the way it opens. Circles turn back into ticks, the spacing closes up, and the text and card fade.
v0.5.21Vesprr1 min read

Version 0.5.21

Super admins can free storage on the DevBench server with a Clean up storage button in Settings.

  • 1 New

New1

  • Clean up storage. A button in Settings, under System, removes leftovers of dead previews, agent scratch folders idle for 3 days or more, and unused Docker layers and build cache, then shows how much it freed. Project volumes, stopped projects and anything running are not touched.
v0.5.20Vesprr1 min read

Version 0.5.20

Failed previews no longer block new ones, agents' scratch files are cleaned up, and boxes running over 7 days are flagged.

  • 3 New
  • 3 Changed
  • 3 Fixed

New3

  • Boxes running 7 days or more are flagged. A warning icon on the Projects board and the Monitor page says how long the box has been up and recommends updating its status or making a new project. Nothing is stopped.
  • Deploy only some parts. devbench deploy --only <part> rebuilds that part inside the live preview while the others stay up.
  • Remove or switch off a part from the CLI. devbench deploy config rm <part>, and --enable or --disable on devbench deploy config set.

Changed3

  • Agents' scratch files are cleaned up. They are deleted when a box stops, and every three days for sessions with nothing changed in that time.
  • A part whose folder isn't in the branch is skipped, and the deploy names it, instead of failing its build.
  • A switched-off part says so in the config list and in the deploy, instead of reading as ready or as having no config.

Fixed3

  • A failed preview no longer holds on to its network. Leftovers from failed deploys could stop every new preview on the host from starting, and previews now use a much larger range of networks.
  • Deleting a project stops its preview.
  • A failed deploy says what happened. Its parts show as failed with the reason, and devbench deploy returns at once instead of waiting.
v0.5.19Vesprr1 min read

Version 0.5.19

The Projects board's columns have a maximum width, and empty stages are ordinary columns again.

  • 2 Changed

Changed2

  • Board columns stop at a maximum width. They share the board equally but never grow past 24rem, so a wide screen keeps readable columns instead of stretched ones. Five still fit a 1440px window.
  • An empty stage is an ordinary column again, saying "No projects", instead of a folded strip with its name down it.
v0.5.18Vesprr1 min read

Version 0.5.18

The Projects board's columns share the whole width again, each the same width.

  • 1 Fixed

Fixed1

  • The Projects board left a wide screen a third empty. 0.5.17 gave every column a fixed width, so on a large monitor the columns ended well before the edge while a busy one scrolled. The open columns now share the whole board equally, never narrower than before; empty stages stay folded.
v0.5.17Vesprr1 min read

Version 0.5.17

The Projects page has an even board with empty stages folded away, a new List view, and late projects as a chip.

  • 1 New
  • 2 Changed

Changed2

  • The Projects board keeps every column the same width. A stage with one project no longer stretches across half the page. An empty stage folds to a slim strip with its name down it, and opens again while you drag a card so you can still drop on it.
  • Projects past their deadline are a small "N late" chip in the toolbar that lists them and opens one, not a banner across the page.

New1

  • A List view of the Projects page. One row per project, grouped under collapsible stage headings, showing what it is working on, its tasks done, its deadline, what its agent is doing and who is on it. Pick it beside Board, Cards and Calendar.
v0.5.16Vesprr1 min read

Version 0.5.16

The chat rail tracks your scroll with a white bar, has clearer colours, and a question can fold away.

  • 2 New
  • 2 Changed
  • 1 Fixed

New2

  • Fold a question away. A question from an agent in the message box has a chevron beside Dismiss. It folds the question to one line so you can read the chat under it. The question stays unanswered, what you picked is kept, and a new question opens by itself.
  • A white bar on the chat rail. It runs from the first message on screen to the last and follows your scroll exactly.

Changed2

  • The chat rail's colours are easier to tell apart. Your messages are teal, teammates slate, agents violet, and a mention of you amber. The dots beside the ticks are gone.
  • The rail's pane uses circles. Ticks round into circles as the pane opens, and each author's name takes its colour.

Fixed1

  • The chat rail no longer jumps while you scroll. The white marker that jumped between messages is gone, and a status line in the middle of the screen no longer throws the rail to the newest message.
v0.5.15Vesprr1 min read

Version 0.5.15

Download works again for shared files, at any size.

  • 1 Fixed

Fixed1

  • Download saves the file. Pressing Download on a shared file (in a file's own page, or in a project's Media tab) failed with "DevBench could not be reached" for every file kept in DevBench's file storage, whatever its size. The browser now saves the file straight from storage, so a 50 MB build downloads like a 5 KB note, and a picture or video in a private bucket streams instead of loading whole first.
v0.5.14Vesprr1 min read

Version 0.5.14

Agents comment on their merge requests and keep the title and description current, and every agent finds DevBench's skills.

  • 1 New
  • 2 Changed
  • 1 Fixed

New1

  • Agents talk to the reviewer on the merge request. devbench mr comment posts a comment on an open merge request (on GitHub, the pull request's conversation), and devbench mr update changes its title and description. Agents are told when to comment and how: what changed since the reviewer's last look, the commit, and how it was tested.

Changed2

  • Every agent finds DevBench's skills. Claude Code, Codex and OpenCode each list DevBench's own skills (docs, git and merge requests, tasks, media and more) in every project, not only those on the slim instructions, so an agent can pick one by what it's for.
  • `devbench mr create` says when a merge request was already open. Running it again used to report the open merge request as opened while leaving its title and description as they were; it now says so, and how to change them.

Fixed1

  • Codex in a hired agent's box listed each skill twice.
v0.5.13Vesprr3 min read

Version 0.5.13

Doc widgets redesigned: compact charts you can hover, panels to frame figures, real icons, and badges, steps and timelines that fit.

  • 4 New
  • 10 Changed
  • 1 Fixed

New4

  • Panels. A doc can frame a figure, a mockup or any blocks in a panel: what it holds on the frame's top line, its title above the frame, a note under it, and an info button that opens more about it.
  • Rows. One list widget for checks, services, files, people or links: a state or an icon, a title with a badge, a note and a detail on the right.
  • One set of states for every widget. Rows, steps, timeline events and badges take the same states (done, active, todo, warn, blocked, fail, skipped and more), drawn the same everywhere, and any item can have its own icon and tone.
  • Charts answer the pointer. Hover or tap a column, a point, a bar, a pie slice, a heatmap cell or a roadmap row to bring it forward and read its values.

Changed10

  • Charts are compact and rounded. Column, line, bar, pie, scatter, heatmap and roadmap charts are shorter, sit on round-number gridlines, write their values on the marks and keep their text readable. The pie is a donut of rounded slices with the total in the middle.
  • Real icons in every widget. Doc widgets draw DevBench's own icons on the web and on the phone, sized and aligned with their text, instead of symbols from a font.
  • Callouts, badges, steps and timelines look like the app's own. A callout is a soft tint with a border all round and its icon and title in its tone. Steps run across the page (down it on a phone), the checklist counts what is done above its items, and the timeline puts each time and date before its marker.
  • Accordion sections slide open and shut, and their chevron turns to point down while open, on the web, on the phone and in an exported HTML file. Pressing a section mid-slide turns it round, and nothing slides where you ask for less motion.
  • A doc exported as Markdown keeps its accordion's titles: each section's content comes under its title, shut sections included.
  • A doc with widgets shows its title and opening text at once, with a box where its first widget will be, instead of a grey placeholder while the widgets load. Nothing that is shown moves when they arrive.
  • The status list, funnel and facts widgets are retired. Docs that use them move onto rows or a bar chart on their own when DevBench updates, each saved as a new version you can restore. devbench doc migrate does the same for one doc.
  • Agents keep what they learn. Their instructions say a project and its box are deleted when the work is done, and where each kind of knowledge outlives them: the App's AgentBook for what took trial and error, its shared memory for facts, docs for findings, and skills for how-tos every project should load.
  • Agents write docs with widgets. Their instructions now say which widget fits which kind of content, and to mock up a screen in a doc before building it.
  • `devbench mr create` opens against the first stage of your git flow when no target is given, and asks for a description of the change.

Fixed1

  • Hovering a heatmap cell or a roadmap row no longer moves the chart.
v0.5.12Vesprr2 min read

Version 0.5.12

Apps get a Wishlist, a Deployments tab across their projects, deployment defaults, and agent memory and skills shared across them.

  • 6 New
  • 1 Changed

New6

  • A Wishlist on every App. Thoughts about what might be worth doing with the App someday, on a board of colourful tiles: each one takes the tile that suits it, from a small square for a one-liner to a big tile for a pinned thought with a lot to say. Only people see it: agents can't read it, and nothing from it is given to a box.
  • Deployments across an App. The App's new Deployments tab shows what is running for every project on it, with links to each preview, and what ran recently.
  • Deployment defaults for an App. In the App's Settings: how long its projects' previews run, whether their links are public or need a sign-in, extra hosts they must never reach (added to the organization's list), and whether New project starts with a preview. Anything left unset follows the organization's settings.
  • Shared agent memory. Every agent on an App now shares one memory, whether it runs Claude Code, Codex or OpenCode, on Linux or Windows. What an agent saves in its box reaches the other projects' agents, in both directions, when a box starts and every 15 minutes. Memories added on purpose, on the App's page or with devbench app memory add, are tagged Intentional. Clean up deletes synced memories in bulk (all of them, or those untouched for a while) and always keeps the Intentional ones.
  • AgentBook. When an agent gets something working after a lot of trial and error (a toolchain, a build with exact flags), it saves the steps as a page in the App's AgentBook with devbench agentbook add, with any files that go with them from DevBench media (a build, a zip, a config). Every agent on the App sees the pages listed and reads one when its task needs it. People read, write and trim them on the App's Agents tab.
  • Shared skills. Skills written on an App's page are given to every agent on it, and saving one updates every running box. The App's new Agents tab shows its memories and skills together, on the same board of tiles.

Changed1

  • New project from an App makes the project for that App, so it stays on the App whichever of its repositories it works in. A project can take only the repositories its work touches, and its previews still bring the rest of the App up.
v0.5.11Vesprr1 min read

Version 0.5.11

The app builds include the MKP doc renderer, so the phone and desktop releases can be built again.

  • 1 Fixed

Fixed1

  • Building the phone and desktop apps. The server's app build copied each app's sources without the vendored MKP renderer they now import, so both builds would have stopped before producing anything. It copies it now.
v0.5.10Vesprr1 min read

Version 0.5.10

Docs hold charts, stats and status boards (MKP), keep every version with who changed it, and export as HTML, an image or Markdown.

  • 4 New
  • 1 Changed

New4

  • Rich docs with MKP. A doc can now hold widgets alongside its Markdown: key numbers with sparklines, bar, column, line, area, pie, scatter, heatmap, funnel and roadmap charts, comparison tables, status lists, steps, timelines, checklists, cards, callouts, tabs, accordions and columns. They're drawn in DevBench's own look, light and dark. Plain Markdown docs look exactly as before. The phone app draws them natively too, from this version's build.
  • Export any doc. The doc page and the public share page have an Export menu: an HTML page that opens offline (widgets keep working), a PNG picture, or Markdown (widgets become tables and lists).
  • Every version of a doc is kept. History (in the doc's ⋯ menu) lists each version with who saved it, when and how (in DevBench, by an agent, restored), shows what changed as a diff or the version as it read, and restores any version as a new one. Agents have devbench doc history and devbench doc restore.
  • Agents write rich docs. devbench doc help lists every widget with an example, devbench doc check points at each mistake with its line, and devbench doc create refuses a doc whose widgets don't compile, saying why.

Changed1

  • Shared doc links are read-only. The public page of a doc shows it and offers Export; editing, history and restore are in DevBench.
v0.5.9Vesprr1 min read

Version 0.5.9

Checklists in chat messages show their ticks in colour and their text can be selected again.

  • 1 Fixed

Fixed1

  • Checklists in chat messages. A - [x] / - [ ] list in a message showed its boxes greyed out, as if switched off, and its text could not be selected. The boxes now show in their own colours (filled with a tick when done, an empty box when not) and still cannot be changed from the message; the text beside them selects like the rest of the message.
v0.5.8Vesprr4 min read

Version 0.5.8

Apps get their own place in the top bar after Home, a new list, and a page per App with its projects, docs, repos and settings.

  • 5 New
  • 9 Changed

New5

  • Apps in the top bar. Apps were a page under Ship, easy to miss. They are now the second place in the top bar, after Home and before Projects. Its row is the same as the Projects row: All apps, then each App you open as a tab, with ×, + to open another (Alt+O), and the same keys: Alt+1…9 and Alt+0 to pick one, Alt+PageUp/PageDown to step along them, Alt+W to close the one in front and Alt+Shift+T to reopen it. Ship keeps Releases, Previews and Cloud.
  • A new Apps list. Each App is a card in its board colour: what it is, its repos, how many projects are on it and how many are running, its databases and docs, and when it was last worked on. Sort by recent activity or by name, search, or filter to the Apps that still need setup. Repos that are in no App are still listed under the cards.
  • A page for each App, in tabs. Overview shows its recent projects, the guidelines its agents read, what it still needs before it is ready, and its repos and docs at a glance. Projects lists every project made on its repos, archived ones too if you ask. Docs lists the docs shared with the App and the docs written in its projects. Repos & databases, Environments and Settings hold what the old page held, one tab each. A link can open a tab directly: /apps/12?tab=docs.
  • New project from an App. The App page's New project button opens the usual New project form with that App already picked. Opened anywhere else, New project works as before, and a project can still be made from repos alone.
  • Demo mode. With DEVBENCH_DEMO_MODE=1 in the backend's env file and the demo put into the database by manage.py seed_demo (which refuses anywhere else), the sign-in page offers View the demo: one shared demo account in an organization of its own, with sample Apps, projects, tasks and docs. It is read-only (a change says "This is the demo: changes aren't saved"), it never reaches a real box, git provider, cloud or billing, and it cannot join or see a real organization. Off unless the flag is set.

Changed9

  • A lighter top bar. Home, Apps, Projects, Inbox, Docs and Automate, each with an icon. Lathe, Ship and Insights moved into the organization's menu (its name, at the bar's left end), above Settings, Team, API keys and Server health. Alt+Shift+1…6 follow the bar.
  • A page on the right, by dragging. Drag any tab (a project's page or doc, a Docs tab, a place's page, an open project or App) onto the page: let go on the right half and it opens on the right; on the left half and it comes to the front, the page that was there moving to the right. The page on the left is always the one in front. Two pages at most, with the divider between them; the page on the right is marked in italics in its tab row. A see-through copy of the tab follows the pointer and says what letting go does.
  • The secondary pane button. An icon at the end of the projects and Apps rows (as in VS Code) shows or hides the page on the right, with what it showed last, else the project's Chat. Alt+\ does the same. While projects are grouped it is greyed out.
  • No title bars over the pages. The page in front keeps its buttons in its tab row; the page on the right has no bar until you point at its top edge, when its title and buttons slide down over it.
  • Resizing. While the divider is dragged both pages hold still and blur, and clear again when it is let go. A hard flick no longer puts the divider back where it started.
  • Group projects. Side by side is now Group projects ▾: the group as chips, a search over every project to add one (several in one go), Ungroup. A project tab also has a right-click menu: Group with the project in front, Remove from group, Ungroup all, Close tab.
  • Key badges. Holding Alt shows one key on each control it opens. Keys that need Shift too (the places, Alt+Shift+N) are dashed until you hold Shift as well; then they light and the others turn dashed. The previous / next page is now Alt+← / Alt+→ (it was Alt+[ / Alt+]).
  • Two-finger swipe for Back and Forward. The app had switched the browser's own swipe off; it works again. The desktop app, whose window has no such gesture, now reads the swipe itself, with an arrow at the edge as it builds up.
  • The old pane workspace is gone. Its leftovers (the layout engine and its components in the UI library, saved spaces, about 1,300 lines of styles for things no longer drawn) are removed. Nothing you use changes.
v0.5.7Vesprr1 min read

Version 0.5.7

The phone app's main screens load much faster, and the web app's members, settings and cloud pages fit a phone.

  • 2 Fixed

Fixed2

  • The phone app was slow to fill its main screens. The chat list behind Home, Agents, Chats and search took over two seconds on a large organization, and a project's Tasks, Deployments and Apps were slow too. Each now loads in a handful of database queries however many projects, messages or tasks there are.
  • The web app on a phone. The members list is one card per person, with the role, "Manages deploys" and "Boxes at once" one under another. The organization's and a project's settings sections wrap so every one is in view, and a cloud account's status sits under its details.
v0.5.6Vesprr1 min read

Version 0.5.6

Projects side by side show only as many columns as fit the window, so a tablet never squeezes a project to an unreadable sliver.

  • 1 Fixed

Fixed1

  • Projects side by side on a tablet or a narrow window. A group of three projects opened on an 820px tablet as three columns about 270px wide, the front one squeezed to about 120px, so Tasks and Chat could not be read. Now each column keeps at least 360px: a tablet shows the project in front and one beside it, evenly, and a wider window shows more. The group itself is unchanged.
v0.5.5Vesprr1 min read

Version 0.5.5

Sign in and Join are DevBench's own pages now, on the web, the desktop app and the phone. WorkOS still runs the accounts behind them.

  • 4 New

New4

  • Our own Sign in page. Enter your email, then the 6-digit code we email you, or use your password if you have one. It is DevBench's page in DevBench's design; the WorkOS sign-in screen is gone. WorkOS still runs the accounts behind it, so every account signs in as before.
  • Joining is one page too. Enter the invite code. The page checks it and shows which team you are joining. Then enter your email and the code we send you, and you are in the team. There is no password to set and no Sign up button to send you back to the start, which is where the old flow got stuck.
  • The same on the phone. The phone's Sign in and Join screens follow the same steps and no longer open a browser sheet. Phones offer to fill in the emailed code.
  • The desktop app signs in in its own window, instead of sending you to the system browser.

Good to know2

  • If an account needs a step these pages do not offer yet, such as a second factor or a company's own sign-in, the page says so and opens the WorkOS page for that one sign-in.
  • There are limits on how often codes can be sent and how many codes or passwords can be tried, per address and per email. If WorkOS fails to answer, the team chat is alerted.
v0.5.4Vesprr5 min read

Version 0.5.4

Joining with an invite code works again, and codes are single use by default; the message box shows your text as it will be sent.

Added

  • Invite codes are single use by default. A new code lets one person in. Whoever makes it can choose more people, or no limit, in the Invite dialog, and change it later from the code's row on the web or its menu on the phone. Every code that had no limit is now single use; one that had already been used is now used up.
  • The message box shows formatting, not Markdown (web and desktop). Bold is bold, a list is a list, code looks like code, as the message will read once sent. It is still sent as Markdown, as the agent and everyone else expect.
    • Markdown still works as you type: **bold**, *italic*, `code`, ~~strike~~, - or 1. for a list, > for a quote and three backticks for a code block turn into their formatting. Markdown pasted as plain text becomes its formatting too.
    • Shift+Enter is a new line (a new item in a list; on an empty item it leaves the list). Enter sends, or Ctrl/Cmd+Enter if that is your setting. @ mentions work as before.
    • What is sent is what you typed: no backslashes are added before a * or [ that would not have formatted anything (a key, a path, snake_case).
  • A formatting bar on top of the message box: bold, italic, strikethrough, inline code, link, bulleted, numbered and check lists, quote and code block, with their shortcuts (Ctrl/Cmd+B, I, E, Shift+S; Shift+7, 8, 9 for lists; Shift+B for a quote; Alt+C for a code block). At its right, Show Markdown switches the box to the Markdown underneath and back; the choice is remembered in this browser.
  • On the phone, long-press text in the message field to format it, as in WhatsApp: a menu comes up over the field with Bold, Italic, Strike and Mono, and More for a link, lists, a quote and a code block. It puts the Markdown in for you (the phone shows the Markdown as typed for now). Nothing is selected, nothing shows.
  • Pop out videos and docs from chat, as photos open. A video has a pop-out button beside Download (on its poster and while it plays), and a DevBench doc attached to a message has one beside its link: both open in the viewer, where the arrows walk a message's photos, videos and docs together. The doc reads right there.
  • The viewer covers the workspace only. The top bar and the rows of project tabs and groups stay usable while a photo, video or doc is open, so you can switch to another project or group without closing it first. It has Open in a new tab beside Download.
  • Short, tidy addresses. The address bar no longer shows the database's numbers: a project is /workspaces/0mVgX2, a doc /docs/3JTTPW, and a group is one short link, /g/1fJ2h, in place of /workspaces/289/?tab=chat&beside=288,414. A group's link carries its projects, so a teammate who hasn't saved that group still opens the same projects side by side. Copied links (a task's, a message's) use the short form too, and old links with numbers still open.
  • Merge requests: Go to chat and Ask agent to review. Every waiting merge request, on the phone and the web, goes to its project's chat in one tap, and Agent review asks the project's agent there (@agent, in the box that made the change) to review the whole change, run the tests, fix what it finds and merge it when it's clean. It asks you first, then opens the chat so you can watch.
  • Working now on Home shows the agent's logo, not its name. The row is the project's name alone, with Claude's (or Codex's, OpenCode's) mark beside it, so long project names fit.

Fixed

  • Joining with an invite code no longer loops back to the code page. Continue opened WorkOS's sign-up screen, which in our WorkOS setup sends people straight back to /signup, so it looked like a page refresh with nothing happening. Joining now opens the sign-in screen, where Google, GitHub or a code by email creates the account. If someone does come back without signing in, the page keeps their code, says what to do, and the team gets an alert when they try again.
  • Copying a chat message's numbered list and pasting it nested the list one level deeper each time ("1. 1. 1."). The list's numbers are drawn beside each item, and a copy took them as text; they are no longer copied, and the paste ignores them. Copying a message also keeps its bold, italics and strikethrough now.
  • A public doc link stays public when you're signed in. Opening a shared doc link (/d/…) no longer moves you into DevBench; you see the page anyone else sees, with Open in DevBench at the top right when the doc is your organization's.
  • Links, everywhere (from the link review):
    • A link written without https:// ([site](example.com)) works; docs/12 or README.md stays text, and //other-site links are refused.
    • A link around code ([`README.md`](…)) stays a link, and an address right before **bold** or a backtick stops at the address.
    • A number in rendered Markdown (task notes, Inbox, docs, MR notes) is no longer drawn as one of the doc's links, and a link with mixed bold and plain text is one link, not several.
    • The desktop app hands only web and mail links to the computer; anything else a page asks it to open is refused.
    • The phone opens DevBench doc links in the app, keeps the task or doc a link points at, opens web links in its own browser, says so when a link can't be opened, asks before following a link whose text shows a different site, and offers Open / Copy link / Share on a long press.
    • A message's Copy link on the phone gives an https:// link; old devbench:// links open the message on the web and the phone too.
    • The link dialog makes an email address a mailto: link and accepts localhost:3000; clicking a desktop notification opens the message itself; long links wrap with the sentence.
  • Ctrl/Cmd-click on a group opens it in a new browser tab and leaves this page alone. It used to move the page you were on as well. The same goes for every control in the top bar that moves the page through the app (the project switcher, All projects, a project's Settings): a Ctrl/Cmd-click opens a new tab and nothing else.
  • Phone: videos play full screen, and are drawn in their own shape. A video in a chat message, a task note or a doc has a full-screen button beside its play button, which opens the phone's own full-screen player (playing, with its controls, turning with the phone). A portrait recording is drawn tall and whole instead of cropped into a 16:9 strip. The merge request and Files players allow full screen too.
v0.5.3Vesprr1 min read

Version 0.5.3

Connect with GitHub" signs in with OAuth instead of pasting a personal access token, which stays available for now.

  • 2 New

New2

  • Connect with GitHub (OAuth). The Connect GitHub page has a "Connect with GitHub" button: sign in on GitHub, approve DevBench, and you are back connected. Clones, pushes and pull requests use the connection exactly as they did with a pasted token. Disconnecting also revokes DevBench's access on GitHub. It appears once the server has GITHUB_OAUTH_CLIENT_ID and GITHUB_OAUTH_CLIENT_SECRET set.
  • The personal access token form is still there, folded under "Use a personal access token instead", until OAuth replaces it. Pasting a token over an OAuth connection switches it back to a token.
v0.5.2Vesprr1 min read

Version 0.5.2

The secret-files Gatekeeper refuses only commands naming a secret file that exists, not code that mentions `.key` or `.env`.

  • 1 Fixed

Fixed1

  • Code that mentions `.key` or `.env` is no longer refused as a secret file. The secret-files Gatekeeper refused any shell command with a word ending in .key or .env in it, even a keyboard event's event.key or self.key in a script, and even when no such file existed, so agents were refused many times a day and renamed code to get past it. A word now counts only when it names a file that exists (or a pattern that matches one), looked for from the command's folder, the project, and any folder the command moves into. Real secret files stay unreadable, and a refusal now says that a file of that name exists.
v0.5.1Vesprr1 min read

Version 0.5.1

On the phone, a table too wide for its chat bubble ends at its last row instead of running on into screens of empty space.

  • 1 Fixed

Fixed1

  • A wide table in the phone's chat ends at its last row. A table with more columns than fit a phone's bubble scrolls sideways, and on Android it came out as a few rows at the top of a bordered box several screens tall, with the rest of the message only where the box ended. Its height now comes from its rows, so the message carries straight on under the table, and the table still scrolls sideways to its last column. Tables in documents and inside lists and quotes are drawn the same way. If a phone ever measures the two differently again, the app reports it to the team.
v0.5.0Vesprr1 min read

Version 0.5.0

An empty repository gets the project's flow branches, from a README naming the repo, when it is cloned.

  • 1 Changed

Changed1

  • An empty repository gets its branches when it is cloned. A project's repo with no commits at all is given an initial commit, a README.md holding the repository's name, on every branch of the project's git flow (for example main and staging), and the workspace branch is cut from it. Before, the workspace branch was left with no commits: the agent's first push made it the repository's default branch, and a merge request had no main to go into. The repository's own default branch is created first, so it stays the default. A box running on a team machine cannot create protected branches itself; it creates the workspace branch and says which branches it could not make.
v0.4.99Vesprr1 min read

Version 0.4.99

A repo added to a running project can be pushed straight away, and merge request status no longer calls a commit on an empty repo "clean".

  • 3 Fixed

Fixed3

  • Repos added to a running project can be pushed. A repository added from Repos while the project's box was running was cloned, but the box's git guard was not told about it. Every push was refused as "not one of this project's repos", and the checkout's remote still pointed at GitHub rather than DevBench. The box is now re-scoped from the project's repos as they are after the change, and the same goes for removing a repo and editing Git guardrails. A box left in that state is mended when it next starts: restart it.
  • Every box start brings its git guard up to date. The allowed repos, each checkout's remote and the commit hooks are checked at each start, not only when a repo still has to be cloned. If updating a box fails while repos are being added, the team is alerted instead of the failure going unnoticed.
  • `devbench mr status` and the Git tab count commits on an empty repo. A commit to a repository whose remote has no branches yet showed as "clean". It now shows as unpushed.
v0.4.97Vesprr1 min read

Version 0.4.97

A deployment has Open, Redeploy all and Stop all on it, and each service's address is shown in full to open or copy.

  • 2 Changed

Changed2

  • Stop all and Redeploy all are on the deployment. The deployment on a project's Previews page has labelled Open, Redeploy all and Stop all buttons, in a pane as well. Stop all asks first. Redeploy all deploys the same place again.
  • Each service's address is in view. Under each running service, its whole address sits in a box with Open and Copy, wrapping rather than being cut short in a narrow column. Restart and Logs are labelled, and a running service's build steps fold away under "Build steps".
v0.4.96Vesprr1 min read

Version 0.4.96

On the phone a project opens on its chat, and the chat's message map has scroll arrows at both ends.

  • 1 New
  • 1 Changed

Changed1

  • On the phone, opening a project opens its chat. From the board, Home, the Agents tab, search, notifications and links alike: the chat is where you work with the agent. The project's overview, tasks and Agent screen are a tab away in the chat's header.

New1

  • Scroll arrows in the chat's message map. The list that opens from the rail beside the chat has an arrow at the top while there are earlier messages and one at the bottom while there are later ones. Rest the pointer on one to scroll, or click it to jump a page.
v0.4.95Vesprr1 min read

Version 0.4.95

A project shows when it has a deployment up and which Lathe machine runs it, and Working turns instead of blinking.

  • 2 New
  • 1 Changed

New2

  • A project with a deployment up says so. Beside its name in the header, on its board card, and on the phone's project row and page: "Live", "Deploying" while one goes up, or "Partly live" in amber when some repos failed. The tooltip says where (an environment, or Preview).
  • The project header names its Lathe machine. A project whose box runs on a team computer shows the machine beside its state, in amber when that machine cannot run it.

Changed1

  • Working is a small turning ring, not a blinking dot, in the project header and on board cards. It holds still when the system asks for reduced motion.
v0.4.94Vesprr1 min read

Version 0.4.94

The agent icons on project tabs and headers are back in their own colours.

  • 1 Fixed

Fixed1

  • The agent icons on project tabs and column headers were grey and dimmed. Claude's is orange again, and Codex's and OpenCode's are drawn in full contrast, on the web and in the desktop app.
v0.4.93Vesprr1 min read

Version 0.4.93

The agent's question in the web and desktop message box is a short form: one whole question per step, its options a radio list.

  • 1 Changed
  • 1 Fixed

Changed1

  • A question in the message box is answered one step at a time. Each step shows one question in full, with its options as a radio list and Other last (which opens a text field). Next waits for an answer, Back keeps what you chose, and the last step sends every answer together. "Question 2 of 3" says where you are. A question asked alone has one step and a Send answer button.

Fixed1

  • A chosen option is outlined, not lime. 0.4.92 drew it as a lime tint, but lime is kept for the main button, what needs you and running work. It is now an outline with its check: no white block, no lime.
v0.4.92Vesprr1 min read

Version 0.4.92

A long question in the message box keeps its header and Send answers in view, and a chosen option is no longer a white block.

  • 2 Fixed

Fixed2

  • A long question in the message box was cramped. Several long questions scrolled in a small window with their header cut off at the top and Send answers out of sight below. Now only the questions scroll; who is asking, Dismiss and Send answers stay in view.
  • A chosen option showed as a solid white block in the dark theme. It is a soft lime tint with its check now, in the message box and in the thread.
v0.4.91Vesprr1 min read

Version 0.4.91

On the web and desktop, a question the agent is waiting on sits inside the message box, above where you type.

  • 1 Changed

Changed1

  • The agent's waiting question is part of the message box. On the web and in the desktop app, the newest question an agent is waiting on is drawn inside the chat's message box, on top of the text field, with its options, Other and Dismiss. It no longer sits in the thread as a separate card you scroll back to; the thread keeps a one-line note pointing to it. A long question scrolls within the box.
v0.4.90Vesprr1 min read

Version 0.4.90

A project whose box runs on a Lathe machine says so, and names the machine, on its board card and its own page.

  • 1 New

New1

  • You can see when a project runs on Lathe, and on which machine. A project whose box runs on a team computer shows "Lathe · <machine>" on its board card and in its header, on the web, the desktop app and the phone. It turns amber when that machine cannot run the box or has stopped answering; the tooltip says which. A project on the DevBench server shows nothing new.
v0.4.89Vesprr1 min read

Version 0.4.89

Members can no longer create projects, and owners can cap how many boxes a maintainer runs at once.

  • 1 New
  • 1 Changed

New1

  • Owners set how many boxes a maintainer may run at once. On the Team page (a "Boxes at once" column on the web, and in a maintainer's sheet on the phone), choose a number or No limit. It counts the maintainer's own projects with a running box, shows how many are running now, and is checked whenever one of their boxes would start, including a chat message waking it. Owners and scheduled-automation boxes are not limited.

Changed1

  • Members can't create projects. New project is gone for members on the web and the phone, and the server refuses them on every create path with what to do instead: ask an owner or a maintainer to create it and add them.
v0.4.88Vesprr1 min read

Version 0.4.88

What's new can be filtered and folded, Help shows a dot for unread notes, and dropdowns and chat double-clicks behave.

  • 4 New
  • 2 Changed
  • 3 Fixed

New4

  • What's new has a filter. Chips for New, Changed and Fixed show their counts, and a word filter (press /) keeps the notes that contain every word, with each match marked. Older versions fold to their summary with a "Show notes" button, and a wide pane has an index of versions beside the list that follows the one you are reading.
  • Help shows a dot while this version's notes are unread. Opening What's new from anywhere clears it.
  • Escape in the chat clears a word you selected and deletes a reply you started.
  • A long paste in the chat goes in as a text file. Pasting 2,000 characters or 40 lines or more attaches the text as a .txt chip under the message instead of filling the box, so a long log or file is no longer cut off at the message limit.

Changed2

  • The version notice says "N updates since vX" (it counts versions, not changes), and its What's new button adds a page to your history, so Back returns to where you were.
  • A notice you hover keeps the time it had left when you move away, instead of being cut to 4 seconds.

Fixed3

  • Dropdowns scrolled on their own when the mouse rested over the list while you typed or used the arrow keys. A row now follows the mouse only when the mouse moves, hovering never scrolls the list, and the arrow keys scroll it instantly.
  • Double-clicking a word in the chat started a reply. It now selects the word; a reply starts from a double-click on the message's blank space, and only when the click is quick and still.
  • The version notice's What's new button opened the top of the page for a version with no notes of its own; it opens the newest notes before it, and the page says so.
v0.4.87Vesprr1 min read

Version 0.4.87

Answering a question card no longer posts a second message repeating the question, and terminal prompts read as plain text.

  • 2 Fixed

Fixed2

  • Answering a question card posted a second "Answered in DevBench" message under it that repeated the whole question. The card already shows the answer and who gave it, so that message is gone. A reply typed in the chat is confirmed in one line, with only the answer.
  • A prompt read off an agent's terminal kept the terminal's dashed borders, and its command was broken across several lines. The card drops the borders and puts the command on one $ line.
v0.4.86Vesprr1 min read

Version 0.4.86

A project's agent can work on a team computer running Lathe for PC, as a limited account, once its owner allows it.

  • 5 New

New5

  • A team computer as an agent's server. When the owner of a computer running Lathe for PC 0.4.0 switches on Agent access, a project they allow can use it exactly like an SSH server: devbench server run <computer> -- <command>, put and get. Commands run as a separate limited account, lathe-agent, that Lathe creates there, never as the owner. Files up to 50 MB are copied in parts. Everything is logged, and a computer that cannot be reached is said in the project's chat.
  • Its screen, when the owner allows it. devbench lathe machine <computer> screenshot, click, type, key and scroll work on the owner's own desktop, each behind its own switch (Screen, Control).
  • Asking for it. devbench server request <computer> "<why>" puts an Approve / Deny card in the project's chat and tells the owner in their Inbox. Only the computer's owner can approve it (an organisation owner, for an organisation machine). The owner can also allow, refuse or remove projects in Lathe for PC, and Stop every project's use at once.
  • `devbench server list` shows each server's kind (ssh or lathe) and the team computers that let agents in.
  • KVM requests in Lathe for PC. A job's request to use KVM on a computer can now be answered in Lathe for PC on that computer, as well as on the web.
v0.4.85Vesprr1 min read

Version 0.4.85

An agent's approval prompt ("Do you want to proceed?") comes to the project chat as a card you answer there.

  • 2 New
  • 1 Fixed

New2

  • Approval prompts come to the chat. When Claude Code stops to ask whether it may run a command or edit a file, the project chat gets a card with what it wants to do, the command or file, and why it is asking. Allow or Don't allow there (or reply in the chat), and the agent carries on. The prompt used to wait in the terminal, unseen, until someone opened it.
  • A prompt already waiting in the terminal is caught too. If a chat message cannot reach the agent because it is stopped on a numbered choice in its terminal, the chat now gets that prompt as a card, instead of "I couldn't hand that to Claude". Answering it presses the matching key, and only while the same prompt is still on screen.

Fixed1

  • Claude's own questions show as cards in the chat. Questions Claude asked through its built-in dialog reached the chat as plain text, without buttons; they are cards now, like every other question.
v0.4.84Vesprr1 min read

Version 0.4.84

A key pasted as NAME=value is saved under the name you gave it, with only the key as its value.

  • 2 Fixed

Fixed2

  • Pasting `SENDGRID_API_KEY=SG.…` into the chat saved the whole line as the secret, under the name `API_KEY`. The part after SG. looked to the scanner like code naming a setting (settings.SECRET_KEY), so it skipped the name you gave, and its catch-all for random tokens then took the whole line. A dotted value with a random part is now a key; a NAME=value token with nothing around it keeps its name and only its value.
  • A key pasted inside `` ` `` or `, or ending a sentence, kept the closing `, ` or full stop in its saved value. They are left out now.
v0.4.83Vesprr2 min read

Version 0.4.83

Organization gets its own tab, redesigned into seven sections; pages no longer squeeze their content into the middle of a wide screen.

Changed

  • Organization is a tab in the top bar, last, after Insights (Home, from 0.4.81, is first). The menu under the organization's name still works, and Alt+Shift+9 opens it, as Alt+Shift+1…8 open the other tabs.
  • The Organization area, redesigned: seven sections in one layout. Each section has a heading with a mark, its settings in grouped cards, and fields that save as you change them (no Save bar; the OpenAI key has its own Save so a half-typed key is never stored).
    • General: rename the organization (new), the plan and the compute used this month, export all of its data (new) and delete the organization (new: type its name to confirm; it is deleted after a grace period and can be cancelled until then).
    • Members (was Team): people, roles, suspending, invites.
    • Agents: agent accounts and failover, the agents' versions, the agent and model new projects start with.
    • Agent behaviour: team instructions, which chat messages reach the agent, the conversation history, the task checker, the OpenAI key for drafting. (Agents and Agent behaviour were one 2,700 px page, AI.)
    • Projects: the setup script, board stages, git flow and protected branches, and the boxes' CLI.
    • Integrations: GitHub, GitLab, Bitbucket, the inbound webhook, and API keys (were a page of their own).
    • System: server health (was a page of its own), backup and restore, and a way to Super admin for super admins.
    • Old addresses still work: /team, /api-keys, /monitor and every old ?tab= open the section their settings moved to.
  • Pages use the width of the screen. List pages (Inbox, Tasks for you, Merge requests, Docs, Agents, Schedule, Watchers, Tools, Apps, Cloud, Releases, Previews, every Lathe page including its setup, a project's Overview, Docs and Activity) were capped at 1,024 px in the middle of the screen, and pages of prose at 768 px; on a 1,680 px screen a third of it on each side was empty. Lists and settings now use up to 1,440 px, prose up to 1,024 px, and Install DevBench and Preferences the list width. Project settings' column beside its rail is wider to match.
v0.4.82Vesprr1 min read

Version 0.4.82

The Android app builds again with the Home rules it now shares with the web app.

  • 1 Fixed

Fixed1

  • The Android app builds with Home's shared rules. 0.4.81 moved what Home lists (Needs you, agents by state, group rows) into a module the phone and the web share, but the phone's bundler was not told to look in that folder, so the Android build stopped at bundling. It is on the bundler's list now. The web and desktop apps were not affected.
v0.4.81Vesprr1 min read

Version 0.4.81

A Home page on the web and desktop, like the phone's, and your project groups on the phone's Home.

  • 1 New
  • 1 Changed

New1

  • Home on the web and the desktop app. DevBench now opens on Home, first in the top bar: what needs you (an agent's question, a signed-out agent, an @mention, merge requests and Tasks for you), the agents working now, your groups of projects, Lathe, and your recent projects, each a click from where it is answered. All projects is still a click away under Projects. The phone's Home and this one follow the same rules, so they list the same things in the same order.

Changed1

  • Phone: your project groups are on Home. The projects you grouped side by side on the web or the desktop app are a Groups section on Home, one row per group in its colour, with the group's unread count. A row opens the group's projects, each a tap from the project or its chat. They used to be only behind the folder icon on the Projects tab.
v0.4.80Vesprr1 min read

Version 0.4.80

An agent can set its own finish line with a command, and the chat credits the agent, not the owner whose key it uses.

  • 1 New
  • 1 Fixed

Added1

  • `devbench finishline set "<what must be true>"` and `devbench finishline stop`, so an agent can give itself a finish line for a long piece of work it was asked to see through, and end it. Its instructions say so.

Fixed1

  • A finish line an agent set read as if a person set it. An agent's key acts as the owner who made it, so the chat said "Finish line set by <owner>" and the finish-line bar showed the owner. It now says "set by the agent (Claude Code)" (or Codex, OpenCode), on the web, the desktop app and the phone, and the same for stopping one.
v0.4.79Vesprr1 min read

Version 0.4.79

A Lathe job whose project box is on a team machine no longer fails for good when that machine asks for its source too early.

  • 2 Fixed

Fixed2

  • Lathe jobs failed as "source snapshot mismatch" when nothing had changed. A new job is queued a moment before its source is copied into the project's box. When that box runs on a Lathe machine, the copy takes a few seconds, and an idle machine could take the job before it finished. The source was not there yet, DevBench called that a mismatch, and the job failed for good, blaming the project's code. DevBench now waits up to 45 seconds for a new job's source to arrive.
  • A box that cannot hand over a job's source no longer fails the job. If the box or its machine does not answer, the job goes back in the queue as "the project box could not hand over the source". Neither the job nor the machine is counted against, so it cannot get a machine quarantined. A source that really changed after submission still fails the job, as before.
v0.4.78Vesprr1 min read

Version 0.4.78

A project box on a Lathe machine gets its Claude login, and new boxes no longer carry another session's history.

  • 2 Fixed

Fixed2

  • A box on a Lathe machine had no Claude login. DevBench copies a template of Claude's settings and skills into every new box. That template had grown to 380 MB, so a box on a Lathe machine refused it, and the login and setup that should follow were skipped too. Its Claude sat at the first-run screen, and @agent messages could not reach it. The login and settings now go in whatever happens to the template.
  • New boxes no longer get another session's history. Besides settings and skills, the template held a job's Python environment and the prompt history, sessions, file history and paste cache of the box it was captured from, and every new box received a copy. A box now gets only Claude's configuration: settings, skills, plugins, agents, commands, hooks, CLAUDE.md and the fallback login. A new capture keeps only those, too.
v0.4.77Vesprr1 min read

Version 0.4.77

A project box on a Windows Lathe machine can resolve names again, and a failed clone says git's reason.

  • 2 Fixed

Fixed2

  • A project box on a Windows machine resolved no names. On Docker Desktop, a box's DNS goes through an address the box's network rules blocked, so its first git clone of DevBench failed with "Could not resolve host". Boxes now get the same DNS-only exception jobs already had. This needs Lathe for PC 0.3.4 on the machine.
  • A failed clone says why. The project showed the last few hundred characters of the clone's output, which began mid-word and ended in the noise of the steps after it ("nux: No such file or directory"). It now shows git's own reason, e.g. "Could not resolve host: api.devbench.vesprr.com".
v0.4.76Vesprr1 min read

Version 0.4.76

A project box on a Lathe machine shows what the machine is doing, and its first image build no longer times out.

New

  • See what a project box on a Lathe machine is doing. It used to read only "provisioning" or "starting" until it was ready. Now the project's panel, Settings → General and the machine's tile in Lathe → Machines show:
    • which machine it is on and what that machine is doing: downloading the image recipe, building the box image (with the step, e.g. "step 12 of 30", and the instruction it is on), or creating the box;
    • how long that has taken, and when the build last printed anything, with a warning when it has been quiet for over five minutes;
    • once the box runs, DevBench's own setup step, e.g. "Cloning devmustafa4/vt-linux". This needs Lathe for PC 0.3.3 on the machine; an older one still reads "Starting on its machine".
  • Lathe → Machines lists the project boxes each machine runs. A machine setting one up reads "Online · setting up a project box", not "ready".

Fixed

  • A machine's first box image build no longer fails the project at 45 minutes. The 45 minutes now count from when the machine has the image. The build itself has up to 3 hours, and one that prints nothing for 35 minutes is stopped with the step it was stuck on.
v0.4.75Vesprr1 min read

Version 0.4.75

Project settings, redesigned: five sections instead of nine, the same on the web and the phone, with the detail in modals.

Changed

  • Five sections instead of nine. Project settings had nine sections, three of them holding a single setting, with the agent's model under Automation, the box's switches split across General, Automation and Security, and Archive and Delete in different places. Now:
    • Box: start or stop it, its memory, where it runs, automatic shutdown, AWS access.
    • Agent: its model, its Claude account, the config template, and the rules the box holds it to.
    • Code & merging: self-merge, Second Look, push guardrails, the release flow, reviewer comments.
    • Secrets & access: secrets, SSH servers, the production alert token, the inbound webhook.
    • Project: name, stage and deadline (on Overview until now), Archive, and Delete last, in red.
  • One row each, the detail in a modal. Each setting is a title, one line and a switch or a button; what takes room to change (the model picker, the agent rules, guardrails, the release flow, secrets, servers, the alert token, the webhook, renaming) opens in a modal.
  • Everything saves as you change it. Agent rules used to wait for a "Save agent rules" button at the bottom; a switch now saves at once, and a list or a command when you leave the field.
  • Owners can show a secret's value from Settings too, as from its 🔒 name in the chat (audited).
  • The phone has the same five groups, and gains what it lacked: Second Look, the agent rules (switched on and off there), and the project's secrets (owners can show a value).
  • Old links such as ?section=merging or ?section=danger still open the section those settings moved to.
v0.4.74Vesprr1 min read

Version 0.4.74

Choose how much memory a project's box has, from the project's Settings on the web and the phone.

Added

  • Box memory in project Settings. Every box used to get the server's one size, 6 GB. In Settings → General (and Settings → Box on the phone), an owner can now choose 2, 4, 6, 8, 12, 16, 24 or 32 GB for the project, or the server's default. The row shows what the running box uses of what it has.
    • Raising it reaches a running box at once, with no restart.
    • Lowering it does too when the box uses well under the new size. Otherwise it is saved and applies at the box's next start, so the agent is not squeezed out mid-run, and you are told which.
    • Owners only, signed in as themselves: the box's own key cannot raise its own ceiling. Each change is in the project's audit log, and a change that fails on the server alerts the team.
    • Linux boxes. A Windows box's memory is its VM's and is not changed here yet.
    • The most a project may ask for is DEVBENCH_WORKSPACE_MEM_MAX_GB (default 32).
v0.4.73Vesprr1 min read

Version 0.4.73

An agent can ask to share a file over 512 MB; once a person approves, it goes straight to S3 in resumable parts.

New

  • Files over 512 MB, with a person's yes.
    • An agent runs devbench media request <file> "<why>". That posts an Approve / Deny card in the project chat with the file's name, its size and the reason.
    • An organization owner, or anyone who manages deployments, can approve. An approval lasts 24 hours, for that one file at that exact size.
    • devbench media put then sends the file straight to S3 in 64 MB parts. It never passes through DevBench's server and is never held in memory. A failed part is retried, and running put again picks up where it stopped. The result is one file with the usual share link.
    • The parts are checked before the file is finished. Half-finished uploads are cleaned up after a day. Up to 50 GB.
    • devbench media requests lists an agent's requests, and devbench media abort <id> gives one up.

Fixed

  • An agent can no longer approve its own request. An agent's key acts as the person who made it, often someone who may approve. Its reply in the chat ("1"), or its answer through the API, used to count as that person's yes on its own access request. Approve/Deny cards for server access, cloud access, destructive calls and large uploads are now answered only by a person.
v0.4.72Vesprr1 min read

Version 0.4.72

Shared files can be kept in the devbench.sh S3 bucket, with a key for that bucket alone, and moved there before the switch.

  • 3 Changed

Changed3

  • Shared files can live in S3 with a key of their own. DevBench reads DEVBENCH_MEDIA_S3_ACCESS_KEY_ID and DEVBENCH_MEDIA_S3_SECRET_ACCESS_KEY for the media bucket alone. It no longer needs the standard AWS variables, which every other AWS client in the backend would also pick up.
  • Bucket names with a dot work. devbench.sh is addressed by path, because a dotted name doesn't match S3's HTTPS certificate otherwise. Presigned download links included.
  • Existing files can be copied before the switch. migrate_media_to_s3 --bucket <name> copies them while they are still served from the server's disk, so no share link breaks while they move.
v0.4.71Vesprr1 min read

Version 0.4.71

Approving an agent's request for destructive cloud calls now takes effect, and presigned S3 links are a write, not a delete.

  • 3 Fixed

Fixed3

  • Approving `devbench cloud request` takes effect. When an agent asked to make destructive calls in one AWS service, pressing Approve answered the question but granted nothing: the request lost the part that turns a yes into a permission on its way in. Three approvals in a row changed nothing for one project. It now becomes the standing permission it says, and devbench cloud can lists the services approved.
  • The approval question is worded by DevBench, not the agent. It names the account and the service, and says that deletes and permission changes there would go through without asking again; the agent's reason follows. A request for a service or an account the project has no access to is refused.
  • Presigned S3 links are judged by what they presign. A link to download or upload an object needs "create and update" access, as the upload itself would; presigning a delete still needs the separate yes. Before, every presigned link was refused as destructive, at any level, so a file over the media size limit had no way to be shared.
v0.4.70Vesprr1 min read

Version 0.4.70

Stopped project boxes are archived and removed again, so they no longer fill the server's disk.

  • 1 Fixed

Fixed1

  • Stopped project boxes are reclaimed again. A box stopped for more than a day has its agent conversations archived, then its container removed; its project volume is kept. Since OpenCode support arrived, every archive failed: reading OpenCode's sessions meant running a command inside the box, which a stopped box refuses. A box whose conversations could not be saved is never removed, so none were, and 74 stopped boxes (about 97 GB) filled the production disk to 99%. A stopped box's OpenCode database is now copied as it is, the same way Claude's and Codex's transcripts are read, so the archive keeps the whole record and the box is removed.
v0.4.69Vesprr1 min read

Version 0.4.69

A git push can be up to 10 MB; a bigger one is refused with a reason instead of a bare 400.

  • 2 Fixed

Fixed2

  • Pushes over 2.5 MB were refused with HTTP 400. DevBench's git proxy reads each push to check where it is going, and it read it through Django, which caps a request body at 2.5 MB. A 3.4 MB file in VT Linux Apps could not be pushed. The proxy now reads the push itself, with its own limit of 10 MB (DEVBENCH_GIT_PUSH_MAX_BYTES), and a push over it is told why, in the terminal that ran git push.
  • A compressed push may not unpack to more than 40 MB, so a small file that claims to be huge cannot tie up the server.
v0.4.68Vesprr1 min read

Version 0.4.68

A secret's name in the chat is something to press: see the value, rename it, or say it is not a secret.

Added

  • Press a secret in the chat. A key pasted into the chat is saved as a project secret and the message keeps only [🔒 NAME]. That name is now a chip, on the web, the desktop app and the phone. Pressing it opens:
    • Show value: the value, shown to you in that dialog only. It is for the organization's owners, signed in as themselves: no API key gets it, the agent's included, and the agent never receives it from here. Each view is in the project's audit log, and the answer is never cached.
    • Rename: the new name, with every marker in the chat following it.
    • Not a secret: for a value hidden by mistake. After asking, it goes back into the chat as it was written, everyone (the agent included) can read it, and it is removed from the project's secrets. The chat says who did it, by name only.
  • A marker inside inline code is a chip too, so DevBench's own "In code it is NAME=[🔒 NAME]" line can be pressed.
v0.4.67Vesprr2 min read

Version 0.4.67

The desktop and phone apps stop polling too. They ask the server for something only when it says that thing changed.

Changed

  • No more polling in the desktop app. The desktop window talks to a small server inside the app, which passed requests on but not the live connection, so the window never went live: it kept every timer the web app switched off in 0.4.66, and its chats polled too. The live connection now goes through to the server, so the desktop window behaves like the web app.
  • No more polling in the phone app. The phone now keeps one live connection while it is open and someone is signed in, and reads only what the server says changed. These stop asking while it is up:
    • the tab bar's counts (every 45 seconds);
    • a project's page (every 6 seconds while its agent works);
    • the agent screen's state and questions (every 10 seconds);
    • the agent transcript (every 4 seconds; it now follows the box's own socket, as the web app does);
    • a chat's questions and @agent relays (every 10 and 8 seconds).
  • The phone follows changes it used to show only on the next visit: Home, Agents, the board, Activity and a project's tasks update as the server announces them.
  • The server also announces agents' questions (asked, answered or withdrawn) and @agent relays.

Fixed

  • "The finish line could not be handed to the agent" no longer fires for a finish line that landed. A finish line is sent to Claude as one long line, and Claude Code shows a long single-line paste as [Pasted text #N] with no line count. DevBench only recognised the counted form, so it judged every long finish line undelivered, cleared it and said so in the chat. It now recognises the uncounted form on the input line. The same applied to any long single-line message to the agent.
  • In the background the phone closes its live connection, so it costs no battery; back in front it reconnects and every open screen reads once to catch up. If the connection drops, each screen polls as before until it is back.
  • Pages that follow a running job (a deploy, a config scan, a backup, logs, Lathe) still poll while it runs, as on the web.
v0.4.66Vesprr1 min read

Version 0.4.66

The web app stops polling. An open window asks the server for something only when the server says it changed.

  • 4 Changed
  • 1 Fixed

Changed4

  • No more polling in the web app. An open project page used to ask for the project, its agent's activity, its queued messages and its finish line every few seconds, about 30 requests a minute with nothing changing. It now makes none while idle; the board makes none either. The server says what changed over the socket every window already holds, and the page reads only that.
  • What the server now announces: queued and scheduled messages, finish lines, the bell (notifications, tasks for people, merge requests), your project tabs saved on another device, and whether each agent is working. The server reads the agents' state for the organizations that have a window open, every 6 seconds, and announces only the projects whose state moved.
  • Changes made without a save are announced too. A box marked running or stopped by the scheduler used to reach the board only at the next poll.
  • The agent transcript stops its 10-second safety-net poll while its own socket is up.

Fixed1

  • A dropped socket falls back to the old polling until it reconnects, then every page reads once to catch up on what it missed.
v0.4.65Vesprr1 min read

Version 0.4.65

A redesigned phone app, five tabs (Home, Projects, Agents, Activity, You), project tabs on every project screen, new layouts throughout.

  • 5 Changed

Changed5

  • Phone: five tabs. Home (what needs you, the agents working, recent projects), Projects (the board), Agents (every project's agent by what it is doing), Activity (chats, updates and requests in one place) and You (your account and the rest of the app). The bar floats, with a notch and a lime dot over the tab you are on.
  • Phone: project tabs. Overview, Chat, Agent and Tasks are one row under the header of every project screen. The bottom of the chat is only the message box, plus an agent's question while one waits.
  • Phone: what needs you comes first. Home lists an agent's question, @mentions, a signed-out agent, merge requests and requests, one tap each. A project's overview leads with what needs attention, then Up next, then a grid of the project's places.
  • Phone: denser lists and grids. Projects are compact rows instead of tall cards, You is a few shortcuts and one row per group, and hubs are grids of places instead of columns of described rows.
  • Phone: your own messages sit on the right, on a lighter grey; everyone else's stay on the left with a face and a name.
v0.4.64Vesprr1 min read

Version 0.4.64

On the phone, an agent's question stays pinned above the message box, and answering it no longer scrolls the chat.

  • 1 Fixed

Fixed1

  • Phone: an agent's question stays pinned above the message box. While a question waits it sits right above the composer wherever you are in the chat, and Answer opens it there. It used to show only while its card was off screen, and Answer scrolled the chat back up to the card, often to the top of the conversation. The card in the thread now shows the question and points to the pin, so the same buttons never appear twice.
v0.4.63Vesprr1 min read

Version 0.4.63

Click a group's name to open the whole group side by side; click a project inside a group to open just that project.

  • 3 Changed

Changed3

  • A group's name opens the group. Click the name of a group in the projects row and its projects open side by side, at the group's own address. It no longer renames the group.
  • A project inside a group opens on its own. Click any project's tab inside a group and that project opens alone, as any other tab does. The group stays as it was in the row, so its name brings the projects back side by side, and Back and Forward step between the two.
  • Renaming a group is now Rename… in the group's settings (the icon on the left, or right-click). The name is still typed in place: Enter saves, Escape keeps the old name.
v0.4.62Vesprr1 min read

Version 0.4.62

Groups in the projects row are easy to spot, with a settings icon, a name you click to rename, and an arrow to collapse or expand.

Changed

  • Groups you can see at a glance. Projects open side by side are a group, and each group is now drawn as one box, a wash of its colour round its head and its tabs (no coloured outline, which 0.4.61 took off the tabs; the group on the screen gets a hairline, as a selected tab does). A project outside any group sits on its own, with no box.
  • A group's head has three parts:
    • The icon on the left opens the group's settings: open side by side, name, colour, collapse and ungroup. Right-click still opens them too.
    • The name and how many projects the group holds. Click the name to rename the group right there: Enter saves, Escape keeps the old name, and an empty name removes it. A group with no name says "Group".
    • The arrow points left to collapse the group to its head, and right to expand it again. Alt-click on the name still does the same.
  • Opening a group side by side is now the first item of its settings, or a click on any of its tabs. A click on the name no longer opens it, because it renames it.
v0.4.61Vesprr1 min read

Version 0.4.61

The phone app has one bottom bar again, and the board cards and project tabs lose their decorative borders on the phone and the web.

  • 9 Changed

Changed9

  • One bottom bar in the phone app. The bottom of the app is the tab bar alone: Projects, Chats, Inbox and More. The second bar that 0.4.56 stacked on top of it is gone: Groups / Filter / Search / Cards on the board, For you / Updates on the Inbox, and the search field on More.
  • The new tab bar shows the tab you are on in a filled pill. Counts sit on the icon, inside the bar, so an "@1" is no longer cut off. It hides while the keyboard is open.
  • Board: Groups and Filter sit beside the title, and the search field sits under it. Cards / Calendar / Tasks, reordering, stages and the archive are in its ⋯ menu. The stage you are filtering to shows under the title.
  • Inbox: For you / Updates is a switch under the title, with each view's count.
  • Chats: the find field and the All / Unread / Mentions filter sit under the title, for long lists.
  • Project cards no longer have a coloured stripe down their left edge, and the Groups sheet no longer draws one down each group.
  • Web board: project cards have no outline at rest. A card stands out from its column by its fill, and the outline appears only under the pointer. In the light theme the columns are grey and the cards white.
  • Web project tabs: grouped tabs no longer have a coloured line under them. The group's coloured label still leads its tabs.
  • On the web build of the phone app, keyboard focus is a white ring that follows the control's shape, instead of the browser's blue square.
v0.4.60Vesprr2 min read

Version 0.4.60

Lathe can host a project's box on a team member's Linux or Windows machine, and Lathe native builds work on real Windows machines.

  • 5 New
  • 2 Changed
  • 6 Fixed

New5

  • Project boxes on team machines. A project's box can run on a machine lent through Lathe for PC (Linux, or Windows with Docker in WSL 2) instead of the server. Project settings shows where the box runs, and it can be moved between machines or rebuilt there. Uncommitted work, the agent's conversation and the box's watchers come along on every move.
  • A hosted box reaches DevBench and the internet only: never the machine it runs on, Docker's API or the local network.
  • If a hosted box stops running (for example Docker stopped on that machine), the project's creator is told once, with the reason, and told again when it runs. An agent message to it is refused with the true reason instead of "the machine may be asleep".
  • Organisation machines. A machine can be given to the organisation, so it serves every project and can host any project's box.
  • apps/lathe/packaging/windows/docker-supervisor.ps1 keeps Docker Engine in WSL 2 running for Lathe, and follows WSL's address when it changes.

Changed2

  • Lathe runs container jobs itself, as non-root with capabilities dropped, on a network that reaches nothing local.
  • Get Lathe is easy to find. The Lathe page has a Get Lathe button at the top, search finds Download Lathe, and Install DevBench has a Lathe section. In the phone app, CI runs is now called Lathe and lists Lathe's downloads: on Android the APK installs from there, and the computer downloads copy their link. Downloads links to it too.

Fixed6

  • Lathe: a native Windows build step now runs as one .cmd script, so call vcvars64.bat, cd and set carry over to the next command, and a multi-line command runs in full.
  • Lathe: a CI trigger never starts a native build. A trigger submits in its owner's name, but the commands are whatever was pushed.
  • Lathe: native builds are matched on the machine's own architecture, so an Apple-silicon Mac or a Windows PC without Docker is offered them.
  • Lathe for PC on Windows says "Ready for native builds only" when Docker is not installed, and its toolchain checks no longer open console windows.
  • Lathe for PC on macOS finds Homebrew and rustup toolchains when it starts at login.
  • Lathe on Linux gives a job's files back before cleaning up under rootless Docker too.
v0.4.59Vesprr1 min read

Version 0.4.59

Set up a phone in one go from the desktop app, over a USB cable or Wi-Fi, and Lathe for Android no longer stops banking apps from opening.

  • 1 New
  • 1 Fixed

New1

  • Set up a phone in one go, in the desktop app. On the Lathe page, Add a phone asks how the phone is connected: a USB cable, Wi-Fi with a QR code scanned from the phone's Wireless debugging screen, Wi-Fi with a pairing code, or Phone only (the code and QR code as before, no computer). With the first three the desktop app does the rest by itself: it fetches Android's tools if the computer has none, installs Lathe for Android, grants it App logs and the banking-safe accessibility switch, and opens Lathe on the phone with the code, so the only thing left is tapping Connect there.

Fixed1

  • Banking apps open again with Lathe for Android installed (Lathe for Android 0.3.0). Banking apps refuse to start while an accessibility service that can read the screen and tap is on, and Lathe's stayed on once switched on. Lathe now switches it on only while someone is in a session with the phone and off two minutes after, with no trips to Settings. That needs one permission only a computer can grant: Set up a phone grants it, as does Lathe for PC's.
v0.4.56Vesprr2 min read

Version 0.4.56

The phone app is faster and works one-handed: Chat, Agent, search, filters and every "new" button sit at the bottom, in thumb reach.

Changed

  • One-handed phone app. The actions people use most moved to the bottom third of the screen, where the thumb already is:
    • A project shows Chat · Agent · Tasks in a bar pinned at the bottom, with the unread count on Chat.
    • Chat and the agent screen have a Project · Chat · Agent switch just above the message box, so you can go between them in one tap. On the agent screen the Conversation / Terminal switch, the conversation picker and the terminal's keys are down there too.
    • On the Projects board, Groups, Filter (with the stage), Search and View sit in a dock above the tab bar. Groups open as a sheet with large rows and a chat button on each project. Every card has Chat and Agent buttons along its bottom edge, and a long press opens the project's menu.
    • Chats, Inbox and More have their search and switches at the bottom as well. A Tasks list has its Open / Done / All switch and an Auto-run button next to the box where you add a task.
    • Every "+" (New project, New request, New doc, Upload, Invite and the rest) is a round button at the bottom right instead of a header corner.
    • Pop-up sheets put Close, Back and Reset at the bottom, and tall ones can be swiped down. Search fields in sheets and on the Search screen sit right above the keyboard.

Fixed

  • The phone app is faster.
    • It opens straight onto the board and chat list it showed last time and updates them in place, instead of waiting for the server before drawing anything.
    • Screens you return to show what they had at once.
    • The same request is no longer sent twice at the same time, and the screen's own requests go out before the badge counts and other background reads.
    • The tab badges read a count instead of downloading whole lists, and stop while the app is in the background.
    • The Inbox loads its tasks in one request instead of a chain of them.
    • Typing in a chat no longer redraws every message, and background checks that find nothing new no longer redraw the thread.
    • Reconnecting no longer re-formats every message, and the agent's terminal no longer redraws the whole screen many times a second.
    • The Tasks and Logs lists only redraw the rows that changed.
  • Slow launches and slow requests on the phone are now reported to the team (mobile.perf.slow-launch, mobile.perf.slow-request).
v0.4.58Vesprr2 min read

Version 0.4.58

New project fits on one screen with no scrolling, and its brief is one field where pictures, videos and files sit in the text.

  • 1 New
  • 3 Changed
  • 6 Fixed

New1

  • Pictures, videos and files in the text. A project's brief is one field: paste, drop or attach a screenshot, a screen recording or a file and it lands where the caret is, shown as a picture, a small player or a file chip, instead of in a separate list under the text. It is saved as the project's REQUIREMENTS.md, so the agent reads each one where it belongs. The project's Overview shows them the same way, and edits the brief in the same field.

Changed3

  • New project fits without scrolling. Every step, from the first screen to Review, fits a 1366 × 768 laptop screen. The picture cards are gone: the agent, the kind of project, the system and where the code comes from are each one row of choices with a line saying what the chosen one means; repositories are picked in a search box that keeps them as chips; the offer to make them an App is one line; and the deploy questions are plain choices.
  • Lists of watchers, backups, schedules, agents, agent tools, knowledge tags, Tasks for you and media buckets show every item, not only the first 25.
  • Buttons that would only be refused are disabled with the reason: revealing an environment's secrets, deploying outside DevBench or stopping such a deployment without "Can manage deployments", and Claude account actions for members.

Fixed6

  • Security: an App's environments can only be added, changed or deleted by people who may manage deployments; knowledge search, the graph, tag counts and links only show docs from projects the reader can open; and Tasks for you refuses a person or project from another organization.
  • A message from the agent panel goes to the Claude conversation it shows, not always to the main one.
  • A chat message that only quotes another is accepted; answering an agent's question says so when the answer could not be delivered; and a project's unread counts are right right after renaming or archiving it.
  • Renaming a branch in a project's git flow no longer unhooks the environments promoted from it.
  • Someone with only a Bitbucket account is asked for their commit email instead of going round in circles.
  • Saving one of an agent tool's secrets no longer deletes the others.
v0.4.57Vesprr4 min read

Version 0.4.57

DevBench loads much faster, updates the moment something changes instead of every few seconds, and loads calmly.

New

  • Live updates. When a project, one of its tasks or its chat changes, every DevBench window open in the organization hears about it at once, over the connection it already keeps for notifications, and shows the change straight away. The project board used to ask for the whole project list every 4 seconds, and the project tabs every 20; while the connection is up they now ask only when told something changed, plus once a minute as a safety net. When the connection drops they go back to asking as often as before, so a lost connection costs freshness, never correctness.

Changed

  • A much smaller first download. The code the browser downloads before it can draw anything went from 1,136 KB to 556 KB, and opening the project board fetches 36 files (about 870 KB) instead of 78 (about 2 MB): the project page, the code highlighter, the release notes, the brand icons and the sign-in pages now load when they are needed, and the project page loads quietly in the background once the board is up. The app's files are kept by the browser for good, so a second visit downloads only what changed in a release.
  • Data from the first moment. The page asks who is signed in, for the projects, and for the project in the address as soon as it opens, while the app's code is still downloading, and starts fetching the code of the page in the address at the same time. The first data used to be asked for 1.4 to 2.2 seconds into a load; now it is asked for at 0.1 s. Requests the app made several times at once (the project list four times while the board opened) are made once.
  • Faster answers from the server. The project list does far less work per project and per chat message (about 0.25 s to 0.1 s on a board of 118 projects). A project's git status, the agents' working state and the merge-request queue answer at once from a short-lived shared copy and refresh it in the background; Refresh still asks the box there and then, and a push or merge from DevBench is shown straight away.
  • Calm loading. A page whose code or data is still on its way shows a placeholder shaped like the page, and only if it takes longer than a fifth of a second, so a quick load shows nothing at all; the "Loading…" lines are gone. Hover and press feedback is quicker and the same everywhere, and nothing moves under the pointer. Empty board columns say "No projects".
  • Monitoring: the early requests of a page load are logged, and the team is told if they all fail; the server logs its shared copies and alerts the team when it cannot reach them.
  • A page blocked for more than half a second is noted in the app's log, and one frozen for 2 seconds or more is reported to the team, at most once every half hour from each browser.

Fixed

  • On a phone, a long count no longer pushes a page's main button off the screen, a row's details no longer start or end a line with a stray "·", and a doc's project name is no longer squeezed to nothing.
  • A preview deployment on devbench.sh talks to its own server again, instead of DevBench's, which signed its demo user straight out.
  • The app is much faster. Up to six pages are kept open in the background so that going back to one keeps its place. Each of them used to redraw on every click anywhere: a project's Changes tab redrew every changed file, Chat every message, and Tasks every task, each time a page opened or the project refreshed. On an ordinary laptop, opening a project's tab took 2 to 3 seconds, and Tasks up to 8.
    • A page kept in the background no longer redraws. It keeps its scroll, drafts and open dialogs, and catches up once when you come back to it.
    • A refresh that changed nothing redraws nothing, and the task and file lists redraw only the rows that changed.
    • Measured on the same project with the processor slowed four times: opening Previews went from 5.0 s to 0.6 s, Docs from 3.7 s to 0.3 s, Projects from 3.7 s to 0.4 s, and Tasks from 7.8 s to 1.8 s.
  • ⌘/Ctrl-click opens a new tab, everywhere. The top bar (Projects, Inbox, Docs, Automate, Ship, Insights), the row of open projects and a project's own tabs (Overview, Terminal, Chat and so on) are now real links. Hovering one shows where it goes, the browser's right-click menu offers "Open link in new tab", and ⌘/Ctrl-click or the middle button opens it in a new tab. Anything else that moves to another page, such as a row of the Apps table, a Settings tab or "58 of 69 tasks done", now opens in a new browser tab on ⌘/Ctrl-click instead of moving the page you are on. ⌘/Ctrl-click still selects tasks in a task list.
v0.4.55Vesprr2 min read

Version 0.4.55

A guided New project flow with logos; chat messages the agent didn't take are retried, and API tokens no longer appear in the server log.

  • 3 Changed
  • 1 Fixed

Changed3

  • A guided New project flow. Every choice is now a card with a picture of what it does: a small diagram for the project type, where the code comes from, the deploy questions and where each stage runs, and the real logos for the agent (Claude Code, Codex, OpenCode) and the system (Linux, Windows). Each step asks its question in words ("Which agent does the work?"). The short screen shows the agent cards too. The system is a question of its own, right under the agent, instead of sitting behind Advanced options, and it is only asked when there is a real choice. On Windows the Codex and OpenCode cards say they are Linux only for now. The review step shows the agent and system logos and the git flow as a picture.
  • Logos and colour on project cards. Cards on the Projects board and in the Cards view show the project's agent and system as their logos. They keep the project's colour on the dot by the name and on the progress bar, without the coloured stripe down the left edge.
  • OpenCode now uses its real logo.

Fixed1

  • Chat messages are confirmed as sent. A message from the chat was typed into the agent's terminal with a single Enter, and recorded as sent without checking. If the Enter was lost, which happened on Windows boxes, the message sat in the agent's input and nobody knew. DevBench now waits for the paste to settle, checks that the agent took it, and presses Enter again if it didn't. If it still isn't taken, the chat says so and the team is alerted, instead of claiming it was sent.

Security2

  • API tokens no longer appear in the server log. The web and desktop apps sign their live connections with the person's token in the address, and the server logged every one of those addresses in full. Tokens, keys and passwords in logged addresses are now replaced with [redacted].
  • Previews moved to *.preview.devbench.sh (a server setting, made on 2026-10-25). A preview that was already running comes up on the new address after its next deploy.
v0.4.54Vesprr1 min read

Version 0.4.54

Previews use the project's own secrets, the agent can add the database a preview needs, and finished checklist items stay readable.

  • 1 New
  • 2 Fixed

Fixed2

  • Previews use the project's secrets. A key pasted in the project chat is saved as a project secret. It's now passed to the preview of any part whose deploy setup requires it, and the deploy setup no longer lists it as missing. Before, the agent asked for the same key a second time.
  • Finished checklist items stay readable. In the chat, a ticked item no longer turns grey and struck through; the checked box already says it's done.

Added1

  • The agent can add the database a preview needs. devbench deploy databases add creates the project's preview database when its App has none, and connects it to the backend and worker parts. It never changes or replaces a database that already exists. A line in the project chat says what was added.

Security1

  • An agent key issued for one project can no longer add a database to, or rewrite the seed data of, another project's preview.
v0.4.53Vesprr1 min read

Version 0.4.53

devbench.sh's hero film runs 90 seconds, with sound and a script that reads as one story.

  • 3 Changed

Changed3

  • The hero film tells one story, with sound. Each beat has a headline and a short line of facts, in one voice: from "You have an idea." to "Only what you merge ships." It's 90 seconds, which leaves time to read each line. A music bed builds under the project's journey, lifts at the zoom-out and resolves under the mark. Interface sounds land on the clicks, the tests passing, the merge, and the boxes landing on the bench.
  • Sound on. The hero still plays muted by itself. A Sound on button next to Pause turns the sound on.
  • The hero's video is served from DevBench's media bucket. At 90 seconds with sound it's too large for the site's repository; its poster stays on the site.
v0.4.52Vesprr1 min read

Version 0.4.52

devbench.sh's hero film shows the agent opening with a plan to approve, and ends calmer.

  • 3 Changed

Changed3

  • The hero film's chat opens with the agent. The agent reads the brief and shares a plan: what the page will look like and how the apps fit together. It asks whether to build it that way, a person approves in the chat, and then it builds. The film shows where the product is going; automatic start and plan approval are next on the product side.
  • A calmer ending. Everything that wasn't merged fades where it stands. The merged boxes lift and drop onto the bench as the blocks of the DevBench mark.
  • The film's project Overview is one column.
v0.4.51Vesprr1 min read

Version 0.4.51

New project is one short screen, and devbench.sh is about prototyping in previews.

  • 4 Changed

Changed4

  • New project is one short screen. Name the project, say what to build and pick the repository, then Create. The agent, the work branch and a live preview come from your organization's defaults. More options opens the full wizard and keeps what you typed.
  • devbench.sh leads with prototyping in previews. The headline is "Try it in a preview. Merge what you keep." An agent builds each idea in its own container and puts it up as a live preview with a throwaway database. Try two ideas as two projects, merge the one you like, and delete the other; main never sees it. The pillars, the Journey and the footer say the same.
  • A new hero film. A minute in the app's own UI: one project from New project to its box, the agent at work, a live preview and a person's merge. Then the camera pulls back to every box like it, and they gather into the DevBench mark. All five films now end on the new headline.
  • The logo's lime is the site's accent. It's on the primary buttons, with a touch of it in the hero headline. Everything else stays zinc, and the pill above the headline is gone.
v0.4.50Vesprr1 min read

Version 0.4.50

The desktop app downloads through your browser, and the Windows and Linux installers are current again.

  • 1 Changed
  • 1 Fixed

Changed1

  • Download hands the installer to your browser. Pressing Download on the Desktop app tile now starts an ordinary browser download, with the browser's own progress, and it keeps going if you leave the page. Before, the page fetched the whole installer itself and showed a percentage on the button. The link the browser follows is signed for you and stops working after two minutes.

Fixed1

  • Windows and Linux installers were stuck at 0.4.45. Since the new logo, the installer build couldn't find the logo file and failed every time, so the download page kept offering 0.4.45. It builds again, and 0.4.49 was published before this release.
v0.4.49Vesprr1 min read

Version 0.4.49

Answered questions in the chat lead with the answer, and devbench.sh's legal pages name Vesprr LLC under New Mexico law.

  • 3 Changed
  • 1 Fixed

Changed3

  • Answered questions read at a glance. Once a question in the chat is answered, its card shows the question as a quiet two-line caption (Show more opens the rest) and the answer first. While a question is pending, an access request's "Why: …" sits under the question in smaller text.
  • The "Answered in DevBench" notice is one line: who answered, and the answer as a chip, instead of the whole question repeated as a paragraph.
  • devbench.sh's legal pages name the real company. The Imprint, Terms, Privacy policy and DPA now name Vesprr LLC (Albuquerque, New Mexico), New Mexico law and the courts of Bernalillo County, with the GDPR still covering EU customers. The privacy policy lists the actual hosts (Contabo in Germany for account data, AWS for the website) and Stripe, and says no analytics runs today.

Fixed1

  • Files served straight from devbench.sh (/favicon.svg, /media/*) now carry the same security headers as its pages. They are set on the Amplify app itself, because the headers in the build settings don't apply to a Next.js app on Amplify.
v0.4.48Vesprr1 min read

Version 0.4.48

devbench.sh is rebuilt around film: a hero loop, a 30-second film, recordings of the real app and a Films page.

  • 3 New
  • 2 Changed
  • 1 Fixed

New3

  • devbench.sh has films. The home page opens on a 20-second loop of one request going end to end. Further down are a 30-second film on why DevBench exists, recordings of the real app (finish line, chat, tasks, merge requests, previews) and an explainer on why Merge is a person's button. The new Films page has every film to watch and download.
  • The films are made in code (apps/motion), each from a prompt on prompt-motion.com credited to its author. A separate reviewer agent watched every film and its fixes were applied before anything was published (apps/motion/REVIEW.md).
  • The recordings are the real web app, filmed against a DevBench server. Email and IP addresses are blanked as they render.

Changed2

  • The site's interactive app preview moved from the top of the home page to its own "Click through it yourself" section.
  • Nothing on the site plays by itself under reduced motion. Every film that does play by itself has a Pause button, and the larger films load only when someone presses Play.

Fixed1

  • If a film on devbench.sh fails to load for a visitor, the team now hears about it in the chat. Each kind of failure is reported at most once an hour, through the new public POST /api/outreach/site-errors/.
v0.4.47Vesprr1 min read

Version 0.4.47

A pasted key over 20 characters is hidden even without a label, look-alikes are asked about, and secrets can be renamed from the chat.

  • 3 New
  • 1 Fixed

New3

  • When DevBench isn't sure whether a long token is a key (a 40-character commit hash, a checksum, a UUID), it no longer guesses. It posts a line under the message with Hide it and Not a key, and whoever presses one decides.
  • Rename a secret straight from the chat: the "Saved as API_KEY" line has a Rename button. Renaming also works in Settings → Secrets. The secret, the [🔒 NAME] in the message and the line all change to the new name.
  • The saved line shows how code uses the secret: API_KEY=[🔒 API_KEY], filled in by devbench secrets run and devbench secrets write .env.

Fixed1

  • A key pasted on its own, with no sk--style prefix and no NAME= (for example 49 hex characters followed by "here is the api key"), went through the chat unhidden. Any random-looking token over 20 characters is now treated as a key and named from the words around it ("the stripe key" → STRIPE_KEY), or API_KEY otherwise. Words, file paths, URLs and code names are left alone.
v0.4.46Vesprr1 min read

Version 0.4.46

A new logo on every client, two lime blocks and a terminal on a bench with the devbench.sh wordmark, and lime in three places.

  • 3 Changed
  • 2 Fixed

Changed3

  • A new logo: two lime blocks and a terminal block resting on a bench, on a near-black tile, with the wordmark "devbench.sh". It is the app icon on Android and iOS (and the splash screen and notification icon), the desktop app's icon on the taskbar and in the Windows installer, the web app's browser tab icon, and the mark on the sign-in pages, a shared doc and the website. These used to be four different marks: a purple ">_", a white "D", a metal "D" and a "DB" box.
  • Notifications on Android are tinted lime.
  • Lime is the brand colour now, in three places only, the same on the web, the desktop app and the phone: the main button of a screen and the send button; what needs you (an @mention of you in a message, and the count of them on a project, a tab or the chats list); and work that is running (an agent working, a step in progress, a deploy coming up). Everything else, selections, links, focus rings, toggles and other people's mentions, stays black and white. An @mention of you used to be amber, and running work blue.

Fixed2

  • On the web and the desktop app, an agent's question in a narrow pane was squeezed to a third of the pane, one or two words a line, when it followed another message from the same sender. The hover actions of such a message (Reply, Copy) kept their room beside it even while hidden; they now float over the message's corner when you point at it.
  • A long typed answer to an agent's question ran past the edge of its card. It now wraps inside it.
v0.4.45Vesprr1 min read

Version 0.4.45

A Super admin page for whoever runs this DevBench, to create teams, let people in and switch access off.

New

  • Super admin. Whoever runs this DevBench has a new page, under the organization menu, listing every team and every person on it. From there a super admin can:
    • create a new team, which sends its first owner an invite link that works once, for 14 days;
    • invite someone into any team, as an owner, maintainer or member;
    • answer the website's access requests by giving the person a team of their own or a seat in an existing one;
    • switch a person's access off everywhere (or back on), and make other super admins.
  • The page shows who is on the server and how many teams and projects there are. It never shows a team's projects or chats.
  • The first super admin is set up on its own when this version is installed: the owners of the server's first team become super admins, unless the server already has one. manage.py superadmin grant <email> makes one by hand.
v0.4.44Vesprr1 min read

Version 0.4.44

Highlights look the same on the web, the desktop app and the phone, and three phone chat layout bugs are fixed.

  • 2 Changed
  • 3 Fixed

Changed2

  • Highlights are monochrome everywhere and look the same on every client. An @mention count is the white pill with its "@" (it was red on the phone), links in a message are underlined in the text's colour (they were blue on the phone), and a jumped-to message, a selected chip, the active segment and today in a calendar are drawn the same on the phone as on the web.
  • The web's bell dot, the phone's update dot and its Update badge are white, not red or blue.

Fixed3

  • On the phone, a long bullet point in a message ran out of its bubble, its last lines under the next message (the "Answered in DevBench" card).
  • On the phone, a table in a message could show as a tall empty box. Its columns are now sized once, to the bubble, and a table that fits is no longer in a sideways scroll.
  • On the phone, a DevBench notice in the chat (a Claude account hitting its limit) was cut to one line. It now shows in full, with what to do about it.
v0.4.43Vesprr1 min read

Version 0.4.43

The Windows installer and the desktop app show the DevBench icon, and the install page shows its download links at once.

  • 2 Fixed

Fixed2

  • The installer, the taskbar and the desktop app's window showed a placeholder purple "F". They now show the DevBench mark, the same white > and green _ as the phone app.
  • The install page showed no download links until the server had read every installer to check its checksum, which after a deploy took several seconds. The links now appear at once: each build reads "checking…" until its checksum is confirmed, and Download works meanwhile. A checksum worked out by one server worker is kept for the others.
v0.4.42Vesprr1 min read

Version 0.4.42

Credentials pasted in the chat are saved as project secrets, and account notices are one-line statuses instead of messages.

  • 4 New
  • 2 Fixed

New4

  • A credential pasted in the project chat, the agent's composer or a scheduled message (NAME=value, a bare API key, a private key, a URL with a password) is saved, encrypted, as a project secret before the message is stored. The chat, notifications and the agent see only [🔒 NAME]. The agent's code uses it by name with devbench secrets run or devbench secrets write .env NAME, and no one can read a value back.
  • Settings → Secrets lists the project's secrets by name, with who added each one and when it was last used. Owners can add, replace and delete them.
  • Account notices ("switched account", "available again", "credential saved") are slim one-line statuses. Repeats fold into one row with a count. They are not pushed, not counted as unread, and not shown to the agent.
  • The agent's instructions in every box explain secrets, finish lines, Gatekeeper refusals, the built-in DevBench tools and usage limits.

Fixed2

  • When a Claude account hit its limit several times, the same waiting request was re-sent to the agent once for each hit. A project now keeps one waiting request.
  • devbench finishline and devbench kb only printed their usage inside boxes, so an agent could not report a finish line reached or search the knowledge graph.
v0.4.38Vesprr1 min read

Version 0.4.38

A doc or file opened from its own link no longer pulls you back to it when you click another of the project's tabs.

  • 1 Fixed

Fixed1

  • A doc opened from its own link (/docs/…: from the chat, the Docs page, a notification) moves into its project as a tab. After that, clicking any of the project's tabs (Chat, Overview, Git…) started to go there and then jumped straight back to the doc, so the bar seemed to do nothing. Files from the Media bucket did the same. The move into the project now happens once, and only while the doc or file is still the one shown.
v0.4.37Vesprr1 min read

Version 0.4.37

Field Guides: the team's shared tools that agents pick up by themselves when a task matches.

  • 2 New

New2

  • Field Guides. On the Tools page, switch a shared tool to Field Guide and every project's agent picks up its instructions by itself whenever a task matches the tool's description. Nobody has to say "use the release playbook". Write the description as when to use it ("How this team cuts a release"). A runnable tool also tells the agent how to run it (devbench tools run …).
  • Saving, switching off or deleting a Field Guide updates the running boxes straight away. New boxes start with the organization's Field Guides. Claude Code, Codex and OpenCode all pick them up: they are written as skills where each of them looks.
v0.4.36Vesprr1 min read

Version 0.4.36

Second Look: an automatic review of a merge request, with its findings posted on the PR and linked in the chat.

New

  • Second Look. Each merge request in the Git tab has a 🔍 Second Look button. It runs an automatic review in the project's box with the project's own agent (Claude Code read-only, codex review, or OpenCode's plan agent): a separate pass over the merge request's diff, reporting specific problems (bugs, security issues, data loss, missing tests for risky changes), most severe first. The findings are posted as a comment on the PR/MR, shown on the button ("Second Look: 3 findings", "no findings"), and linked in the project's chat.
  • Project Settings → Automation → Second Look on every merge request reviews each merge request the project opens, without anyone asking.

Fixed

  • Found by Second Look's first review, of this release's own changes before they shipped:
    • Crew could keep a box "working" for hours on helpers that had died with their session. Its check for a running agent always matched itself.
    • Helpers the agent stopped itself now count as finished.
    • Reporting a finish line reached is limited to the project's agent or an owner. A stopped or replaced finish line can no longer be reached, or delivered late. Stopping one never starts a stopped box.
    • Gatekeepers' rules and enforcer live in a root-owned folder the agent cannot change. The agent is refused edits to its own hook settings. A protected file named from inside its own folder is still protected.
    • Only the box can report Gatekeeper events, and at most 30 a minute.
v0.4.35Vesprr1 min read

Version 0.4.35

The DevBench CLI is built into the agent: notify, questions, tasks, docs, media and the finish line as native tools.

  • 2 New

New2

  • The DevBench CLI, built into the agent. Every box now gives its agent (Claude Code, Codex and OpenCode) DevBench's everyday commands as native tools: notify (with videos, images, docs and links attached), ask_question, task_list, task_add, task_status, group_use, doc_create, media_put, finishline_done and kb_search. The agent fills in typed fields instead of writing a shell command line, so a message is never cut short by an apostrophe or a backtick, and never replaced by a flag. The devbench command still works as before.
  • Running boxes get the tools with the next CLI refresh after a deploy; new boxes have them from the start.
v0.4.34Vesprr1 min read

Version 0.4.34

Crew: a project shows the helpers its agent has running in the background, and counts as working while they run.

  • 1 New

New1

  • Crew. When the agent hands work to helpers that keep running after its turn ends (a background sub-agent, a background command, a monitor), the project header and its board card show Crew · N. Hovering lists what each helper is doing. For Codex and OpenCode, Crew counts their long-running background commands. The project reads as working while they run, even though the agent's prompt looks idle, so the board is right and the idle auto-stop no longer stops a box with work still going on.
v0.4.33Vesprr1 min read

Version 0.4.33

Gatekeepers: rules a project's box enforces on its agent, such as tests before push and protected files.

New

  • Gatekeepers (project Settings → Gatekeepers): rules the box enforces on the agent before every action it takes, whatever the agent decides.
    • Tests before push: a git push runs your test command first, and is refused, with the failures shown to the agent, if the tests fail.
    • Protected files: edits to matching files or folders (*.env, migrations/, config/prod.yml) are refused, whether through the agent's edit tool or a shell command; reading them is fine.
    • Blocked commands: shell commands containing any of your phrases (git push --force, DROP TABLE) are refused.
    • Format after edits: your formatter runs on each file the agent edits.
    • Secret files (names only), on by default: .env, .env.*, *.env, *.pem, *.key, id_rsa*. The agent can't read or change them through any tool or shell command (cat, grep, source, cp, a python -c open(…)). When it tries, it is told only the variable names they hold, never the values. The app it runs still reads them.
  • Saving applies them in the running box at once. Each refusal is listed under "Recently stopped". Only owners can change them. Every agent enforces them: Claude Code and Codex through their hooks, OpenCode through a plugin (not yet inside a Windows project's VM).
v0.4.32Vesprr1 min read

Version 0.4.32

Finish Line: set what must be true when a project's work is done, and the agent keeps working until it is.

  • 3 New

New3

  • Finish Line. Above the chat composer and on a project's Overview: "Set a finish line" and say what must be true when the work is done, for example "Checkout works end to end, with tests, and a video in the chat". The agent keeps working toward it without stopping to ask, then reports in the chat ("🏁 Finish line reached", with what it did and how long it took). Change it at any time, or Stop it.
  • Claude Code and Codex receive a finish line as their own /goal, so the agent itself keeps going until it holds. OpenCode has no goal, so DevBench keeps it going: when it sits idle with the finish line open, it is told to keep going (every 3 minutes, up to 30 times, then the chat is told). The agent reports with devbench finishline done "<what it did>"; devbench finishline shows the current one.
  • If the box is stopped, setting a finish line starts it. If the finish line cannot be handed to the agent, the strip and the chat say why.
v0.4.31Vesprr1 min read

Version 0.4.31

A message in a stopped project's chat starts its box and reaches the agent, as the chat promises, even without @agent.

  • 1 Fixed

Fixed1

  • In a stopped project, a chat message without @agent ("hello") was judged by Jev, and when Jev called it chatter the box stayed stopped and nothing was said, although the chat says "Send a message and it starts back up". Now any message in a stopped project's chat starts the box and goes to the agent, unless it is a /command or tags a person.
v0.4.30Vesprr1 min read

Version 0.4.30

A project's Screen page shows its box's display in the browser: the Windows VM, or a Linux desktop started on demand.

  • 2 New

New2

  • Screen (a project's More menu, next to Terminal for owners): the box's graphical display in the browser, with mouse and keyboard. A Windows project shows its Windows VM, with buttons for Ctrl+Alt+Del, fit to window and full screen. A Linux project shows a desktop started when you connect, with an xterm on it; GUI apps opened with DISPLAY=:1, a browser the agent opens included, appear on it. Nothing starts until you press Connect.
  • Only the organization's owners can open a box's screen, as with its Terminal. The display is never exposed on the network: DevBench relays it from inside the box over its own connection.
v0.4.29Vesprr1 min read

Version 0.4.29

A chat message without @agent reaches the agent as a plain request, without being told it may ignore it.

  • 1 Changed

Changed1

  • A chat message relayed to the agent without an @agent tag no longer says "it reached you without an @agent tag; if it is plainly people talking to each other, do nothing". The team writes to the agent without tagging it, so the relay now just says "Act on the latest message."
v0.4.28Vesprr1 min read

Version 0.4.28

A project imported from a local folder is writable again: its files belong to the box's user and it starts as a git repo.

  • 1 Fixed

Fixed1

  • A project created by importing a local folder (or a blank one) had its project folder owned by root, so neither the agent nor anything else in the box could write to it, and its git repository was never created. The import now hands the folder to the box's user before setting up git. Projects created from a repository were not affected. Found by the first live Windows project.
v0.4.27Vesprr1 min read

Version 0.4.27

Windows 11 projects can build their Windows image: the evaluation ISO is checked against its own checksum.

  • 1 Fixed

Fixed1

  • The first Windows 11 project on a server downloaded Microsoft's Windows 11 Enterprise evaluation ISO and then rejected it, because it was checked against the checksum of the consumer ISO. It is now checked against its own, so the shared Windows 11 image builds. Windows 10 was not affected.
v0.4.26Vesprr1 min read

Version 0.4.26

Projects can run on Windows 11 or 10. Advanced options → Operating system puts the agent in a Windows VM inside the box.

  • 5 New

New5

  • Windows projects. The new-project form (web and phone) has Advanced options → Operating system: Linux, Windows 11 or Windows 10. A Windows project's box runs a Windows 11 or 10 (Enterprise evaluation) VM next to its usual Linux tools, and its agent session runs Claude Code inside Windows. The terminal, the chat, tasks and guarded git work as in any project. Only Claude Code runs in Windows for now; the operating system cannot be changed after the project is created.
  • Inside Windows, drive H: is the box's home directory, so the project's files are the same files DevBench shows. git and devbench typed in Windows run on the box's Linux side, where the git rules and the CLI's token stay.
  • The first Windows project on a server prepares a shared Windows image from Microsoft's evaluation ISO, unattended (20, 40 minutes with hardware virtualisation). Every later Windows project starts from a copy of it in a minute or two.
  • Windows projects show a "Windows" badge on the project page and the board.
  • If the server has no hardware virtualisation (/dev/kvm), Windows boxes still start under software emulation, which is several times slower, and the team gets one alert saying how to fix it on the host.
v0.4.25Vesprr1 min read

Version 0.4.25

A chat message reaches the agent without the conversation's history, and the note on how to work goes with every 10th relay.

  • 3 Changed

Changed3

  • A chat message relayed to the agent carries only what the agent has not seen yet: the messages since the last relay, or the message alone for the first one in a conversation. It used to carry the last 20 messages every time. DevBench's own posts (the agent's updates) are not sent back to it; a message from another bot still is.
  • The note on how to work with the chat (reply with devbench notify, keep the task list current, read attached files) goes with the 1st relay of a conversation and every 10th after it. The relays in between carry a one-line reminder. An open question the agent asked is still named in every relay.
  • The chat composer no longer shows a history slider for @agent messages, on the web or the phone ("What the agent sees"), and no messages are marked as going with it, since there is no history to choose.
v0.4.24Vesprr1 min read

Version 0.4.24

A text file's page has Copy (the whole file) and Edit: change the text in place and save it, keeping the file's links.

  • 1 New

New1

  • A text file's page (SQL, Markdown, code, logs, JSON and other text up to 2 MB) has two more icons in its header. Copy contents puts the whole file on the clipboard. Edit opens the text in an editor with Save and Cancel (Ctrl+S saves, Escape cancels, and Cancel asks first if there are unsaved changes). Saving puts the new text behind the same file, so its id, its open link and any password or one-time link on it serve the new version.
v0.4.23Vesprr1 min read

Version 0.4.23

An agent stays on the one branch DevBench made for it: no worktrees or new branches, and pushes go to that branch only.

  • 4 Changed
  • 1 Fixed

Changed4

  • An agent works on one branch, the one DevBench made for its project, in the project's own checkout. The git shim in every box now refuses git worktree add, git branch <name> (and renaming or copying a branch) and git update-ref to another branch, as it already refused switching. Listing and deleting branches, restoring files and reading another branch still work.
  • A push goes to the workspace branch only, plus any branch a repo allows in the DevBench UI. A devbench/… side branch or a feature branch of the agent's own is refused, in the box and again in the server's git relay, so a box with an older shim cannot get around it. The refusal tells the agent how to push its commits to the right branch.
  • A new conversation in the agent pane works in the project checkout, beside the main session, instead of in a worktree on a branch of its own. The "Own worktree / Shared tree" choice is gone from the web and the phone. Conversations already in a worktree still remove it when closed.
  • devbench worktree add is turned off and says why. devbench worktree list and rm stay, to clear out worktrees a box made before. The "Always work in a git worktree" section is removed from every box's CLAUDE.md, and the git section says one branch.

Fixed1

  • git push --tags with no branch named no longer counts as a push of the current branch.
v0.4.22Vesprr1 min read

Version 0.4.22

Drag a project tab onto another to group them, onto a group to join it, or away to leave, and a collapsed group shows only its name.

  • 1 New
  • 1 Changed

New1

  • Project tabs can be grouped by dragging, as in Chrome. Drop a tab on the middle of another tab to group the two, or to join that tab's group. Drop it on a group's label to join the group. Drop it at a tab's edge to move it there, or past the last tab to take it out of its group. Escape cancels a drag.

Changed1

  • A collapsed group shows only its name (or how many it holds), as in Chrome, with no tabs and no ▾, even when the project in front is one of them. The name is ringed while it holds the project in front, and a right-click still opens its menu.
v0.4.21Vesprr1 min read

Version 0.4.21

Deployments can move to preview.devbench.sh on their own, and the web app on app.devbench.sh calls api.devbench.sh.

  • 2 New
  • 2 Changed
  • 1 Fixed

New2

  • DEVBENCH_DEPLOY_LAUNCH_BASE sets the API address that deployment launch links go through. With it, deployment addresses move to preview.devbench.sh with three server settings, before the sign-in callbacks move (infra/ops/DOMAIN-DEVBENCH-SH.md).
  • The backend says at start, and alerts the project chat at most once an hour when a launch happens, when the deployment domain settings disagree so that private deployments would answer 401.

Changed2

  • The web app served from app.devbench.sh calls api.devbench.sh; on devbench.vesprr.com it still calls the vesprr API.
  • Links to devbench.sh and api.devbench.sh open inside DevBench like the vesprr ones, on the web and the phone.

Fixed1

  • The phone's getting-started guide had drifted from the web's copy since 0.4.19.
v0.4.20Vesprr1 min read

Version 0.4.20

A project's Media, Watcher logs, Collaboration, Activity and Settings are icons in its row; a notify that is only a flag is refused.

  • 1 Changed
  • 1 Fixed

Changed1

  • A project's Media, Watcher logs, Collaboration, Activity and Project settings are icons in its row of pages, after a divider, each named by its tooltip, instead of being behind a More ▾ menu.

Fixed1

  • The server refuses a devbench notify whose message is only a flag (such as "--video"), which a box CLI from before 0.4.19 posted when the flags came first. The agent now gets an error and sends it again, instead of the team seeing a stray "--video" in the chat.
v0.4.19Vesprr1 min read

Version 0.4.19

Messages sent during an open agent question reach the agent, the question is a card with buttons, and tab groups can be named and collapsed.

  • 1 New
  • 3 Changed
  • 2 Fixed

New1

  • Tab groups can be named, collapsed and expanded, as in Chrome. Click the group's coloured label to collapse it to the label and again to expand it; its ▾ (or a right-click) names it, collapses it or shows the projects side by side again. The tab in front always stays visible, and the name and collapse survive a reload.

Changed3

  • A message sent while the agent's question is open now reaches the agent, with the open question named so it is not taken as the answer. Before, every message that was not an answer was silently held back until the question was settled.
  • When the agent is inside its own question dialog, a message sent then is held. The chat says so once, and the message is passed on as soon as the question is answered or dismissed.
  • Alt+1…9 count only the tabs that are drawn, so a collapsed group's tabs take no digit.

Fixed2

  • The agent's question showed as plain text in the chat, without its buttons, when the server had not attached the question to the message. The chat now reads it from the text and shows the card, answerable, or settled with the answer.
  • devbench notify with an attachment flag before the message posted the flag ("--video") as the message. The message is read wherever the flags are now.
v0.4.18Vesprr1 min read

Version 0.4.18

Projects side by side are grouped like browser tab groups, each pane shows its own box and agent, and tabs show the agent's icon.

  • 2 New
  • 3 Changed
  • 1 Fixed

New2

  • Projects shown side by side (Split) are a tab group, as in Chrome: their tabs sit together behind a coloured label saying how many, with a line of that colour under them. Clicking the label shows them side by side again. A project shown beside but not open as a tab still appears in the group.
  • Each project tab shows the icon of the agent its box runs (Claude, Codex or OpenCode), like a favicon. An icon you gave the tab yourself still wins.

Changed3

  • Box and agent state are small icons next to each project's name instead of words in the bottom bar: in each pane's header when projects are side by side, otherwise at the end of the project's row of pages. The box is green while it runs; the agent is green when idle, spins while it works and turns amber when it needs a sign-in. The branch icon opens Git. Owners still pop the terminal out from the box icon.
  • The bottom bar now shows only the version.
  • Alt+1…9 follow the tabs in the order they are drawn, so grouped tabs keep their digits.

Fixed1

  • With several projects side by side, the bottom bar showed only the first project's box, agent and branch.
v0.4.17Vesprr1 min read

Version 0.4.17

A link in a doc opens beside the doc, Ctrl/Cmd+click opens a browser tab, and every doc opens in a tab of its own.

  • 3 Changed
  • 1 Fixed

Changed3

  • A click on a link in a doc opens what it points at beside the doc, in the split: a file from Media (a PDF, a video), a DevBench page, or another site (shown framed, with a button to open it in a browser tab). The doc stays where it was.
  • Ctrl+click (Cmd+click on a Mac) on a link or attachment in a doc opens it in a new browser tab.
  • Docs opened from the Docs section open in tabs of their own, next to "All docs", instead of replacing the list or the doc you had open. Up to 6 stay open; the tabs survive a reload. A project's doc still opens as that project's doc tab.

Fixed1

  • Clicking a video or PDF link in a doc could leave you where you were with nothing opened, or take the doc away to show the file.
v0.4.16Vesprr1 min read

Version 0.4.16

PDFs show in DevBench again instead of a blank frame with a broken-page icon.

  • 1 Fixed

Fixed1

  • A PDF opened from Media or from a chat attachment showed a blank frame with a broken-page icon, because the server refused to let the app frame it. The app now loads the PDF's bytes itself and shows them in the browser's viewer, and the server allows DevBench's own pages (and no other site) to frame a shared file.
v0.4.15Vesprr2 min read

Version 0.4.15

Docs get a Google Docs-style editor with images and videos from Media; pasting into a message keeps its formatting.

  • 6 New
  • 4 Fixed

New6

  • Docs open in a rich editor, with no Markdown on show: a formatting toolbar (headings, bold, italic, strikethrough, code, links, lists, checklists, quotes, code blocks, tables, dividers, undo/redo) and the usual shortcuts. Docs are still saved as Markdown, so agents read and write the same docs.
  • Images and videos from Media show inside docs: pictures open in the zoom viewer and videos play in place. Image or video in the editor picks a file from the organization's Media or uploads one, and pasting or dropping a file uploads it. Pictures from other sites stay links and are never loaded.
  • An Edit button wherever a doc opens: the Docs page, a doc opened from a chat link or a project, and the shared /d/ page for people allowed to edit it.
  • On the phone, docs are edited the same way, with a formatting bar above the keyboard and media from the library, the camera or files.
  • Pasting into the message box keeps the formatting (bold, links, lists, code, quotes, headings, tables), including from Google Docs, Word and web pages. Pictures in what you paste are attached, and files pasted alongside text are attached without losing the text.
  • Agents: devbench doc create … --media <file> --caption "…" embeds a picture or video (a local file is uploaded first), devbench doc update edits a doc without overwriting someone else's edit, and devbench doc embed prints the snippet to paste.

Fixed4

  • Saving a doc that someone else saved since you opened it no longer overwrites their edit: you are told, and choose to reload or overwrite.
  • A doc the rich editor cannot hold exactly (raw HTML, footnotes and the like) opens as Markdown with a note saying why, so nothing in it is lost.
  • devbench doc create now sends --tags and --summary, which it used to drop.
  • Videos shared from Media play and seek in Safari, and a page full of pictures no longer runs into the anonymous rate limit.
v0.4.14Vesprr1 min read

Version 0.4.14

Questions the agent asked before 0.4.12 show as cards with buttons too, not only new ones.

  • 1 Fixed

Fixed1

  • A question the agent asked before question cards existed is linked to the chat message that asked it, so it shows as a card with buttons (and its answer) like every new one.
v0.4.13Vesprr1 min read

Version 0.4.13

A project's agent can work on your SSH servers through DevBench, asks for access with an Approve card, and images open whole with zoom.

  • 3 New
  • 3 Changed
  • 2 Fixed

New3

  • Servers for agents. Give a project's agent one of the organization's SSH servers (project Settings → Servers, or the server on the Cloud page). It runs commands and copies files there through DevBench: devbench server run <server> -- <command>, put, get. No key ever enters the box, and every command is logged on the project and the server.
  • Access in one click. An agent that needs a server or a cloud account asks with devbench server request or devbench cloud request-access. The request is a card in the chat with Approve and Deny, and approving grants it on the spot, for someone who manages deployments.
  • Images open whole. Pictures fit the window (or the phone screen) instead of opening oversized. Zoom with the buttons, the wheel, pinch, + − 0 or a double-click, and drag to look around.

Changed3

  • The Cloud page's Give a project access is for everyone who manages deployments, not only owners, and can limit a grant to particular services and regions. Existing grants can be edited.
  • The project's release flow is also on Settings → Git & merging (and Release flow on the phone). Agents set it themselves with devbench flow set master.
  • Every box's notes tell its agent to use these commands rather than ask people to change settings.

Fixed2

  • An agent can no longer grant its own project cloud access through the API, and an Approve only counts from someone who could have granted it.
  • devbench user-task works inside a box.
v0.4.12Vesprr1 min read

Version 0.4.12

The agent's questions are cards you answer with one tap, Split shows every project the same way, and a leaner message box.

  • 2 New
  • 2 Changed
  • 2 Fixed

New2

  • The agent's questions in the chat are cards, on the web and the phone: the options are buttons, one tap answers (several questions: pick each, then Send answers), "Other…" takes your own words, and Dismiss sets it aside. Once settled, the card shows the answer and who gave it, everywhere at once. Replying in text still works.
  • Sending messages (Settings → Links & panes): Enter sends and Ctrl+Enter queues, or Ctrl+Enter sends and Enter starts a new line.

Changed2

  • Split shows every project the same way. The project in front is a column like the others, with the same header and section bar; the row of sections above and the split's own title bar are gone while Split is open. Close split is in Split ▾, or the front column's ×.
  • The message box is attach, @ and Send ▾. The "agent is busy" line, the key hints and the model chip are gone: the keys are a setting, the model is in the project's settings, and send later and schedule are in the menu beside Send.

Fixed2

  • An answered question's message updates in an open chat instead of keeping its old state until a reload.
  • Typing j, k or Escape in a field inside a chat message no longer moves through the thread.
v0.4.11Vesprr1 min read

Version 0.4.11

Split shows whole projects side by side from the project tabs row, the message box fits narrow columns, and the rail scrolls from its edges.

  • 3 Changed
  • 2 Fixed

Changed3

  • Split shows whole projects. Each column has its own Overview, Terminal, Chat, Tasks and the rest, and switching one changes only that column; narrow columns show icons and a More menu. The section each column is on is kept in the address.
  • Split moved to the project tabs row, at its right end, since it puts projects side by side. Alt+\ opens it as before.
  • Pointing at one of the top or bottom three rows of the message rail's list scrolls it that way while there are more messages past the edge.

Fixed2

  • The message box fits narrow columns: the "agent is working" hint no longer draws over the model chip (it takes its own line when there is no room), the chip shortens instead, and the key caps show only where they fit.
  • After choosing projects in Split or switching a column, a reload or Back and Forward no longer bring back the split as it was first opened.
v0.4.10Vesprr3 min read

Version 0.4.10

Auto-complete tasks, @addtask, other projects' chats side by side, a box that restarts when messaged, and a redesigned phone app.

  • 11 New
  • 7 Changed
  • 5 Fixed

New11

  • Auto-complete tasks. A button on the task board hands the open tasks to the agent one at a time; Jev or OpenAI (Settings → AI → Task checker) confirms each is really done before the next. Not done goes back with the reason (three tries), and a question the agent can't answer is left for you.
  • @addtask in a project's chat puts the message on the task board: the first line is the title, the rest the description, its screenshots the task's files.
  • A stopped project restarts when you message it. No /restart: the chat says the box is restarting, and your message reaches the agent once it is up.
  • Jev sees the screenshots in a message when it decides whether it is for the agent, and double-checks an agent that looks idle, so one waiting on background agents shows as working.
  • Split shows other projects' chats side by side: tick up to four projects under Split (Alt+\ opens your other open projects') and follow several agents from the project you are in. Another page of the same project no longer opens beside it.
  • New project is a guided flow. The repositories step offers to make the repos an App, and says what that gives: docs shared by every project on it, its deployment info kept once, and guidelines every agent on it is given. The Deploy step asks one question at a time (a live preview of every change is the default), and a Review step shows everything before it is created.
  • Apps carry guidelines and shared docs. An App has a description and guidelines for agents; a doc can be shared with an App (Share with App, or devbench doc create --app) and is then listed in every project on it. Every box gets an APP.md with them.
  • Send later. In a project's chat and on the agent page, queue a message for when the agent is free (Ctrl+Enter) or schedule it; waiting messages can be edited or cancelled.
  • Suspend members. Owners can suspend maintainers and members, and maintainers can suspend members, from Team; a suspended person keeps their membership but cannot use the organization until reinstated.
  • Attachments in a project's description, in New project and on the Overview, linked from REQUIREMENTS.md where the agent reads them.
  • The media viewer shows Markdown files formatted, and code and text files highlighted.

Changed7

  • The phone app, redesigned from two newcomer reviews of every screen: shorter project cards, one status line on a project, an unread strip that does not cover messages, Deploy folded to one line per healthy service, and merging blocked by open comments says so.
  • The agent can no longer switch branches in its box; separate work goes in a worktree (devbench worktree add).
  • Attachments in the chat and on the agent page are compact thumbnails with their names; remove and caption appear on hover, and uploads show progress. A file removed before sending is deleted from the project's Media.
  • Docs and media always open inside their project.
  • The Overview shows the description as formatted text and can edit it; the AI requirement buttons are gone.
  • The desktop app shows the website's own UI while it is online, so the two always match. Raising the version in a commit brings the desktop and Android versions along (pre-commit hook), and the deploy publishes the new installers.
  • A quick follow-up in a chat reaches the agent without the whole history again; every request asks the agent to keep the task list current.

Fixed5

  • The project chat shows new messages as they arrive again. Scrolling up, or the chat loading older messages by itself, used to stop live messages until a refresh; and a dropped connection now reconnects and fetches what it missed.
  • Opening a chat marks it read. The "Jump to first unread" pill and the project's unread count clear once you are at the newest messages; the "New messages" line stays for that visit. Side-by-side chats are marked read too.
  • Open projects with unread messages stand out in the top bar: the name in bold with the unread count, or @ and the mentions when someone asked for you.
  • Android chat: a video, table or image no longer lands on top of the message text, and tables fit the message.
  • A project whose agent is running background agents shows as working (and is not auto-stopped) while its prompt is free.
v0.4.9Vesprr1 min read

Version 0.4.9

The message box no longer repeats the status bar's box, agent, branch and version under it.

  • 1 Changed

Changed1

  • The row under the message box in a project's chat and agent panel is gone: the status bar along the bottom of every screen already shows the box, its agent, the branch and the version.
v0.4.8Vesprr1 min read

Version 0.4.8

A redesigned message box in the project chat and the agent panel, with the agent's model one click away and the box and branch under it.

  • 3 Changed
  • 1 Fixed

Changed3

  • The message box, in the project chat and the agent panel: attachments as cards inside it; attach, mention and the agent's model in one row; the Enter and Shift+Enter keys shown as caps; a square Send.
  • The agent's model is a chip in the message box ("Opus 5.5"). Press it to pick another; it applies from the agent's next session start.
  • Under the box: whether the box is running, what the agent is doing, the repository and branch the work goes to, and the version.

Fixed1

  • A Claude model the list does not name reads as its menu name ("Opus 5.5"), not its id.
v0.4.7Vesprr1 min read

Version 0.4.7

A video in the chat that came with no thumbnail now shows its first frame instead of a black tile.

  • 1 Fixed

Fixed1

  • Videos posted without a poster image, like the ones the CLI and the recorder post, showed an empty black tile in the chat. The tile now shows the video's own first moment, without playing it: the browser loads only the start of the file.
v0.4.5Vesprr1 min read

Version 0.4.5

DevBench no longer fails requests when many arrive at once; the database had been refusing connections under bursts.

  • 1 Fixed

Fixed1

  • Pages, previews and API calls could fail with an error during busy moments, because the database ran out of connections and refused new ones (about 1,400 times in two days). The backend now shares a fixed set of connections per worker, so a busy moment waits briefly instead of failing, and the database allows twice as many connections.
v0.4.6Vesprr1 min read

Version 0.4.6

Videos can be downloaded: from the chat, Media, tasks, merge evidence and the Guide, on the web, the desktop app and the phone.

  • 2 New

New2

  • Download a video. Every video player has a Download button beside full screen, and a video in the chat has one in its corner before you play it. On the phone, Download opens the video in the browser, which saves it to your downloads.
  • Shared media links take ?download=1 to save a file instead of showing it.
v0.4.4Vesprr1 min read

Version 0.4.4

OpenCode's model list offers the current Claude models before any OpenCode box has run, and the AI settings name all three agents.

  • 2 Fixed

Fixed2

  • An organization's first OpenCode project could only pick the agent's default or one free model, because no OpenCode box existed yet to ask for the full list. It now also offers Claude Opus, Sonnet, Haiku and Fable 5.x and two more free models; the full list replaces them once a box can be asked.
  • Settings → AI described its accounts as Claude Code and Codex only, and its button read "Add a OpenCode account".
v0.4.3Vesprr1 min read

Version 0.4.3

Previews open in full: their pages and files no longer fail at random while the page loads.

  • 1 Fixed

Fixed1

  • Opening a preview could leave it half-loaded, or show "Server Error (500)", because about a third of the files a page asks for at once were refused. DevBench now checks a preview's access once per page load instead of once per file.
v0.4.2Vesprr1 min read

Version 0.4.2

A preview of an app that signs its users in with a token now opens instead of answering every request with "signed out".

  • 2 Fixed

Fixed2

  • A preview could not be used by an app that sends its own sign-in token: DevBench's preview gate read that token as a sign-in to DevBench and refused every request. Previews of DevBench itself were one of them.
  • Previews of DevBench now find its backend: the web app's deploy wiring still named the backend by the address it had before the repo moved into apps/.
v0.4.1Vesprr1 min read

Version 0.4.1

OpenCode joins Claude Code and Codex as a coding agent, and every project can pick the model its agent runs on.

  • 3 New
  • 1 Changed

New3

  • OpenCode is a third coding agent, next to Claude Code and Codex. It runs on your own API keys: Anthropic, OpenAI, OpenRouter or OpenCode Zen. Add them under Settings → AI.
  • Pick the model when you create a project, a scheduled task or an agent persona. Each agent's list comes from its own CLI and refreshes daily, with a Refresh button. You can change a project's model later; it applies when the agent next starts.
  • Organization defaults: in Settings, choose the model each agent starts on in new projects.

Changed1

  • OpenCode is one of the agents a scheduled task can fall back to when every account of its own agent has run out.
v0.4.0Vesprr1 min read

Version 0.4.0

One version for every app, no more @agent in the chat, live project tabs, attachments on tasks and projects grouped by App on the board.

  • 5 New
  • 2 Changed

New5

  • You no longer have to type @agent. Every message in a project chat can reach its agent, and Jev decides which ones are meant for it. @agent still always goes straight through. Owners can choose Jev, every message, or only @agent under Settings → AI.
  • Project tabs stay in step across browser tabs and desktop windows. Open, close or rename a project in one and the others show it straight away, without a reload.
  • A task's description can carry attachments: upload a screenshot or a file, or attach a doc or a link. Agents attach them with devbench task add/update --doc|--media|--image|--video|--link.
  • Projects that share an App are grouped together on the board and marked in the App's colour.
  • A new project whose repos are in no App gets one automatically, and every existing project without an App was given one.

Changed2

  • The web app, the desktop app and the Android app now share one version number, so the Download page shows the same version for all three. Before, they were 0.2.43, 0.1.11 and 0.3.6.
  • The new number is 0.4.0 because it has to be above the Android app's 0.3.6: phones only take an update to a higher version.
v0.2.44Vesprr1 min read

Version 0.2.44

Boxes get 6 GB of memory instead of 2, and an agent killed for running out of memory restarts by itself and tells the project chat.

  • 2 Fixed

Fixed2

  • An agent could be killed mid-task when its box ran out of memory, and then stayed stopped until somebody sent the project a message, sometimes overnight. Boxes now have 6 GB instead of 2 GB, running boxes included, without a restart.
  • If the agent is killed anyway, it restarts by itself, reopens its conversation and posts in the project chat that it stopped, so you can tell it to carry on.
v0.2.43Vesprr1 min read

Version 0.2.43

New desktop (0.1.11) and Android (0.3.6) apps with docs as project tabs, the owners-only Terminal and the two-row top bar.

  • 2 Changed

Changed2

  • The desktop app 0.1.11 and the Android app 0.3.6 carry everything since the last build: docs open as tabs inside their project, the Terminal is for owners, project tabs show a working agent, and the places have a row of their own.
  • The download links fetch the new versions; links you have shared already lead to them too.
v0.2.42Vesprr1 min read

Version 0.2.42

Only owners open a project's Terminal, project tabs show a working agent, the places get a row of their own, and doc tabs tidy themselves.

  • 4 Changed
  • 2 Fixed

Changed4

  • A project's Agent page is now called Terminal, and only the organization's owners can open it, on the web and on the phone. Everyone else talks to the agent in the project's chat.
  • A project tab shows a spinning ring and a green tint while its agent is working.
  • The top bar is two rows: the organization, the search, the bell and you, then the places on a row of their own.
  • The project Overview no longer shows the At a glance tiles.

Fixed2

  • A doc tab closes by itself when its doc is deleted, and says so.
  • When the six-doc limit closes an old doc tab, a message names the doc that closed.
v0.2.41Vesprr1 min read

Version 0.2.41

A doc opened inside a project opens as a tab in that project, next to Docs, instead of leaving the project.

  • 3 Changed

Changed3

  • Inside a project, a doc opens as its own tab in the project's row, after Docs, from the Docs page, the chat, a task note, the Overview or the search. The project and its other pages stay where they were.
  • Up to six docs can be open in a project at once. Each project remembers its open docs, and a reload brings them back.
  • A doc opened on its own (from the Docs place or a link) offers Open in project when it belongs to one.
v0.2.40Vesprr1 min read

Version 0.2.40

New desktop (0.1.10) and Android (0.3.5) apps without the Open in Code buttons, now that boxes run without the editor.

  • 2 Changed

Changed2

  • The desktop app 0.1.10 and the Android app 0.3.5 match the boxes without VS Code: the Open in Code buttons and the editor's extension settings are gone.
  • The download links fetch the new versions; links you have shared already lead to them too.
v0.2.39Vesprr1 min read

Version 0.2.39

Boxes no longer run VS Code in the browser, which saves every box its memory and CPU; the agent's terminal, Changes and Git are unchanged.

  • 3 Changed

Removed1

  • VS Code in the browser (code-server). "Open in Code" is gone from the board, the project page and the status bar, and so are the editor-extension settings, on the web and in the mobile app. To work on a project in an editor, use the desktop app's "Open on my PC", which opens your own VS Code.

Changed3

  • Boxes are built on plain Debian with the same tools as before, and run nothing of their own until the agent starts. A box's image is about 2.4 GB smaller, and an idle box uses about 5 MB instead of about 60 MB.
  • A box that was created with the editor switches over the next time it is started. Its Claude and Codex conversations are carried across and archived first, so it resumes where it was.
  • Opening a project's terminal now counts as activity for the idle auto-stop, in place of the editor's heartbeat.
v0.2.38Vesprr1 min read

Version 0.2.38

New desktop (0.1.9) and Android (0.3.4) apps, with the new navigation, Alt key hints, project shortcuts and the New project dialog.

  • 2 Changed

Changed2

  • The desktop app 0.1.9 and the Android app 0.3.4 carry everything since the last build: tabs within tabs, holding Alt to see the keys, Alt+N, Alt+O and the other project keys, and New project as a dialog.
  • The download links fetch the new versions; links you have shared already lead to them too.
v0.2.37Vesprr1 min read

Version 0.2.37

New project opens as a dialog over the page you are on, from the board, the + after your projects, Alt+N or the search.

  • 3 Changed

Changed3

  • New project is a dialog now, wherever you start it: the board's New project, the + after your open projects, Alt+N or the search. The page you were on stays where it was underneath.
  • When the project is made, the dialog closes and the project opens in its own tab, showing its setup until it is ready.
  • Closing the dialog asks first if you have typed anything.
v0.2.36Vesprr1 min read

Version 0.2.36

New keys for projects: Alt+N starts a new project, Alt+O opens one, Alt+Shift+N adds a task, Alt+Shift+T reopens a closed tab.

  • 5 New
  • 1 Changed

New5

  • Alt+N opens the new project form beside the page.
  • Alt+O opens the project list with its filter ready: type to narrow it, then Enter.
  • Alt+Shift+N goes to the Tasks of the project you are in, ready to add one.
  • Alt+Shift+T reopens the project tab you closed last, on the page it was on.
  • Holding Alt shows the new keys on their buttons too.

Changed1

  • The + at the end of your open projects lists every project, most recent first, with a filter. New project there opens the form beside the page.
v0.2.35Vesprr1 min read

Version 0.2.35

The DevBench server answers SSH on a second port, and deploys use it first, so a busy port 22 no longer fails a deploy.

  • 2 Changed

Changed2

  • The server answers SSH on port 47022 as well as 22. Port 22 is held strictly against brute-forcing; 47022 is lenient, and a ban on one port no longer blocks the other ports or the website.
  • Deploys connect on port 47022 first and fall back to port 22, so a timeout on one port no longer fails the deploy.
v0.2.34Vesprr1 min read

Version 0.2.34

Hold Alt to see every tab's key again, and Alt+Shift+1 to 8 now switch between the places in the top bar.

  • 2 New

New2

  • Hold Alt and each row of tabs shows its keys: the places Alt+Shift+1 to 8, your open projects Alt+1 to 9, and Alt+[ and Alt+] on the pages either side of the one you are on. The keys stay up while Alt is held, so shortcuts can be chained.
  • Alt+Shift+1 to 8 switch between the places in the top bar.
v0.2.33Vesprr1 min read

Version 0.2.33

Navigation is a clear hierarchy of tabs: places along the top, their sub-pages under them, and a project's pages under the project.

  • 4 Changed

Changed4

  • Three rows of tabs, each holding only what belongs to the one above it: the places (Projects, Inbox, Tasks for you, Merge requests, Docs, Automate, Run, Organization); under Projects your open projects, under Automate, Run and Organization their pages; and under a project its pages (Overview, Agent, Chat, Changes, Tasks, Git, Deploy, Docs, More).
  • One page at a time. Split puts a second page beside it, with a divider to drag and an × to close it.
  • Back, Forward and reload bring you back to the same place, project, page and split. Each project remembers the page you were on.
  • Your open projects carry over from the previous layout. Open project tabs are kept in this browser.
v0.2.31Vesprr1 min read

Version 0.2.31

A new layout: the organization's places are in the top bar, open projects are tabs inside Projects, and the left rail is gone.

  • 4 Changed

Changed4

  • The top bar holds the organization's places as words: Projects, Inbox, Tasks for you, Merge requests and Docs, with Automate, Run and Organization menus for the rest. Below 1280px they fold into one Places menu.
  • Inside Projects, a row of smaller tabs: All projects (the board), then one tab per open project. The project's pages (Overview, Agent, Chat, Changes, Tasks, Git, Deploy, Docs and More) sit in the same row.
  • The left rail is gone, so the board and pages use the full width. Help (the Guide, What moved, What's new, Keyboard shortcuts) is in your avatar menu.
  • "Pin to the rail" is now "Pin to the top bar".
v0.2.32Vesprr1 min read

Version 0.2.32

Links open as panes in this window, dragged or dropped from anywhere with a ghost of the pane; dragging panes is smooth again.

  • 2 New
  • 1 Changed
  • 3 Fixed

New2

  • Drag any link into the workspace to open it as a pane where you drop it, including a link from another browser tab or app. A page from outside DevBench opens as a web page pane, with a button to open it in a browser tab.
  • While a link is dragged, the pointer carries the pane it will open: its name, whether it is a Doc, Media, a Page or a Web page, and where the drop puts it.

Changed1

  • A doc or file card that used to open DevBench again in a new browser tab, such as an attachment in the chat, now opens a temporary pane beside the one you are in.

Fixed3

  • Dragging a pane's tab, reordering tabs and dragging a divider no longer stutter: the whole page was laid out again on every frame of the drag.
  • Letting go of a link dragged in from another tab no longer leaves DevBench for that link.
  • What follows the pointer while something is dragged near the window's right or bottom edge moves to the pointer's other side instead of being cut off.
v0.2.30Vesprr1 min read

Version 0.2.30

The board's empty columns are wide enough to show their whole name, and the late banner reads "past its deadline".

  • 2 Fixed

Fixed2

  • An empty column on the board keeps enough width to show its whole name, so "Internal Review" is no longer cut off.
  • The banner for one late project reads "1 project is past its deadline".
v0.2.29Vesprr1 min read

Version 0.2.29

A tidier board: finished work folds away, a done project says it is ready to move on, and the update notice says Updated to vX.

  • 7 Changed

Changed7

  • A finished column shows its newest cards and opens the rest on request, so finished projects no longer push the work in flight off the board.
  • An empty column takes a narrow slot, and a fade at the board's edge says there are more columns to the right.
  • A project whose every task is done says it is ready to move on instead of being flagged late.
  • The pipeline strip draws where the work is now in full, the stops behind it plain and the ones ahead dimmed, and is left off a project that only has main.
  • When the board is filtered to one person, their face is left off the cards.
  • After an update the notice says "Updated to vX", and how many changes there were since the version you last had.
  • Links no longer show a tooltip naming what each click does; the shortcut sheet shows your map.
v0.2.28Vesprr1 min read

Version 0.2.28

Invites by email, an organization's data export and deletion, a weekly digest, and rate limits on the API.

  • 3 New
  • 2 Changed

New3

  • Owners can send an invite by email, and an access request can be answered with an invite from the admin.
  • An organization can export all of its data, and an owner can schedule its deletion, with seven days to cancel.
  • A weekly digest for owners, off until the server turns it on.

Changed2

  • The API has rate limits, set well above what the apps use, so normal use is never refused.
  • The signup page fills in the invite code from an invite link.
v0.2.27Vesprr1 min read

Version 0.2.27

For the team: a push to main that changes the desktop or Android app asks whether to build it on the server.

  • 1 New

New1

  • For the team working on DevBench: git push to main checks whether the push changes the desktop or the Android app. If it does, it asks whether to build it; on yes, the build starts on the server once that commit is deployed. Nothing is ever built without a yes.
v0.2.26Vesprr1 min read

Version 0.2.26

Each app download shows its version and whether it is verified, and the desktop and Android apps can be built on the server on request.

  • 2 New
  • 2 Fixed

New2

  • The desktop and Android downloads show their version and whether the build is verified.
  • The Windows, Linux and Android apps can be built on DevBench's own server, tagged by version. A build runs only when someone starts it; merging never builds or replaces a download.

Fixed2

  • The Android build workflow points at the signing script where it lives now.
  • A hidden folder next to the downloads is never offered as one.
v0.2.25Vesprr1 min read

Version 0.2.25

The phone app is redesigned to match the web app and carries its features, including the agent choice, Codex accounts and logs.

  • 3 New
  • 3 Changed

New3

  • The mobile app has a new design that matches the web app, and the features that were web-only are on the phone: the project board, tasks, the session, chat, changes and git, deploys, docs, media and more.
  • A project's Logs, on the phone.
  • Agent accounts: add a Codex account by ChatGPT sign-in or API key, pick a default agent, and choose the agent for a persona or a scheduled task.

Changed3

  • The phone names each project's own agent (Claude Code or Codex) on the board, the project, the session and the chat.
  • Changes, Git and a repository's page say when the box is stopped instead of starting it.
  • The guide on the phone is up to date with the web's.
v0.2.24Vesprr1 min read

Version 0.2.24

The website shows DevBench running: real recordings of a preview, a session and a merge request, recorded in the product.

  • 2 New
  • 1 Changed

New2

  • The home page plays a real recording of a project's Deploy and test tab, and the Product page one of a project open with its session beside the editor. Both are recorded by DevBench itself; nothing in them is drawn.
  • The task timeline on the website plays a real recording of a merge request instead of a drawing of one.

Changed1

  • Recordings load only their poster image with the page and never play on their own.
v0.2.23Vesprr1 min read

Version 0.2.23

A tab's right-click menu stays open while a chat or a log scrolls itself elsewhere on the page.

  • 1 Fixed

Fixed1

  • A right-click menu (a tab's, for one) no longer closes by itself when a chat, a log or the agent's feed scrolls on its own somewhere else on the page. It still closes when the page scrolls it away.
v0.2.22Vesprr1 min read

Version 0.2.22

The website is shorter and easier to scan: every feature in a sentence or two, beside the app's own screen, with a link to its guide.

  • 3 Changed
  • 1 Fixed

Changed3

  • The Product, Platform, Security and Hosting pages on devbench.sh describe each feature in a sentence or two and link to its article in the docs, instead of repeating the guide. Each page is about a fifth of its old length.
  • A new look for the website: calmer type, the app's screens on a lit stage, the product in six tiles on the home page, and a footer with every page in three columns. Dark and light.
  • Search results and shared links show clearer page titles and descriptions.

Fixed1

  • With reduced motion turned on, parts of the website's home page and the task timeline on the Product page no longer stay invisible.
v0.2.21Vesprr1 min read

Version 0.2.21

DevBench starts faster and does less in the background: hidden panes stop checking for updates, and a project's panes share one copy of it.

  • 4 Changed
  • 2 Fixed

Changed4

  • DevBench loads less up front: each page loads the first time a pane shows it, so the app opens faster.
  • Panes you cannot see stop checking for updates: a tab behind another, a space you have left, or a browser tab in the background. A pane catches up once when it comes back into view, only if it missed a check.
  • All the panes of a project share one copy of it, so a change made in one (a rename, its stage, a task) shows in the others straight away, and the project is asked for once instead of once per pane.
  • The board asks for every card's pipeline in one request instead of one per card, and the project pages and the board read the agents' state the app already keeps instead of asking again.

Fixed2

  • On the Deploy tab, a status that arrives after you deploy, stop or restart no longer brings back the state from before, and a log no longer shows under another repository's name.
  • A project that was stopped when you opened it refreshes when you come back to it.
v0.2.20Vesprr1 min read

Version 0.2.20

The chat rail's white mark now shows the message in the middle of the screen, gliding along the rail; pointing at a message lights nothing.

  • 2 Changed

Changed2

  • The chat rail no longer lights the message you point at, in the thread or on the rail.
  • The white mark now sits on the message in the middle of the screen, a little bigger like before. In the middle of a long chat it stays at the rail's middle as the rail slides under it. At the newest or oldest message it glides along the rail as you scroll, or moves at once when reduced motion is on.
v0.2.19Vesprr2 min read

Version 0.2.19

A calmer workspace: one bar for the app, a rail for the project's pages, one row per pane, a status bar. Each browser tab keeps its view.

  • 9 Changed
  • 10 Fixed

Changed9

  • The top of the app is one bar: your organization's menu, your spaces, search, the bell and your own menu. The second row is gone.
  • A rail down the left holds the space's project and its pages (Overview, Agent, Chat, Changes, Tasks, Git, Deploy, Docs, and More), then Projects, Inbox and Tasks for you, your pins, All pages and Help. Its names can be shown or hidden.
  • Each group of tabs has one row: its tabs, the page's own actions, and the group's menu and zoom. A narrow group puts the page's actions on a row under its tabs. Right-click a tab to show another page of the project in it.
  • A status bar along the bottom shows the box (with Open in VS Code and the agent's terminal), the agent, the branch, whether your layout is saved, and the version.
  • A project opens in its own space laid out for building. Settings, Team, API keys, What's new and What moved open as a tab where you are, not in spaces of their own; the spaces they used to leave behind are closed once.
  • Ctrl/Cmd+K opens search, as well as a double tap of Ctrl/Cmd.
  • Keyboard shortcuts follow the letter or punctuation you type, on any keyboard layout.
  • Tasks have their own addresses, and Inbox rows open the same thing the bell does.
  • Stripe sends you back to the Billing tab of Settings, which says how the checkout went.

Fixed10

  • Opening a project page in a new browser tab no longer switches every other open tab to it: each browser tab keeps its own view of your spaces.
  • A link to a page that is already open brings that pane forward, wherever it is, instead of opening another.
  • Signing out clears what you left in the browser, and your spaces and recent searches are kept per person, so the next person on a shared computer does not see them.
  • Deleting a project closes its panes, its temporary split and its space. Deleting an app closes its pane and refreshes the list.
  • A new or renamed project shows up in the switcher and search straight away.
  • Looking at a stopped project no longer starts its box, and the Agent pane says why it is empty.
  • Ctrl/Cmd+F is taken only by the Chat pane you are in, and a hidden Chat pane does not mark the thread read.
  • Shared links use DevBench's public address, never the desktop app's private one.
  • Changing your own role or deploy permission takes effect without a reload.
  • Escape leaves a temporary split waiting behind another tab alone.
v0.2.18Vesprr1 min read

Version 0.2.18

The chat rail stays put and slides with you one message at a time, loads earlier messages ahead, and its white mark glides.

  • 3 Changed

Changed3

  • The chat rail no longer moves up and down as you scroll. It stays in one place with the same room above and below, and its 50 messages slide under it one at a time, keeping the message in the middle of the screen at the rail's middle. It used to wait until you reached the dots at its top and then move 10 messages at once. At the very newest or oldest message, the bigger tick moves along the rail instead.
  • The rail asks for earlier messages as you come within 25 messages of the first one loaded, or as soon as the chat opens with fewer than the rail holds, instead of waiting until you reach the top.
  • The white mark for the message under the pointer is now one mark that glides from tick to tick instead of jumping. It moves at once when reduced motion is on.
v0.2.17Vesprr1 min read

Version 0.2.17

Signing out really signs you out, each device gets its own sign-in, and the desktop app keeps you signed in between launches.

  • 5 Changed
  • 3 Fixed

Changed5

  • Signing out ends that sign-in on DevBench's server as well as in the browser, and the next sign-in asks who you are again.
  • Each device you sign in on gets a sign-in of its own, which lapses after it goes unused for a while: 14 days on the web, 30 in the desktop app and 90 on the phone.
  • The desktop app signs you in through your browser and comes straight back to the app, and it keeps you signed in between launches.
  • Installing the GitHub App, checkout and the billing portal open beside DevBench instead of replacing it.
  • The command that installs the CLI makes a sign-in of its own for it.

Fixed3

  • In the desktop app, the Privacy, Terms and Support links on the sign-in page open in your browser.
  • In the desktop app, Open in a browser tab opens DevBench's web address, where you are signed in, not the app's private one.
  • An expired link to a box or a test deployment shows a page saying so and links back to the project.
v0.2.16Vesprr1 min read

Version 0.2.16

Scrolling up through a chat no longer jumps when earlier messages load: the message you are reading stays where it was.

  • 1 Fixed

Fixed1

  • Scrolling up through a long chat no longer jumps forward when a page of earlier messages loads. Each load used to move the thread by however far you were from the top, about a screen; now the message you are reading stays exactly where it was, and the earlier messages appear above it.
v0.2.15Vesprr1 min read

Version 0.2.15

The chat rail follows the message in the middle of the screen, at once, with no glitch on a fast scroll; its tick is bigger, not white.

  • 2 Changed

Changed2

  • The chat rail now keeps the tick of the message in the middle of the screen at its middle, and moves there at once as you scroll, so a fast scroll no longer throws the rail about. Pointing at a message in the thread no longer moves the rail; its tick just turns white.
  • The tick of the message in the middle of the screen, and the current row in the rail's pane, are a little bigger in their own colour instead of white. White now only marks what the pointer is on.
v0.2.14Vesprr1 min read

Version 0.2.14

The chat rail grows into its preview pane instead of popping in, keeps each row's words as they grow, and centres the message you point at.

  • 3 Changed

Changed3

  • Opening the chat rail's pane is now a transition rather than a pop: the rail's dots spread apart into rows around the one under the pointer, and each row's text fades in from the rail's side.
  • Sliding across the pane still grows the rows near the pointer like a macOS dock, but a row now shows the same words at every size, so nothing appears or disappears at the end of a line as it grows.
  • The tick of the message you point at in the thread moves to the middle of the rail, the other dots gliding with it; with nothing pointed at, the message in the middle of the screen is there. The dots hold still while the pointer is on the rail.
v0.2.13Vesprr1 min read

Version 0.2.13

The chat rail shows the last 50 messages, one tick each, and its pane is rows that move like a macOS dock under the pointer.

  • 2 New
  • 6 Changed

New2

  • Sliding across the chat rail's pane moves it like a macOS dock: the message under the pointer grows, its neighbours grow less and make room, and the row under the pointer is always the one it is over. At rest, the ticks next to the pointer grow the same way.
  • The pane's first and last rows say how many messages lie past the rail and jump to the nearest of them, or load earlier ones from the server.

Changed6

  • The chat rail shows the last 50 messages, or the 50 around where you are reading further up, one tick for each message, instead of grouping a long thread to fit.
  • The pane is only rows: the detail card with the pointed message and the legend of colours are gone.
  • Messages past either end of the rail are three solid dots instead of two fading ones, and every mention's dot sits in one column.
  • The band that sat over the ticks of the messages on screen is gone, at rest and in the pane.
  • While you write to @agent, the ticks of the messages it will see turn green and keep their length.
  • The "Agent sees" strip above an @agent message has equal gaps on both sides of its slider, and its count reads as plain text until you click it.
v0.2.12Vesprr1 min read

Version 0.2.12

Dragging a pane shows where it lands right under the pointer, and a small map of the result when the drop moves other panes too.

  • 3 Changed
  • 1 Fixed

Changed3

  • While a pane's tab is dragged, the place it would go is drawn where the pointer is: the pane under the pointer is ringed and the side it would split is filled, a pane it would join as a tab is filled, and a gap or a window edge shows a bar. Before, the outline showed where the pane would end up after everything moved, so it often appeared over a different pane than the one under the pointer.
  • The chip under the pointer names the page and says where it goes ("Tasks → right of Chat"). When the drop also moves or resizes other panes (a pane dropped beside its neighbour takes its room, an edge squeezes every pane), the chip adds a small map of the layout the drop settles to. It stays on screen near the window's edges.
  • The pane you are dragging out of its group is hatched while it is held, so it reads as leaving, not as a place to drop.

Fixed1

  • Resting the pointer on the line between a pane's middle and one of its sides no longer flickers between "add as a tab" and a split.
v0.2.11Vesprr1 min read

Version 0.2.11

The chat rail, redesigned: colour-coded ticks for every message, and a hover zoom into message previews that stays under the pointer.

  • 4 New
  • 4 Changed

New4

  • Resting the pointer on the chat rail zooms it into a pane: each message's author and first line, right-aligned against its tick, with mentions highlighted as in the thread. The message under the pointer stays exactly under it as the ticks spread, at any browser zoom, and nothing moves after that.
  • The pane shows the message under the pointer in more detail, with its time, and a legend of the rail's colours. Pressing a row jumps to that message.
  • The rail opens from the keyboard too: it is one tab stop; Enter, Space or Left opens it on the current message, the arrows, Page Up/Down, Home and End move, Enter jumps, Escape closes.
  • On a touch screen, a tap on the rail opens the pane where it lands; a tap on a row jumps.

Changed4

  • At rest the rail is only ticks: no counts, no corner arrows, no border. Every loaded message is on it; a long thread is grouped to fit.
  • Ticks are colour-coded by who wrote them (you, teammates, agents and DevBench). A message that mentions you is the most visible mark, amber with a dot; in a long, grouped thread its group carries the dot.
  • A band behind the ticks shows which messages are on screen. When older messages are on the server, two dots at the top say so, and the pane offers to load them.
  • A wheel turned over the resting rail scrolls the thread.
v0.2.10Vesprr1 min read

Version 0.2.10

A rebuilt chat message rail, panes that name their project when several projects are open, and split left on wide panes.

  • 3 New
  • 5 Changed
  • 3 Fixed

New3

  • When the open panes belong to more than one project, every tab and pane header names its project, single-tab panes and the Agent pane included. With one project open, they keep their short names.
  • A narrow pane's page menu lists Projects and the project, with a submenu of all projects, so the project can be changed however narrow the pane is.
  • Sliders have a choice for a drag that leaves the window: keep the nearest value (the default, and the chat's "Agent sees") or go back to where the drag began.

Changed5

  • The chat's message rail is rebuilt: ticks of a fixed size that never move under the pointer, one label beside the tick you point at, no animation, and it works at any browser zoom.
  • Scroll fades grow over a third of what a list can scroll, so they show how far you are from the edge.
  • The split readout shows a tenth of a percent (62.7% | 37.3%).
  • In the search palette, the shade under a group's heading moves with the heading, and a heading coming up is no longer faded.
  • A focused temporary split (such as Edit task) has one dashed accent border instead of three overlapping dashed lines.

Fixed3

  • Dragging a pane to the left of a wide pane offers "Split left" across a third of it, not just its last 140px.
  • A pane moved just as the window took focus no longer jumps back to where it was a few seconds later.
  • A chat video's poster shows its whole border; its bottom edge was cut off.
v0.2.9Vesprr2 min read

Version 0.2.9

Every header action was rechecked, the Agent pane keeps one row at any width, and the Inbox and six other lists can be searched.

  • 6 New
  • 9 Changed
  • 1 Fixed

New6

  • The Inbox can be searched, across every page of it, not just the ones loaded.
  • Search (and "/") on Logs, Activity, API keys, Agents, Merge requests and Watchers.
  • A doc can be copied as Markdown, ready to paste to an agent or into a ticket.
  • A task has a Copy link button beside Done.
  • A repository opened in a pane has an Open in GitHub/GitLab button.
  • Merge requests has a Refresh button, since its list does not update by itself.

Changed9

  • Title-bar buttons are ghost buttons: no borders, no filled main button, and the same 6px spacing inside every button and between buttons, including pin, zoom and close.
  • The Agent pane's title bar is one row at every width, so the terminal keeps its lines. When the pane is narrow, the title shortens to "Agent" and Terminal, Chat and All steps become icons.
  • Tasks for you: finished tasks fold into a "Done" section at the end of the list, instead of a header button.
  • Cloud: Accounts, Resources, Domains and Access are tabs inside the pane. The header keeps Connect an account.
  • Docs (every project) and the Guide: the search field and List / Graph moved into the pane. The header has a search icon.
  • Watchers: Rows / Tiles is in a toolbar above the list, with search and a filter for All / Running / Not running.
  • Buttons that repeated a link one line above are gone: Daily report on Projects, Open in Code and Open the agent on a project's Overview, Back on a repository or a Lathe job opened in a pane.
  • Lathe: + Machine and + Phone are in their own sections. Apps: "Create App" is "New app".
  • Logs no longer has a Refresh button, because it reloads every few seconds by itself.

Fixed1

  • A header button with an icon and words, such as Git's Push all, no longer overlaps the button next to it.
v0.2.8Vesprr2 min read

Version 0.2.8

Pane headers hold each pane's common actions as icons, tooltips point at what they describe, and the agent sees the message a reply answers.

  • 5 New
  • 9 Changed
  • 5 Fixed

New5

  • Every section of the Tasks pane folds, and stays as you left it. A group's heading says when the group was made.
  • The chat's message rail says how many earlier messages it has no mark for, and loads older messages from its top.
  • The "Agent sees" count can be typed: click the number.
  • A message sent to @agent as a reply carries the message it answers, with its files, so "like this one" reaches the agent with "this one".
  • Tasks the agent adds always land in a group: the first one names it, and the rest join it.

Changed9

  • Pane headers hold what you do most to the pane, as icons with tooltips: search, refresh, open, and one worded main action. Filters, view switches and a project's stage moved into the panes, next to what they change. The "More" menus that held things the pane already had are gone.
  • A narrow pane's title bar is two rows: its name and its own controls above, the page's actions below.
  • A tab says its page ("Chat", "Tasks"), and names the project only when another open tab would read the same.
  • Tooltips point at what they describe, grow in from it and fade out, and moving along a row of buttons no longer flickers.
  • The command palette's section headings stay in view while their results scroll under them, in their own case on one line; its footer is one line.
  • The Agent link shows a colour only when the agent needs you: amber to sign in, red for a box in error. The always-green dot is gone, as is the chat's green "Live".
  • Hovering a chat message no longer tints it; its mark in the rail lights up instead.
  • Group names in the Tasks pane are shown as written, not in capitals.
  • Lists and menus no longer spell out the arrow keys, Enter and Escape.

Fixed5

  • A pane menu's tooltip no longer appears over the open menu.
  • The Projects pane's New button is no longer cut off.
  • The rail's mark under the pointer stays in place while the rail opens and closes, at its ends too.
  • A link or file under a chat message has room between it and the text.
  • A document attached in the composer shows its type and size, not an empty box.
v0.2.7Vesprr1 min read

Version 0.2.7

Every scrolling list and panel fades at an edge with more, temporary panes drag like any other, and the top bar stays put.

  • 3 New
  • 5 Changed
  • 6 Fixed

New3

  • Every scrolling area fades at an edge while there is more past it: the chat, pages, bordered lists and logs, menus, and rows that scroll sideways (settings sections, a pane's tabs, filter chips). Borders and shadows stay whole.
  • A temporary pane's tab can be dragged like any pane's: into the layout to keep it there, or onto a space's tab or + to move it.
  • A link or a DevBench doc attached to a chat message opens in a new tab from a card that says where it goes.

Changed5

  • The sign of more to scroll at an edge is a short lighter line with a soft shade, in place of the arrow that sat on the first row.
  • A temporary pane no longer carries a "Temporary" label: its dashed edge says it.
  • The pane menu's button is a split square rather than a window.
  • The chat's message rail opens around the pointer, and stops at its ends instead of leaving half of itself empty.
  • A message you are sending shows your name and initials beside "Sending…".

Fixed6

  • Dragging a temporary pane's tab no longer stops the moment it starts.
  • A long space name ends in "…" inside its tab instead of running over the next tabs.
  • The space tabs, + and the search no longer shift while a page or a pane is dragged over the top bar.
  • The search's project chip stays inside the field, which keeps room for what you type.
  • A file still uploading has one × (cancel and remove), not two.
  • Attachment cards have even padding.
v0.2.6Vesprr1 min read

Version 0.2.6

A finished or cancelled Codex sign-in no longer leaves its login running in DevBench's sign-in box.

  • 1 Fixed

Fixed1

  • A finished or cancelled Codex sign-in stops its waiting login. It used to keep running until the next sign-in started, holding the port that sign-in needed.
v0.2.5Vesprr1 min read

Version 0.2.5

Adding or renewing a Claude account works again, and sign-ins run in DevBench's own box, so no project has to be open.

  • 3 Changed
  • 2 Fixed

Changed3

  • Claude and Codex sign-ins run in a box DevBench keeps for them, instead of borrowing one of your projects' boxes. None of your projects needs to be running, and a box being stopped or rebuilt can no longer break a sign-in half way.
  • An account nobody's box is on is still kept signed in every hour, even when no project is open.
  • One Codex sign-in runs at a time on a DevBench. If another is waiting for its address, you are asked to try again in a few minutes.

Fixed2

  • Adding or renewing a Claude account works again. Claude Code moved its sign-in page, DevBench no longer recognised the link, and every sign-in gave up after a minute and a half.
  • A sign-in that can no longer finish says so at once, instead of waiting for Claude or Codex to answer.
v0.2.4Vesprr1 min read

Version 0.2.4

Panes that crash or go stale say so and recover, "/" finds a pane's search, and narrow headers, menus and the @ list read better.

  • 3 New
  • 5 Changed
  • 6 Fixed

New3

  • "/" in a pane goes to its search, or to the button that opens it (the chat's), or to its message box. The command palette stays on a double tap of ⌘ or Ctrl.
  • Alt+arrows and Alt+[ ] reach a temporary pane (a form beside the page that asked for it) and leave it again; there Alt+W closes it.
  • A pane that stops working says what happened, can report it to your organization's owners, and shows the error itself only when you ask.

Changed5

  • The @ mention list is one line a row, with each agent's role, the letters you typed marked, and the keys that work under it.
  • A menu or list with more to scroll shows a small arrow and a line at that edge, as well as the fade.
  • Buttons in a pane's header have more room around their labels; in a narrow pane the header keeps the current page's name and puts More behind "…".
  • The chat's message rail slides open on hover and closes the same way.
  • A temporary pane, and a preview tab (opened by a link, replaced by the next), have a dashed edge until they are kept.

Fixed6

  • After DevBench is updated, a form that had not been opened yet (New task, among others) no longer breaks its pane: it tries again, then offers to reload DevBench.
  • Header controls no longer slide under a narrow pane's own buttons.
  • The space numbers shown while Alt is held no longer blink when you switch spaces.
  • The key on a tab behind another is as square as the one on the front tab.
  • The selection bar sits at the bottom of the Tasks pane however short the list is.
  • The bar over the front tab covers the whole tab once a slow title (a doc's) arrives.
v0.2.3Vesprr1 min read

Version 0.2.3

The keys shown while Alt is held, and every one-key cap, are even squares again.

  • 1 Fixed

Fixed1

  • The keys that appear while Alt is held are even squares, as are Shift and the arrow keys wherever a shortcut is shown. 0.2.2 left them a few pixels too wide.
v0.2.2Vesprr1 min read

Version 0.2.2

The fixes after the move onto the shared component library: layouts, focus rings, the chat, code colours and video.

  • 4 New
  • 6 Changed
  • 7 Fixed

New4

  • Code blocks in the chat are highlighted in GitHub's colours, on the web and in the mobile app, under a compact language label.
  • Menus, dropdowns, lists and dialogs fade the edge where there is more to scroll.
  • Videos in the chat, in task notes, in merge evidence and in the Guide play in DevBench's own player.
  • Spaces that do not fit in the top bar fold into a button that shows their icons, in place of "+2".

Changed6

  • One focus ring everywhere: on the control's edge, at half strength, with no gap.
  • The chat's message rail has a lane of its own beside the messages.
  • The @ mention list reads name and @handle on one line, and mentions are tinted chips, amber when they name you.
  • A link's tooltip lists each click and where it opens, one to a row.
  • Project settings show their sections as a rail beside the page, and the organization settings rail stays put while the page scrolls.
  • Checkboxes have a heavier edge.

Fixed7

  • "Add to chat", the annotation chip, attachment cards and the reply banner no longer stack their parts on top of each other.
  • The top search fits its bar, and its focus ring no longer runs off the window.
  • A message's time sits right after the name, and a highlighted message no longer shifts by a pixel.
  • The chat rail no longer covers the end of a message, and "Agent sees" has no gap after its count.
  • Hovering a chip no longer pushes the chips after it, and key caps are square.
  • Assigned people line up with "+ Assign", the repository tile's GitHub and Branch links have icons, and avatar initials stay inside the circle.
  • The choices in Settings, Links & panes no longer move when one is picked, and a dragged board card keeps its border.
v0.2.1Vesprr1 min read

Version 0.2.1

Housekeeping after the repository's new layout; nothing changes in the app.

  • 1 Changed

Changed1

  • Self-hosting: the self-host scripts live only in infra/selfhost/ now. The temporary selfhost link at the top of the checkout is gone, so run infra/selfhost/upgrade.sh, and install the host timers again from there if upgrade.sh says they point at another directory.
v0.2.0Vesprr1 min read

Version 0.2.0

Every page is now drawn by one shared set of components, so buttons, fields, menus and dialogs look and behave the same everywhere.

  • 2 New
  • 5 Changed
  • 2 Fixed

New2

  • The Tasks pane's keyboard sheet (press ?) stays open beside the list while you try the keys, and Escape closes it.
  • A page's link in the top bar, the bell or the Inbox can be middle-clicked to open it in a browser tab.

Changed5

  • Buttons, fields, menus, dialogs, tabs, tooltips and toasts are the same components on every page, with the same sizes, focus rings and keyboard behaviour.
  • The project chat and the agent's conversation use the same message list: replies, quotes, attachments and jumping to a message work the same in both.
  • Links in a chat message follow your Links & panes settings: a DevBench page, doc or file opens in its pane and can be dragged onto a space, and a link to another site asks first.
  • On a phone, a long press on a message opens its actions.
  • The search's key hints follow your Links & panes settings.

Fixed2

  • With many spaces open, the tabs fold into "+N" steadily instead of flickering as the window is resized.
  • Every control on a phone is at least 24 pixels square, and scrolling areas can be reached with the keyboard.
v0.1.8Vesprr1 min read

Version 0.1.8

A hovered link in the top bar outlines its pane after one second instead of two.

  • 1 Changed

Changed1

  • A page in the top bar (a link in the second row, a pin, a Pages entry) outlines its open pane once the pointer has rested on it for one second, down from two. Passing over it still outlines nothing, and tabbing to it with the keyboard still outlines it at once.
v0.1.7Vesprr1 min read

Version 0.1.7

More spaces than the top bar has room for fold into "+N", and a hovered link outlines its pane after two seconds.

  • 1 Changed
  • 1 Fixed

Changed1

  • A page in the top bar (a link in the second row, a pin, a Pages entry) outlines its open pane once the pointer has rested on it for two seconds, not as soon as the pointer crosses it, so moving across the bar no longer flashes outlines. Tabbing to it with the keyboard still outlines it at once.

Fixed1

  • With more spaces open than the top bar has room for, the last tabs no longer run under the search with "+" drawn over them. The search narrows first, then the tabs that still do not fit fold into "+N" from the right, and the space in front always shows. A tab renamed longer folds the ones after it, and a window made wider brings them back.
v0.1.6Vesprr1 min read

Version 0.1.6

Sections keep each task's subtasks under it, the list can be split by day, and quick add nests with Ctrl/⌘+].

  • 1 New
  • 3 Changed
  • 1 Fixed

New1

  • Sections by day: Day added, Day due and Day finished put each day in its own section (Today, Yesterday, Fri, Oct 2…). Days added and finished run newest first, days due soonest first.

Changed3

  • Sections keep each task's subtasks under it, as the plain list does. A subtask is in its task's section, whatever its own status, person or date, and the section's count and progress include it.
  • Filtering by a group shows the whole piece of work: a subtask is in the group of the task it belongs to.
  • Quick add nests with Ctrl/⌘+]: the next task goes under the task above it, even before anything has been added, and Ctrl/⌘+[ takes it back out. Tab moves the focus again. The same keys indent and outdent a task in the list, alongside Ctrl/⌘+→ and ←.

Fixed1

  • Reseeding the CLI in every box leaves out old boxes whose container was removed, and lists them apart, instead of counting each one as a failure. Stopped boxes are still updated, and real failures still show. The last sweep's count reads the same way.
v0.1.5Vesprr2 min read

Version 0.1.5

The Tasks pane is rebuilt, with every level of subtasks, and the agent files its tasks under named groups and assigns them for you.

  • 12 New
  • 2 Changed
  • 3 Fixed

New12

  • The Tasks pane is rebuilt. Subtasks show at every level, and finished lists fold away on their own.
  • Tasks the agent adds go to the person who asked it for the work. Older unassigned tasks can be assigned in one step, with Undo.
  • Filter by due, created, updated and finished date, by assignee, priority, group and who added the task, and save the filters as a view.
  • Sort and group the list, or switch it to a board.
  • Quick add understands @name, !high, due:fri and group:name. Tab nests the next task under the last one.
  • Select several tasks to change, move, group or delete them together. Every change can be undone.
  • A task the agent marks done waits for a person to review it.
  • A task opens in two columns: its content on one side, its properties on the other.
  • Task groups: a named piece of work, such as "Auth flow". A task and its subtasks share one group. Filter by group, show the list in sections by group with their progress, and rename, merge, close or delete groups from Manage groups.
  • The agent names a group before it adds tasks, and devbench task list on its machine shows that group's tasks.
  • New task opens beside the list instead of over it, and becomes the task once it is created. Create another keeps it open for the next one.
  • The note for Done or Delayed opens next to the task you changed, and the keyboard reference sits beside the list without covering it.

Changed2

  • The agent's task commands explain what went wrong, what they expected and what to run next, and a retried command no longer adds the same task twice.
  • The task detail is more compact, and refers to the agent as "the agent".

Fixed3

  • Subtasks below the second level are shown again, in the list and in the task.
  • devbench task list no longer skips or repeats tasks.
  • A task can no longer be moved into its own subtasks or into another project.
v0.1.4Vesprr4 min read

Version 0.1.4

Projects get a space of their own, clicks never split the screen, jobs open as temporary splits, and links ask before leaving.

  • 24 New
  • 2 Changed
  • 10 Fixed

New24

  • A click never splits the screen. A page you click opens as a tab in the group you are in, in italics until you keep it, and the next click there shows its page in that tab. Double-click, drag, pin or type in it to keep it.
  • A page already open in another space is gone to there, with Back in the notice.
  • The icon on a link is a button that opens it beside. Alt-click still opens a tab here.
  • Settings, Links & panes, lets you choose what a click, Alt-click, Shift-click and Alt+Shift-click do. Every choice keeps all four ways one click away, and the search follows the same choice.
  • DevBench doc and file links in chat, docs and notes open in their panes instead of a new browser tab.
  • A link to another site asks before it leaves DevBench, and warns when the link's text names a different site or its address uses look-alike letters. Tick Always trust to skip the question for a domain; Settings lists the domains you trust.
  • Clicking a project opens it in a space of its own, named after it and marked with its initial. Click it again and that space comes back; a space you arranged around the project, such as Build, is used instead.
  • The first time, a hint offers Open here instead, which puts the project beside your work as before.
  • Drag a project card off the board to open it where you drop it. Dropped in a column, it still changes the project's stage.
  • Drop a card, a link or a pane's tab on + to make a new space holding it.
  • You can keep up to 50 spaces. Alt+1 to Alt+0 still reach the first ten, and the rest are under +N.
  • A What's new page lists every version's notes. Open it from Pages, the ⋯ menu or the Guide.
  • The version notice shows a summary of the update and a What's new button.
  • A job with an end opens as a temporary split beside the page you are on, marked Temporary, and closes itself when it is done: New project, editing a task, scheduled tasks, watchers, agents, hiring an agent, MCP tools, creating an App or adding a database or repo to one, the deploy-config scan, connecting a cloud account, pointing a domain, running a build, CI on push, adding a machine, creating a release, and connecting GitHub, GitLab or Bitbucket.
  • Escape or × closes a temporary split, asking first when you have typed something in it. Keep as pane, or dragging its header, makes it an ordinary pane with what you typed.
  • New project closes into the new project's own space, and the board is left as it was.
  • Below 1280 px wide, the project's agent opens beside it as a temporary split instead of a drawer.
  • Fold a pane into a strip by dragging a divider past halfway, or with ⋯ › Collapse or Alt+-. The strip keeps the pane's icon, title and agent state. Click it, or press Alt+= for all of them, to bring it back at the size it had. Strips are saved with the space, undo works, and Reset opens them.
  • Arrange a project's space as Build, Review or Ship from its tab's menu or the project switcher. The layout goes into that space in place, every later click on the project lands there, and Reset shows the Overview again.
  • A new account starts on the board alone, with Inbox and Tasks as tabs beside it. + › Home still gives the full layout.
  • The Guide opens with How DevBench is arranged: places and panes, and draws its keys as key caps.
  • An empty space offers Projects, Inbox, Tasks, a layout and the pane you closed last, with the shortcuts beneath.
  • The first time a group has three tabs, a hint says how to see two at once.
  • Search results, the project switcher's list, and bell and Inbox items can be dragged to open a page where you drop it.

Changed2

  • Shift-click on a link opens it beside what you are doing. A space of its own is now Alt+Shift-click, or drop the link on +.
  • The workspace sends a small, anonymous set of usage figures to DevBench, such as how pages are opened and splits closed again within seconds, so the team can tell whether these changes help. No page names, addresses or text are sent.

Fixed10

  • Creating an agent from scratch works again: the page now sends the handle the server needs.
  • A locked title bar is linked to its pane: its icon shows which, and clicking it brings that pane forward.
  • Undo after switching project puts the title bar, the space's name and Reset back too.
  • A locked space no longer shows drop zones it would ignore.
  • Reset is disabled in a locked space.
  • Reset rebuilds the page a space was made for instead of Home.
  • New space in a pane's Move to menu names the new space.
  • The New project page closes itself once the project is made.
  • "The layout changed" is only shown to accounts from before the pane workspace.
  • The Guide's first article describes the second row of the title bar.
v0.1.3Vesprr1 min read

Version 0.1.3

Shift is drawn as its icon in every key cap, on every platform.

  • 1 Changed

Changed1

  • Shift in a key cap is drawn as its icon on every platform, as the arrow keys are, instead of a symbol or the word.
v0.1.2Vesprr1 min read

Version 0.1.2

Holding Alt shows each key where it acts, the keyboard splits a pane every way, and a project's title bar has Browse and Terminal.

  • 2 New
  • 4 Changed
  • 2 Fixed

New2

  • Alt with / splits the active pane to the left and Alt with \ to the right; add Shift to split up or down.
  • A project's title bar has Browse (its code in VS Code) and Terminal (the agent's terminal) on the right, each opening in a new tab.

Changed4

  • Holding Alt draws each key where it acts: a focus key on the pane it moves to, a split key on the edge where the new pane opens.
  • A key that moves to a tab behind another is drawn in the place of that tab's close button.
  • The hints shown while Alt is held are frosted, so what is under them shows through.
  • Arrow keys in key caps are drawn as icons.

Fixed2

  • Alt with the left and right arrows stops at the first and last pane instead of going round.
  • Pressing ? while holding Alt no longer opens the keyboard shortcuts.
v0.1.1Vesprr1 min read

Version 0.1.1

A space can be locked so it takes no new panes, and the title bar can be locked to the section it shows.

  • 3 New
  • 1 Fixed

New3

  • Lock a space from its tab's menu or the ⋯ menu: it takes no new panes, and a page you open goes to another space, with a Back button to return.
  • Lock the title bar with the lock at the start of its second row: it stays on the section it showed while you move between panes.
  • Both locks are saved with the space, and a template saved from a locked space starts locked spaces.

Fixed1

  • A space made and left again straight away no longer comes back as the one you had open after a reload.
v0.1.0Vesprr1 min read

Version 0.1.0

DevBench has a version number, and the app tells you when a new version has loaded.

  • 2 New
  • 5 Changed

New2

  • DevBench has one version number, and every update raises it.
  • When a new version has loaded, a notice says which one. Your first visit gets a welcome instead.

Changed5

  • The second row of the title bar starts with the project's name: click it to switch every pane to another project.
  • Agent, Chat and Changes are ordinary pages in that row, and Agent shows the agent's state as a dot.
  • Dragging a space's tab shows a copy of it under the pointer and a marker where it will land.
  • Clicking anywhere on a space's tab switches to it; only the icon of the space in front opens its menu.
  • Holding Alt keeps the hints on screen while you use Alt shortcuts, and a text field shows none.
mainVesprr1 min read

A pricing page, and the site on Next.js

Three plans separated by compute and features, an Enterprise row, a comparison table, add-on rates and an FAQ. The site itself was rebuilt on Next.js and moved to Amplify's Next.js runtime.

Pricing5

  • /pricing/ carries Starter, Team and Business with a monthly and yearly switch. Each card leads with its CI minutes, build minutes, apps and members.
  • An Enterprise row for dedicated hosts and sized allowances, a comparison table in six groups, add-on rates for minutes, members and apps past the plan, and an FAQ.
  • Every number lives in one file as a placeholder for the owner to set. The offers are emitted as structured data from the same file.
  • Each plan has a slot for a checkout link per interval. Until one is set, the button goes to the access request form with the plan preselected, so nothing on the page is a dead end.
  • Pricing joins the nav and the footer. With five items the desktop nav switches to the menu button below 1024px.

The site3

  • Rebuilt on Next.js with the App Router, Tailwind and Motion. Every screen on the site is JSX rebuilt from the product's own components, not a screenshot.
  • Served by Amplify's Next.js runtime instead of a static export, so route handlers, a feed and per-page social images can be added without a platform change. Every page is still prerendered.
  • The brand and UI plans are written down alongside the site.
mainVesprr2 min read

Several agent accounts per organization, with failover

An organization can hold as many agent accounts as it has logins. When a box's account hits a limit or its login dies, the box moves to the next one and re-sends the request.

Until now every box in an organization shared one agent login. When that login hit its usage limit or its refresh token gave out, every box stopped at once, and stayed stopped until a person noticed.

Accounts5

  • Settings, AI gets an accounts card: add, renew, rank, set the default, disable, remove, and an activity list of every decision the system took.
  • A workspace can be moved between accounts, from the card or through the API.
  • Signing in runs in a side channel on the box, never its live session, so adding or renewing an account disturbs nobody's work.
  • The hourly refresh is per account. A box that refreshed on its own is adopted rather than overwritten, and an account no box is on is kept live so the failover has somewhere to go.
  • The reminder to sign in now watches the refresh token's expiry, which is the deadline a person has to meet.

Failover5

  • The box's own transcript is where failures are read: an authentication failure, a rate limit with its reset time, a billing error. The pane text is the fallback when the tailer is down.
  • A login failure first reseeds the same account, because a box behind its account's newest token looks exactly like a dead account. A provider-side outage does not switch at all unless an owner says so.
  • Otherwise the account is marked limited until the reset the provider named, the next account is picked by priority, utilization and least recent limit, and seeded into the running session. Nothing restarts. One line in the workspace chat says what happened.
  • The last prompt before the error is re-sent into the same session, verbatim when the turn had produced nothing, as a "continue" nudge when it had already used tools, so nothing is committed twice. With no account available the prompt is parked and sent when a limit resets.
  • Bounded: a box switches at most pool-size times in fifteen minutes before the Inbox is told, and a retry that cannot be pasted is reported rather than retried. The switches are policy on the organization: auto switch, auto retry, typed prompts too, outages.

Fixes from the first hours2

  • A box that had refreshed its own token is no longer overwritten with an older copy before a run. The freshest token any box on the account holds is taken before the account is declared dead.
  • A sign-in is started on a box that is really running, as Docker reports it, rather than one the database thinks is.

Invite only

We set your organization up with you.

Tell us about your team and the repositories you would bring; we reply within a working day.