{"version":"0.247.0","versions":{"cli":"0.247.0","desktop":"0.204.0"},"date":"2026-10-22","dateFormatted":"October 22, 2026","url":"https://docs.factory.com/changelog/release-notes#v0.247.0","jsonUrl":"https://docs.factory.com/changelog/releases/0.247.0.json","summary":"PDF preview rendering, Environment session grouping, Files panel speed, and CLI and app fixes","surfaces":["cli","app","api"],"changes":[{"type":"fix","surface":"cli","title":"Usage totals for retries","description":"Usage totals now count every billed model attempt, including ones that were retried or refused"},{"type":"improvement","surface":"app","title":"PDF preview rendering","description":"A PDF preview now shows its first pages right away and draws the rest as you scroll"},{"type":"fix","surface":"app","title":"Environment session grouping","description":"Sessions started on an Environment now appear under that Environment instead of an unregistered computer"},{"type":"fix","surface":"api","title":"Invalid API key responses","description":"A request with a malformed API key now returns an invalid format error instead of a server error"},{"type":"fix","surface":"cli","title":"Message box after slash commands","description":"Submitting a slash command no longer restores earlier text in the message box"},{"type":"fix","surface":"app","title":"Ports in the address bar","description":"The compact address bar now keeps a local server's port instead of dropping it"},{"type":"fix","surface":"app","title":"Session defaults from chat","description":"Asking Droid to change session defaults no longer fails while the app's settings finish loading"},{"type":"fix","surface":"app","title":"Environment panel in tiles","description":"Showing the environment in one tiled chat no longer opens that panel in every tile"},{"type":"improvement","surface":"app","title":"Files panel responsiveness","description":"The Files panel and file previews now stay responsive in long sessions"},{"type":"improvement","surface":"app","title":"Markdown table spacing","description":"A table in a message now has even spacing above and below the surrounding text"},{"type":"fix","surface":"app","title":"Missing session folder message","description":"Opening a terminal for a session whose folder is gone now names the missing folder"},{"type":"fix","surface":"cli","title":"Plugin status without settings","description":"Plugins now show as disabled until settings load instead of appearing enabled"}],"contentText":"Improvements\n\n- PDF preview rendering - A PDF preview now shows its first pages right away and draws the rest as you scroll\n- Files panel responsiveness - The Files panel and file previews now stay responsive in long sessions\n- Markdown table spacing - A table in a message now has even spacing above and below the surrounding text\n\nBug fixes\n\n- Usage totals for retries - Usage totals now count every billed model attempt, including ones that were retried or refused\n- Environment session grouping - Sessions started on an Environment now appear under that Environment instead of an unregistered computer\n- Invalid API key responses - A request with a malformed API key now returns an invalid format error instead of a server error\n- Message box after slash commands - Submitting a slash command no longer restores earlier text in the message box\n- Ports in the address bar - The compact address bar now keeps a local server's port instead of dropping it\n- Session defaults from chat - Asking Droid to change session defaults no longer fails while the app's settings finish loading\n- Environment panel in tiles - Showing the environment in one tiled chat no longer opens that panel in every tile\n- Missing session folder message - Opening a terminal for a session whose folder is gone now names the missing folder\n- Plugin status without settings - Plugins now show as disabled until settings load instead of appearing enabled"}