diff --git a/.changeset/show-dismissed-question-content.md b/.changeset/show-dismissed-question-content.md new file mode 100644 index 00000000000..3672c1fc226 --- /dev/null +++ b/.changeset/show-dismissed-question-content.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Fixed dismissed question tool content not showing in chat history. Dismissed questions now render with a "Dismissed" label and "N dismissed" subtitle instead of being invisible. diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/composite-webview/question-dismissed-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/composite-webview/question-dismissed-chromium-linux.png index 52aaff1f7d3..b403a285409 100644 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/composite-webview/question-dismissed-chromium-linux.png +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/composite-webview/question-dismissed-chromium-linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cba6f84ec6138fc59be088cdf84d2ebe57a55f8514df58eed693a84969ff7a90 -size 4794 +oid sha256:eecccfc0bbd53bd52261ff8cfc02c444c6d97f6438e6693d8cd998c36909708a +size 5178 diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/labs-tool-call-lab/search-previews-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/labs-tool-call-lab/search-previews-chromium-linux.png index 3ef81e61c15..3eeefc28ecc 100644 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/labs-tool-call-lab/search-previews-chromium-linux.png +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/labs-tool-call-lab/search-previews-chromium-linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c94c54757e88700b5c48a10a60d8626d8d5ed76a29879f06059e5f6457382a5f -size 614004 +oid sha256:8bbe2c598818c82fa3d0911060bc98a88d11c71d943de2a6a4f0b236cfb7bd40 +size 630314 diff --git a/packages/kilo-ui/src/components/message-part.tsx b/packages/kilo-ui/src/components/message-part.tsx index b73a35a5303..78a0a7c52e5 100644 --- a/packages/kilo-ui/src/components/message-part.tsx +++ b/packages/kilo-ui/src/components/message-part.tsx @@ -1159,6 +1159,12 @@ PART_MAPPING["tool"] = function ToolPartDisplay(props) { const i18n = useI18n() const part = props.part as ToolPart const hideQuestion = createMemo(() => part.tool === "question" && busy(part.state.status)) + const isDismissedQuestionError = createMemo(() => { + if (part.tool !== "question") return false + if (part.state.status !== "error" || !part.state.error) return false + const errStr = typeof part.state.error === "string" ? part.state.error : "" + return errStr.includes("dismissed this question") + }) const emptyInput: Record = {} const emptyMetadata: Record = {} @@ -1177,13 +1183,24 @@ PART_MAPPING["tool"] = function ToolPartDisplay(props) { {(error) => { const cleaned = error().replace("Error: ", "") - if (part.tool === "question" && cleaned.includes("dismissed this question")) { + if (isDismissedQuestionError()) { return ( -
- - {i18n.t("ui.messagePart.questions.dismissed")} - -
+ ) } const hint = @@ -2827,12 +2844,15 @@ ToolRegistry.register({ const i18n = useI18n() const questions = createMemo(() => (props.input.questions ?? []) as QuestionInfo[]) const answers = createMemo(() => (props.metadata.answers ?? []) as QuestionAnswer[]) + const dismissed = createMemo(() => props.metadata.dismissed === true || props.status === "error") const completed = createMemo(() => answers().length > 0) const pending = createMemo(() => busy(props.status)) + const hasContent = createMemo(() => completed() || dismissed()) const subtitle = createMemo(() => { const count = questions().length if (count === 0) return "" + if (dismissed()) return i18n.t("ui.question.subtitle.dismissed", { count }) if (completed()) return i18n.t("ui.question.subtitle.answered", { count }) return `${count} ${i18n.t(count > 1 ? "ui.common.question.other" : "ui.common.question.one")}` }) @@ -2851,15 +2871,19 @@ ToolRegistry.register({ /> } > - -
+ +
{(q, i) => { const answer = () => answers()[i()] ?? [] + const answerText = () => { + if (dismissed()) return i18n.t("ui.question.answer.dismissed") + return answer().join(", ") || i18n.t("ui.question.answer.none") + } return (
{q.question}
-
{answer().join(", ") || i18n.t("ui.question.answer.none")}
+
{answerText()}
) }} diff --git a/packages/kilo-ui/src/stories/message-part.stories.tsx b/packages/kilo-ui/src/stories/message-part.stories.tsx index 2a48c6060b9..6b4f848406e 100644 --- a/packages/kilo-ui/src/stories/message-part.stories.tsx +++ b/packages/kilo-ui/src/stories/message-part.stories.tsx @@ -529,6 +529,86 @@ const hintErrors: ToolPart[] = [ const mockDataHintErrors = createMockData(hintErrors) +// --- Question tool: answered (reference) --- + +const questionAnsweredPart: ToolPart = { + id: "part-question-answered", + sessionID: SESSION_ID, + messageID: ASST_MSG_ID, + type: "tool", + callID: "call-question-answered", + tool: "question", + state: { + status: "completed", + input: { + questions: [ + { + question: "Should I continue with this approach?", + header: "Continue?", + options: [ + { label: "Yes", description: "Proceed with the current plan" }, + { label: "No", description: "Stop and reconsider" }, + ], + }, + { + question: "Which library should I use for date formatting?", + header: "Library", + options: [ + { label: "date-fns", description: "Lightweight, tree-shakeable" }, + { label: "luxon", description: "Full-featured DateTime library" }, + { label: "dayjs", description: "Moment.js compatible, 2kB" }, + ], + }, + ], + }, + output: 'User answered: "Should I continue?"="Yes", "Which library?"="date-fns"', + title: "Asked 2 questions", + metadata: { answers: [["Yes"], ["date-fns"]] }, + time: { start: now - 8000, end: now - 7000 }, + }, +} + +// --- Question tool: dismissed (exercises the fix) --- + +const questionDismissedPart: ToolPart = { + id: "part-question-dismissed", + sessionID: SESSION_ID, + messageID: ASST_MSG_ID, + type: "tool", + callID: "call-question-dismissed", + tool: "question", + state: { + status: "completed", + input: { + questions: [ + { + question: "Should I continue with this approach?", + header: "Continue?", + options: [ + { label: "Yes", description: "Proceed with the current plan" }, + { label: "No", description: "Stop and reconsider" }, + ], + }, + { + question: "Which library should I use for date formatting?", + header: "Library", + options: [ + { label: "date-fns", description: "Lightweight, tree-shakeable" }, + { label: "luxon", description: "Full-featured DateTime library" }, + ], + }, + ], + }, + output: "User dismissed the question.", + title: "Question dismissed", + metadata: { answers: [], dismissed: true }, + time: { start: now - 8000, end: now - 7000 }, + }, +} + +const mockDataQuestionAnswered = createMockData([questionAnsweredPart, textPart]) +const mockDataQuestionDismissed = createMockData([questionDismissedPart, textPart]) + export const ToolHintErrors: Story = { render: () => ( @@ -536,3 +616,59 @@ export const ToolHintErrors: Story = { ), } + +// --- Question tool: answered (collapsed) --- + +export const QuestionAnswered: Story = { + name: "QuestionAnswered", + render: () => ( + + + + ), +} + +// --- Question tool: answered (expanded) --- + +export const QuestionAnsweredExpanded: Story = { + name: "QuestionAnswered (expanded)", + render: () => ( + + + + ), + play: async ({ canvasElement }: { canvasElement: HTMLElement }) => { + const trigger = canvasElement + .querySelector('[data-slot="basic-tool-tool-title"]') + ?.closest("button") + if (trigger) trigger.click() + }, +} + +// --- Question tool: dismissed (collapsed — "2 dismissed" subtitle) --- + +export const QuestionDismissed: Story = { + name: "QuestionDismissed", + render: () => ( + + + + ), +} + +// --- Question tool: dismissed (expanded — shows questions with "Dismissed" labels) --- + +export const QuestionDismissedExpanded: Story = { + name: "QuestionDismissed (expanded)", + render: () => ( + + + + ), + play: async ({ canvasElement }: { canvasElement: HTMLElement }) => { + const trigger = canvasElement + .querySelector('[data-slot="basic-tool-tool-title"]') + ?.closest("button") + if (trigger) trigger.click() + }, +} diff --git a/packages/opencode/src/cli/cmd/tui/feature-plugins/system/session-v2.tsx b/packages/opencode/src/cli/cmd/tui/feature-plugins/system/session-v2.tsx index 7de7d4ace70..6e00d8446c5 100644 --- a/packages/opencode/src/cli/cmd/tui/feature-plugins/system/session-v2.tsx +++ b/packages/opencode/src/cli/cmd/tui/feature-plugins/system/session-v2.tsx @@ -1010,22 +1010,40 @@ function Question(props: ToolProps) { arrayValue(props.input.questions).flatMap((item) => (isRecord(item) ? [item] : [])), ) const answers = createMemo(() => arrayValue(props.metadata.answers)) + // kilocode_change start - show dismissed question content; use questions() + // presence (not answers) so dismissed/answered/error states all render content. + const dismissed = createMemo( + () => + props.metadata.dismissed === true || + (props.part.state.status === "error" && String(props.part.state.error?.message ?? "").includes("dismissed")), + ) + + function format(answer: unknown) { + if (dismissed()) return "Dismissed" + return formatAnswer(answer) + } + + const title = createMemo(() => (dismissed() ? "# Questions (dismissed)" : "# Questions")) + // kilocode_change end + return ( - 0}> - + {/* kilocode_change start - gate on dismissed or answers so dismissed/answered render, pending falls through to Asking... */} + 0}> + {(question, index) => ( {stringValue(question.question)} - {formatAnswer(answers()[index()])} + {format(answers()[index()])} )} + {/* kilocode_change end */} Asked {questions().length} question{questions().length === 1 ? "" : "s"} diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 9b3c279feac..bc062a24a07 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -2815,28 +2815,64 @@ function TodoWrite(props: ToolProps) { function Question(props: ToolProps) { const { theme } = useTheme() const count = createMemo(() => props.input.questions?.length ?? 0) + // kilocode_change start - show dismissed question content with toggle; + // use input.questions presence (not metadata) so dismissed/answered/error + // states all render content. Clicking the one-liner expands to the full + // block; clicking the block title collapses back. + const dismissed = createMemo( + () => + props.metadata.dismissed === true || + (props.part.state.status === "error" && String(props.part.state.error ?? "").includes("dismissed")), + ) + const [expanded, setExpanded] = createSignal(false) function format(answer?: ReadonlyArray) { + if (dismissed()) return "Dismissed" if (!answer?.length) return "(no answer)" return answer.join(", ") } + const title = createMemo(() => (dismissed() ? "# Questions (dismissed)" : "# Questions")) + const subtitle = createMemo(() => { + if (dismissed()) return `${count()} dismissed` + if ((props.metadata.answers?.length ?? 0) > 0) return `${count()} answered` + return `${count()} question${count() !== 1 ? "s" : ""}` + }) + // kilocode_change end + return ( - - - - - {(q, i) => ( - - {q.question} - {format(props.metadata.answers?.[i()])} - - )} - - - + {/* kilocode_change start - toggle between one-liner and full block */} + 0}> + setExpanded(true)} + > + {subtitle()} + + } + > + setExpanded(false)}> + + + {(q, i) => ( + + {q.question} + {format(props.metadata.answers?.[i()])} + + )} + + + + + {/* kilocode_change end */} Asked {count()} question{count() !== 1 ? "s" : ""} diff --git a/packages/ui/src/i18n/ar.ts b/packages/ui/src/i18n/ar.ts index 868bf3d70ec..f9b9ecb55b8 100644 --- a/packages/ui/src/i18n/ar.ts +++ b/packages/ui/src/i18n/ar.ts @@ -172,7 +172,9 @@ export const dict = { "ui.patch.action.patched": "مصحح", "ui.question.subtitle.answered": "{{count}} أجيب", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(لا توجد إجابة)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(لم يتم الرد)", "ui.question.multiHint": "حدد كل ما ينطبق", "ui.question.singleHint": "حدد إجابة واحدة", diff --git a/packages/ui/src/i18n/br.ts b/packages/ui/src/i18n/br.ts index f09b6d52f31..014068f94c3 100644 --- a/packages/ui/src/i18n/br.ts +++ b/packages/ui/src/i18n/br.ts @@ -172,7 +172,9 @@ export const dict = { "ui.patch.action.patched": "Patch aplicado", "ui.question.subtitle.answered": "{{count}} respondidas", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(sem resposta)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(não respondida)", "ui.question.multiHint": "Selecione todas que se aplicam", "ui.question.singleHint": "Selecione uma resposta", diff --git a/packages/ui/src/i18n/bs.ts b/packages/ui/src/i18n/bs.ts index cf3f1a2a9c6..3e1edd7982d 100644 --- a/packages/ui/src/i18n/bs.ts +++ b/packages/ui/src/i18n/bs.ts @@ -176,7 +176,9 @@ export const dict = { "ui.patch.action.patched": "Primijenjeno", "ui.question.subtitle.answered": "{{count}} odgovoreno", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(nema odgovora)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(nije odgovoreno)", "ui.question.multiHint": "Odaberi sve što važi", "ui.question.singleHint": "Odaberi jedan odgovor", diff --git a/packages/ui/src/i18n/da.ts b/packages/ui/src/i18n/da.ts index 2587a192e4e..97357a8b545 100644 --- a/packages/ui/src/i18n/da.ts +++ b/packages/ui/src/i18n/da.ts @@ -171,7 +171,9 @@ export const dict = { "ui.patch.action.patched": "Patchet", "ui.question.subtitle.answered": "{{count}} besvaret", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(intet svar)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(ikke besvaret)", "ui.question.multiHint": "Vælg alle der gælder", "ui.question.singleHint": "Vælg ét svar", diff --git a/packages/ui/src/i18n/de.ts b/packages/ui/src/i18n/de.ts index c47501afd3b..fb396a1c925 100644 --- a/packages/ui/src/i18n/de.ts +++ b/packages/ui/src/i18n/de.ts @@ -177,7 +177,9 @@ export const dict = { "ui.patch.action.patched": "Gepatched", "ui.question.subtitle.answered": "{{count}} beantwortet", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(keine Antwort)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(nicht beantwortet)", "ui.question.multiHint": "Alle zutreffenden auswählen", "ui.question.singleHint": "Eine Antwort auswählen", diff --git a/packages/ui/src/i18n/en.ts b/packages/ui/src/i18n/en.ts index d10d1a1b864..418d48942da 100644 --- a/packages/ui/src/i18n/en.ts +++ b/packages/ui/src/i18n/en.ts @@ -185,7 +185,9 @@ export const dict: Record = { "ui.patch.action.patched": "Patched", "ui.question.subtitle.answered": "{{count}} answered", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(no answer)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(not answered)", "ui.question.multiHint": "Select all answers that apply", "ui.question.singleHint": "Select one answer", diff --git a/packages/ui/src/i18n/es.ts b/packages/ui/src/i18n/es.ts index f0dd59fbaa5..7ba1f28af5c 100644 --- a/packages/ui/src/i18n/es.ts +++ b/packages/ui/src/i18n/es.ts @@ -172,7 +172,9 @@ export const dict = { "ui.patch.action.patched": "Parcheado", "ui.question.subtitle.answered": "{{count}} respondidas", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(sin respuesta)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(no respondida)", "ui.question.multiHint": "Selecciona todas las que correspondan", "ui.question.singleHint": "Selecciona una respuesta", diff --git a/packages/ui/src/i18n/fr.ts b/packages/ui/src/i18n/fr.ts index ab057725dab..91d527b392a 100644 --- a/packages/ui/src/i18n/fr.ts +++ b/packages/ui/src/i18n/fr.ts @@ -172,7 +172,9 @@ export const dict = { "ui.patch.action.patched": "Corrigé", "ui.question.subtitle.answered": "{{count}} répondu(s)", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(pas de réponse)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(non répondu)", "ui.question.multiHint": "Sélectionnez tout ce qui s'applique", "ui.question.singleHint": "Sélectionnez une réponse", diff --git a/packages/ui/src/i18n/it.ts b/packages/ui/src/i18n/it.ts index 41973bbdc48..d91be9ef571 100644 --- a/packages/ui/src/i18n/it.ts +++ b/packages/ui/src/i18n/it.ts @@ -187,7 +187,9 @@ export const dict: Record = { "ui.patch.action.patched": "Patch applicata", "ui.question.subtitle.answered": "{{count}} risposte", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(nessuna risposta)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(senza risposta)", "ui.question.multiHint": "Seleziona tutte le risposte applicabili", "ui.question.singleHint": "Seleziona una risposta", diff --git a/packages/ui/src/i18n/ja.ts b/packages/ui/src/i18n/ja.ts index 49f124a0fff..b1936d8cc00 100644 --- a/packages/ui/src/i18n/ja.ts +++ b/packages/ui/src/i18n/ja.ts @@ -171,7 +171,9 @@ export const dict = { "ui.patch.action.patched": "パッチ適用済み", "ui.question.subtitle.answered": "{{count}}件回答済み", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(回答なし)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(未回答)", "ui.question.multiHint": "該当するものをすべて選択", "ui.question.singleHint": "1 つ選択", diff --git a/packages/ui/src/i18n/ko.ts b/packages/ui/src/i18n/ko.ts index e087064375c..28b86bec23e 100644 --- a/packages/ui/src/i18n/ko.ts +++ b/packages/ui/src/i18n/ko.ts @@ -172,7 +172,9 @@ export const dict = { "ui.patch.action.patched": "패치됨", "ui.question.subtitle.answered": "{{count}}개 답변됨", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(답변 없음)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(답변되지 않음)", "ui.question.multiHint": "해당하는 항목 모두 선택", "ui.question.singleHint": "하나의 답변을 선택", diff --git a/packages/ui/src/i18n/nl.ts b/packages/ui/src/i18n/nl.ts index 334af1ada93..1f03ae55fa5 100644 --- a/packages/ui/src/i18n/nl.ts +++ b/packages/ui/src/i18n/nl.ts @@ -190,7 +190,9 @@ export const dict: Record = { "ui.patch.action.patched": "Gepatcht", "ui.question.subtitle.answered": "{{count}} beantwoord", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(geen antwoord)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(niet beantwoord)", "ui.question.multiHint": "Selecteer alle antwoorden die van toepassing zijn", "ui.question.singleHint": "Selecteer één antwoord", diff --git a/packages/ui/src/i18n/no.ts b/packages/ui/src/i18n/no.ts index 043eb298ba2..24817e1c38f 100644 --- a/packages/ui/src/i18n/no.ts +++ b/packages/ui/src/i18n/no.ts @@ -175,7 +175,9 @@ export const dict: Record = { "ui.patch.action.patched": "Oppdatert", "ui.question.subtitle.answered": "{{count}} besvart", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(ingen svar)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(ikke besvart)", "ui.question.multiHint": "Velg alle som gjelder", "ui.question.singleHint": "Velg ett svar", diff --git a/packages/ui/src/i18n/pl.ts b/packages/ui/src/i18n/pl.ts index 47b49754f1e..1676674aa10 100644 --- a/packages/ui/src/i18n/pl.ts +++ b/packages/ui/src/i18n/pl.ts @@ -171,7 +171,9 @@ export const dict = { "ui.patch.action.patched": "Załatano", "ui.question.subtitle.answered": "{{count}} odpowiedzi", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(brak odpowiedzi)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(bez odpowiedzi)", "ui.question.multiHint": "Zaznacz wszystkie pasujące", "ui.question.singleHint": "Wybierz jedną odpowiedź", diff --git a/packages/ui/src/i18n/ru.ts b/packages/ui/src/i18n/ru.ts index 3bbe1a1d270..c82e71c3d3a 100644 --- a/packages/ui/src/i18n/ru.ts +++ b/packages/ui/src/i18n/ru.ts @@ -171,7 +171,9 @@ export const dict = { "ui.patch.action.patched": "Изменено", "ui.question.subtitle.answered": "{{count}} отвечено", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(нет ответа)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(не отвечено)", "ui.question.multiHint": "Выберите все подходящие", "ui.question.singleHint": "Выберите один ответ", diff --git a/packages/ui/src/i18n/th.ts b/packages/ui/src/i18n/th.ts index dcc0dec7663..c6f0a170d1d 100644 --- a/packages/ui/src/i18n/th.ts +++ b/packages/ui/src/i18n/th.ts @@ -173,7 +173,9 @@ export const dict = { "ui.patch.action.patched": "แพตช์", "ui.question.subtitle.answered": "{{count}} ตอบแล้ว", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(ไม่มีคำตอบ)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(ไม่ได้ตอบ)", "ui.question.multiHint": "เลือกทั้งหมดที่ใช้", "ui.question.singleHint": "เลือกหนึ่งคำตอบ", diff --git a/packages/ui/src/i18n/tr.ts b/packages/ui/src/i18n/tr.ts index e66437a4ac5..aed757726fe 100644 --- a/packages/ui/src/i18n/tr.ts +++ b/packages/ui/src/i18n/tr.ts @@ -178,7 +178,9 @@ export const dict = { "ui.patch.action.patched": "Yamalandı", "ui.question.subtitle.answered": "{{count}} cevaplandı", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(cevap yok)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(cevaplanmadı)", "ui.question.multiHint": "Geçerli tüm cevapları seçin", "ui.question.singleHint": "Bir cevap seçin", diff --git a/packages/ui/src/i18n/uk.ts b/packages/ui/src/i18n/uk.ts index dfeece39ea8..7db2d3e537c 100644 --- a/packages/ui/src/i18n/uk.ts +++ b/packages/ui/src/i18n/uk.ts @@ -198,7 +198,9 @@ export const dict: Record = { "ui.patch.action.patched": "Застосовано патч", // kilocode_change "ui.question.subtitle.answered": "{{count}} відповідей", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(немає відповіді)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(не відповіли)", "ui.question.multiHint": "Виберіть усі відповідні варіанти", "ui.question.singleHint": "Виберіть одну відповідь", diff --git a/packages/ui/src/i18n/zh.ts b/packages/ui/src/i18n/zh.ts index f8f99c3ec13..b3579bd4d42 100644 --- a/packages/ui/src/i18n/zh.ts +++ b/packages/ui/src/i18n/zh.ts @@ -175,7 +175,9 @@ export const dict = { "ui.patch.action.patched": "已应用补丁", "ui.question.subtitle.answered": "{{count}} 已回答", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(无答案)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(未回答)", "ui.question.multiHint": "可多选", "ui.question.singleHint": "选择一个答案", diff --git a/packages/ui/src/i18n/zht.ts b/packages/ui/src/i18n/zht.ts index ae01cb1fdcc..07b938d027d 100644 --- a/packages/ui/src/i18n/zht.ts +++ b/packages/ui/src/i18n/zht.ts @@ -175,7 +175,9 @@ export const dict = { "ui.patch.action.patched": "已套用修補", "ui.question.subtitle.answered": "{{count}} 已回答", + "ui.question.subtitle.dismissed": "{{count}} dismissed", // kilocode_change "ui.question.answer.none": "(無答案)", + "ui.question.answer.dismissed": "Dismissed", // kilocode_change "ui.question.review.notAnswered": "(未回答)", "ui.question.multiHint": "可多選", "ui.question.singleHint": "選擇一個答案",