Async PI fixes from user study feedback - #1435
Conversation
There was a problem hiding this comment.
Pull request overview
This PR addresses user-study feedback for the async Peer Instruction (“After Class”) experience by improving what context the AI peer receives, refining the AI prompting/flow rules, and polishing the UI for readability and navigation.
Changes:
- Backend: enrich async peer context building (parse
question_jsonfor statement/options) and return per-justification “first vote” answer labels. - Frontend: display a random subset of classmates’ justifications with an answer tag (when available), and improve theme-picker option presentation (name + description).
- UI polish: layout/spacing fixes, larger/resizeable justification textarea, and clearer AI-peer disclaimers/instructions.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| components/rsptx/templates/assignment/student/peer_async.html | UI/layout tweaks; theme-picker option descriptions; show tagged random classmate justifications with associated first-vote answer. |
| bases/rsptx/assignment_server_api/routers/peer.py | Parse question_json for question/choices; add vote-to-justification answer labeling; update analogy/generic prompt rules and add HTML-to-text conversion helper. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
I think I figured out what was causing this. For previously answered questions, restoreAnswers loads that value from the server as a string but for new questions, it stays as the raw I also addressed the copilot comments. |
|
Ah, yes that seemingly simple change to accommodate an author that wanted more than 10 choices for an MCQ has led to more little hidden troubles. I'll try to get this merged a bit later today. |

This fixes several UI/UX issues that were identified from user studies, along with some prompt tweaking.