Skip to content

Publish mixed exercises QTI only when Perseus can't read a legacy input answer - #6273

Open
rtibblesbot wants to merge 3 commits into
learningequality:unstablefrom
rtibblesbot:issue-6208-c38516
Open

rtibblesbot wants to merge 3 commits into
learningequality:unstablefrom
rtibblesbot:issue-6208-c38516

Conversation

@rtibblesbot

@rtibblesbot rtibblesbot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Mixed nodes (native QTI + legacy input questions) published unsatisfiable Perseus numeric-inputs; they now publish QTI only when a legacy input answer is unreadable by Perseus: text, +3, or non-finite.
  • Perseus input exports dropped JSON-number answers (4, 0) and published "correct": false answers as correct; every Perseus archive now reads input answers as Perseus renders them.

References

Closes #6208. Refs #6266. Refs #6268. Refs #6232. Supersedes #6255.
Stacked on #6262; merge that first.
Not covered: native text entries answered +3 / 1E3 (#6224, #6259).

Reviewer guidance

  • The gate uses Perseus's extract_value, not QTI's _format_number, which also reads +3 and 1E3. Is it right that these answers make a node QTI only?

AI usage

Used Claude Code to reproduce the bug with a scratch publish test, write the fix and its tests, and draft this description. Verified with the export channel, exercise creation and QTI test suites, and pre-commit.

🤖 Generated with Claude Code


@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly

How was this generated?
  • Ran pre-flight CI checks (lint, format, tests) and verified all pass
  • Rebased onto the target branch and resolved any conflicts
  • Reorganized commit history into clean, logical commits
  • Audited the diff to ensure only issue-relevant files are changed
  • Built PR body from the repository's PR template with evidence blocks
@rtibblesbot

🟡 Waiting for feedback

Last updated: 2026-10-02 20:04 UTC

@rtibblesbot

Copy link
Copy Markdown
Contributor Author

Outside this PR's scope — tracked under #5998:


@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly

How was this generated?
  • Ran pre-flight CI checks (lint, format, tests) and verified all pass
  • Rebased onto the target branch and resolved any conflicts
  • Reorganized commit history into clean, logical commits
  • Audited the diff to ensure only issue-relevant files are changed
  • Built PR body from the repository's PR template with evidence blocks

@rtibbles rtibbles self-assigned this Oct 2, 2026
rtibblesbot and others added 3 commits October 2, 2026 12:43
Exercises only; units keep them, as their pre/post test lists every id.
Assessment metadata drops them too when there is no QTI package.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- JSON-number answers (4, 0, 4.5) were published as answers: []
- Answers marked "correct": false were published as correct

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… input

A legacy input answer such as "Sphere", "+3" or "1e400" left the derived
Perseus numeric-input with no answers; such nodes now skip the Perseus archive.

Co-Authored-By: Claude Opus 5.5 (1M context) <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.

[QTI] Perseus archive of a mixed exercise keeps legacy input questions with no numeric answer

2 participants