diff --git a/components/thinking-block.tsx b/components/thinking-block.tsx index 74ec809..3980e27 100644 --- a/components/thinking-block.tsx +++ b/components/thinking-block.tsx @@ -31,7 +31,15 @@ export function ThinkingBlock({ }) { const [open, setOpen] = useState(false); // arrives collapsed, always return ( -
+ /* The rail GROUPS (owner correction, 2026-10-05): the label sits + INSIDE the rail — the block reads as one quote, ownership clear + from the rail alone, collapsed or expanded. Same shape as the + user text ("You") row. */ +
{open && ( -
- {text} -
+ {text} )}
); diff --git a/tests/render-cards.test.tsx b/tests/render-cards.test.tsx index 6068c88..2e8e375 100644 --- a/tests/render-cards.test.tsx +++ b/tests/render-cards.test.tsx @@ -292,6 +292,11 @@ describe("render smoke tests", () => { // trigger row only — the thinking text is one click away, never loud. assert.ok(html.includes('data-testid="your-thinking-trigger"'), "the trigger row"); assert.ok(html.includes('aria-expanded="false"'), "arrives collapsed"); + // THE RAIL GROUPS (owner correction): the label sits INSIDE the rail — + // ownership readable from the rail alone, collapsed or expanded. + const railAt = html.indexOf("border-l-2"); + const trigAt = html.indexOf("your-thinking-trigger"); + assert.ok(railAt !== -1 && railAt < trigAt, "the rail opens before the label (same quote)"); assert.ok(!html.includes("brightness isn't distance"), "the text is hidden until expanded"); assert.ok(!html.includes("Note:"), "no longer a muted 'Note:' footnote"); // The thinking sits ABOVE the verdict's explanation — the dialogue of