feat: add Assessment session review loop #204

Merged
CoderLambert merged 12 commits from product/179-assessment-session-review into main 2026-09-14 18:46:20 +08:00
CoderLambert commented 2026-09-14 16:43:54 +08:00 (Migrated from github.com)

Closes #179

Scope

  • derive completed-session reviews from persisted session snapshots + attempts
  • learning-unit-scoped historical session review
  • wrong-first review ordering with answer/correctness/explanation/evidence
  • session-local fallback remains explicit through existing storage notice
  • no persistence schema, question source-of-truth, App composition, AI, workflow, or package changes

Execution base / refresh

Current main@49df148e2d923e22eb02c905d54fdef8e401fcad is contained in the feature branch via normal merge commit 317f2e4a2b0f67f78760a1f27388cdd4621e791a; current candidate HEAD is 3b321099d64866453be54da3acea5742af4f7228. Compare reports behind_by=0. No rebase/squash/force push/history rewrite.

Acceptance evidence

  • current completed session automatically selects its persisted review and distinguishes correct/wrong items with wrong-first ordering
  • historical sessions are loaded through repository learning-unit scope; cross-unit review fails closed
  • historical review facts come from session item snapshots + persisted attempts, not the current question revision
  • existing evidenceRefs render through the existing onOpenEvidence path
  • Memory contract coverage + IndexedDB browser reload/recovery coverage
  • persistence-unavailable/session-local limitation remains explicit through the existing storage notice
  • diff vs current main is Assessment-only plus focused contract/E2E tests; no sensitive schema/App/AI/package/workflow changes

Validation

  • tests/assessment-review.test.mjs: Memory fallback, isolation, snapshot correctness, wrong-first ordering, cross-unit fail-closed
  • tests/e2e/assessment-management.spec.js: IndexedDB reload, historical snapshot correctness, cross-unit isolation, wrong-first UI
  • exact-head React Learning Verify / verify: SUCCESS, run 34833968350
  • exact-head Workbench Integration Verify / verify: SUCCESS, run 34833968283 (Build + Browser E2E + HTTP smoke all SUCCESS)

Exact-head required CI is authoritative; this writer lane does not merge main.

Closes #179 ## Scope - derive completed-session reviews from persisted session snapshots + attempts - learning-unit-scoped historical session review - wrong-first review ordering with answer/correctness/explanation/evidence - session-local fallback remains explicit through existing storage notice - no persistence schema, question source-of-truth, App composition, AI, workflow, or package changes ## Execution base / refresh Current `main@49df148e2d923e22eb02c905d54fdef8e401fcad` is contained in the feature branch via normal merge commit `317f2e4a2b0f67f78760a1f27388cdd4621e791a`; current candidate HEAD is `3b321099d64866453be54da3acea5742af4f7228`. Compare reports `behind_by=0`. No rebase/squash/force push/history rewrite. ## Acceptance evidence - current completed session automatically selects its persisted review and distinguishes correct/wrong items with wrong-first ordering - historical sessions are loaded through repository learning-unit scope; cross-unit review fails closed - historical review facts come from session item snapshots + persisted attempts, not the current question revision - existing `evidenceRefs` render through the existing `onOpenEvidence` path - Memory contract coverage + IndexedDB browser reload/recovery coverage - persistence-unavailable/session-local limitation remains explicit through the existing storage notice - diff vs current main is Assessment-only plus focused contract/E2E tests; no sensitive schema/App/AI/package/workflow changes ## Validation - `tests/assessment-review.test.mjs`: Memory fallback, isolation, snapshot correctness, wrong-first ordering, cross-unit fail-closed - `tests/e2e/assessment-management.spec.js`: IndexedDB reload, historical snapshot correctness, cross-unit isolation, wrong-first UI - exact-head `React Learning Verify / verify`: SUCCESS, run `34833968350` - exact-head `Workbench Integration Verify / verify`: SUCCESS, run `34833968283` (Build + Browser E2E + HTTP smoke all SUCCESS) Exact-head required CI is authoritative; this writer lane does not merge main.
Sign in to join this conversation.