From 5f468ffa9b4eb0ce2fbebf986e024773e4f01cb2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Oct 2025 19:08:58 +0000 Subject: [PATCH 1/3] Initial plan From 0266ce9354bbac3c8460a9dadd0af11bdabf5941 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Oct 2025 19:24:52 +0000 Subject: [PATCH 2/3] Fix chat input history navigation to only trigger at first position - Modified onDidChangeCursorPosition in chatInputPart.ts to only enable history navigation when cursor is at position (1,1) - This matches SCM view behavior and improves accessibility for screen readers - History navigation now requires: arrow up at first position -> cursor moves to first line -> arrow up again -> history Co-authored-by: meganrogge <29464607+meganrogge@users.noreply.github.com> --- src/vs/workbench/contrib/chat/browser/chatInputPart.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/chat/browser/chatInputPart.ts b/src/vs/workbench/contrib/chat/browser/chatInputPart.ts index 1d41e1380cb63..9070f6b65d9c8 100644 --- a/src/vs/workbench/contrib/chat/browser/chatInputPart.ts +++ b/src/vs/workbench/contrib/chat/browser/chatInputPart.ts @@ -1517,7 +1517,10 @@ export class ChatInputPart extends Disposable implements IHistoryNavigationWidge const atTop = position.lineNumber === 1 && position.column - 1 <= (this._inputEditor._getViewModel()?.getLineLength(1) ?? 0); this.chatCursorAtTop.set(atTop); - this.historyNavigationBackwardsEnablement.set(atTop); + // Only enable history navigation when cursor is at the very first position (line 1, column 1) + // This matches SCM behavior and improves accessibility for screen readers + const atFirstPosition = position.lineNumber === 1 && position.column === 1; + this.historyNavigationBackwardsEnablement.set(atFirstPosition); this.historyNavigationForewardsEnablement.set(position.equals(getLastPosition(model))); }; this._register(this._inputEditor.onDidChangeCursorPosition(e => onDidChangeCursorPosition())); From 9a2c08afe40f22d9b96f639a6ad3f51364ce58a7 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Mon, 27 Oct 2025 10:07:23 -0400 Subject: [PATCH 3/3] rm comment --- src/vs/workbench/contrib/chat/browser/chatInputPart.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/chatInputPart.ts b/src/vs/workbench/contrib/chat/browser/chatInputPart.ts index cf1445436b668..d9fb89dc15e2f 100644 --- a/src/vs/workbench/contrib/chat/browser/chatInputPart.ts +++ b/src/vs/workbench/contrib/chat/browser/chatInputPart.ts @@ -1517,8 +1517,6 @@ export class ChatInputPart extends Disposable implements IHistoryNavigationWidge const atTop = position.lineNumber === 1 && position.column - 1 <= (this._inputEditor._getViewModel()?.getLineLength(1) ?? 0); this.chatCursorAtTop.set(atTop); - // Only enable history navigation when cursor is at the very first position (line 1, column 1) - // This matches SCM behavior and improves accessibility for screen readers const atFirstPosition = position.lineNumber === 1 && position.column === 1; this.historyNavigationBackwardsEnablement.set(atFirstPosition); this.historyNavigationForewardsEnablement.set(position.equals(getLastPosition(model)));