Carlos Florêncio
b041702866
fix(orchestrator): clear sidebar spinner when session settles ( #1981 )
2026-07-27 18:10:36 +01:00
José Almeida
85820e4a43
fix(web): warn when pasted attachments are too large ( #1983 )
...
* fix(web): warn when pasted attachment is too large
* test(web): provide toast context to chat input tests
* fix(web): warn when browser image paste lacks file data
* fix(web): warn about oversized new task attachments
* fix(web): keep toasts above modal overlays
* fix(web): handle file-list-only dialog pastes
* fix(web): avoid parsing clipboard HTML
* fix(web): handle attachment paste edge cases
* fix(web): improve attachment limit feedback
* fix(web): show aggregate attachment limit feedback
2026-07-27 17:19:02 +01:00
Carlos Florêncio
9c75c8c72c
feat: move task list options into mobile menu ( #1956 )
2026-07-26 16:06:22 +01:00
Carlos Florêncio
45ba6691c9
fix: isolate task state when switching workspaces ( #1951 )
2026-07-26 10:40:40 +01:00
Carlos Florêncio
75abf779ed
feat(github): support per-workspace GitHub App registrations ( #1810 )
2026-07-26 10:39:08 +01:00
Carlos Florêncio
bc218dfbbe
feat: add workspace sources from files panel ( #1900 )
...
* feat: add workspace sources from files panel
* fix: preserve worktree identity during recovery
* feat: unify workspace source actions
* fix: validate recovered workspace repositories
* fix: harden workspace source filesystem boundaries
* test: split workspace repository chip coverage
* fix: restrict repository rescan recovery paths
* fix: stabilize workspace source CI checks
* test: canonicalize workspace source paths
* test: align workspace source container paths
* fix: populate direct workspace repository names
* test: preserve git fixture rewrites across restarts
* test: isolate backend git fixture config
* fix: resume remote workspace executions before creation
* fix: preserve ssh agent identity during resume
* fix: preserve SSH workspace across backend restart
* fix: simplify workspace actions trigger
* fix: refine add workspace repositories UX
* docs: narrow workspace source UX updates
* fix: avoid phantom turn on session resume
* test(web): normalize workspace source request headers
* feat(web): streamline workspace source picker
* docs: remove trailing spaces from workspace source plan
* fix: prevent resume status from creating phantom turns
* fix(web): stabilize workspace source attachment
* refactor(web): extract workspace source store contract
* fix: avoid phantom turns on idle agent resume
* fix: address backend static analysis findings
* fix: preserve agentctl readiness status value
* fix: preserve resume messages without active turns
* fix: resume agents from promoted workspace root
* chore: merge origin/main into feature/add-new-repo-folder-d97
* feat(web): explain workspace source consequences
* test(websocket): count session activity subscription
2026-07-25 21:29:53 +01:00
Carlos Florêncio
a4d53bdf42
feat(web): remember task listing display preferences ( #1944 )
2026-07-25 19:30:52 +01:00
Carlos Florêncio
3c09b1590a
fix: make remote repository entry reliable ( #1936 )
2026-07-25 11:11:03 +01:00
Carlos Florêncio
2f6be0c777
fix(agents): harden ACP launcher configuration ( #1917 )
2026-07-24 16:36:44 +01:00
José Almeida
b56bca5a4d
feat: move subtask action to task context menu ( #1920 )
...
* feat: move subtask action to task context menu
* fix: resolve subtask defaults from selected parent
* fix: handle repository-less subtask parents
2026-07-24 15:50:30 +01:00
Carlos Florêncio
34946011a1
fix(web): restore sidebar task title overflow ( #1913 )
2026-07-24 12:08:07 +01:00
Carlos Florêncio
1f4fabf30a
fix: stabilize task and workspace creation ( #1910 )
2026-07-24 09:55:18 +01:00
Jérémy Coatelen
cd332ef26b
feat(task): nest a task under another as a sub-task from the sidebar ( #1837 )
2026-07-24 09:51:45 +01:00
Carlos Florêncio
29c86b7fa1
feat: create local repositories from new tasks ( #1849 )
2026-07-23 22:30:40 +01:00
Carlos Florêncio
4a0ef3c66c
feat: improve task sidebar overflow cue ( #1908 )
2026-07-23 22:29:49 +01:00
Carlos Florêncio
9cd0c27be0
feat: mark selected task repositories ( #1881 )
2026-07-23 16:32:25 +01:00
Carlos Florêncio
5167bb9832
feat: add external vcs file links ( #1883 )
2026-07-23 15:18:10 +01:00
Carlos Florêncio
360ae135b3
fix(web): clarify task title editing ( #1875 )
2026-07-23 14:44:20 +01:00
Ahmad Ragab
e1008737c4
fix(web): retain enhanced prompt results ( #1854 )
2026-07-23 14:01:44 +01:00
José Almeida
7de788ceed
feat: add cross-integration entity references ( #1862 )
...
* feat: add cross-integration entity references
* fix(web): anchor entity reference menu to composer
* fix: keep Kandev tasks under @ mentions
* fix: address entity reference review findings
* test(e2e): use option role for prompt menu
* test(e2e): update passthrough mention roles
* fix: preserve queued references and paginate Azure PRs
2026-07-23 09:03:56 +01:00
José Almeida
67507c9273
fix: prevent blank mobile task views ( #1877 ) ( #1889 )
2026-07-23 08:58:05 +01:00
Carlos Florêncio
7fd99c3f33
feat: complete GitLab integration parity ( #1832 )
2026-07-21 23:24:22 +01:00
José Almeida
8f2fe7a8e6
feat(web): add agent message comments ( #1835 )
...
* feat(web): add agent message comments
* fix(web): harden agent message comments
* fix(web): address message comment review findings
* fix(web): allow comments on legacy agent messages
* fix(web): address latest message comment review
* fix(web): address follow-up message comment review
* fix(web): address remaining message comment review
* fix(web): keep failed mobile comments open
* fix(web): preserve selections over message comments
2026-07-21 13:32:19 +01:00
Carlos Florêncio
c2a678b023
feat: add Azure DevOps integration ( #1778 )
2026-07-21 08:40:26 +01:00
Carlos Florêncio
15949959b0
fix: preserve authoritative archived task state ( #1826 )
2026-07-20 18:04:11 +01:00
dk-blackfuel
d185f13d13
fix: clear stale archived state when unarchiving from task detail top bar ( #1816 )
2026-07-20 16:05:10 +01:00
Carlos Florêncio
ba75922fa1
feat: add configurable task layout profiles ( #1799 )
2026-07-20 12:09:06 +01:00
Carlos Florêncio
33aa7af67e
feat: configure profiles for MCP-created tasks ( #1797 )
2026-07-19 23:18:06 +01:00
Carlos Florêncio
5fb1923a9a
feat: add explicit save for settings ( #1686 )
2026-07-19 14:21:36 +01:00
Carlos Florêncio
e9634fa636
feat: allow detaching subtasks from parent tasks ( #1781 )
2026-07-18 21:19:05 +01:00
Carlos Florêncio
21f811d5ec
feat: add idle storage maintenance ( #1699 )
2026-07-18 19:08:44 +01:00
Clément Fiere
69972b4f79
fix: freeze archived task state against late REVIEW writes ( #1706 )
2026-07-18 17:30:24 +01:00
José Almeida
e2c076c71c
feat(web): improve mobile task navigation ( #1769 )
...
* feat(web): improve mobile task and kanban navigation
* feat(web): refine mobile task navigation
* fix(web): address mobile navigation review feedback
* test(web): cover task title field modes
* fix(web): keep mobile board navigator open across workflows
* fix(web): address mobile workflow review feedback
2026-07-18 02:28:29 +01:00
José Almeida
7d3cdbc99e
feat(web): add direct sidebar view creation ( #1763 )
...
* feat(web): add direct sidebar view creation
* fix(web): address sidebar view review feedback
2026-07-17 22:33:35 +01:00
Carlos Florêncio
851cd94b15
fix(web): stabilize remote repository picker ( #1747 )
2026-07-17 16:52:37 +01:00
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
Carlos Florêncio
9c635b62cf
fix(web): compact plan implement control ( #1719 )
2026-07-16 09:38:35 +01:00
Carlos Florêncio
b9eb6ae058
refactor(web): remove legacy settings migration ( #1704 )
...
* refactor(web): remove legacy settings migration
* fix(web): hydrate portable settings from boot state
* fix(web): preserve sidebar sync contracts
* fix(web): retain portable settings filters
* fix(web): retry sidebar settings writes
* fix(web): retain sidebar boot settings
* fix(websocket): avoid shutdown teardown leaks
* fix(boot): normalize sidebar task preferences
* fix(settings): preserve saved views during hydration
* fix(jira): avoid duplicate saved-view syncs
* fix(jira): preserve saved views on fetch failure
* fix(jira): retry saved-view hydration failures
* refactor(jira): simplify hydration request cleanup
* fix(websocket): close late clients after hub shutdown
2026-07-16 00:06:41 +01:00
Carlos Florêncio
f2e3d68340
fix(web): render HTML in markdown previews ( #1707 )
2026-07-15 19:34:34 +01:00
Carlos Florêncio
af6756bbbc
feat: add archive confirmation preference ( #1708 )
2026-07-15 19:34:18 +01:00
João Salavisa
ef635276f9
feat: rename task inline from the top bar via double-click ( #1702 )
...
* feat: rename task inline from the top bar via double-click
Double-clicking the task title in the desktop top bar swaps it for an
inline input; Enter commits the rename through the existing task update
path, Escape or blur cancels. Archived tasks stay read-only.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* test: fix vi.fn generics in agent usage test for vitest 4
vi.fn dropped the two-type-argument form in the Vitest 4 upgrade; the
old signature made mockResolvedValue infer never and fail typecheck.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* fix: ignore Enter during IME composition in topbar rename input
Review follow-up: without the guard, the Enter that confirms an IME
candidate committed the rename mid-typing. Mirrors the quick-chat tab
rename input and the dialog default-action convention.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* fix: harden topbar rename commit path against IME 229 and mid-edit archive
Independent-review follow-up:
- also treat keyCode 229 as IME composition, matching the documented
convention in dialog-default-action (some IMEs report the accepting
Enter after isComposing flips false)
- re-check isArchived on Enter so a task archived while the inline
editor is open cannot be renamed from it
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* fix: make topbar rename title keyboard-operable
Addresses PR #1702 review: the renameable title exposed role="link" with
aria-disabled="false" but only a double-click handler. Add tabIndex, Enter
to open the rename input, and focus restoration on keyboard exits.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
---------
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-07-15 10:48:56 +01:00
Carlos Florêncio
1a1ece3a8d
feat: add repository context to quick chats ( #1679 )
2026-07-15 09:13:52 +01:00
Carlos Florêncio
c4dd45f9ac
fix: use long press for mobile task actions ( #1673 )
2026-07-13 13:56:55 +01:00
Clément Fiere
fe392e60f5
feat: support multiple concurrent Sentry instances ( #1469 )
2026-07-10 23:32:18 +01:00
Carlos Florêncio
05b550e122
fix: show pending task input before messages load ( #1663 )
2026-07-10 23:29:40 +01:00
José Almeida
12ed7123ab
fix: support markdown preview comments ( #1648 )
...
* fix: support markdown preview comments
* fix: address markdown preview review feedback
* fix: address markdown preview comment scope
* fix: address markdown preview follow-up feedback
* fix: preserve markdown preview run action in file tabs
* fix: ignore svg clicks in markdown preview controls
* fix: ignore svg markdown preview selection targets
2026-07-10 14:03:32 +01:00
Carlos Florêncio
3cb965d0fd
feat: add durable plan implement action ( #1645 )
2026-07-10 12:56:05 +01:00
José Almeida
4eae00964d
feat: move integration links into task menus ( #1644 )
...
* feat: move integration links into task menus
* fix: address integration link review feedback
* fix: preserve archived task title when linking
* fix: address integration link review issues
* fix: remove ignored swimlane availability prop
2026-07-09 23:43:35 +01:00
Carlos Florêncio
9da896bc86
fix: truncate long task titles in topbar ( #1630 )
2026-07-09 08:14:25 +01:00
José Almeida
5105ac224c
feat: cmd+click and shift+click multi-select for kanban and sidebar ( #1518 )
...
* feat: add anchored range selection to multi-select reducer
* feat: cmd+click and shift+click multi-select on kanban board
* feat: add cmd/shift multi-select to sidebar task list
* test: e2e coverage for cmd/shift multi-select
* fix: harden multi-select selection lifecycle from review feedback
* test: scope multi-select e2e helpers to active containers
* fix: add sidebar multi-select hook tests and tighten bulk-action lifecycle
* fix: prune hidden sidebar selections and order bulk moves by view
* test: cover visible-order bulk move and anchor realignment
* fix: harden sidebar bulk-move scope and keyboard selection parity
* fix: order kanban bulk moves by board position
* test: cover multi-select helpers and fix stale-id sort fallback
* fix: order kanban card context-menu moves by board position
* feat: sidebar multi-select shows only bulk-valid actions with bulk pin and delete
* fix: harden multi-select bulk ordering, selection clearing, and a11y
* fix: gate kanban card move-to-step for mixed-workflow selections
* fix: unpin fully pinned sidebar selections
* refactor: keep sidebar task components under limits
* test: restore sidebar selection console spy safely
2026-07-06 17:16:14 +01:00