{"version":"0.248.0","versions":{"cli":"0.248.0","desktop":"0.205.0"},"date":"2026-10-23","dateFormatted":"October 23, 2026","url":"https://docs.factory.com/changelog/release-notes#v0.248.0","jsonUrl":"https://docs.factory.com/changelog/releases/0.248.0.json","summary":"Faster composer and settings search, steadier reconnects, and CLI and app fixes","surfaces":["cli","app","enterprise"],"changes":[{"type":"fix","surface":"app","title":"Session contents sync value","description":"The session contents sync setting now shows its saved value instead of appearing on while loading"},{"type":"improvement","surface":"app","title":"Session view during reconnect","description":"A session no longer flashes a loading message when its computer reconnects within a moment"},{"type":"fix","surface":"enterprise","title":"MCP policy disclaimer spacing","description":"The MCP Server Policy note now sits clear of the allowlist field instead of flush against it"},{"type":"fix","surface":"app","title":"File tree search field","description":"The search field in a narrow file tree now fits its column instead of clipping"},{"type":"fix","surface":"app","title":"Sending while reported offline","description":"A session now connects and sends instead of refusing when the browser wrongly reports being offline"},{"type":"fix","surface":"cli","title":"Session renames in cloud sync","description":"Renaming a session in the terminal now updates the stored name instead of only the local one"},{"type":"improvement","surface":"cli","title":"Disabled auto-update message","description":"The update command now explains why updates are off instead of assuming an npm install"},{"type":"fix","surface":"app","title":"Attachments while a computer reconnects","description":"The composer now asks you to wait for the computer instead of rejecting a file as unsupported"},{"type":"fix","surface":"app","title":"New session branch picker","description":"The branch picker now appears only in a folder that is a repository"},{"type":"improvement","surface":"app","title":"Settings search responsiveness","description":"Settings search now stays responsive while you type instead of redrawing every previewed page"},{"type":"fix","surface":"cli","title":"Auto after a policy change","description":"Choosing Auto now works right after your organization's model policy starts allowing it"},{"type":"fix","surface":"cli","title":"Session start hook time","description":"A session now waits up to a minute for your session start hooks to finish"},{"type":"fix","surface":"app","title":"Connectors empty state wording","description":"The connectors empty state now tells admins they can enable connectors themselves"},{"type":"fix","surface":"app","title":"Empty session in the sidebar","description":"Restarting the app no longer leaves an untitled empty session in the sidebar"},{"type":"fix","surface":"cli","title":"Text between grouped tools","description":"An answer written between two file reads now stays in the chat instead of disappearing"},{"type":"improvement","surface":"app","title":"Composer file search speed","description":"Typing an @ file search in the composer no longer slows the rest of the session page"},{"type":"improvement","surface":"app","title":"Slash menu with many commands","description":"The slash menu now opens and filters quickly no matter how many commands and skills exist"},{"type":"fix","surface":"app","title":"Message draft saving","description":"Message drafts now keep saving instead of failing silently once saved history grows large"},{"type":"improvement","surface":"cli","title":"Faster first turn","description":"The exec command now reaches its first turn sooner after startup"},{"type":"fix","surface":"cli","title":"Settings in symlinked folders","description":"Droid now reloads settings and custom Droids from symlinked folders instead of reusing the startup copy"},{"type":"fix","surface":"cli","title":"Created file line counts","description":"A created file's summary now counts its added lines without an extra trailing line"},{"type":"feature","surface":"enterprise","title":"Store session titles control","description":"Organizations that turn session contents sync off can now allow Factory to store session titles"},{"type":"fix","surface":"app","title":"Reused connection status","description":"A session on an already connected machine stays Ready instead of flashing a connecting state"},{"type":"fix","surface":"cli","title":"Crash on tool rows","description":"The terminal no longer crashes when a tool call reports a path in an unexpected form"}],"contentText":"New features\n\n- Store session titles control - Organizations that turn session contents sync off can now allow Factory to store session titles\n\nImprovements\n\n- Session view during reconnect - A session no longer flashes a loading message when its computer reconnects within a moment\n- Disabled auto-update message - The update command now explains why updates are off instead of assuming an npm install\n- Settings search responsiveness - Settings search now stays responsive while you type instead of redrawing every previewed page\n- Composer file search speed - Typing an @ file search in the composer no longer slows the rest of the session page\n- Slash menu with many commands - The slash menu now opens and filters quickly no matter how many commands and skills exist\n- Faster first turn - The exec command now reaches its first turn sooner after startup\n\nBug fixes\n\n- Session contents sync value - The session contents sync setting now shows its saved value instead of appearing on while loading\n- MCP policy disclaimer spacing - The MCP Server Policy note now sits clear of the allowlist field instead of flush against it\n- File tree search field - The search field in a narrow file tree now fits its column instead of clipping\n- Sending while reported offline - A session now connects and sends instead of refusing when the browser wrongly reports being offline\n- Session renames in cloud sync - Renaming a session in the terminal now updates the stored name instead of only the local one\n- Attachments while a computer reconnects - The composer now asks you to wait for the computer instead of rejecting a file as unsupported\n- New session branch picker - The branch picker now appears only in a folder that is a repository\n- Auto after a policy change - Choosing Auto now works right after your organization's model policy starts allowing it\n- Session start hook time - A session now waits up to a minute for your session start hooks to finish\n- Connectors empty state wording - The connectors empty state now tells admins they can enable connectors themselves\n- Empty session in the sidebar - Restarting the app no longer leaves an untitled empty session in the sidebar\n- Text between grouped tools - An answer written between two file reads now stays in the chat instead of disappearing\n- Message draft saving - Message drafts now keep saving instead of failing silently once saved history grows large\n- Settings in symlinked folders - Droid now reloads settings and custom Droids from symlinked folders instead of reusing the startup copy\n- Created file line counts - A created file's summary now counts its added lines without an extra trailing line\n- Reused connection status - A session on an already connected machine stays Ready instead of flashing a connecting state\n- Crash on tool rows - The terminal no longer crashes when a tool call reports a path in an unexpected form"}