mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-29 04:00:36 +00:00
feat(desktop): render approvals inline in conversation
This commit is contained in:
parent
5d12dc4f92
commit
7215769bfa
8 changed files with 590 additions and 125 deletions
|
|
@ -0,0 +1,51 @@
|
|||
# Inline Command Approval Cards
|
||||
|
||||
- Slice date: 2026-04-26
|
||||
- Executable harness: `packages/desktop/scripts/e2e-cdp-smoke.mjs`
|
||||
- Command:
|
||||
`cd packages/desktop && npm run e2e:cdp`
|
||||
- Result: pass
|
||||
- Artifact directory:
|
||||
`.qwen/e2e-tests/electron-desktop/artifacts/2026-04-25T17-47-26-492Z/`
|
||||
|
||||
## Scenario
|
||||
|
||||
1. Launch the real Electron app with isolated HOME, runtime, user-data, and a
|
||||
fake dirty Git workspace.
|
||||
2. Open the fake project through the desktop directory picker path.
|
||||
3. Send the first composer prompt without manually creating a thread.
|
||||
4. Wait for the fake ACP command permission request.
|
||||
5. Assert the request renders as an inline conversation card with the command
|
||||
title, command preview, pending status, and approval/deny actions.
|
||||
6. Assert the old detached permission strip is absent and the body does not
|
||||
show a generic `Permission requested` event.
|
||||
7. Approve once, assert the pending card resolves, then continue the existing
|
||||
changed-files, review, settings, terminal, and final layout smoke path.
|
||||
|
||||
## Assertions
|
||||
|
||||
- The inline approval card is inside the chat timeline and stays above the
|
||||
composer without overlap.
|
||||
- The card exposes `Approve Once`, `Approve for Thread`, and `Deny` actions.
|
||||
- The card includes `Run desktop E2E command`, `printf desktop-e2e`, and a
|
||||
pending status.
|
||||
- `.permission-strip` is absent.
|
||||
- The conversation body does not contain `Permission requested`.
|
||||
- The changed-files summary appears after approval and no approval card remains.
|
||||
- Console errors: 0.
|
||||
- Failed local network requests: 0.
|
||||
|
||||
## Artifacts
|
||||
|
||||
- `inline-command-approval.json`
|
||||
- `inline-command-approval.png`
|
||||
- `conversation-changes-summary.json`
|
||||
- `completed-workspace.png`
|
||||
- `electron.log`
|
||||
- `summary.json`
|
||||
|
||||
## Known Uncovered Risk
|
||||
|
||||
The harness covers deterministic fake ACP command approval with a string command
|
||||
input. It does not yet validate live ACP approvals with structured tool input,
|
||||
ask-user free-form answer capture, or long command wrapping at compact widths.
|
||||
Loading…
Add table
Add a link
Reference in a new issue