summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2026-03-23 19:48:34 +0800
committerGitHub <[email protected]>2026-03-23 11:48:34 +0000
commit36dfe1646b2bb4c329238f765c8100981014022b (patch)
tree09221eeb5579065ac62dff5676d6c943f0c8bf3c /packages/app/src/components
parent6926dc26d159080c506247ca414ec9a305f32c1b (diff)
downloadopencode-36dfe1646b2bb4c329238f765c8100981014022b.tar.gz
opencode-36dfe1646b2bb4c329238f765c8100981014022b.zip
fix(app): only navigate prompt history when input is empty (#18775)
Diffstat (limited to 'packages/app/src/components')
-rw-r--r--packages/app/src/components/prompt-input/history.test.ts7
-rw-r--r--packages/app/src/components/prompt-input/history.ts2
2 files changed, 6 insertions, 3 deletions
diff --git a/packages/app/src/components/prompt-input/history.test.ts b/packages/app/src/components/prompt-input/history.test.ts
index 37b5ce196..5e9c2c66e 100644
--- a/packages/app/src/components/prompt-input/history.test.ts
+++ b/packages/app/src/components/prompt-input/history.test.ts
@@ -126,7 +126,7 @@ describe("prompt-input history", () => {
test("canNavigateHistoryAtCursor only allows prompt boundaries", () => {
const value = "a\nb\nc"
- expect(canNavigateHistoryAtCursor("up", value, 0)).toBe(true)
+ expect(canNavigateHistoryAtCursor("up", value, 0)).toBe(false)
expect(canNavigateHistoryAtCursor("down", value, 0)).toBe(false)
expect(canNavigateHistoryAtCursor("up", value, 2)).toBe(false)
@@ -135,11 +135,14 @@ describe("prompt-input history", () => {
expect(canNavigateHistoryAtCursor("up", value, 5)).toBe(false)
expect(canNavigateHistoryAtCursor("down", value, 5)).toBe(true)
- expect(canNavigateHistoryAtCursor("up", "abc", 0)).toBe(true)
+ expect(canNavigateHistoryAtCursor("up", "abc", 0)).toBe(false)
expect(canNavigateHistoryAtCursor("down", "abc", 3)).toBe(true)
expect(canNavigateHistoryAtCursor("up", "abc", 1)).toBe(false)
expect(canNavigateHistoryAtCursor("down", "abc", 1)).toBe(false)
+ expect(canNavigateHistoryAtCursor("up", "", 0)).toBe(true)
+ expect(canNavigateHistoryAtCursor("down", "", 0)).toBe(true)
+
expect(canNavigateHistoryAtCursor("up", "abc", 0, true)).toBe(true)
expect(canNavigateHistoryAtCursor("up", "abc", 3, true)).toBe(true)
expect(canNavigateHistoryAtCursor("down", "abc", 0, true)).toBe(true)
diff --git a/packages/app/src/components/prompt-input/history.ts b/packages/app/src/components/prompt-input/history.ts
index de6265321..79e8abc0d 100644
--- a/packages/app/src/components/prompt-input/history.ts
+++ b/packages/app/src/components/prompt-input/history.ts
@@ -27,7 +27,7 @@ export function canNavigateHistoryAtCursor(direction: "up" | "down", text: strin
const atStart = position === 0
const atEnd = position === text.length
if (inHistory) return atStart || atEnd
- if (direction === "up") return position === 0
+ if (direction === "up") return position === 0 && text.length === 0
return position === text.length
}