@volter/supercode-frontend-vscode 0.1.55 → 0.1.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -88,6 +88,11 @@ the pinned workbench's [first-send materialization](https://github.com/volter-ai
88
88
  and [draft acceptance](https://github.com/volter-ai/code-oss/blob/f16dc165c0dffe701a7bbf59aefb1c662b206cee/src/vs/workbench/contrib/chat/browser/widget/chatWidget.ts#L3493)
89
89
  paths. A failed startup leaves the draft available to retry.
90
90
 
91
+ New Chat highlights the agent from the focused conversation (or an already
92
+ chosen draft) before opening the blank chat. With no matching choice it keeps
93
+ the host/native default. This is a source correction with
94
+ [real Chat qualification still open](../../docs/evidence/chat-agent-picker-focus-2026-10-09.md).
95
+
91
96
  The pending agent/model choice belongs to that blank chat's untitled resource
92
97
  and is retired when another conversation opens. Cancelling or opening sign-in
93
98
  does not choose an agent. Readiness polling continues to discover
package/dist/extension.js CHANGED
@@ -948,7 +948,9 @@ export async function activate(context) {
948
948
  quick.title = title;
949
949
  quick.placeholder = placeholder;
950
950
  quick.items = items;
951
- quick.activeItems = items.filter(item => item.id === currentId);
951
+ // Agent choices can also contain a model-configuration row with the same
952
+ // harness id. The ordinary agent row comes first; activate only that row.
953
+ quick.activeItems = items.filter(item => item.id === currentId).slice(0, 1);
952
954
  return new Promise(resolve => {
953
955
  quick.onDidAccept(() => resolve(quick.selectedItems[0]));
954
956
  quick.onDidHide(() => resolve(undefined));
@@ -1176,6 +1178,15 @@ export async function activate(context) {
1176
1178
  return;
1177
1179
  }
1178
1180
  await controls.refresh();
1181
+ // Capture the conversation's agent before opening the blank chat clears
1182
+ // focus. A saved conversation need not be the host's active runtime yet.
1183
+ const previousId = focusedResource ? boundId(focusedResource) : controls.state.activeSession;
1184
+ const previousAttachment = focusedResource && attachedIds.has(focusedResource.authority)
1185
+ ? frontends.get(focusedResource.authority) : undefined;
1186
+ const previousHarness = previousAttachment?.session.descriptor?.source_harness
1187
+ ?? draftSelection()?.harness
1188
+ ?? controls.state.sessions.find(session => session.id === previousId)?.selection.harness
1189
+ ?? controls.state.selection.harness;
1179
1190
  const agents = setupAgents(controls.state);
1180
1191
  const localChoices = agents.map(agent => ({ label: agent.name, id: agent.harness,
1181
1192
  description: agent.harness === 'codex' ? (agent.signedIn ? 'Signed in with ChatGPT' : 'Sign in with ChatGPT…')
@@ -1192,7 +1203,7 @@ export async function activate(context) {
1192
1203
  return;
1193
1204
  }
1194
1205
  await chooseNewChat(async () => {
1195
- const harness = await vscode.window.showQuickPick(choices, { title: 'New chat', placeHolder: 'Choose your coding agent' });
1206
+ const harness = await pickWithCurrent(choices, 'New chat', 'Choose your coding agent', previousHarness);
1196
1207
  if (!harness)
1197
1208
  return { kind: 'cancelled' };
1198
1209
  if (harness.configure) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@volter/supercode-frontend-vscode",
3
3
  "displayName": "Volter Harness",
4
- "version": "0.1.55",
4
+ "version": "0.1.56",
5
5
  "type": "module",
6
6
  "description": "VS Code chat-view frontend for an existing Volter Harness SDK runtime",
7
7
  "publisher": "volter-ai-dev",