qwen-code/packages/web-shell/client/components
jinye 34cc1c3ede
feat(web-shell): support text file attachments in the composer (#9180)
* feat(web-shell): support text file attachments in the composer

* fix(web-shell): thread file attachments through the retry lineage and reset paths

Review feedback on #9180: the turn-error retry lineage (CancelledRetryState,
failedTurnErrorRetryRef, stash/restore sites) and the session-owner /
identity-mismatch resets managed text/images/inputAnnotations but not files,
which both dropped attachments on restored retries and could leak another
session's attachment into a retry. Also fixes stale enqueuePrompt arity in
the midTurnReconcile tests, chip a11y/truncation, and strips bidi/zero-width
characters from attachment names.

* fix(web-shell): win extension allowlist over conflicting OS MIME bindings

Round-2 review on #9180: .ts/.mts report as video/mp2t (IANA binding) and
.csv/.tsv as application/vnd.ms-excel on Windows+Office, so the non-empty
MIME early-return made the extension allowlist unreachable for flagship
source files. Extension and well-known-name (Dockerfile/Makefile/LICENSE/...)
fallbacks now apply even when a conflicting MIME is present; the downstream
NUL sniff still rejects actually-binary content. Also adds the failed-prompt
retry variant with files, the full-shape file assertion, and the
cancelled-retry no-resubmit pin from the round-2 test suggestions.
2026-08-15 16:34:20 +00:00
..
agents feat(web-shell): add workspace agent management (#7572) 2026-07-23 08:42:08 +00:00
artifacts fix(desktop): open remaining external links through the shell opener (#9111) 2026-08-14 02:14:01 +00:00
channels feat(web-shell): redesign Channel policy and workspace management (#8848) 2026-08-14 07:41:44 +00:00
dialogs fix(desktop): open remaining external links through the shell opener (#9111) 2026-08-14 02:14:01 +00:00
extensions feat(web-shell): install Extensions from archives (#8621) 2026-08-08 02:08:52 +00:00
mcp fix(desktop): open remaining external links through the shell opener (#9111) 2026-08-14 02:14:01 +00:00
messages feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
panels feat: visualize ordinary-session plan execution (#7580) 2026-08-01 10:48:30 +00:00
plugins feat(web-shell): add workspace agent management (#7572) 2026-07-23 08:42:08 +00:00
sidebar fix(web-shell): render a single archive action in the session toolbar (#9066) 2026-08-13 15:11:34 +00:00
skills feat(web-shell): add workspace agent management (#7572) 2026-07-23 08:42:08 +00:00
ui feat(web-shell): show context usage as a mini progress pill in the status bar (#8794) 2026-08-10 03:48:06 +00:00
AtMentionPanel.test.tsx feat(web-shell): support workspace file uploads (#8874) 2026-08-13 06:42:07 +00:00
AtMentionPanel.tsx feat(web-shell): support workspace file uploads (#8874) 2026-08-13 06:42:07 +00:00
BranchPickerPopover.module.css feat(web-shell): add git branch picker, commit dialog, and create PR flow (#7731) 2026-07-28 14:25:11 +00:00
BranchPickerPopover.test.tsx feat(web-shell): add git branch picker, commit dialog, and create PR flow (#7731) 2026-07-28 14:25:11 +00:00
BranchPickerPopover.tsx feat(web-shell): add contextual task panels (#7929) 2026-07-30 13:45:30 +00:00
ChatContextHeader.module.css feat(web-shell): add contextual task panels (#7929) 2026-07-30 13:45:30 +00:00
ChatContextHeader.test.tsx feat(web-shell): add contextual task panels (#7929) 2026-07-30 13:45:30 +00:00
ChatContextHeader.tsx feat(web-shell): add contextual task panels (#7929) 2026-07-30 13:45:30 +00:00
ChatEditor.module.css feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
ChatEditor.test.tsx feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
ChatEditor.tsx feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
ChatPane.module.css feat: support drag and drop img in web-shell (#8696) 2026-08-10 05:48:17 +00:00
ChatPane.test.tsx feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
ChatPane.tsx feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
Editor.keymap.test.ts feat(web-shell): add Option+Enter and Cmd+Enter newline shortcuts (#5005) 2026-06-12 13:07:56 +08:00
Editor.module.css fix(web-shell): use theme color for @ group titles (#6294) 2026-07-04 03:16:01 +00:00
ErrorBoundary.test.tsx feat(web-shell): add error boundaries so a render crash can't white-screen the embed (#5943) 2026-06-28 01:12:42 +00:00
ErrorBoundary.tsx feat(web-shell): add error boundaries so a render crash can't white-screen the embed (#5943) 2026-06-28 01:12:42 +00:00
GitBranchIndicator.test.tsx feat(web-shell): git status chip, visual working-tree diff, and sidebar git status (#7054) 2026-07-18 10:06:07 +00:00
GitBranchIndicator.tsx feat(web-shell): add git branch picker, commit dialog, and create PR flow (#7731) 2026-07-28 14:25:11 +00:00
GitModePopover.module.css feat(web-shell): add git mode selector for new session creation (#7471) 2026-07-24 03:48:43 +00:00
GitModePopover.test.tsx feat(web-shell): add git mode selector for new session creation (#7471) 2026-07-24 03:48:43 +00:00
GitModePopover.tsx fix(web-shell): keep git mode popover open when picking branch/worktree (#7668) 2026-07-24 12:36:34 +00:00
InsightProgress.module.css fix(web-shell): fix InsightProgress layout and clean up UI elements (#6115) 2026-07-01 09:00:57 +00:00
InsightProgress.tsx
InsightReady.tsx
MessageItem.dom.test.tsx feat: support fork from any conversation (#8817) 2026-08-15 10:01:49 +00:00
MessageItem.tsx feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
MessageList.dom.test.tsx feat: support fork from any conversation (#8817) 2026-08-15 10:01:49 +00:00
MessageList.module.css fix(web-shell): stabilize transcript history pagination (#8914) 2026-08-11 08:30:13 +00:00
MessageList.test.ts fix(web-shell): defer assistant footer during background agent work (#8787) 2026-08-14 06:16:46 +00:00
MessageList.tsx feat: support fork from any conversation (#8817) 2026-08-15 10:01:49 +00:00
MessageLocateFlash.module.css fix(web-shell): polish scheduled task timeline UI (#6386) 2026-07-07 04:04:28 +00:00
MessageTimestamp.module.css feat(web-shell): improve compact tool activity (#8973) 2026-08-12 12:48:08 +00:00
MessageTimestamp.test.tsx feat(web-shell): improve compact tool activity (#8973) 2026-08-12 12:48:08 +00:00
MessageTimestamp.tsx feat(web-shell): improve compact tool activity (#8973) 2026-08-12 12:48:08 +00:00
ModeIcon.module.css feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
ModeIcon.tsx feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
MonitorIcon.tsx feat(web-shell): add contextual task panels (#7929) 2026-07-30 13:45:30 +00:00
NewSessionDotField.module.css feat(web-shell): enhance composer and empty-session animations (#8098) 2026-07-31 02:20:27 +00:00
NewSessionDotField.tsx feat(web-shell): enhance composer and empty-session animations (#8098) 2026-07-31 02:20:27 +00:00
PaneHeaderActions.test.tsx feat(web-shell): add split pane header action slot with overflow (#7808) 2026-07-29 13:06:48 +00:00
PaneHeaderActions.tsx feat(web-shell): add split pane header action slot with overflow (#7808) 2026-07-29 13:06:48 +00:00
PromptChevron.tsx
QueuedPromptDisplay.test.tsx feat: support drag and drop img in web-shell (#8696) 2026-08-10 05:48:17 +00:00
QueuedPromptDisplay.tsx feat(web-shell): support text file attachments in the composer (#9180) 2026-08-15 16:34:20 +00:00
RootErrorFallback.test.tsx feat(web-shell): add error boundaries so a render crash can't white-screen the embed (#5943) 2026-06-28 01:12:42 +00:00
RootErrorFallback.tsx feat(web-shell): add error boundaries so a render crash can't white-screen the embed (#5943) 2026-06-28 01:12:42 +00:00
SessionOverviewPanel.module.css feat(web-shell): color-code each split pane by workspace (#6971) 2026-07-16 02:38:58 +00:00
SessionOverviewPanel.test.tsx feat(web-shell): Share session catalog scheduling (#8891) 2026-08-11 09:13:14 +00:00
SessionOverviewPanel.tsx feat(web-shell): Share session catalog scheduling (#8891) 2026-08-11 09:13:14 +00:00
ShadowDomBoundary.tsx feat(web-shell): add selective shadow DOM isolation (#7551) 2026-07-23 02:54:12 +00:00
SpecularComposerEffect.test.tsx fix(web-shell): stabilize mobile composer after resume (#8263) 2026-08-01 05:08:13 +00:00
SpecularComposerEffect.tsx fix(web-shell): stabilize mobile composer after resume (#8263) 2026-08-01 05:08:13 +00:00
SplitView.module.css feat(web-shell): maximize a single split pane (#6951) 2026-07-15 12:10:29 +00:00
SplitView.test.tsx feat(web-shell): Share session catalog scheduling (#8891) 2026-08-11 09:13:14 +00:00
SplitView.tsx feat(web-shell): Share session catalog scheduling (#8891) 2026-08-11 09:13:14 +00:00
StatusBar.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
StatusBar.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
StatusBar.tsx fix(web-shell): sync background agent status (#7561) 2026-07-23 06:35:04 +00:00
StreamingStatus.module.css feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
StreamingStatus.test.tsx fix(cli): align memory dialog with managed memory (#6434) 2026-07-09 01:04:56 +00:00
StreamingStatus.tsx fix(web-shell): hide rotating loading phrase in split-view pane status (#6447) 2026-07-07 11:32:59 +00:00
Tips.module.css feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
Tips.tsx
ToastHost.module.css feat(web-shell): add fullscreen view for the right artifact panel (#8614) 2026-08-09 12:41:48 +00:00
ToastHost.test.tsx feat(web-shell): add fullscreen view for the right artifact panel (#8614) 2026-08-09 12:41:48 +00:00
ToastHost.tsx fix(desktop): open external URL artifacts and markdown links (#9069) 2026-08-13 15:11:44 +00:00
toolbarDropdown.test.ts feat(web-shell): use popovers for composer controls (#6877) 2026-07-15 04:54:47 +00:00
toolbarDropdown.ts feat(web-shell): use popovers for composer controls (#6877) 2026-07-15 04:54:47 +00:00
TurnCollapseRow.module.css feat(web-shell): polish chat UI and table rendering (#6099) 2026-07-01 16:20:19 +08:00
WebShellTranscript.dom.test.tsx perf(web-shell): optimize long session rendering (#7408) 2026-07-22 03:28:47 +00:00
WebShellTranscript.test.tsx feat(webshell): replay ChatRecord history in readonly WebShell (#6999) 2026-07-19 00:09:44 +00:00
WebShellTranscript.tsx fix(web-shell): isolate component styles from host CSS (#7466) 2026-07-22 02:21:17 +00:00
WelcomeHeader.module.css feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
WelcomeHeader.tsx feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
WorkspaceAccent.module.css feat(web-shell): color-code each split pane by workspace (#6971) 2026-07-16 02:38:58 +00:00
WorkspaceIndicator.test.tsx feat(web-shell): color-code each split pane by workspace (#6971) 2026-07-16 02:38:58 +00:00
WorkspaceIndicator.tsx feat(web-shell): color-code each split pane by workspace (#6971) 2026-07-16 02:38:58 +00:00
WorkspaceSelector.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
WorkspaceSelector.tsx fix(web-shell): polish embedded shell interactions (#7477) 2026-07-22 05:21:50 +00:00
WorkspaceSessionProvider.test.tsx fix(webui): revert #8882's transactional session switching to the loading-skeleton model (#9129) 2026-08-14 08:00:25 +00:00
WorkspaceSessionProvider.tsx fix(webui): revert #8882's transactional session switching to the loading-skeleton model (#9129) 2026-08-14 08:00:25 +00:00
WorkspaceUnavailableState.tsx feat(web-shell): modernize multi-workspace sidebar (#6804) 2026-07-13 11:45:20 +00:00