+
{label}
diff --git a/packages/vscode-ide-companion/src/webview/components/toolcalls/shared/SimpleTimeline.css b/packages/vscode-ide-companion/src/webview/components/toolcalls/shared/SimpleTimeline.css
new file mode 100644
index 00000000..62b3ef3d
--- /dev/null
+++ b/packages/vscode-ide-companion/src/webview/components/toolcalls/shared/SimpleTimeline.css
@@ -0,0 +1,50 @@
+/**
+ * @license
+ * Copyright 2025 Qwen Team
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Simplified timeline styles for tool calls
+ */
+
+/* Basic timeline container */
+.simple-toolcall-container {
+ position: relative;
+ padding-left: 30px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+
+/* Timeline connector - simple version */
+.simple-toolcall-container::after {
+ content: '';
+ position: absolute;
+ left: 12px;
+ top: 0;
+ bottom: 0;
+ width: 1px;
+ background-color: var(--app-primary-border-color);
+ z-index: 1;
+}
+
+/* First item connector starts lower */
+.simple-toolcall-container:first-child::after {
+ top: 24px;
+}
+
+/* Last item connector ends higher */
+.simple-toolcall-container:last-child::after {
+ height: calc(100% - 24px);
+ top: 0;
+ bottom: auto;
+}
+
+/* Bullet point */
+.simple-toolcall-container::before {
+ content: '\25cf';
+ position: absolute;
+ left: 8px;
+ padding-top: 2px;
+ font-size: 10px;
+ color: var(--app-secondary-foreground);
+ z-index: 2;
+}
diff --git a/packages/vscode-ide-companion/src/webview/styles/ClaudeCodeStyles.css b/packages/vscode-ide-companion/src/webview/styles/ClaudeCodeStyles.css
index 21876a1f..752e3172 100644
--- a/packages/vscode-ide-companion/src/webview/styles/ClaudeCodeStyles.css
+++ b/packages/vscode-ide-companion/src/webview/styles/ClaudeCodeStyles.css
@@ -12,6 +12,8 @@
@import '../components/PlanDisplay.css';
@import '../components/toolcalls/shared/DiffDisplay.css';
@import '../components/messages/AssistantMessage.css';
+@import '../components/messages/SimpleTimeline.css';
+@import '../components/toolcalls/shared/SimpleTimeline.css';
/* ===========================
diff --git a/packages/vscode-ide-companion/src/webview/styles/SelectorTest.css b/packages/vscode-ide-companion/src/webview/styles/SelectorTest.css
new file mode 100644
index 00000000..844af6b0
--- /dev/null
+++ b/packages/vscode-ide-companion/src/webview/styles/SelectorTest.css
@@ -0,0 +1,35 @@
+/**
+ * @license
+ * Copyright 2025 Qwen Team
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * CSS Selector Compatibility Test
+ */
+
+/* Test 1: Basic first-child and last-child selectors */
+.test-container:first-child::after {
+ content: "FIRST";
+ color: red;
+}
+
+.test-container:last-child::after {
+ content: "LAST";
+ color: blue;
+}
+
+.test-container:first-child:last-child::after {
+ content: "ONLY";
+ color: green;
+}
+
+/* Test 2: Simple sibling selectors */
+.test-container + .test-container::before {
+ content: "SIBLING";
+ color: orange;
+}
+
+/* Test 3: Not selector */
+.test-container:not(.special)::after {
+ content: "NOT SPECIAL";
+ color: purple;
+}
\ No newline at end of file
diff --git a/packages/vscode-ide-companion/tailwind.config.js b/packages/vscode-ide-companion/tailwind.config.js
index 055eb369..a6994918 100644
--- a/packages/vscode-ide-companion/tailwind.config.js
+++ b/packages/vscode-ide-companion/tailwind.config.js
@@ -29,9 +29,15 @@ export default {
'0%': { opacity: '0', transform: 'translateY(4px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
+ // Pulse animation for in-progress tool calls
+ 'pulse-slow': {
+ '0%, 100%': { opacity: '1' },
+ '50%': { opacity: '0.5' },
+ },
},
animation: {
'completion-menu-enter': 'completion-menu-enter 150ms ease-out both',
+ 'pulse-slow': 'pulse-slow 1.5s ease-in-out infinite',
},
colors: {
qwen: {