Version 0.54
July 16, 2026
Send approvals recheck every prerequisite inside the transaction
Teacher approval now repeats sender, recipient, same-game, and card-policy checks inside the atomic decision, so participant or policy drift cannot move the card or close the request.
Why it matters
- - David cannot approve a send after its requesting student or classmate recipient became ineligible, even if the approval page still shows the older state.
- - A student moved to another class or a changed card-template destination rule stops approval before either the card or pending request is mutated.
- - A valid approval still moves the exact card version and closes the exact unresolved request together in one Appwrite transaction.
Verification
- - All 477 unit tests pass across 48 files, including sender, recipient, relationship, and policy drift after preflight plus successful transactional approval.
- - Critical-source coverage passes at 85.73% statements, 72.97% branches, 96.17% functions, and 94.68% lines; actions remain at 95.46% line coverage.
- - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari; the five credential-gated teacher cases skip as designed.
- - The complete live pending-send decision verifier and full production integrity audit pass without classroom or Auth writes.
- - Typecheck, full lint, zero-warning static security lint, production build, backendless demo, 10 skeleton states, theme contrast, npm audit with zero vulnerabilities, and git diff validation pass.
- - The Version 0.54 draft was recorded on PI-213 before this public page entry; the canonical ledger follows exact staging proof.
Source: Linear release ledger document, PI-213
- Repeated current requesting-student, optional classmate-recipient, and card-template reads through the same transaction used for the approval writes.
- Required exact same-game relationships and current student eligibility before the first mutation in that transaction.
- Reapplied the template's destination policy to the current recipient and added the original card-template id to the card compare-and-set guard.
- Expanded the production pending-send verifier to classify every current decision from live student, card, request, and template records without writing classroom data.