-
Notifications
You must be signed in to change notification settings - Fork 488
feat(vscode): conversation undo with exclusive, broadcast-pushed transcript refresh #1839
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
a2daa46
f0d0669
a6a843c
5208430
cab4e6e
87c1aa1
26d2dfa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -256,21 +256,18 @@ async function applySessionSettings( | |
| legacyApproval: LegacyApprovalFlags, | ||
| ): Promise<void> { | ||
| const status = await session.getStatus(); | ||
| if (options.model && status.model !== options.model) { | ||
| await session.setModel(options.model); | ||
| } | ||
| // Thinking effort is applied only when the session is created (see | ||
| // openSession). An existing session keeps its own effort — the global | ||
| // config value is a default for new sessions, matching CLI/TUI resume | ||
| // semantics. Effort changes made in the picker reach the active session | ||
| // through the SaveConfig handler instead. | ||
| // Model and thinking effort are applied only when the session is created | ||
| // (see openSession). An existing session keeps its own — the global config | ||
| // values are defaults for new sessions, matching CLI/TUI resume semantics. | ||
| // Changes made in the pickers reach the active session through the | ||
| // SaveConfig handler instead. | ||
|
Comment on lines
+259
to
+263
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When a user selects a different model and immediately sends, the picker starts Useful? React with 👍 / 👎. |
||
| const permission = corePermissionForLegacyApproval(legacyApproval); | ||
| if (status.permission !== permission) { | ||
| await session.setPermission(permission); | ||
| } | ||
| } | ||
|
|
||
| function normalizeEffort(effort: string): ThinkingEffort { | ||
| export function normalizeEffort(effort: string): ThinkingEffort { | ||
| return (effort.trim() || "off") as ThinkingEffort; | ||
| } | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the undone turn was the one that injected editor context—such as the latest turn after switching to file B in
onFileChangemode—injectedEditorContextSessionsstill records B after this call. A subsequent prompt from B therefore skips injection even though undo removed that context from the engine history, leaving the agent without editor context until another file is selected; the injection bookkeeping needs to be restored consistently with the removed turn.Useful? React with 👍 / 👎.