Commit graph

5631 commits

Author SHA1 Message Date
DragonnZhang
4e64dae91c feat(desktop): compact sidebar and topbar chrome 2026-04-26 11:40:01 +08:00
DragonnZhang
6c59e2bc96 feat(desktop): compact conversation message typography 2026-04-26 11:30:09 +08:00
DragonnZhang
b780f07224 feat(desktop): compact agent activity rails 2026-04-26 11:21:55 +08:00
DragonnZhang
5eb9024048 feat(desktop): compact composer and changes summary 2026-04-26 11:11:42 +08:00
DragonnZhang
2f9464f034 feat(desktop): validate branch creation inline 2026-04-26 11:00:34 +08:00
DragonnZhang
911a320890 feat(desktop): create branches from topbar menu 2026-04-26 10:48:59 +08:00
DragonnZhang
5b4d11aee4 feat(desktop): add safe branch switching 2026-04-26 10:26:24 +08:00
DragonnZhang
a57bef37e2 feat(desktop): slim topbar context chrome 2026-04-26 10:01:59 +08:00
DragonnZhang
18d5552cc3 feat(desktop): align sidebar app rail 2026-04-26 09:48:33 +08:00
DragonnZhang
3bf70ebb57 feat(desktop): align tool activity timeline styling 2026-04-26 09:39:25 +08:00
DragonnZhang
ffd20b98a5 fix(desktop): lighten conversation timeline surfaces 2026-04-26 09:29:09 +08:00
DragonnZhang
5d678331d8 fix(desktop): keep compact review drawer usable 2026-04-26 06:53:27 +08:00
DragonnZhang
c8d5b7e921 fix(desktop): tighten compact conversation layout 2026-04-26 02:33:06 +08:00
DragonnZhang
c4db66afdd fix(desktop): bound dense assistant file reference chips 2026-04-26 02:18:55 +08:00
DragonnZhang
8dfe504f86 feat(desktop): add assistant message actions 2026-04-26 02:12:15 +08:00
DragonnZhang
838f53c608 feat(desktop): render rich tool activity cards 2026-04-26 01:59:45 +08:00
DragonnZhang
7215769bfa feat(desktop): render approvals inline in conversation 2026-04-26 01:50:13 +08:00
DragonnZhang
5d12dc4f92 feat(desktop): reorganize settings information architecture 2026-04-26 01:41:00 +08:00
DragonnZhang
1382c48dbf feat(desktop): add inline changed-files summary 2026-04-26 01:29:40 +08:00
DragonnZhang
4375d92283 feat(desktop): confirm review discard actions 2026-04-26 01:19:30 +08:00
DragonnZhang
f640c4ea9d feat(desktop): attach terminal output to composer 2026-04-26 01:10:37 +08:00
DragonnZhang
3f007a350a feat(desktop): collapse terminal into status strip 2026-04-26 01:02:37 +08:00
DragonnZhang
5185c733fc feat(desktop): open review as workbench drawer 2026-04-26 00:53:20 +08:00
DragonnZhang
8a0bac63b4 feat(desktop): create threads from project composer 2026-04-26 00:42:30 +08:00
DragonnZhang
3ae4e92f63 refactor: remove outdated status and task breakdown sections from implementation plan 2026-04-26 00:29:06 +08:00
DragonnZhang
e007eb9e56 feat(desktop): update home image for improved design 2026-04-26 00:16:56 +08:00
DragonnZhang
c3a989e15a feat(desktop): polish project sidebar 2026-04-25 23:50:42 +08:00
DragonnZhang
d772bf8b56 Open settings as a full desktop page 2026-04-25 23:44:53 +08:00
DragonnZhang
e79ec02196 refactor: update ACP channel handling and improve error normalization
- Changed default channel from 'Desktop' to 'ACP' in AcpProcessClient and related interfaces.
- Updated tests to reflect new channel naming and added support for CLI channel overrides.
- Enhanced error handling in SessionSocketHub to normalize error responses for better clarity.
- Modified session creation and loading responses to include 'cwd' in the session object.
- Added a new test case to surface ACP prompt errors as structured protocol objects.
2026-04-25 13:57:05 +08:00
DragonnZhang
cf400d518b test(desktop): cover commit flow in cdp smoke 2026-04-25 12:57:16 +08:00
DragonnZhang
78dad5d0ab feat(desktop): send terminal output to ai 2026-04-25 12:47:51 +08:00
DragonnZhang
c3bc36fde1 feat(desktop): add hunk-level review controls 2026-04-25 11:12:27 +08:00
DragonnZhang
a8dfa18598 test(desktop): add electron cdp e2e harness 2026-04-25 10:57:14 +08:00
DragonnZhang
f9fc432b8e feat(desktop): componentize workspace shell 2026-04-25 10:35:10 +08:00
DragonnZhang
f2bdecc489 docs(desktop): record iteration verification 2026-04-25 10:22:11 +08:00
DragonnZhang
634b927cdb feat(desktop): add scoped terminal drawer 2026-04-25 10:20:35 +08:00
DragonnZhang
39edf57e6d feat(desktop): add diff review commit flow 2026-04-25 10:15:33 +08:00
DragonnZhang
82c6675d09 docs(desktop): add electron architecture reference 2026-04-25 10:09:52 +08:00
DragonnZhang
bd78ab93fc feat(desktop): add cdp observability 2026-04-25 10:09:30 +08:00
DragonnZhang
9fadbd5919 feat(desktop): add project git status 2026-04-25 10:05:37 +08:00
DragonnZhang
b5d089488a feat(desktop): add packaging smoke 2026-04-25 03:38:17 +08:00
DragonnZhang
6e35f4c78e feat(desktop): add settings and model controls 2026-04-25 03:28:17 +08:00
DragonnZhang
b7528eca1e feat(desktop): add permission websocket bridge 2026-04-25 03:10:30 +08:00
DragonnZhang
bbab16f3b8 feat(desktop): complete session websocket chat loop 2026-04-25 03:04:14 +08:00
DragonnZhang
9b0ec190e7 feat(desktop): add session websocket prompt loop 2026-04-25 02:52:14 +08:00
DragonnZhang
2c614deb2e feat(desktop): add session rest api 2026-04-25 02:47:43 +08:00
DragonnZhang
ca8ed0bcb5 feat(desktop): add acp process client 2026-04-25 02:43:01 +08:00
DragonnZhang
132269fff4 feat(desktop): expose runtime status 2026-04-25 02:37:54 +08:00
DragonnZhang
0d22a60847 feat(desktop): add workspace skeleton 2026-04-25 02:34:39 +08:00
易良
202be6ec7d
feat(vscode): expose /skills as slash command with secondary picker (#2548)
Some checks are pending
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
* feat(vscode): expose /skills as slash command with secondary picker

Add a secondary completion picker for the /skills slash command in the
VSCode IDE companion, allowing users to browse and select skills from
a dropdown before sending.

Changes:
- CLI: add 'skills' to ALLOWED_BUILTIN_COMMANDS_NON_INTERACTIVE whitelist
- CLI: send available_skills_update via ACP with skill names/descriptions
- Extension: handle available_skills_update in session update handler
- Webview: implement secondary picker that triggers after selecting /skills
- Webview: allow spaces in completion trigger for /skills sub-queries

Closes #1562

Made-with: Cursor

* feat(vscode-ide-companion): embed skills in commands update metadata

- Move available skills from separate session update to _meta field of
  available_commands_update for more efficient delivery
- Simplify skill data to just skill names (string array)
- Add skillsCompletion utility for secondary picker logic
- Cache available skills in WebViewProvider for replay on webview ready
- Update all related types and handlers to support the new structure

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* refactor(vscode-ide-companion): simplify skills picker flow

* refactor(vscode-ide-companion): extract skills completion utils to shared module

Move `isSkillsSecondaryQuery`, `shouldOpenSkillsSecondaryPicker`, and
`SKILL_ITEM_ID_PREFIX` from App.tsx and useCompletionTrigger.ts into a
shared `completionUtils.ts` file to eliminate duplication.

* fix(vscode-ide-companion): restore skills picker state on reload

Cache and replay available skills when the webview becomes ready again.

Clear stale skills when commands metadata does not include availableSkills.

* fix(vscode-ide-companion): replay slash commands after webview reload

Cache available commands in the webview provider.

Replay them on webviewReady so slash command state survives reloads.

* fix(vscode-ide-companion): import AvailableCommand from ACP SDK

* fix(vscode-ide-companion): fallback /skills to direct command

* test(vscode-ide-companion): cover skills secondary picker flow

* test(vscode-ide-companion): guard App mock initialization

* fix(vscode-ide-companion): remove duplicate AvailableCommand import

The auto-merge introduced a duplicate AvailableCommand in the
@agentclientprotocol/sdk import block, causing TS2300.

* fix(vscode-ide-companion): remove duplicate availableCommands replay in handleWebviewReady

The handleWebviewReady method was sending cachedAvailableCommands twice
on every webview-ready handshake, causing an unnecessary extra state
update in the webview.

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-24 23:28:53 +08:00