summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFelix Sanchez <[email protected]>2026-01-13 18:03:45 -0600
committerGitHub <[email protected]>2026-01-13 18:03:45 -0600
commit562f06713155cf5558929d1598ef2c5b908509b3 (patch)
tree310a0b019d1ca21125b9482be4913ef0fceb1356
parent1ff46c75fa72a552f832eec58156f7a7a8e1f128 (diff)
downloadopencode-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.tsx22
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