{"version":"0.250.0","versions":{"cli":"0.250.0","desktop":"0.207.0"},"date":"2026-10-27","dateFormatted":"October 27, 2026","url":"https://docs.factory.com/changelog/release-notes#v0.250.0","jsonUrl":"https://docs.factory.com/changelog/releases/0.250.0.json","summary":"Collapsible long messages, pull request state on sessions, Slack fixes, and CLI and app fixes","surfaces":["cli","app"],"changes":[{"type":"security","surface":"app","title":"Browser panel permissions","description":"The browser panel now denies device access and asks before opening another app (app)"},{"type":"fix","surface":"app","title":"Browser pane page size","description":"The browser pane now keeps its own page size instead of staying cropped by a viewport change (app)"},{"type":"fix","surface":"cli","title":"Partial search results","description":"A search now returns the matches found past an unreadable path, and a failed search says why"},{"type":"feature","surface":"app","title":"Long message collapsing","description":"A long message you sent now starts clipped behind a Show more toggle so it no longer buries the transcript (app)"},{"type":"security","surface":"cli","title":"Folder trust on resume","description":"Opening a saved session from another folder now asks you to trust that folder first"},{"type":"feature","surface":"app","title":"Pull request state on sessions","description":"A session now shows whether its pull request is a draft, open, merged, or closed (app)"},{"type":"fix","surface":"cli","title":"Session list renames","description":"Renaming a session to an empty title now keeps it, and the session list tabs stay on one line"},{"type":"improvement","surface":"app","title":"Slack channel decisions","description":"Droid now opens a Slack channel only for a new code change it writes and stays in the thread otherwise"},{"type":"fix","surface":"app","title":"MCP settings layout","description":"The MCP tools, add server, and registry views now keep their section spacing and title style (app)"},{"type":"fix","surface":"cli","title":"Command cleanup with worker threads","description":"Droid keeps stopping a command's processes when its main thread exits while other threads still run"},{"type":"fix","surface":"app","title":"Starter ideas spacing","description":"The installed plugin row now sits below the starter idea cards instead of flush against them (app)"},{"type":"fix","surface":"app","title":"Stopped message with images","description":"Stopping Droid now returns your mid-turn message with its images to the composer (app)"},{"type":"fix","surface":"cli","title":"Refused safe commands","description":"Droid no longer refuses safe commands such as batch-mode top or a redirect to /dev/null"},{"type":"fix","surface":"cli","title":"Model after compaction","description":"A session returns to your chosen model once compaction clears the content that forced a fallback"},{"type":"fix","surface":"cli","title":"Recovery later in a run","description":"A long run now recovers from a refused request again instead of only the first time"},{"type":"fix","surface":"app","title":"Early Slack channel messages","description":"A message sent while a Slack code channel is still starting now waits instead of starting a second session"},{"type":"fix","surface":"app","title":"Duplicate Slack messages","description":"A Slack turn no longer opens with two near-identical messages from Droid"}],"contentText":"New features\n\n- Long message collapsing - A long message you sent now starts clipped behind a Show more toggle so it no longer buries the transcript (app)\n- Pull request state on sessions - A session now shows whether its pull request is a draft, open, merged, or closed (app)\n\nImprovements\n\n- Slack channel decisions - Droid now opens a Slack channel only for a new code change it writes and stays in the thread otherwise\n\nBug fixes\n\n- Browser pane page size - The browser pane now keeps its own page size instead of staying cropped by a viewport change (app)\n- Partial search results - A search now returns the matches found past an unreadable path, and a failed search says why\n- Session list renames - Renaming a session to an empty title now keeps it, and the session list tabs stay on one line\n- MCP settings layout - The MCP tools, add server, and registry views now keep their section spacing and title style (app)\n- Command cleanup with worker threads - Droid keeps stopping a command's processes when its main thread exits while other threads still run\n- Starter ideas spacing - The installed plugin row now sits below the starter idea cards instead of flush against them (app)\n- Stopped message with images - Stopping Droid now returns your mid-turn message with its images to the composer (app)\n- Refused safe commands - Droid no longer refuses safe commands such as batch-mode top or a redirect to /dev/null\n- Model after compaction - A session returns to your chosen model once compaction clears the content that forced a fallback\n- Recovery later in a run - A long run now recovers from a refused request again instead of only the first time\n- Early Slack channel messages - A message sent while a Slack code channel is still starting now waits instead of starting a second session\n- Duplicate Slack messages - A Slack turn no longer opens with two near-identical messages from Droid\n\nSecurity\n\n- Browser panel permissions - The browser panel now denies device access and asks before opening another app (app)\n- Folder trust on resume - Opening a saved session from another folder now asks you to trust that folder first"}