skip native reasoning

3clyp50 committed Jan 6, 2026 at 21:06 UTC 98cae36f8785784ebbfae6c3ca1b7a8347929ac8
1 file changed +13 -8
webui/js/messages.js
+13 -8
@@ -791,7 +791,9 @@ function drawKvps(container, kvps, latex) {
791 for (let [key, value] of Object.entries(kvps)) {
792 const row = table.insertRow();
793 row.classList.add("kvps-row");
794 - if (key === "thoughts" || key === "reasoning")
794 + // Skip reasoning
795 + if (key === "reasoning") continue;
796 + if (key === "thoughts")
797 // TODO: find a better way to determine special class assignment
798 row.classList.add("msg-thoughts");
799
@@ -869,7 +871,8 @@ function drawKvpsIncremental(container, kvps, latex) {
871
872 // Get all current rows for comparison
873 let existingRows = table.querySelectorAll(".kvps-row");
872 - const kvpEntries = Object.entries(kvps);
874 + // Filter out reasoning
875 + const kvpEntries = Object.entries(kvps).filter(([key]) => key !== "reasoning");
876
877 // Update or create rows as needed
878 kvpEntries.forEach(([key, value], index) => {
@@ -883,7 +886,7 @@ function drawKvpsIncremental(container, kvps, latex) {
886
887 // Update row classes
888 row.className = "kvps-row";
886 - if (key === "thoughts" || key === "reasoning") {
889 + if (key === "thoughts") {
890 row.classList.add("msg-thoughts");
891 }
892
@@ -1577,9 +1580,9 @@ function renderStepDetailContent(container, content, kvps, type = null) {
1580 container.appendChild(terminalDiv);
1581 }
1582
1580 - // Still render thoughts if present
1581 - if (kvps.thoughts || kvps.thinking || kvps.reasoning) {
1582 - const thoughtKey = kvps.thoughts ? "thoughts" : (kvps.thinking ? "thinking" : "reasoning");
1583 + // Still render thoughts if present (but not reasoning - that's native model thinking, not structured output)
1584 + if (kvps.thoughts || kvps.thinking) {
1585 + const thoughtKey = kvps.thoughts ? "thoughts" : "thinking";
1586 const thoughtValue = kvps[thoughtKey];
1587 renderThoughts(container, thoughtValue);
1588 }
@@ -1609,8 +1612,10 @@ function renderStepDetailContent(container, content, kvps, type = null) {
1612 // Skip query in agent steps - it's shown in the tool call step
1613 if (type === "agent" && lowerKey === "query") continue;
1614
1612 - // Special handling for thoughts/reasoning - render with single lightbulb icon
1613 - if (lowerKey === "thoughts" || lowerKey === "thinking" || lowerKey === "reflection" || lowerKey === "reasoning") {
1615 + // Special handling for thoughts - render with single lightbulb icon
1616 + // Skip reasoning
1617 + if (lowerKey === "reasoning") continue;
1618 + if (lowerKey === "thoughts" || lowerKey === "thinking" || lowerKey === "reflection") {
1619 renderThoughts(kvpsDiv, value);
1620 continue;
1621 }