{"version":"0.229.0","versions":{"cli":"0.229.0","desktop":"0.186.0"},"date":"2026-09-29","dateFormatted":"September 29, 2026","url":"https://docs.factory.ai/changelog/release-notes#v0.229.0","jsonUrl":"https://docs.factory.ai/changelog/releases/0.229.0.json","summary":"Custom model management, PDF viewer, quoted replies, voice dictation key, plus terminal and app fixes","surfaces":["cli","app","api","web"],"changes":[{"type":"fix","surface":"web","title":"Mobile onboarding payment","description":"Onboarding on a phone now walks through plan selection and billing as separate steps"},{"type":"fix","surface":"app","title":"Diagram pan and zoom","description":"Panning an expanded diagram no longer shrinks it, and pinch and arrow keys work (app)"},{"type":"feature","surface":"cli","title":"Custom models in terminal","description":"You can now add, edit, and remove your own custom models from the terminal"},{"type":"feature","surface":"app","title":"Scheduled loops indicator","description":"A pill above the chat input lists a session's loops and can pause, resume, or stop them (app)"},{"type":"improvement","surface":"app","title":"Custom model JSON editing","description":"You can now edit one of your own custom models as a form or as raw JSON (app)"},{"type":"fix","surface":"cli","title":"Leftover subagent processes","description":"Subagent runs no longer leave stray processes behind when they finish"},{"type":"improvement","surface":"app","title":"Session list edge fades","description":"The session list now fades at its top and bottom edges while you scroll (app)"},{"type":"improvement","surface":"app","title":"Smoother file opening","description":"Opening a file from a tool call no longer stutters as the side pane slides in (app)"},{"type":"fix","surface":"cli","title":"Droid Shield false positives","description":"Droid Shield no longer blocks a commit on identifiers or secrets already in the repository"},{"type":"fix","surface":"app","title":"Failed delegation replies","description":"Droid now reports a failed turn in Slack and Linear instead of leaving the thread silent"},{"type":"feature","surface":"app","title":"Quote a Droid reply","description":"Select text in a Droid response and add it to your next message as a quote (app)"},{"type":"improvement","surface":"app","title":"Faster repository lists","description":"Pages that list your repositories now load much faster"},{"type":"fix","surface":"app","title":"Sidebar resize handle","description":"Dragging the sidebar edge near the top of the window now resizes it (app)"},{"type":"improvement","surface":"app","title":"Side chat controls","description":"Side chat now shows its tool calls live and lets you stop or clear a question (app)"},{"type":"fix","surface":"app","title":"Truncated diff rendering","description":"A very large set of uncommitted changes now renders the files it can instead of nothing (app)"},{"type":"feature","surface":"app","title":"Voice dictation key","description":"Pick a single key that starts and stops voice dictation, or turn the shortcut off (app)"},{"type":"improvement","surface":"app","title":"Idle Slack channel archiving","description":"Channels Droid opens for a session in Slack are archived once they sit idle"},{"type":"feature","surface":"app","title":"PDF viewer","description":"PDF files now open in a scrolling viewer with a page rail, thumbnails, and zoom (app)"},{"type":"fix","surface":"app","title":"File preview flicker","description":"A file preview no longer flickers while Droid runs terminal commands in the background (app)"},{"type":"feature","surface":"app","title":"Save files outside the workspace","description":"The Files panel can now save a file that lives outside your workspace folder (app)"},{"type":"fix","surface":"api","title":"Missing GitHub App errors","description":"A repository without the Factory GitHub App installed now returns a clear not-installed error"},{"type":"fix","surface":"cli","title":"Custom models per session","description":"A session now lists the custom models from your settings and from its own project"},{"type":"improvement","surface":"app","title":"Migration files pill","description":"A Migration pill above the chat input opens the files for an active migration (app)"},{"type":"fix","surface":"app","title":"Setup scripts on Droid Computers","description":"Setup scripts now run for repositories cloned onto a Droid Computer"}],"contentText":"New features\n\n- Custom models in terminal - You can now add, edit, and remove your own custom models from the terminal\n- Scheduled loops indicator - A pill above the chat input lists a session's loops and can pause, resume, or stop them (app)\n- Quote a Droid reply - Select text in a Droid response and add it to your next message as a quote (app)\n- Voice dictation key - Pick a single key that starts and stops voice dictation, or turn the shortcut off (app)\n- PDF viewer - PDF files now open in a scrolling viewer with a page rail, thumbnails, and zoom (app)\n- Save files outside the workspace - The Files panel can now save a file that lives outside your workspace folder (app)\n\nImprovements\n\n- Custom model JSON editing - You can now edit one of your own custom models as a form or as raw JSON (app)\n- Session list edge fades - The session list now fades at its top and bottom edges while you scroll (app)\n- Smoother file opening - Opening a file from a tool call no longer stutters as the side pane slides in (app)\n- Faster repository lists - Pages that list your repositories now load much faster\n- Side chat controls - Side chat now shows its tool calls live and lets you stop or clear a question (app)\n- Idle Slack channel archiving - Channels Droid opens for a session in Slack are archived once they sit idle\n- Migration files pill - A Migration pill above the chat input opens the files for an active migration (app)\n\nBug fixes\n\n- Mobile onboarding payment - Onboarding on a phone now walks through plan selection and billing as separate steps\n- Diagram pan and zoom - Panning an expanded diagram no longer shrinks it, and pinch and arrow keys work (app)\n- Leftover subagent processes - Subagent runs no longer leave stray processes behind when they finish\n- Droid Shield false positives - Droid Shield no longer blocks a commit on identifiers or secrets already in the repository\n- Failed delegation replies - Droid now reports a failed turn in Slack and Linear instead of leaving the thread silent\n- Sidebar resize handle - Dragging the sidebar edge near the top of the window now resizes it (app)\n- Truncated diff rendering - A very large set of uncommitted changes now renders the files it can instead of nothing (app)\n- File preview flicker - A file preview no longer flickers while Droid runs terminal commands in the background (app)\n- Missing GitHub App errors - A repository without the Factory GitHub App installed now returns a clear not-installed error\n- Custom models per session - A session now lists the custom models from your settings and from its own project\n- Setup scripts on Droid Computers - Setup scripts now run for repositories cloned onto a Droid Computer"}