diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 723196d..c5d27fc 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -69,6 +69,9 @@ jobs:
- name: Publish to vsce
run: npx vsce publish --pat ${{ secrets.VSCODE_PUBLISH_PAT }}
+ - name: Publish to OpenVSIX
+ run: npx ovsx publish --pat ${{ secrets.OPENVSIX_PUBLISH_TOKEN }}
+
- name: Extract version from package.json
id: get_version
run: |
diff --git a/media/webview.js b/media/webview.js
index 59e052f..8825041 100644
--- a/media/webview.js
+++ b/media/webview.js
@@ -10,6 +10,7 @@ class TestDriverWebview {
this.emptyState = document.getElementById('emptyState');
this.isRunning = false;
this.streamingMessages = new Map();
+ this.showSuggestedAfterExample = false; // Track if we should show suggested prompts after example
this.init();
}
@@ -223,6 +224,9 @@ class TestDriverWebview {
case 'showInputAndRunButton':
this.showInputAndRunButton();
break;
+ case 'showSuggestedPromptsAfterExample':
+ this.showSuggestedPromptsAfterExample();
+ break;
case 'error':
this.addMessage(message.data, 'error', '❌');
this.isRunning = false;
@@ -252,7 +256,11 @@ class TestDriverWebview {
}
addMessage(content, type = 'assistant', _avatar = '🤖') {
- this.hideEmptyState();
+ // Only hide empty state if we're not showing suggested prompts after example
+ // or if this is a user message (which should always hide empty state)
+ if (!this.showSuggestedAfterExample || type === 'user') {
+ this.hideEmptyState();
+ }
const messageDiv = document.createElement('div');
messageDiv.className = `message ${type}`;
@@ -328,6 +336,12 @@ class TestDriverWebview {
return;
}
+ // If we're showing suggested prompts after example, hide them now on first user message
+ if (this.showSuggestedAfterExample) {
+ this.hideEmptyState();
+ this.showSuggestedAfterExample = false;
+ }
+
this.addMessage(message, 'user');
this.chatInput.value = '';
this.isRunning = true;
@@ -670,6 +684,28 @@ class TestDriverWebview {
}
}
+ showSuggestedPromptsAfterExample() {
+ // Set flag to show suggested prompts and keep them visible until first user message
+ this.showSuggestedAfterExample = true;
+
+ // Ensure the empty state is visible with suggested prompts
+ if (this.emptyState) {
+ this.emptyState.style.display = 'flex';
+
+ // Restore the complete empty state HTML with the correct suggested prompts
+ this.emptyState.innerHTML = `
+
+
Example copied successfully!
+
Your test file has been created. Try one of these prompts to get started: