- {OUTCOME_LABEL[outcome] ?? "Concluded"}
+ {/* The heading row (owner round 3, 2026-10-05): plain 'Concluded'
+ eyebrow + the outcome in the quiz cards' EXACT chip register —
+ no more two same-weight headings stacked. */}
+
+ Concluded
+ {(OUTCOME_LABEL[outcome] ?? "") !== "" && outcome !== "dismissed" && (
+
+ {OUTCOME_LABEL[outcome]}
+
+ )}
- {/* LABELED SECTIONS (owner round 2, 2026-10-05): 'Solved' alone over
- unlabeled prose didn't read as the model solution — the hero now
- carries its own label, and the verdict section mirrors it. Same
- register as the quiz cards' section labels. */}
- {reveal.length > 0 && (
-
-
Model solution
-
- {reveal}
-
+ {/* The verdict — plain prose under the heading, no 'Verdict:' label
+ (owner round 3): the same quiet 50% register as quiz explanations. */}
+ {verdict.length > 0 && (
+
+ {verdict}
)}
- {verdict.length > 0 && (
-
- Verdict:
- {verdict}
-
+ {/* Then the divider, then the labeled model solution (Slice G: the
+ hero is the pose's commitment, verbatim). */}
+ {reveal.length > 0 && (
+ <>
+
+
+
Model solution
+
+ {reveal}
+
+
+ >
)}
);
@@ -108,5 +132,5 @@ export function ThinkingCard({ data }: { data: PracticeThinkingData }) {
// The unified row (owner rounds, 2026-10-05): one style, one label —
// collapsed arrival, "Your thinking", 50%-italic quote block on expand.
// Legacy records' commit flag is deliberately unread (one lane now).
- return
;
+ return
;
}
diff --git a/components/practice-dock.tsx b/components/practice-dock.tsx
index 4cbd724..3362dec 100644
--- a/components/practice-dock.tsx
+++ b/components/practice-dock.tsx
@@ -105,7 +105,7 @@ export function PracticeDock({ problemCallId, input, expanded, onExpand, onSubmi
className="m-1.5 rounded-xl border border-border/70 bg-background/60 transition-colors focus-within:border-primary/50"
>
- Your thinking
+ YOUR THINKING