diff options
| author | Felix Sanchez <[email protected]> | 2026-01-13 18:03:45 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-13 18:03:45 -0600 |
| commit | 562f06713155cf5558929d1598ef2c5b908509b3 (patch) | |
| tree | 310a0b019d1ca21125b9482be4913ef0fceb1356 | |
| parent | 1ff46c75fa72a552f832eec58156f7a7a8e1f128 (diff) | |
| download | opencode-562f06713155cf5558929d1598ef2c5b908509b3.tar.gz opencode-562f06713155cf5558929d1598ef2c5b908509b3.zip | |
fix: deduplicate file refs in sent prompts (#8303)
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx index 4f8f979d5..5b5358ef0 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx @@ -159,6 +159,28 @@ export function Autocomplete(props: { }) props.setPrompt((draft) => { + if (part.type === "file") { + const existingIndex = draft.parts.findIndex( + (p) => p.type === "file" && "url" in p && p.url === part.url, + ) + if (existingIndex !== -1) { + const existing = draft.parts[existingIndex] + if ( + part.source?.text && + existing && + "source" in existing && + existing.source && + "text" in existing.source && + existing.source.text + ) { + existing.source.text.start = extmarkStart + existing.source.text.end = extmarkEnd + existing.source.text.value = virtualText + } + return + } + } + if (part.type === "file" && part.source?.text) { part.source.text.start = extmarkStart part.source.text.end = extmarkEnd |
