qwen-code/packages/web-shell/client/components/dialogs
易良 52e0d1b364
feat(web-shell): bind plan approval to its Todo revision (#8393)
* feat(web-shell): gate session workflow behind experimental setting

* feat(web-shell): bind plan approval to todo revision

* fix(cli): clear stale workflow revision on plan entry

* test(web-shell): pin revised workflow snapshot

* fix(cli): clear stale plan revisions on restore

* fix(cli): keep replayed history from rebinding plan revisions

History replay re-sends stale plan updates through Session.sendUpdate,
re-stamping activeTodoPlanRevision from finished plan cycles. Clear the
revision after every replay path (cold replayHistory and live non-bulk
loadSession) so a replayed snapshot can never bind a later exit_plan_mode
approval; reloaded sessions fall back to text-only approval until the next
live todo_write re-establishes the binding. Also drop the bulk-load restore
that could never be read before a plan-mode transition cleared it, and pin
the workflow gates and mode-entry clears with negative tests.

* test(web-shell): pin older plan revision in ChatPane approval test (#8393)

* test(cli): pin unbindable plan updates in approval revision test (#8393)

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

* fix(cli): clear Todo plan revision on history restore (#8393)

restoreHistory was the one history-resetting path that kept
activeTodoPlanRevision, so a restored snapshot could let a stale
revision bind the next exit_plan_mode approval. Clear it like the
sibling reset paths, pin the behavior with a test, and pin the
live-load clear ordering after the replayed updates.

* fix(cli): restore Todo stop guard clear on plan re-select (#8393)

The previous-mode guard added for the revision binding also skipped the
Todo Stop Guard trust clear on a redundant plan re-select; scope the
guard to the revision reset so every transition into plan clears the
stop guard as before. The replay-time revision clears now run in
finally blocks so a transport failure part-way through a replay cannot
leave a replayed binding on the live session, and the web-shell
exit-plan approval rule is unified in one predicate. Revision tests
assert through the observable qwenTodoApproval approval metadata
instead of the private field.

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: qwen-code-dev-bot <qwen-code-dev@service.alibaba.com>
2026-08-04 14:25:50 +00:00
..
AddWorkspaceDialog.module.css fix(web-shell): correct Add Workspace dialog theming and multi-workspace session rows (#6705) 2026-07-11 11:19:32 +00:00
AddWorkspaceDialog.test.tsx feat(web-shell): add native workspace folder picker (#7849) 2026-07-28 05:58:13 +00:00
AddWorkspaceDialog.tsx feat(web-shell): add native workspace folder picker (#7849) 2026-07-28 05:58:13 +00:00
ApprovalModeDialog.module.css feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ApprovalModeDialog.test.tsx feat(web-shell): bind plan approval to its Todo revision (#8393) 2026-08-04 14:25:50 +00:00
ApprovalModeDialog.tsx feat(web-shell): gate session workflow behind experimental setting (#8391) 2026-08-03 03:14:45 +00:00
DaemonStatusDialog.module.css feat(serve): add model API error & retry metrics to daemon status (#6837) 2026-07-14 02:06:09 +00:00
DaemonStatusDialog.test.tsx feat(serve): add model API error & retry metrics to daemon status (#6837) 2026-07-14 02:06:09 +00:00
DaemonStatusDialog.tsx feat(serve): add model API error & retry metrics to daemon status (#6837) 2026-07-14 02:06:09 +00:00
DeleteSessionDialog.test.tsx feat(web-shell): add workspace path lock (#6853) 2026-07-14 06:24:52 +00:00
DeleteSessionDialog.tsx feat(web-shell): add workspace path lock (#6853) 2026-07-14 06:24:52 +00:00
DialogPrimitives.module.css feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
DialogShell.module.css fix(web-shell): make dialog backdrop z-index configurable (#6572) 2026-07-09 06:05:30 +00:00
DialogShell.test.tsx feat(web-shell): add workspace selector button with add/switch dropdown in composer toolbar (#7390) 2026-07-22 01:10:18 +00:00
DialogShell.tsx feat(web-shell): add workspace selector button with add/switch dropdown in composer toolbar (#7390) 2026-07-22 01:10:18 +00:00
dialogStyles.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
GitDialog.module.css feat(web-shell): add git branch picker, commit dialog, and create PR flow (#7731) 2026-07-28 14:25:11 +00:00
GitDialog.test.tsx feat(web-shell): add git branch picker, commit dialog, and create PR flow (#7731) 2026-07-28 14:25:11 +00:00
GitDialog.tsx feat(web-shell): add git branch picker, commit dialog, and create PR flow (#7731) 2026-07-28 14:25:11 +00:00
GitDiffDialog.module.css feat(web-shell): add git commit history browser (#7204) 2026-07-20 15:02:48 +00:00
GitDiffDialog.test.tsx fix(web-shell): enable Changes and History dialogs for worktree sessions (#7695) 2026-07-25 12:47:02 +00:00
GitDiffDialog.tsx fix(web-shell): enable Changes and History dialogs for worktree sessions (#7695) 2026-07-25 12:47:02 +00:00
GitHubPrsDialog.module.css fix(web-shell): add :focus-visible outline to GitHub PR list rows (#7704) 2026-07-25 04:10:44 +00:00
GitHubPrsDialog.test.tsx feat(web-shell): add read-only GitHub pull requests panel (#7683) 2026-07-25 02:44:50 +00:00
GitHubPrsDialog.tsx feat(web-shell): add read-only GitHub pull requests panel (#7683) 2026-07-25 02:44:50 +00:00
GitLogDialog.module.css feat(web-shell): add git commit history browser (#7204) 2026-07-20 15:02:48 +00:00
GitLogDialog.test.tsx fix(web-shell): enable Changes and History dialogs for worktree sessions (#7695) 2026-07-25 12:47:02 +00:00
GitLogDialog.tsx fix(web-shell): enable Changes and History dialogs for worktree sessions (#7695) 2026-07-25 12:47:02 +00:00
GoalsDialog.module.css feat(web-shell): add a workspace Goals page, and stop losing /goal on daemon resume (#6561) 2026-07-18 08:52:07 +00:00
GoalsDialog.test.tsx feat(web-shell): add a workspace Goals page, and stop losing /goal on daemon resume (#6561) 2026-07-18 08:52:07 +00:00
GoalsDialog.tsx feat(web-shell): add a workspace Goals page, and stop losing /goal on daemon resume (#6561) 2026-07-18 08:52:07 +00:00
HelpDialog.module.css feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
HelpDialog.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ModelDialog.module.css feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ModelDialog.test.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ModelDialog.tsx Add harness infrastructure for web-shell package (#6517) 2026-07-09 08:11:58 +00:00
ModelFallbacksDialog.dom.test.tsx feat(web-shell): editable user-scope settings and in-panel model management (#6768) 2026-07-13 14:44:54 +00:00
ModelFallbacksDialog.module.css feat(web-shell): editable user-scope settings and in-panel model management (#6768) 2026-07-13 14:44:54 +00:00
ModelFallbacksDialog.tsx feat(web-shell): editable user-scope settings and in-panel model management (#6768) 2026-07-13 14:44:54 +00:00
ReleaseSessionDialog.test.tsx feat(web-shell): add workspace path lock (#6853) 2026-07-14 06:24:52 +00:00
ReleaseSessionDialog.tsx feat(web-shell): add workspace path lock (#6853) 2026-07-14 06:24:52 +00:00
ResumeDialog.test.tsx feat(web-shell): add workspace path lock (#6853) 2026-07-14 06:24:52 +00:00
ResumeDialog.tsx feat(web-shell): add workspace path lock (#6853) 2026-07-14 06:24:52 +00:00
RewindDialog.module.css feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
RewindDialog.test.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
RewindDialog.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ScheduledTasksDialog.module.css fix(web-shell): restore scheduled task reference interactions (#7313) 2026-07-21 07:10:26 +00:00
ScheduledTasksDialog.test.tsx fix(web-shell): isolate component styles from host CSS (#7466) 2026-07-22 02:21:17 +00:00
ScheduledTasksDialog.tsx fix(web-shell): isolate component styles from host CSS (#7466) 2026-07-22 02:21:17 +00:00
scheduledTasksSchedule.test.ts feat(scheduled-tasks): run each task in its own dedicated, named session (#6389) 2026-07-07 06:22:36 +00:00
scheduledTasksSchedule.ts feat(scheduled-tasks): run each task in its own dedicated, named session (#6389) 2026-07-07 06:22:36 +00:00
SessionRow.test.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
SessionRow.tsx Add harness infrastructure for web-shell package (#6517) 2026-07-09 08:11:58 +00:00
SvgLineChart.module.css feat(web-shell): show Settings and Daemon Status as an in-place panel (#6341) 2026-07-06 05:06:46 +00:00
SvgLineChart.test.tsx feat(tui): Ctrl+O frozen transcript view and unified tool output rendering (#5666) 2026-07-09 23:40:29 +00:00
SvgLineChart.tsx feat(web-shell): time-series metrics charts on Daemon Status (#6307) 2026-07-05 03:06:09 +00:00
ThemeDialog.test.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ThemeDialog.tsx Add harness infrastructure for web-shell package (#6517) 2026-07-09 08:11:58 +00:00
TokenHeatmap.module.css feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00
TokenHeatmap.test.tsx feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00
TokenHeatmap.tsx feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00
ToolsDialog.test.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
ToolsDialog.tsx feat(web-shell): overhaul list-dialog interaction, keyboard nav & a11y (#6128) 2026-07-02 12:19:17 +00:00
UsageDashboardTab.module.css feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00
UsageDashboardTab.test.tsx feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00
UsageDashboardTab.tsx feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00