João Salavisa
ea84b913b4
feat: choose worktree when opening IDE on multi-repo tasks ( #1743 )
...
* feat: choose worktree when opening IDE on multi-repo tasks
On multi-repo tasks the open-in-IDE button always opened the first
worktree. The editors menu now shows a worktree picker (repo + branch)
when a session has multiple worktrees, and each editor in the dropdown
expands into a per-worktree submenu.
- open-editor/open-folder accept an optional worktree_id; empty keeps
the first-worktree fallback so existing clients are unaffected
- session DTOs now serialize the full worktrees list instead of only
the flattened first-worktree fields
- useSessionWorktrees unions API worktrees with the WS-populated list
- new Playwright spec covers the picker on a real multi-repo session
* fix: address review feedback on worktree picker
- fall back on empty-string worktree fields, not only null/undefined
- bind optional open-folder body via EOF check instead of ContentLength
so chunked requests keep their worktree_id
- wrap disabled editor buttons in a focusable span so tooltips work
- add hook test asserting worktreeId is forwarded as worktree_id
* fix: map editor service errors to HTTP status, drop e2e sleep
- open-editor/open-folder return 404/400/409 for known service errors
(unknown worktree or editor, invalid config, unavailable editor)
instead of a blanket 500
- replace the picker spec's 750ms sleep with an explicit composer click
so the autofocus race is deterministic
---------
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-07-16 22:43:06 +01:00
..
2026-07-09 19:23:17 +01:00
2026-07-16 21:44:24 +01:00
2026-05-10 17:30:24 +01:00
2026-05-24 11:21:50 +01:00
2026-07-16 17:26:50 +01:00
2026-05-21 23:35:41 +01:00
2026-06-25 00:23:56 +01:00
2026-06-30 16:29:46 +01:00
2026-06-05 15:53:39 +01:00
2026-05-01 13:27:25 +01:00
2026-07-15 23:19:00 +01:00
2026-05-14 10:27:38 +01:00
2026-06-18 17:28:21 +01:00
2026-06-08 21:22:39 +01:00
2026-07-15 12:54:43 +01:00
2026-04-18 10:32:24 +01:00
2026-07-15 12:54:43 +01:00
2026-07-15 12:54:43 +01:00
2026-06-29 19:24:51 +01:00
2026-06-29 19:24:51 +01:00
2026-07-10 08:34:57 +01:00
2026-07-15 12:54:43 +01:00
2026-07-15 12:54:43 +01:00
2026-05-02 20:26:42 +01:00
2026-07-15 12:54:43 +01:00
2026-07-15 12:54:43 +01:00
2026-06-07 22:14:11 +01:00
2026-06-08 21:22:39 +01:00
2026-07-09 17:25:33 +01:00
2026-05-23 21:19:30 +01:00
2026-07-09 17:25:33 +01:00
2026-05-31 19:41:10 +01:00
2026-07-10 16:04:12 +01:00
2026-07-15 12:54:43 +01:00
2026-07-15 12:54:43 +01:00
2026-07-10 08:34:57 +01:00
2026-05-31 23:04:55 +01:00
2026-07-10 14:03:32 +01:00
2026-06-14 17:58:18 +01:00
2026-05-02 20:26:42 +01:00
2026-05-31 19:41:10 +01:00
2026-07-09 19:23:17 +01:00
2026-05-18 23:08:14 +01:00
2026-06-30 00:25:34 +01:00
2026-07-10 11:18:36 +01:00
2026-05-23 22:23:36 +01:00
2026-05-23 22:23:36 +01:00
2026-07-10 11:18:36 +01:00
2026-05-29 02:35:47 +01:00
2026-06-02 21:48:23 +01:00
2026-07-15 00:17:10 +01:00
2026-07-09 17:25:33 +01:00
2026-07-16 17:26:50 +01:00
2026-07-15 12:54:43 +01:00
2026-07-15 07:50:49 +01:00
2026-06-29 18:59:47 +01:00
2026-07-15 07:50:49 +01:00
2026-07-09 19:23:17 +01:00
2026-07-16 17:26:50 +01:00
2026-05-24 12:59:30 +01:00
2026-05-16 20:07:57 +01:00
2026-06-18 18:36:48 +01:00
2026-07-10 14:03:32 +01:00
2026-07-16 22:43:06 +01:00
2026-07-16 22:43:06 +01:00
2026-07-16 22:43:06 +01:00
2026-06-18 18:36:48 +01:00
2026-06-18 18:36:48 +01:00
2026-05-25 10:04:40 +01:00
2026-05-14 21:26:09 +01:00
2026-05-14 21:26:09 +01:00
2026-05-14 21:26:09 +01:00
2026-06-14 22:05:19 +01:00
2026-06-14 22:05:19 +01:00
2026-07-15 07:50:49 +01:00
2026-07-10 08:34:57 +01:00
2026-05-22 01:41:56 +01:00
2026-06-02 21:48:23 +01:00
2026-05-21 14:01:31 +01:00
2026-05-29 11:08:42 +01:00
2026-07-01 21:24:07 +01:00
2026-06-18 18:36:48 +01:00
2026-06-18 18:36:48 +01:00
2026-05-21 14:01:31 +01:00
2026-05-24 00:28:20 +01:00
2026-07-10 08:34:57 +01:00
2026-07-01 21:24:07 +01:00
2026-07-01 21:24:07 +01:00
2026-07-10 14:03:32 +01:00
2026-07-09 17:25:33 +01:00
2026-07-10 14:03:32 +01:00
2026-06-18 18:36:48 +01:00
2026-07-10 14:03:32 +01:00
2026-05-17 21:26:13 +01:00
2026-05-17 21:26:13 +01:00
2026-07-10 08:34:57 +01:00
2026-07-01 21:24:07 +01:00
2026-06-09 16:42:05 +01:00
2026-06-09 16:42:05 +01:00
2026-06-09 16:42:05 +01:00
2026-06-09 16:42:05 +01:00
2026-07-10 11:18:36 +01:00
2026-07-10 11:18:36 +01:00
2026-07-10 11:18:36 +01:00
2026-07-10 14:03:32 +01:00
2026-07-15 19:34:34 +01:00
2026-06-27 16:11:39 +01:00
2026-06-08 22:44:02 +01:00
2026-06-27 16:11:39 +01:00
2026-06-25 16:06:38 +01:00
2026-06-17 19:01:42 +01:00
2026-06-17 19:01:42 +01:00
2026-06-18 23:03:32 +01:00
2026-07-16 00:06:41 +01:00
2026-06-25 16:06:38 +01:00
2026-05-30 15:47:02 +01:00
2026-05-30 15:47:02 +01:00
2026-04-20 13:44:24 +01:00
2026-05-01 22:32:28 +01:00
2026-05-24 00:28:20 +01:00
2026-05-24 12:59:30 +01:00
2026-07-10 08:34:57 +01:00
2026-07-10 14:04:31 +01:00
2026-06-12 09:50:35 +01:00
2026-07-10 14:04:31 +01:00
2026-07-10 14:04:31 +01:00
2026-03-13 10:44:32 +00:00
2026-05-05 13:55:46 +01:00
2026-05-05 13:55:46 +01:00
2026-05-24 11:21:50 +01:00
2026-06-26 14:02:28 +01:00
2026-05-05 13:55:46 +01:00
2026-05-05 13:55:46 +01:00
2026-05-18 23:08:14 +01:00
2026-07-16 00:22:31 +01:00
2026-06-02 13:44:17 +01:00
2026-05-02 22:25:40 +01:00
2026-06-02 13:44:17 +01:00
2026-06-02 13:44:17 +01:00
2026-06-02 13:44:17 +01:00
2026-05-29 11:06:13 +01:00
2026-05-29 11:06:13 +01:00
2026-04-25 18:40:31 +01:00
2026-06-27 16:11:39 +01:00
2026-06-17 19:01:42 +01:00
2026-06-17 19:01:42 +01:00
2026-06-18 23:03:32 +01:00
2026-07-16 17:26:50 +01:00
2026-05-17 20:16:15 +01:00
2026-05-16 20:07:57 +01:00
2026-06-29 18:59:47 +01:00
2026-06-29 18:59:47 +01:00
2026-07-16 17:26:50 +01:00
2026-07-16 17:26:50 +01:00
2026-07-16 17:26:50 +01:00
2026-07-16 17:26:50 +01:00
2026-07-10 11:18:36 +01:00
2026-05-14 21:26:09 +01:00
2026-04-20 13:44:24 +01:00
2026-05-05 13:55:46 +01:00
2026-07-16 17:26:50 +01:00
2026-07-15 19:34:18 +01:00
2026-07-15 19:34:18 +01:00
2026-07-10 14:03:32 +01:00
2026-05-16 14:04:09 +01:00
2026-07-10 16:04:12 +01:00
2026-07-16 17:26:50 +01:00
2026-06-29 15:24:22 +01:00
2026-05-28 19:17:26 +01:00
2026-05-28 19:17:26 +01:00
2026-05-28 19:17:26 +01:00
2026-05-28 19:17:26 +01:00
2026-05-16 20:07:57 +01:00
2026-05-16 20:07:57 +01:00
2026-07-10 23:32:18 +01:00
2026-07-10 23:32:18 +01:00
2026-07-09 23:43:35 +01:00
2026-07-09 23:43:35 +01:00
2026-07-01 21:24:07 +01:00
2026-07-01 21:24:07 +01:00
2026-06-23 17:28:52 +01:00
2026-06-23 17:28:52 +01:00
2026-06-23 17:28:52 +01:00
2026-06-23 17:28:52 +01:00
2026-06-29 15:24:22 +01:00
2026-07-13 13:56:55 +01:00
2026-06-18 18:36:48 +01:00
2026-05-05 14:13:43 +01:00
2026-07-15 19:32:32 +01:00
2026-07-15 19:32:32 +01:00
2026-07-15 19:32:32 +01:00
2026-06-23 17:28:52 +01:00
2026-04-27 10:22:58 +01:00
2026-04-27 10:22:58 +01:00
2026-04-27 10:22:58 +01:00
2026-07-10 12:56:05 +01:00
2026-07-10 12:56:05 +01:00
2026-07-10 12:56:05 +01:00
2026-07-10 12:56:05 +01:00
2026-06-18 18:36:48 +01:00
2026-04-27 10:22:58 +01:00
2026-07-01 23:43:04 +01:00
2026-05-14 21:26:09 +01:00
2026-05-31 23:04:55 +01:00
2026-05-31 23:04:55 +01:00
2026-07-10 11:18:36 +01:00
2026-07-10 11:18:36 +01:00
2026-07-10 23:29:40 +01:00
2026-07-10 23:29:40 +01:00
2026-07-06 17:16:14 +01:00
2026-07-09 23:43:35 +01:00
2026-06-23 17:28:52 +01:00
2026-07-09 23:43:35 +01:00
2026-07-06 17:16:14 +01:00
2026-07-06 17:16:14 +01:00
2026-07-09 23:43:35 +01:00
2026-07-10 23:29:40 +01:00
2026-07-06 17:16:14 +01:00
2026-07-06 17:16:14 +01:00
2026-07-09 23:43:35 +01:00
2026-07-09 17:26:41 +01:00
2026-07-06 17:16:14 +01:00
2026-06-27 16:11:39 +01:00
2026-06-27 16:11:39 +01:00
2026-06-29 15:24:22 +01:00
2026-07-09 23:43:35 +01:00
2026-07-09 23:43:35 +01:00
2026-07-15 10:48:56 +01:00
2026-07-15 10:48:56 +01:00
2026-07-14 22:02:43 +01:00
2026-07-15 10:48:56 +01:00
2026-07-14 19:15:51 +01:00
2026-05-16 20:07:57 +01:00
2026-05-16 20:07:57 +01:00
2026-05-16 20:07:57 +01:00
2026-05-16 20:07:57 +01:00
2026-05-16 20:07:57 +01:00
2026-05-16 20:07:57 +01:00
2026-05-23 19:27:49 +01:00
2026-05-01 13:27:25 +01:00
2026-05-24 12:59:30 +01:00
2026-04-24 17:14:03 +01:00
2026-06-11 22:28:07 +01:00
2026-07-16 17:26:50 +01:00
2026-05-16 20:07:57 +01:00
2026-06-30 16:29:46 +01:00
2026-06-30 16:29:46 +01:00
2026-07-10 14:03:32 +01:00
2026-07-10 14:03:32 +01:00
2026-06-11 21:17:47 +01:00
2026-05-14 21:26:09 +01:00
2026-04-27 10:22:58 +01:00
2026-07-15 12:54:43 +01:00
2026-07-15 12:54:43 +01:00
2026-05-30 15:47:02 +01:00
2026-05-05 13:55:46 +01:00
2026-05-31 23:04:55 +01:00
2026-05-31 23:04:55 +01:00
2026-04-24 17:14:03 +01:00
2026-05-23 19:27:49 +01:00
2026-06-18 18:36:48 +01:00
2026-06-08 19:34:40 +01:00
2026-06-08 19:34:40 +01:00
2026-07-08 10:06:50 +01:00
2026-06-11 21:17:47 +01:00