Conversation
Learners can type a leading slash to invoke specific tutor behaviors. Backend strips the command from the visible message and injects a behavioral instruction into the system prompt for that turn. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Tutor can now emit small self-contained HTML/JS demos for tunable simulations and live examples. The frontend renders them in a sandboxed iframe (allow-scripts only — no parent DOM, no network) with a preview/source toggle. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Long sessions occasionally bumped the model's context limit. The agent loop now drops the oldest turns to keep total tokens under context_max_tokens (configurable in settings.yaml; default 28k for the 70B llama tutor). System message and the in-flight user turn are always preserved. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pending wiki changes (new topics, concept-map updates) already land in content/pedagogy-wiki/.pending/. This adds the review surface on top: - /wiki/staging endpoints: list, get, approve, reject - /wiki-staging admin page with approve/reject controls - API client wired in lib/api.ts Approval applies the staged page + concept-map entry to the canonical wiki and removes the pending file. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Introduces a private wiki overlay at content/users/{user_id}/wiki/.
Topic page lookup checks the user overlay first, then falls back to the
shared wiki — letting learners customize or supplement topics without
touching the canonical content. Path traversal is locked down by strict
slug + user_id regex.
- services/user_wiki.py: storage layer + find_topic_page() resolver
- routers/user_wiki.py: GET/PUT /wiki/notes/{slug}
- frontend api.wikiNotes client
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Each learner now has a small structured profile (expertise level, preferred style, interests, goals) that the tutor folds into the system prompt. Adapts depth and analogies even on the first turn of a new session — without the tutor explicitly mentioning the profile. - models/profile.py + migration for the learnerprofile table - services/learner_profile.py: DB access + prompt summary builder - routers/profile.py: GET/PATCH /profile/me - agent/context.py: TutorContext.learner_profile field - routers/tutor.py: load and inject summary per turn - frontend /profile page with tags + style/expertise selectors Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Chat now stays at full width while notes slide in as an overlay drawer from the right (or full-screen on mobile). Replaces the resizable split panel which always shrank the chat to 50%. Esc closes the drawer; a backdrop closes it on small screens. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Sidebar collapses by default on small screens and opens as overlay with a backdrop; resize handle hidden on mobile - Notes drawer (already overlay) gets aria-label and Esc-to-close - aria-label / aria-pressed / aria-expanded on icon-only buttons (voice mic, send, sidebar toggle, notes toggle, back, delete session) - Session history uses listbox/option roles with keyboard select - Global :focus-visible ring for keyboard navigation - prefers-reduced-motion suppresses animations Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
feat: ship remaining 8% (slash commands, artifacts, profile, drawer, a11y, more)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.