Carlos Florêncio
04b84aa9ef
feat: add task-specific workflow changes ( #3895 )
2026-09-25 10:30:33 +01:00
Clément Fiere
f8708da1e0
feat(plugins): render a task menu action as a submenu ( #3874 )
...
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-23 11:00:23 +01:00
Carlos Florêncio
a27423f960
feat: add task-specific workflow agent overrides ( #3822 )
2026-09-19 21:26:36 +01:00
João Salavisa
fc341e6cff
fix: restore Nest under candidates ( #3727 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-09-16 17:41:30 +01:00
Henry
8d01756ec5
feat(web): add priority sort and filter to the kanban board ( #3344 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-13 21:44:28 +01:00
Henry
20308a2d16
feat(tasks): allow switching a task's executor before materialization ( #3559 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-13 15:25:16 +01:00
Henry
6ff413078b
feat(web): drag-and-drop reorder kanban task cards within a column ( #3623 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-13 12:20:23 +01:00
Carlos Florêncio
3e557f0729
fix(kanban): compact multiple workflow swimlane heights ( #3604 )
2026-09-12 20:41:33 +01:00
Henry
8892920514
feat(web): bring the pipeline task row to parity with the Kanban card ( #3284 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-12 16:37:27 +01:00
Carlos Florêncio
a4077cf9cf
feat(ui): group task and card menu actions ( #3599 )
2026-09-11 14:51:57 +00:00
Henry
982cdb63eb
feat(web): add task actions menu to preview panel and detail top bar ( #3395 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-10 18:01:59 +01:00
Henry
08f59dedae
feat(tasks): mark unstartable tasks with orphaned workspaces on the board ( #3475 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-10 18:01:27 +01:00
Henry
fcf46400df
fix(web): make the board search box match linked PR/MR numbers ( #3391 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-09 22:54:08 +01:00
Henry
6597f8b9d1
feat(web,backend): show a distinct icon for tasks parked on background work ( #3402 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-07 21:29:15 +01:00
Carlos Florêncio
3173c2b56a
feat(sidebar): add automatic task color rules ( #3180 )
2026-09-06 17:18:09 +01:00
João Salavisa
481359ddb2
feat(auth): organization units, tenancy, roles and scopes for team access ( #2919 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-05 13:40:43 +00:00
Henry
b067fac875
feat(web): show and move a task's workflow step from the kanban preview ( #3329 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-04 04:04:19 +00:00
Jérémy Coatelen
538813de02
feat(web): add Threads view for live agent conversations ( #3112 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-09-03 08:07:16 +00:00
Carlos Florêncio
fe0bda1e07
feat(workspaces): add repository branch policies ( #2997 )
2026-08-26 11:09:00 +00:00
gsimard-nordai
9e6bd9001c
feat(workflows): auto-hide empty steps ( #2815 )
...
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-08-22 15:01:46 +00:00
Alassane
4e04d09f67
fix(web): preserve executor fields across kanban task cache merges ( #2705 )
...
Co-authored-by: ayattara <alassane.yattara@savoirfairelinux.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-08-22 14:46:25 +00:00
nova28
d5039f89c0
fix(office): make auto-start work for Office tasks and surface failures on the kanban card ( #2847 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-08-20 18:12:31 +01:00
Carlos Florêncio
1d42d0d95a
fix(web): use canonical task priority type ( #2733 ) ( #2745 )
2026-08-17 21:21:48 +00:00
José Almeida
7e2c4ae84e
fix: enforce active clarification lifecycle ( #2669 )
2026-08-17 11:14:12 +00:00
João Salavisa
5257dfbaab
fix(web): close the i18n coverage gaps in the non-JSX scanner and locale catalogs ( #2727 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-16 23:03:29 +00:00
Carlos Florêncio
9a7966a45e
feat: queue task moves at WIP capacity ( #2579 )
2026-08-13 12:40:02 +01:00
João Salavisa
1f38b6b435
feat(tasks): add task dependencies with auto-start chaining ( #2589 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-13 11:27:17 +01:00
Clément Fiere
1f1710e54f
feat: add option to prevent agent auto-start on open ( #2556 )
2026-08-12 14:36:25 +01:00
nova28
6a093d8eae
feat(kanban): add per-workflow step visibility filter to board ( #2467 )
...
Co-authored-by: nova28 <17953305+nova28@users.noreply.github.com >
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-08-10 22:38:37 +01:00
Carlos Florêncio
0b60af298e
feat: add task autopilot mode and MCP profiles ( #2445 )
2026-08-09 20:29:48 +01:00
Clément Fiere
0472eb1c73
fix(kanban): render hidden workflows when explicitly selected ( #2446 )
2026-08-09 11:50:28 +01:00
Carlos Florêncio
de4e4161ed
feat: surface port forwarding controls and browser navigation ( #2383 )
2026-08-08 13:49:58 +01:00
Clément Fiere
cd5199cd14
feat: show red interrupted icon for tasks cut short by a restart ( #2358 )
2026-08-07 17:17:57 +01:00
João Salavisa
d57ddfb9cb
feat(i18n): localize review dialog and kanban board ( #2299 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-06 00:35:20 +02:00
Carlos Florêncio
a7b416a1a8
fix(web): retire unreachable archived sidebar filter ( #2246 )
2026-08-05 19:06:49 +01:00
Robert Byrne
fc48311d0f
fix(web): remember mobile kanban column when returning from a task ( #2189 )
2026-08-03 11:13:49 +01:00
Carlos Florêncio
554c33f24d
feat: bound task status and session traffic ( #2148 )
2026-08-02 16:06:14 +01:00
Carlos Florêncio
f501346d15
feat: add visible WIP overflow queues ( #2001 )
2026-07-28 15:46:16 +01:00
Carlos Florêncio
6ffb23c187
fix: harden background work lifecycle tracking ( #1955 )
2026-07-26 14:18:35 +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
point-source
dba2057590
feat: accept input while a session's foreground turn waits on background work ( #1668 )
2026-07-25 18:08:35 +01:00
Carlos Florêncio
e9634fa636
feat: allow detaching subtasks from parent tasks ( #1781 )
2026-07-18 21:19:05 +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
Carlos Florêncio
248e8bf48e
feat: add workflow WIP pull system ( #1613 )
2026-07-13 12:18:57 +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
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
Carlos Florêncio
3f922d3911
fix(web): sort kanban cards by newest created ( #1298 )
2026-06-07 22:55:42 +01:00
João Salavisa
8df1bda87b
fix(web): show tasks from all workflows in the mobile task-switcher sheet ( #1025 )
...
* fix(web): show tasks from all workflows in the mobile task-switcher sheet
The mobile sheet read tasks via useTasks(workflowId), which gated on
kanban.workflowId === workflowId and returned [] otherwise. On a fresh
/t/[id] load the gate often failed (or the snapshot fetch was still in
flight / silently failing) and the sheet rendered "No tasks yet."
Align mobile with desktop: read from kanbanMulti.snapshots via a new
shared useWorkspaceSidebarTasks hook that does the per-workspace
aggregation (incl. the active-kanban fallback), and pass workflows +
stepsByWorkflowId through so the existing TaskSwitcher grouping kicks
in. The desktop sidebar now delegates to the same hook.
* refactor(web): address review comments on PR #1025
- Extract findTaskInSnapshots to task-select-helpers.ts (shared between
desktop sidebar and mobile sheet). Mobile passes kanban.tasks as the
optional fallback so it still locates tasks that arrived via WS before
the snapshot fetch landed.
- Build workflowNameById from the already-scoped `workflows` array instead
of the raw, unscoped kanbanMulti.snapshots. Stops the memo from re-running
on snapshot updates from other workspaces and removes the risk of a stale
workflow name leaking across a workspace switch. Same fix in both the
desktop sidebar and the mobile sheet.
- Collapse the duplicated workflow filter in useWorkspaceSidebarTasks into
a single `filteredWorkflows` memo.
* fix(web): empty scope when workspaceId is unresolved in mobile/desktop sidebar hook
When `useWorkspaceSidebarTasks` was called with a null workspaceId (the
initial SSR / pre-hydration state on /t/[id]) it would widen to every
workflow in the store, briefly leaking snapshots from previously-active
workspaces into the sidebar. Return an empty scope until the workspace
resolves instead, matching the "no cross-workspace bleed" intent of the
original useScopedAggregation comment.
Adds a regression test, plus splits the test file's describe block so the
linter's 100-lines-per-function cap doesn't trip.
* refactor(web): consolidate findTaskInSnapshots and drop unused useSheetData.steps
- Reuse the canonical helper in `lib/kanban/find-task.ts` instead of
duplicating it in `task-select-helpers.ts`. Extend the canonical one
with an optional `fallbackTasks` parameter so the mobile sheet can still
locate tasks via `state.kanban.tasks` when the snapshot fetch hasn't
landed yet — desktop call sites continue to omit the fallback.
- `useSheetData` was returning the raw active-kanban `steps` slice next
to the already-mapped `dialogSteps`. The sheet component only consumes
`dialogSteps`; drop the unused field.
* test(web): add unit tests for findTaskInSnapshots fallback path
* fix(web): pass active-kanban fallback into desktop sidebar task lookups
useWorkspaceSidebarTasks can render tasks from the active kanban slice
before kanbanMulti.snapshots catches up, but the desktop sidebar's
archive/delete/select handlers were searching snapshots only — leaving
fallback-only tasks unresolved during the snapshot race window. Pass
state.kanban.tasks into findTaskInSnapshots in all three handlers so
the dialogs find the right title and selectTaskWithLayout sees the task.
Also trims the multi-line comment in lib/kanban/find-task.ts to a single
line per CLAUDE.md style guidance.
---------
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-05-22 23:24:35 +01:00
Carlos Florêncio
9664e13f07
fix(web): keep "All Workflows" filter on task nav and workflow.created ( #854 )
2026-05-08 21:23:48 +01:00