Skip to content

Conversation

@TomWoodward
Copy link
Member

… responses

When qti-match is used with a response declaration of base-type="string" (common pattern for text entry items with qti-correct), the comparison was using strict equality via deepEqual, making "Wicked king" fail to match "wicked king". Now detects string base-type responses and performs case-insensitive comparison, while keeping identifier and other base types case-sensitive.

https://claude.ai/code/session_01HaL7GMnrzkqhouoc6h1pcc

… responses

When qti-match is used with a response declaration of base-type="string"
(common pattern for text entry items with qti-correct), the comparison
was using strict equality via deepEqual, making "Wicked king" fail to
match "wicked king". Now detects string base-type responses and performs
case-insensitive comparison, while keeping identifier and other base
types case-sensitive.

https://claude.ai/code/session_01HaL7GMnrzkqhouoc6h1pcc
…lities

All case-insensitive string comparison logic was scattered across 4 call
sites, each doing its own toLowerCase() pattern. Added stringEquals and
stringIncludes to equality.ts (defaulting to case-insensitive) and
refactored all consumers to use them:
- evaluateStringMatch / evaluateSubstring in string.ts
- evaluateMatch in comparison.ts
- getMappedValue in responseProcessing.ts

https://claude.ai/code/session_01HaL7GMnrzkqhouoc6h1pcc
@TomWoodward TomWoodward closed this Feb 7, 2026
@TomWoodward TomWoodward deleted the claude/fix-case-sensitivity-default-4q5qX branch February 8, 2026 00:37
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.

2 participants