Skip to content

OpenDucktor v1.0.0

Latest

Choose a tag to compare

@Maxsky5 Maxsky5 released this 22 Oct 09:42
· 37 commits to main since this release

What's Changed

🚀 Features

  • feat: open Mermaid diagrams in a zoomable preview by @Maxsky5 in #1024
  • feat(workspace-sessions): run dev servers from each session by @Maxsky5 in #1023
  • feat(frontend): keep modal content stable through transitions by @Maxsky5 in #1031
  • feat(marketing): launch a public website that shows OpenDucktor at work by @Maxsky5 in #1030
  • feat(chat): make generated images easier to view and save by @Maxsky5 in #1040
  • feat(frontend): make changed files easier to scan and find in the Git panel by @Maxsky5 in #1042
  • feat(kanban): open existing sessions from task cards by @Maxsky5 in #1046
  • feat(frontend): collapse pending chat requests by @Maxsky5 in #1052
  • feat(claude): control session permissions and sandbox access by @Maxsky5 in #1053
  • feat(opencode): add advanced session permission settings by @Maxsky5 in #1055
  • feat(workspaces): connect Git providers when adding a workspace by @Maxsky5 in #1058
  • feat(runtimes): run one shared runtime per kind instead of one per workspace by @Maxsky5 in #1063
  • feat(sessions): unify task and workspace session navigation by @Maxsky5 in #1076
  • feat(prompts): make plans readable at a glance with diagrams, tables, and architect-level design by @Maxsky5 in #1071
  • feat(frontend): send workspace diff comments to active chat by @Maxsky5 in #1080
  • feat: let workspace agents resolve Git conflicts by @Maxsky5 in #1082
  • feat(chat): make the composer and user messages match the app design by @Maxsky5 in #1090
  • feat(git): choose a comparison branch per workspace session by @Maxsky5 in #1083
  • feat(actions): run any repository command from the session bar in a real terminal by @Maxsky5 in #1091
  • feat(sessions): complete launches without an open browser by @Maxsky5 in #1073
  • feat(claude): let users disable built-in tools by @Maxsky5 in #1097
  • feat(agents): add session speed levels for Claude and Codex by @Maxsky5 in #1088
  • feat(sessions): let users choose, close, and move session panel tabs by @Maxsky5 in #1100
  • feat(opencode): migrate the runtime to V2 by @Maxsky5 in #1098
  • feat(autopilot): keep workflows moving across workspaces with no browser open by @Maxsky5 in #1104
  • feat(frontend): reach tasks, chats, and actions from one Cmd+K palette by @Maxsky5 in #1106
  • feat(frontend): show more changed files at once with compact tree view rows by @Maxsky5 in #1108
  • feat(marketing): showcase the reworked OpenDucktor UI on the website by @Maxsky5 in #1110
  • feat(sessions): queue messages to busy agents and steer them only on demand by @Maxsky5 in #1109
  • perf(build): shrink web and Electron packages by @Maxsky5 in #1120
  • feat(chat): let users steer messages by default by @Maxsky5 in #1127
  • feat(host): keep workflows running after clients disconnect by @Maxsky5 in #1133
  • feat(git-panel): review, stage, and commit agent work faster with a compact Git panel and History graph by @Maxsky5 in #1134
  • feat: let remote clients use Electron and web hosts by @Maxsky5 in #1130
  • feat(frontend): find Kanban tasks fast with board search and filters by @Maxsky5 in #1150
  • feat(command-palette): sync pull requests on demand by @Maxsky5 in #1154
  • feat(chat): jump back to any of your messages in long agent transcripts by @Maxsky5 in #1166
  • feat(web): serve the latest stable web client at app.openducktor.dev by @Maxsky5 in #1181
  • feat: show folder change totals in the Git panel by @Maxsky5 in #1183
  • feat(browser): test your app inside OpenDucktor in browser tabs that agents can drive by @Maxsky5 in #1179

🐛 Fixes

  • perf: keep the model picker responsive with large catalogs by @Maxsky5 in #1018
  • fix(frontend): lock visual descriptions during saves and recovery by @Maxsky5 in #1017
  • fix(core): keep file diffs visible for paths with spaces by @Maxsky5 in #1014
  • fix(codex): show decoded file names in session diffs by @Maxsky5 in #1025
  • fix(web): keep SSE listeners updated when one fails by @Maxsky5 in #1026
  • fix(web): open quiet resumed task streams without task changes by @Maxsky5 in #1027
  • fix(agent-studio): keep started task tabs visible by @Maxsky5 in #1028
  • perf(frontend): prevent unused chat row refs from accumulating by @Maxsky5 in #1032
  • perf(frontend): keep large Git diff lists responsive by @Maxsky5 in #1029
  • fix: preserve terminal cleanup after renderer detach failures by @Maxsky5 in #1033
  • perf(frontend): avoid repeated live session collection copies by @Maxsky5 in #1034
  • fix(frontend): prevent picker clipping in dialogs by @Maxsky5 in #1036
  • fix: clean up failed Codex runtimes without stopping the host by @Maxsky5 in #1037
  • fix: prevent duplicate terminals after discovery failures by @Maxsky5 in #1038
  • perf(web): avoid repeat packaged asset transfers by @Maxsky5 in #1039
  • fix(terminal): restore live logs and responsive TUI resizing by @Maxsky5 in #1041
  • fix(tasks): let reset, delete, and close work whatever branch the task worktree has checked out by @Maxsky5 in #1044
  • fix(ui): bring back popover, tooltip, and sheet motion by @Maxsky5 in #1043
  • fix(chat): stop layout shifts when switching sessions by @Maxsky5 in #1045
  • fix(settings): remember the last opened section by @Maxsky5 in #1048
  • fix: restore Resume after Claude and Codex turn failures by @Maxsky5 in #1049
  • perf(notifications): avoid repeated work across tabs by @Maxsky5 in #1047
  • fix(frontend): make composer autocomplete navigation predictable by @Maxsky5 in #1056
  • perf(web): reduce web transfer sizes with gzip by @Maxsky5 in #1059
  • fix(workspaces): allow close and removal after directory deletion by @Maxsky5 in #1060
  • fix: avoid notification errors for missing permission by @Maxsky5 in #1061
  • fix(claude): stop routine permission notices in chat by @Maxsky5 in #1064
  • fix(host): load sessions imported from worktrees outside OpenDucktor by @Maxsky5 in #1066
  • perf(workspace): cut file-list transfers after small edits by @Maxsky5 in #1062
  • fix(opencode): avoid setup errors on the first message by @Maxsky5 in #1068
  • fix(frontend): keep the chat at the bottom when the terminal or any panel resizes it by @Maxsky5 in #1070
  • fix(host): recover from a slow login shell without restarting OpenDucktor by @Maxsky5 in #1072
  • fix(frontend): let users scroll back down long transcripts after scrolling up by @Maxsky5 in #1077
  • fix: offer Resume when Claude reaches its usage limit by @Maxsky5 in #1079
  • fix(frontend): retain Git action state when session tools close by @Maxsky5 in #1081
  • fix(frontend): align workspace chat feedback with task chat by @Maxsky5 in #1084
  • fix(frontend): recover session navigation and transcript failures by @Maxsky5 in #1078
  • fix(frontend): avoid duplicate blocked tasks in sidebar by @Maxsky5 in #1085
  • fix(tasks): close merged tasks after stopping dev servers by @Maxsky5 in #1086
  • fix(diagnostics): keep runtime failures out of Git and PATH checks by @Maxsky5 in #1087
  • fix(files): open transcript files outside the working directory by @Maxsky5 in #1089
  • fix(codex): prevent startup query failures by @Maxsky5 in #1093
  • fix: keep optional model defaults from blocking workspace setup by @Maxsky5 in #1094
  • fix(claude): keep idle sessions stable when changing models by @Maxsky5 in #1095
  • fix: avoid Claude workspace startup title errors by @Maxsky5 in #1096
  • fix(frontend): use role defaults for session quick actions by @Maxsky5 in #1099
  • fix(sessions): make host-owned session starts work again after #1073 by @Maxsky5 in #1101
  • perf(recovery): avoid repeated session scans and chat reloads by @Maxsky5 in #1051
  • perf(attachments): stop large attachments from freezing the app for seconds by @Maxsky5 in #1103
  • perf(frontend): batch task session refresh reads per workspace by @Maxsky5 in #1069
  • fix(chat): prepare saved model choices before Send by @Maxsky5 in #1111
  • fix(frontend): match modal footers to the dialog background by @Maxsky5 in #1119
  • fix(frontend): prevent crashes when editing task descriptions by @Maxsky5 in #1118
  • perf(tasks): stop reloading the board for each task change by @Maxsky5 in #1124
  • fix(frontend): restore task chat speed controls by @Maxsky5 in #1125
  • perf(history): avoid rereading unchanged conversations by @Maxsky5 in #1123
  • fix(opencode): restore native subagent delegation by @Maxsky5 in #1126
  • fix: keep chat composer pickers above the input by @Maxsky5 in #1128
  • fix(host): stop restoring closed-task sessions at startup by @Maxsky5 in #1129
  • fix(opencode): preserve subagent links and parent transcripts by @Maxsky5 in #1135
  • fix(azure-devops): show real CI results instead of duplicate checks and system noise by @Maxsky5 in #1136
  • fix(terminals): keep zsh Action history and add graceful restart by @Maxsky5 in #1132
  • fix(frontend): stop catalog reads on starting runtimes and keep cached models visible by @Maxsky5 in #1137
  • fix: prevent false directory errors when Claude sessions start by @Maxsky5 in #1138
  • fix: show workspace session titles in notifications by @Maxsky5 in #1140
  • fix(frontend): replace loud indigo and blue focus rings with one neutral gray by @Maxsky5 in #1141
  • fix(claude): fix steering with attachments by listing models under the IDs Claude reports by @Maxsky5 in #1143
  • fix(frontend): keep palette task actions on the current page by @Maxsky5 in #1144
  • fix(claude): send messages in milliseconds instead of 2-3 s by @Maxsky5 in #1145
  • fix(host): sync pull requests for all open workspaces by @Maxsky5 in #1146
  • fix(host): prevent Windows host test timeouts by @Maxsky5 in #1147
  • fix(frontend): show tasks at once when you switch to any open workspace by @Maxsky5 in #1148
  • fix(frontend): keep chats live across workspace switches by @Maxsky5 in #1149
  • fix(frontend): keep PR results across workspace switches by @Maxsky5 in #1151
  • perf(tooling): speed up workspace type checks with Bun by @Maxsky5 in #1152
  • fix(frontend): show Autopilot failures from every open workspace, not only the selected one by @Maxsky5 in #1157
  • fix(frontend): clean up saved layouts in background workspaces by @Maxsky5 in #1156
  • perf(chat): remove session setup from message sends by @Maxsky5 in #1153
  • fix(frontend): keep workspace data cached between visits by @Maxsky5 in #1158
  • perf(chat): stop re-rendering streamed replies and their diagrams on every update by @Maxsky5 in #1161
  • fix(codex): keep prepared sessions idle until work starts by @Maxsky5 in #1162
  • fix(frontend): keep session views mounted across workspaces by @Maxsky5 in #1160
  • fix(opencode): reopen older workflow sessions and accept messages again by @Maxsky5 in #1165
  • fix(frontend): make session panels respond again in kept session views by @Maxsky5 in #1167
  • refactor(sessions): remove runtime details from task URLs by @Maxsky5 in #1159
  • fix: queue Autopilot instructions for busy sessions by @Maxsky5 in #1168
  • fix(electron): keep signing credentials out of unsigned packaging by @Maxsky5 in #1169
  • fix(host): clean up Claude sessions when event delivery fails by @Maxsky5 in #1170
  • perf(host): cut single-task MCP reads to one card by @Maxsky5 in #1171
  • perf(host): avoid building cards for task ID reads by @Maxsky5 in #1172
  • fix(frontend-core): avoid duplicate skipped model catalog queries by @Maxsky5 in #1173
  • fix(deps): remove braces from the dependency tree by @Maxsky5 in #1174
  • perf(frontend): reduce transcript streaming update cost by @Maxsky5 in #1175
  • fix(host): avoid false Azure DevOps credential storage failures by @Maxsky5 in #1176
  • fix(claude): prevent crashes when loading large sessions by @Maxsky5 in #1177
  • fix: show skill names in Claude tool previews by @Maxsky5 in #1180
  • fix: stop Codex peer messages from breaking session observation by @Maxsky5 in #1182
  • fix(claude): restore complete session history by @Maxsky5 in #1184

🏗️ Refactoring

  • refactor: move every Effect user to the stable Effect 4 runtime by @Maxsky5 in #1074
  • refactor(codex): remove circular transcript mapper imports by @Maxsky5 in #1142
  • refactor(frontend-core): share one client layer across desktop, web, and mobile by @Maxsky5 in #1155

Full Changelog: v0.9.0...v1.0.0