{"version":"1.4.0","versions":{"cli":"1.4.0","desktop":"1.4.0"},"date":"2026-11-05","dateFormatted":"November 5, 2026","url":"https://docs.factory.com/changelog/release-notes#v1.4.0","jsonUrl":"https://docs.factory.com/changelog/releases/1.4.0.json","summary":"Loops on Droid Computers, session resume and Windows command fixes, and clearer app panels","surfaces":["cli","app"],"changes":[{"type":"fix","surface":"app","title":"Usage bar label alignment","description":"Bars in a usage list now share one start and length instead of shifting per row"},{"type":"fix","surface":"app","title":"Messages during environment launch","description":"A message sent while an environment starts now arrives even if you leave the session page"},{"type":"fix","surface":"app","title":"Icons beside long labels","description":"An icon next to a truncated label now keeps its size instead of shrinking to a sliver"},{"type":"improvement","surface":"app","title":"Environment panel popover tooltips","description":"Tooltips in the environment panel popover now open beside it instead of covering nearby rows"},{"type":"fix","surface":"app","title":"Notion artifact titles","description":"Notion pages and databases in the environment panel now show their real titles"},{"type":"improvement","surface":"app","title":"Empty usage table message","description":"The usage limit table now says No usage found when it lists no rows"},{"type":"fix","surface":"app","title":"Text size inside alerts","description":"Text nested in an alert now matches the alert description size instead of rendering larger"},{"type":"improvement","surface":"cli","title":"Long session updates","description":"Droid now spends far less time and memory refreshing sessions with thousands of messages"},{"type":"improvement","surface":"cli","title":"Session tree view","description":"The /tree view stays readable in long sessions, and /sessions groups forked sessions together"},{"type":"fix","surface":"cli","title":"Resuming after a task ends","description":"Resuming right after a delegated task finishes no longer fails with an exit error"},{"type":"fix","surface":"cli","title":"Resumed session saving","description":"Resuming an older session now saves its messages and settings instead of silently dropping each turn"},{"type":"fix","surface":"cli","title":"Exit while a session loads","description":"Pressing Ctrl+C while a session is still loading now stops its work before Droid exits"},{"type":"fix","surface":"cli","title":"Windows command cleanup","description":"Commands on Windows no longer wait five seconds for cleanup on a busy machine"},{"type":"fix","surface":"cli","title":"Queued messages for offline machines","description":"A queued message for an offline remote machine now waits instead of resending and repeating notices"},{"type":"fix","surface":"cli","title":"Droid Shield on large renames","description":"A change with many renamed files no longer pushes Droid Shield into an extra approval"},{"type":"feature","surface":"cli","title":"Loops on Droid Computers","description":"Loops now run on Droid Computers and keep their schedule across idle pauses"},{"type":"fix","surface":"cli","title":"Stopped delegated task waits","description":"Droid stops waiting on a delegated task that was shut down while its approval went unanswered"},{"type":"improvement","surface":"app","title":"Secret name entry","description":"A computer secret name now uppercases as you type, with a clearer placeholder and error text"},{"type":"improvement","surface":"app","title":"Image preview toolbar","description":"Navigation, zoom, download, and close now share one floating toolbar in the image preview"},{"type":"fix","surface":"cli","title":"Models added mid-session","description":"Picking a model your organization added after the session started no longer fails as unknown"},{"type":"fix","surface":"app","title":"Unreachable computer on follow-up","description":"A follow-up now reboots a computer that stays unreachable and reconnects instead of failing"},{"type":"improvement","surface":"app","title":"Loading placeholders","description":"Loading placeholders in the session sidebar and the new computer repository list are now visible"},{"type":"fix","surface":"cli","title":"Plugin marketplace syncing","description":"A plugin marketplace whose manifest starts with a byte order mark now syncs instead of failing"}],"contentText":"New features\n\n- Loops on Droid Computers - Loops now run on Droid Computers and keep their schedule across idle pauses\n\nImprovements\n\n- Environment panel popover tooltips - Tooltips in the environment panel popover now open beside it instead of covering nearby rows\n- Empty usage table message - The usage limit table now says No usage found when it lists no rows\n- Long session updates - Droid now spends far less time and memory refreshing sessions with thousands of messages\n- Session tree view - The /tree view stays readable in long sessions, and /sessions groups forked sessions together\n- Secret name entry - A computer secret name now uppercases as you type, with a clearer placeholder and error text\n- Image preview toolbar - Navigation, zoom, download, and close now share one floating toolbar in the image preview\n- Loading placeholders - Loading placeholders in the session sidebar and the new computer repository list are now visible\n\nBug fixes\n\n- Usage bar label alignment - Bars in a usage list now share one start and length instead of shifting per row\n- Messages during environment launch - A message sent while an environment starts now arrives even if you leave the session page\n- Icons beside long labels - An icon next to a truncated label now keeps its size instead of shrinking to a sliver\n- Notion artifact titles - Notion pages and databases in the environment panel now show their real titles\n- Text size inside alerts - Text nested in an alert now matches the alert description size instead of rendering larger\n- Resuming after a task ends - Resuming right after a delegated task finishes no longer fails with an exit error\n- Resumed session saving - Resuming an older session now saves its messages and settings instead of silently dropping each turn\n- Exit while a session loads - Pressing Ctrl+C while a session is still loading now stops its work before Droid exits\n- Windows command cleanup - Commands on Windows no longer wait five seconds for cleanup on a busy machine\n- Queued messages for offline machines - A queued message for an offline remote machine now waits instead of resending and repeating notices\n- Droid Shield on large renames - A change with many renamed files no longer pushes Droid Shield into an extra approval\n- Stopped delegated task waits - Droid stops waiting on a delegated task that was shut down while its approval went unanswered\n- Models added mid-session - Picking a model your organization added after the session started no longer fails as unknown\n- Unreachable computer on follow-up - A follow-up now reboots a computer that stays unreachable and reconnects instead of failing\n- Plugin marketplace syncing - A plugin marketplace whose manifest starts with a byte order mark now syncs instead of failing"}