Commit Graph

327 Commits

Author SHA1 Message Date
Carlos Florêncio 82eb59d91e fix: disable plan mode when moving to next workflow step (#525) 2026-04-03 15:07:46 +01:00
Carlos Florêncio 12310e12ba fix: show Push button when task has open PR and unpushed commits (#537) 2026-04-03 15:03:05 +01:00
Carlos Florêncio 75aad972a7 fix: increment CI checks elapsed time for in-progress runs in PR panel (#529) 2026-04-03 14:29:02 +01:00
Carlos Florêncio 2238ef0825 feat: prioritize local changes above PR files in changes panel (#528) 2026-04-03 14:28:28 +01:00
Carlos Florêncio dbe778e4e8 feat: auto-show PR details panel when task has associated PR (#517) 2026-04-02 00:08:35 +01:00
Carlos Florêncio 1c6506911e feat: add workflow sorting with drag-and-drop reordering (#520) 2026-04-01 23:58:43 +01:00
Carlos Florêncio beb42acc29 feat: expose hidden keybindings in settings for user customization (#521) 2026-04-01 23:29:49 +01:00
Carlos Florêncio 1587203c2e fix(web): add max-height and scrollbar to queue message editor textarea (#519) 2026-04-01 23:03:20 +01:00
Carlos Florêncio 6fea6277a8 fix: hide start agent button during preparation and fix auto-start race condition on step move (#516) 2026-04-01 23:00:05 +01:00
Carlos Florêncio 348ee25e6f feat: disable branch selector for local executor and implement base branch checkout (#515) 2026-04-01 22:55:02 +01:00
Carlos Florêncio 5fb1c12364 fix: stabilize diff viewer fileRefs to prevent auto-scroll on background updates (#513) 2026-04-01 22:53:47 +01:00
Carlos Florêncio f4723ebcae feat: sort tasks by creation date in kanban and sidebar (#511) 2026-03-31 23:31:18 +01:00
Carlos Florêncio c732675f33 fix(github): workspace-scoped PR data loading with cache and singleflight (#509) 2026-03-31 22:56:09 +01:00
Carlos Florêncio b832390914 fix: preserve task status when resuming agent after backend restart (#508) 2026-03-31 22:37:31 +01:00
Carlos Florêncio 1cd3a6b800 feat(web): rename sidebar sections to "Turn Finished" and "Running" (#506) 2026-03-31 21:01:51 +01:00
Carlos Florêncio c56dfe8537 feat(github): move PR monitoring to backend with lightweight polling (#502) 2026-03-30 23:26:01 +01:00
Carlos Florêncio 59ee830d71 feat(web): unified commit list and dockview panel fix (#500) 2026-03-30 22:44:10 +01:00
Carlos Florêncio 54b8d2939b fix(web): invalidate diff expansion cache when file changes (#501) 2026-03-30 21:17:49 +01:00
Carlos Florêncio db816d4222 fix(web): deduplicate agent and session tabs in task view (#496) 2026-03-30 12:19:55 +01:00
Carlos Florêncio 81341263fd feat(terminal): fix bottom padding and add font family setting (#489) 2026-03-29 22:27:37 +01:00
Carlos Florêncio 3a50cf42e5 fix(web): show both send and cancel buttons when agent is busy (#487) 2026-03-29 22:13:39 +01:00
Carlos Florêncio acd2b9770d fix(web): hide duplicate local commits when PR commits exist (#494) 2026-03-29 22:11:42 +01:00
Carlos Florêncio 06b82f5452 feat(ui): add proceed button to advance task to next workflow step (#486) 2026-03-29 17:04:37 +01:00
Carlos Florêncio 5f833dc5fa feat(settings): add dedicated Utility Agents settings page (#484) 2026-03-29 16:18:05 +01:00
José Almeida d1a028fdb6 feat: introduce subtasks, allow sessions to task reuse executor (#419) 2026-03-29 15:33:40 +01:00
Carlos Florêncio 82d5168b67 refactor: centralize default prompts and fix PR review scoping (#476) 2026-03-28 16:51:24 +00:00
Carlos Florêncio 7da6550093 fix(orchestrator): fail session with guidance when PR branch is missing (#466) 2026-03-26 19:35:17 +00:00
José Almeida 7d900fea91 feat(vcs): add commit body field and AI generation for commit description and PR title (#465)
* feat(vcs): add commit body/description field to commit dialog

Add an optional description textarea below the commit title in both
desktop and mobile commit dialogs, with a dedicated AI generate button
for the description. Add builtin-commit-description utility agent and
E2E test.

* style: fix prettier formatting in mobile git controls and E2E test

* fix(e2e): use specific testid selectors for commit dialog inputs

The commit dialog now has two textboxes (title + body), so
getByRole("textbox") is ambiguous. Use getByTestId selectors
and add exact match for the Commit button.

* fix(ui): add cursor-pointer to mobile commit button

* fix(ui): remove "(optional)" from description label and "Generate" text from button

* fix(ui): match PR dialog style for commit description generate button

* feat(vcs): add AI generate button for PR title

Add builtin-pr-title utility agent and wire up a generate button
inside the PR title input, matching the commit title pattern.
Extract shared dialog field components into vcs-dialog-fields.tsx
to stay within the 600-line file limit.

* refactor(ui): unify generate buttons as icon-only sparkles inside inputs

Move AI generate buttons inside both title inputs and description
textareas (top-right corner) for a consistent look. Remove the
"Generate" label variant — all buttons are now icon-only sparkles.

* style: fix prettier formatting in utility agent generator hook

* fix(a11y): add aria-labels to generate buttons and PR title input

* ci: retrigger E2E tests

* fix(e2e): improve commit dialog button click reliability

Add exact match and enabled check before clicking the dialog
Commit button, increase close timeout.

* ci: retrigger checks

* fix(e2e): improve pre-hooks test commit button reliability

Add exact match, enabled check, and longer dialog timeout to match
the commit-body test pattern.

* fix(ui): prevent dialog field overflow and improve commit description prompt

- Add min-w-0 to relative wrappers in commit and PR dialog fields to
  prevent text inputs/textareas from overflowing the dialog bounds
- Rewrite commit description prompt to use system-role framing that
  prevents weaker models from adding conversational preamble
2026-03-26 13:24:30 +00:00
Carlos Florêncio ec01a55354 fix(web): prevent dockview layout from not filling viewport after session switch (#471) 2026-03-26 10:04:04 +00:00
Carlos Florêncio 1212326c39 fix(web): add queued message indicator to quick chat and e2e tests (#470) 2026-03-26 10:01:57 +00:00
Carlos Florêncio 1b0df388ef fix(web): wrap long lines in markdown chat messages (#469) 2026-03-25 23:00:15 +00:00
José Almeida fde262a481 feat(web): add collapsible sections to changes panel (#457)
* feat(web): add collapsible sections to changes panel

Sections (Unstaged, Staged, Commits, PR Changes, PR Commits) can now
be collapsed/expanded by clicking the section header or chevron arrow.
Includes Playwright E2E test validating collapse and expand behavior.

* fix(web): add aria-expanded to collapsible section toggles

Addresses CodeRabbit review: adds aria-expanded attribute to section
toggle buttons for screen reader support, and asserts the attribute
in the E2E test.

* fix(web): render section toggle as button only when collapsible

Non-collapsible sections keep a plain <span> label to avoid
ambiguous getByRole("button") matches in E2E tests (e.g. "Commit"
action button vs "Commits (0)" section header).

* fix(web): use exact match for Commit button in pre-hooks E2E test

The collapsible "Commits" section toggle button now matches
getByRole("button", { name: "Commit" }) via substring. Use exact
matching to only target the action button.
2026-03-25 08:19:53 +00:00
Carlos Florêncio edf4583b90 feat(web): collapse chat input toolbar items into overflow menu when narrow (#459) 2026-03-25 00:33:28 +00:00
Carlos Florêncio fb5886600a feat(web): add markdown preview mode and PR screenshot capture (#461) 2026-03-24 23:38:02 +00:00
Carlos Florêncio df70eee749 fix(web): merge chat status bar into single row and switch task on archive (#460) 2026-03-24 23:22:20 +00:00
João Salavisa 7f956d2f82 feat(web): add image and file paste/drop support to task creation dialog (#453) 2026-03-23 23:51:14 +00:00
João Salavisa b1c848ed80 fix(ui): persist task creation draft when modal closes (#455) 2026-03-23 21:16:41 +00:00
João Salavisa 12bd67ff80 fix: prevent template step events from overwriting backend step_id UUIDs (#451) 2026-03-23 15:34:34 +00:00
João Salavisa 0d03825a49 fix(web): sanitize mermaid code to handle special characters (#444) 2026-03-23 08:36:31 +00:00
José Almeida 3426eb5f6f fix(terminal): improve keyboard navigation for macOS shortcuts (#448) 2026-03-19 12:02:33 +00:00
José Almeida f06577e989 fix: include uncommitted changes in review dialog cumulative diff (#447)
* fix: include uncommitted changes in review dialog cumulative diff

The review dialog only showed uncommitted changes instead of the full
diff from the task's base commit. Two issues combined:

1. Backend used `git diff base..HEAD` (committed only); changed to
   `git diff base` which compares against the working tree.
2. Frontend gave priority to git status over cumulative diff; reversed
   the merge order so cumulative diff takes precedence.

Adds E2E test with a mock-agent scenario that commits changes then
leaves uncommitted modifications, verifying the review dialog shows
the complete base→working-tree diff.

* fix(e2e): remove incorrect BASE_CONTENT assertion in review cumulative diff test

The file is created after the base commit, so the entire file shows as
added in the cumulative diff. BASE_CONTENT was replaced and doesn't
appear. The key assertion is that COMMITTED_CHANGE is visible — proving
the diff includes committed changes (not just the uncommitted portion).

* fix: address CodeRabbit review feedback

- Update 3 docstrings to reflect working-tree diff (not HEAD)
- Generate scenario list dynamically in error message
- Use data-testid selector in E2E test for resilience

* style: format E2E test file

* fix(e2e): use toContainText and click file to ensure diff is scrollable

Pierre diff viewer content inside a scroll container may not be
considered "visible" by Playwright. Switch to toContainText which
checks text presence without element-level visibility. Also click
the file in the tree to ensure its diff section is scrolled into view.
2026-03-18 00:24:10 +00:00
José Almeida 6df276e392 fix(ui): show create new task command in dock view command palette (#446) 2026-03-17 23:35:56 +00:00
João Salavisa dd77811f0d fix(web): prevent mermaid false positive detection (#443) 2026-03-17 14:40:53 +00:00
João Salavisa 63efc85dd1 feat: make quick chats independent of workflows (#434) 2026-03-15 10:50:50 +00:00
Carlos Florêncio 6d71e27bee fix: add timeouts to agent discovery, health checks, and GitHub CLI (#440) 2026-03-14 23:09:30 +00:00
Carlos Florêncio 74bba464b3 fix(settings): show confirmation dialog when deleting agent profile with active sessions (#441) 2026-03-14 22:06:58 +00:00
Carlos Florêncio 083b2b5bb0 fix(acp): improve claude acp tool messages and model selector flow (#442) 2026-03-14 21:58:31 +00:00
Carlos Florêncio aba9271fd5 fix: async workspace preparation and worktree branch fallback (#433) 2026-03-14 12:00:35 +00:00
João Salavisa 50e19bcdac feat(settings): move utility agents to main agents page (#436)
* feat(settings): move utility agents to main agents page

- Extract utility agents section into reusable component
- Add utility agents section to main agents settings page
- Remove separate utility agents page and sidebar link
- Consolidate all agent-related settings in one location

* style: format utility-agents-section.tsx with prettier

* fix: add error handling for utility agents operations

- Add try/catch with rollback for handleDefaultChange
- Add try/catch for onDelete to prevent UI inconsistency on failure

Addresses CodeRabbit review comments.
2026-03-14 10:10:16 +00:00
Carlos Florêncio 0c77056304 fix: server-side task ID injection for plan tools and UI polish (#431) 2026-03-13 11:53:42 +00:00