You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add learning strategies, audio input/output, and UX polish
Learning strategies:
- Five teaching strategies: Explain, Quiz me, Socratic, Devil's advocate,
Perspectives. Selectable on landing page and switchable mid-conversation.
- "Make me think" toggle appends reflection prompts to every response.
- Strategy prompts use forceful instructions for small local models.
Audio:
- Text-to-speech via speechSynthesis (system voices, male/female, offline).
Speaker icon on each tutor response, auto-read option in settings.
- Speech-to-text via Web Speech API (default, online) or Transformers.js
Whisper (opt-in, fully local, 40MB model download). Mic button in chat.
- Audio settings section with voice selection, auto-read toggle, and
STT provider choice with plain-English trade-off explanation.
UX improvements:
- Landing page reworked: value proposition subtitle, topic suggestions
below input, strategy picker, search toggle, notes with radio buttons
for "add to web search" vs "use only my notes".
- Warning when teaching without grounded sources.
- About page rewritten with README content.
- Reduced top margin on landing page.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
: `You are a professional interactive personal tutor. The student wants to learn about a topic at a ${ageGroup} level. You don't have specific source material for this topic, so teach from your own knowledge. Be upfront that you're teaching from general knowledge and may not have the latest information. Start by greeting the learner, giving a short overview, and asking what they want to learn about (in markdown numbers). Be interactive. Keep the first message short and concise. Please return answers in markdown.\n\n${strategy.prompt}${nudge ? "\n\n"+nudge : ""}`;
: `You are a professional interactive personal tutor. The student wants to learn about a topic at a ${ageGroup} level. You don't have specific source material for this topic, so teach from your own knowledge. Be upfront that you're teaching from general knowledge and may not have the latest information. Start by greeting the learner, giving a short overview, and asking what they want to learn about (in markdown numbers). Be interactive and quiz them occasionally. Keep the first message short and concise. Please return answers in markdown.`,
215
-
},
262
+
{role: "system",content: systemContent},
216
263
{role: "user",content: currentTopic},
217
264
];
218
265
setMessages(initialMessage);
219
266
220
-
// Transition to chat
221
267
setPrepSteps((prev)=>
222
268
prev.map((s,i)=>
223
269
i===prev.length-1 ? { ...s,status: "done"} : s,
224
270
),
225
271
);
226
272
227
-
// Brief pause so the user sees all steps complete
0 commit comments