diff --git a/components/chat.tsx b/components/chat.tsx index 18a9957..ff85597 100644 --- a/components/chat.tsx +++ b/components/chat.tsx @@ -1574,7 +1574,7 @@ export function Chat({ // applies. nextProblem={nextReady} onNext={sendNext} - placeholder={nextReady ? "Ask about this problem — or press Enter for the next one…" : undefined} + placeholder={nextReady ? "Ask anything, or press Enter for the next one." : undefined} /> } onSubmitAnswer={(output) => { diff --git a/components/practice-dock.tsx b/components/practice-dock.tsx index ca2f53b..e4ed501 100644 --- a/components/practice-dock.tsx +++ b/components/practice-dock.tsx @@ -143,7 +143,7 @@ export function PracticeDock({ problemCallId, input, expanded, onExpand, onSubmi submit(); } }} - placeholder="Work here — say as much of your thinking as you have." + placeholder="Work here, think out loud." rows={4} className={cn( "field-sizing-content lh-input max-h-64 min-h-16 w-full resize-none bg-transparent px-2.5 pb-2 outline-none placeholder:text-muted-foreground", diff --git a/components/question-dock.tsx b/components/question-dock.tsx index 24b4e74..22fcc83 100644 --- a/components/question-dock.tsx +++ b/components/question-dock.tsx @@ -853,7 +853,7 @@ function QuestionDockForm({ submit(); } }} - placeholder="Why this answer? What are you unsure about? Say as much as you like — the teacher reads all of this." + placeholder="Why this answer? Whatever comes to mind." rows={1} className={cn( "field-sizing-content lh-input max-h-48 w-full resize-none bg-transparent px-2.5 py-2 outline-none placeholder:text-muted-foreground/70", diff --git a/components/reading-thinking.tsx b/components/reading-thinking.tsx index 0691c3e..a2c86b5 100644 --- a/components/reading-thinking.tsx +++ b/components/reading-thinking.tsx @@ -85,7 +85,7 @@ export function ReadingThinkingField({ e.currentTarget.blur(); } }} - placeholder="What are you thinking as you read? Say as much as you like — it rides your next check answer to the teacher." + placeholder="Whatever comes to mind as you read." rows={1} className="field-sizing-content lh-input max-h-40 w-full resize-none bg-transparent outline-none placeholder:text-muted-foreground/70" /> diff --git a/tests/render-cards.test.tsx b/tests/render-cards.test.tsx index 7e2209c..c4ad9d2 100644 --- a/tests/render-cards.test.tsx +++ b/tests/render-cards.test.tsx @@ -143,7 +143,7 @@ describe("render smoke tests", () => { // INSIDE the dock — never called optional, inviting the dump. assert.ok(html.includes('data-testid="thinking-field"'), "thinking field present"); assert.match(html, /YOUR THINKING/, "labeled as the learner's voice (all caps, owner round 3)"); - assert.match(html, /Why this answer\? What are you unsure about\?/, "placeholder invites, not apologizes"); + assert.match(html, /Why this answer\? Whatever comes to mind/, "placeholder invites, not apologizes (owner, placeholder round 2026-10-07)"); assert.ok(!html.includes("optional"), "the field is never called optional"); assert.match(html, /Submit answer/, "send becomes Submit answer"); assert.match(html, /↵ submits · ⇧↵ newline/, "the standard chord is discoverable (owner round 5)");