apps/mobile/src/features/threads/ThreadComposer.tsx | 4 +- apps/web/package.json | 3 + apps/web/src/components/ChatMarkdown.browser.tsx | 543 ++++++++++++++++++++++++ apps/web/src/components/ChatMarkdown.tsx | 706 ++++++++++++++++++++++++++++++-- apps/web/src/components/ChatView.browser.tsx | 62 ++- apps/web/src/components/CommandPalette.tsx | 123 +++--- apps/web/src/components/ComposerPromptEditor.tsx | 22 +- apps/web/src/components/DiffPanel.tsx | 179 ++++---- apps/web/src/components/ProjectScriptsControl.tsx | 49 ++- apps/web/src/components/Sidebar.tsx | 75 ++-- apps/web/src/components/ThreadStatusIndicators.tsx | 77 ++-- apps/web/src/components/chat/ChatComposer.tsx | 163 ++++---- apps/web/src/components/chat/ChatHeader.tsx | 19 +- apps/web/src/components/chat/FileTagChip.tsx | 39 ++ apps/web/src/components/chat/MessagesTimeline.browser.tsx | 125 ++++++ apps/web/src/components/chat/MessagesTimeline.test.tsx | 3 +- apps/web/src/components/chat/MessagesTimeline.tsx | 194 +++++---- apps/web/src/components/chat/ProviderStatusBanner.tsx | 12 +- apps/web/src/components/chat/SkillInlineText.tsx | 17 +- apps/web/src/components/chat/ThreadErrorBanner.tsx | 12 +- apps/web/src/components/composerInlineChip.ts | 12 +- apps/web/src/components/settings/ConnectionsSettings.tsx | 85 ++-- apps/web/src/components/settings/KeybindingsSettings.tsx | 16 +- apps/web/src/components/ui/sidebar.tsx | 56 +-- apps/web/src/components/ui/toast.tsx | 106 +++-- apps/web/src/components/ui/tooltip.tsx | 2 +- apps/web/src/composer-editor-mentions.test.ts | 65 ++- apps/web/src/composer-editor-mentions.ts | 33 +- apps/web/src/composer-logic.test.ts | 20 + apps/web/src/composer-logic.ts | 5 +- apps/web/src/index.css | 267 ++++++++---- apps/web/src/markdown-clipboard.ts | 311 ++++++++++++++ apps/web/src/vscode-icons.ts | 29 ++ packages/shared/src/composerTrigger.test.ts | 28 +- packages/shared/src/composerTrigger.ts | 23 ++ pnpm-lock.yaml | 43 ++ 36 files changed, 2925 insertions(+), 603 deletions(-)