fix(app): clear original prompt after retarget (#34863)

This commit is contained in:
Brendan Allan
2026-07-02 06:24:53 +00:00
committed by GitHub
parent 403164a6ac
commit 40233595b0
2 changed files with 19 additions and 0 deletions
@@ -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 }])