Skip to content

Challenge evaluation frontend - #74281

Open
Nokondi wants to merge 3 commits into
stagingfrom
challenge-evaluation-frontend
Open

Challenge evaluation frontend#74281
Nokondi wants to merge 3 commits into
stagingfrom
challenge-evaluation-frontend

Conversation

@Nokondi

@Nokondi Nokondi commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Part 3 of 3

Adds frontend connections for challenge activity rubric evaluation

Links

Part 1
Part 2

  • Jira:

Testing story

Added and updated unit tests

Deployment notes

This will be deployed after parts 1 and 2 have been merged.

Privacy and security

Nokondi and others added 3 commits July 30, 2026 14:48
ChallengeResponse gains an evaluation_status enum and
ready_for_evaluation?, ChallengeResponseAsset gains uploaded? and
download_bytes, and ChallengeEvaluationPromptHelper builds the OpenAI
messages and structured-output schema from a challenge's rubric.
Nothing invokes these yet; the evaluation job and endpoint follow in a
separate PR.

ChallengeResponse#summarize now omits the evaluation fields
(evaluation_result, evaluation_status, student_feedback, evaluated_at)
unless include_evaluation is set: students will not see their AI
evaluation until a teacher has reviewed it. Nothing writes these fields
yet, so no observable behavior changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
POST /challenge_responses/:id/evaluate (owner-only) enqueues
EvaluateChallengeResponseJob, which runs the student's text and
transcript through the PII and profanity filters, sends the response
content (including whiteboard images) to OpenAI with a structured-output
schema built from the challenge's rubric, and records the outcome in
evaluation_result/evaluation_status. Content filter hits are terminal
statuses and never reach the LLM.

The result is stored for later teacher review (teacher view is future
work), so the endpoint is fire-and-forget: clients get a 202 and never
poll. GET /challenge_responses/:id now includes the evaluation fields
for teachers only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
After the asset upload succeeds, both challenge modalities fire a
fire-and-forget POST to /challenge_responses/:id/evaluate; the student
never sees the result, so nothing waits on or polls for it. A shared
DSCO Dialog in ChallengeBox confirms submission for both modalities,
replacing VideoChallenge's inline text (which previously showed even
when the upload had failed; the submitted callback now fires only on
success).

The ChallengeResponse type drops the evaluation fields the server now
withholds from students, and the asset field is fixed to download_url,
matching what the server actually sends.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant