* feat(ui): add THUMBS question type renderer
- Add seven new renderer files under renderers/thumbs/:
thumbs-correct.ts, take.svelte, edit.svelte, preview.svelte,
thumbs-review-toggle.svelte, review.svelte, submission.svelte
- Register THUMBS in renderer-contract.ts with edit/take/preview/submission/review
- Export ThumbsEdit, ThumbsTake, ThumbsPreview, ThumbsSubmission,
ThumbsReview from exercise-question/index.ts
- Add THUMBS_FIXTURE, four thumbs label keys, and Thumbs story
in storybook exercise-question files
- Add THUMBS case to question-type-modes.svelte submission builder
Co-authored-by: Rotimi Best <[email protected]>
* feat(question-types): add THUMBS contracts, scoring, and seed
Introduce the THUMBS question type (id 14) with boolean answer data,
codec, auto-grading, Zod validation, DB seed/schema docs, and binary
normalize support shared with TRUE_FALSE. Dashboard wiring is deferred.
Co-authored-by: Rotimi Best <[email protected]>
* feat(dashboard): wire THUMBS question type into exercise UI
Connect THUMBS option sync in edit/view modes, labels, picker icon,
and locale strings so the existing contracts surface in the dashboard.
Co-authored-by: Rotimi Best <[email protected]>
* fix(ui): polish thumbs question UI and move premium upgrade icon
Widen thumbs Yes/No toggles, inherit selected icon color via custom class,
replace badge-based review correctness with solid fill states and bare
Check/X icons, add a success pill in preview, and place the premium
upgrade icon at the end of the question type select row.
Co-authored-by: Rotimi Best <[email protected]>
* fix(ui): align thumbs review colors with prototypes
Tune correct/incorrect selected states so review buttons use dark
emerald/red content colors on solid fills, matching the design comps.
Co-authored-by: Rotimi Best <[email protected]>
* fix(ui): address remaining PR review comments
Use a shared timestamp local in thumbs edit fallback options.
Move border-beam animation-delay after the animation shorthand.
Alias --spacing to --ui-spacing for tw-animate compatibility.
Co-authored-by: Rotimi Best <[email protected]>
* fix(db): sync question_type sequence before seeding new types
Avoid duplicate key errors when question_type_id_seq lags behind rows
inserted via restore or explicit ids (e.g. THUMBS on restored databases).
Co-authored-by: Rotimi Best <[email protected]>
* fix(exercise): resolve thumbs review label ICU crash
Remove {value} ICU placeholder from thumbs.review.correct_answer_label
since labels are resolved at map-build time without context. Append the
dynamic yes/no label in thumbs-review-toggle instead.
Also bind question points through the questionnaire store index to avoid
the Svelte non-reactive property binding warning in edit-mode.
Co-authored-by: Rotimi Best <[email protected]>
* docs(agent): add THUMBS guidance and sync question type docs
Add shared agent question-type guide helpers in @cio/question-types and
use them across the teacher prompt, add/update_questions tool schemas,
legacy ai-assistant schemas, and MCP exercise tools.
- Document when to use THUMBS (Yes/No sentiment) vs TRUE_FALSE (factual)
- Fix stale MCP question type ids and add THUMBS=14
- Exclude disabled MATCHING/HOTSPOT from enabled type lists
Co-authored-by: Rotimi Best <[email protected]>
* fix(thumbs): clarify auto-grading and add editable option labels
THUMBS is auto-graded like TRUE_FALSE; the difference is thumbs UI with
customizable Yes/No-style labels and the teacher selecting the correct
option. Render take/preview/review from question.options labels and add
label inputs in the thumbs edit renderer. Update agent and MCP docs to
stop implying THUMBS is manual or non-gradable.
Co-authored-by: Rotimi Best <[email protected]>
* chore(mcp): bump version to 0.0.10
Co-authored-by: Rotimi Best <[email protected]>
* fix(question-types): make THUMBS open-ended with no correct answer
THUMBS is a sentiment/poll question type, not an auto-graded binary like
TRUE_FALSE. Remove correct-answer UI, scoring, and validation; update agent
and MCP docs accordingly.
Co-authored-by: Rotimi Best <[email protected]>
* fix(dashboard): stop treating THUMBS as auto-graded in editor validation
Normalize thumbs questions on load/save, show an Open-ended badge instead
of Auto, and only enforce points/correct-answer rules on auto-gradable types.
Co-authored-by: Rotimi Best <[email protected]>
* revert(dashboard): remove unsolicited open-ended grading badge
THUMBS uses the existing Manual badge like other non-auto-gradable types.
Co-authored-by: Rotimi Best <[email protected]>
* fix(exercise): show question title validation errors in editor
Display mapped title errors beneath the question title input instead of
only highlighting the question card border. Pass the exercise entity to
mapZodErrorsToTranslations so messages resolve to validations.exercise.*
keys, and use a translated snackbar key for save validation failures.
Co-authored-by: Rotimi Best <[email protected]>
* fix(mcp): build workspace deps before MCP publish bundle
The MCP esbuild step imports @cio/question-types and @cio/utils dist
outputs. CI failed on a clean checkout because mcp:build only built the
MCP package itself. Build those dependencies first so 0.0.10 can publish.
Co-authored-by: Rotimi Best <[email protected]>
---------
Co-authored-by: Cursor Agent <[email protected]>
Co-authored-by: Rotimi Best <[email protected]>
* chore: update README with environment setup instructions and demo account credentials
fix: replace rm -rf with rimraf in build scripts for cross-platform compatibility
fix: add shell option to pnpm command in db-setup script for Windows compatibility
chore: update package.json files to use rimraf instead of rm -rf for consistency
chore: add rimraf dependency to pnpm-lock.yaml
feat: add postinstall script to install lefthook git hooks in a cross-platform manner
* docs(qa): add QA test plan, flow checklists, and bug-report workflow
Add a repo-native QA execution layer on top of FEATURE_AUDIT.md (the
feature map). Test cases live in the repo; bugs live in GitHub Issues, so
there is no duplicate tracker to keep in sync.
QA system:
- FEATURE_AUDIT.md: the feature map - every feature, its user flow, and
edge cases with file:line citations.
- qa/README.md: the workflow, severity/difficulty rubrics, label setup,
and a static feature -> flow coverage map proving all 42 audited
features have a test plan.
- qa/flows/01..13: per-flow happy-path checklists covering signup &
onboarding, course authoring, people/invites/roles, student ->
certificate, AI assistant & tutor, programs/attendance, community,
org public site, media & import, org settings, public API/MCP,
enterprise SSO/licensing, and billing & AI credits.
- .github/ISSUE_TEMPLATE/qa-bug.yml: a QA Bug template requiring
severity, difficulty, area, repro steps, and a screen recording.
Dev tooling:
- package.json: add db:studio and docker:build scripts.
- packages/db: add db:studio (drizzle-kit studio); fix db:reset on
Windows by spawning the pnpm.cmd shim with shell:true (Node's
CVE-2024-27980 fix blocks spawning .cmd/.bat without a shell).
* chore: update QA bug template and README for clarity and improved workflow
* docs: enhance DEV_SETUP_NOTES and README for clarity on prerequisites and email setup
chore: update package.json scripts for cross-platform compatibility
feat: add cross-platform Prettier check script for pre-commit hook
* Remove QA documentation and flow files for ClassroomIO
- Deleted the entire QA README.md file which contained the QA process, bug filing guidelines, and feature coverage map.
- Removed all flow files (01 to 13) that detailed the QA testing processes for various features including admin signup, course authoring, people management, student learning, AI assistant, programs, community, org public site, media management, org settings, public API, enterprise SSO, billing, and AI credits.
* fix: update postinstall script