feat(desktop): add hunk-level review controls

This commit is contained in:
DragonnZhang 2026-04-25 11:11:30 +08:00
parent a8dfa18598
commit c3bc36fde1
13 changed files with 1071 additions and 89 deletions

View file

@ -109,5 +109,24 @@ under ignored
This harness covers renderer/CDP observability and the main P0 workbench paths,
but it is a development E2E smoke using fake ACP. Final MVP verification still
needs the remaining review/terminal polish called out in the implementation
plan.
needs the remaining terminal polish and final packaging smoke called out in the
implementation plan.
## Iteration 10 Review Path Extension
The CDP harness now also exercises the hunk review surface after opening the
temporary Git workspace:
- waits for a visible Accept Hunk control in the Review panel;
- clicks Accept Hunk and verifies the hunk state changes to Accepted;
- adds an inline review note for `README.md`;
- continues through session creation, permission approval, settings save, and
project-scoped terminal output.
Execution result:
- `npm run e2e:cdp --workspace=packages/desktop` passed.
- Passing run artifacts:
`.qwen/e2e-tests/electron-desktop/artifacts/2026-04-25T03-08-06-087Z/`.
- The passing run reported no renderer console errors or failed network
requests.

View file

@ -39,25 +39,36 @@ Slice 12 basic diff review and commit.
## Automated Coverage Added This Iteration
The full Electron E2E harness is still pending. This iteration added
server-level coverage in `packages/desktop/src/server/index.test.ts`:
Iteration 10 extended the server and Electron E2E coverage:
- opens a registered project and reads `/git/diff`;
- verifies modified and untracked files are returned with diff text;
- verifies changed files include typed hunk metadata;
- stages all changes and verifies status counts;
- stages one hunk from a multi-hunk tracked file and verifies only that hunk is
accepted into the index;
- reverts a remaining unstaged hunk and verifies the file content is restored
while the accepted hunk remains staged;
- commits staged changes and verifies a clean status;
- reverts all changes and verifies the workspace returns to the initial file
content.
- launches Electron through `npm run e2e:cdp --workspace=packages/desktop`,
opens a temporary Git workspace, clicks Accept Hunk, verifies the accepted
state, adds an inline review note, and continues through the existing
permission/settings/terminal smoke.
## Execution Results
- `npm run test --workspace=packages/desktop` passed: 8 files, 50 tests.
- `npm run test --workspace=packages/desktop` passed: 9 files, 54 tests.
- `npm run typecheck --workspace=packages/desktop` passed.
- `npm run lint --workspace=packages/desktop` passed.
- `npm run build --workspace=packages/desktop` passed.
- `npm run e2e:cdp --workspace=packages/desktop` passed with artifacts under
`.qwen/e2e-tests/electron-desktop/artifacts/2026-04-25T03-08-06-087Z/`.
## Remaining Risk
Hunk-level accept/revert, inline comments, Open in Editor, and real Electron
renderer assertions are not complete yet. They remain required before the MVP
can be marked done.
renderer assertions now have initial coverage. Remaining review risk is around
complex Git states such as renames, binary files, conflicting stale hunks, and
persisting review comments beyond the local renderer session.