mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-21 10:16:03 +00:00
fix(app): clear original prompt after retarget (#34863)
This commit is contained in:
@@ -7,6 +7,7 @@ export function createPromptSubmissionState(input: {
|
||||
prompt: Prompt
|
||||
context: (ContextItem & { key: string })[]
|
||||
}) {
|
||||
const initial = input.target
|
||||
let target = input.target
|
||||
let cleared: Prompt | undefined
|
||||
|
||||
@@ -15,6 +16,7 @@ export function createPromptSubmissionState(input: {
|
||||
context: input.context,
|
||||
target: () => target,
|
||||
clear() {
|
||||
if (initial !== target) initial.reset()
|
||||
target.reset()
|
||||
cleared = target.current()
|
||||
},
|
||||
|
||||
@@ -38,6 +38,23 @@ describe("prompt submission state", () => {
|
||||
expect(session.context.items()[0]).toMatchObject({ type: "file", path: "src/index.ts" })
|
||||
})
|
||||
|
||||
test("clears the original first-submit prompt after retargeting", () => {
|
||||
const workspace = createPromptState()
|
||||
const session = createPromptState()
|
||||
workspace.set([{ type: "text", content: "first prompt", start: 0, end: 12 }])
|
||||
const submission = createPromptSubmissionState({
|
||||
target: workspace,
|
||||
prompt: workspace.current(),
|
||||
context: [],
|
||||
})
|
||||
|
||||
submission.retarget(session)
|
||||
submission.clear()
|
||||
|
||||
expect(workspace.current()[0]).toMatchObject({ type: "text", content: "" })
|
||||
expect(session.current()[0]).toMatchObject({ type: "text", content: "" })
|
||||
})
|
||||
|
||||
test("does not restore over a prompt edited after submission", () => {
|
||||
const target = createPromptState()
|
||||
target.set([{ type: "text", content: "submitted", start: 0, end: 9 }])
|
||||
|
||||
Reference in New Issue
Block a user