Skip to main content
SimDeck
AboutWhat's newHelpDemoSupportStudent login
AboutWhat's newHelpDemoSupportStudent login
View demo
ChinaEgyptClassroom

Release ledger

What's new in SimDeck

A version-by-version record of the improvements, mirrored from the SimDeck release ledger in Linear.

Source of truth

Linear release ledger

Public notes summarize the canonical Linear source in teacher-facing language. The first entry below is the latest verified SimDeck delivery.

Open Linear source

Version 0.38

July 16, 2026

Bulk changes only for the cards you selected

Bulk archive, restore, and transfer now stay tied to the exact cards and student destination David saw; if anything changed, SimDeck rejects the entire action instead of overwriting newer classroom work.

Why it matters

  • - A stale game-desk tab cannot archive, restore, or transfer a card after another classroom action changed it.
  • - One changed or missing card stops every selected update and the activity record, preserving all-or-nothing classroom state.
  • - A changed transfer destination also stops the action, and the 95-card limit keeps each batch within the atomic Appwrite boundary.

Verification

  • - All 312 unit tests pass across 32 files, including malformed and duplicated selections, the 95-card limit, stale rendered cards, in-transaction changes, compare-and-set misses, destination changes, rollback, and activity metadata.
  • - Critical-source coverage is 84.95% statements, 71.18% branches, 95.97% functions, and 93.14% lines; the new bulk-selection helper is 100% covered for statements, branches, functions, and lines.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.38 release entry.
  • - 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 protected bulk-action notice and the public Version 0.38 release card were inspected at desktop and 390px mobile widths with no horizontal overflow.
  • - Read-only Appwrite schema, production health, integrity, and backup/restore planning checks pass without classroom writes.
  • - The Linear release ledger was updated before this public page entry.

Source: Linear release ledger document, PI-213

  • Bound every checkbox and student destination option to the exact version rendered on the game desk, with malformed, duplicate, cross-game, and oversized submissions rejected before writes.
  • Repeated the full card and destination review inside the transaction, then updated version groups with exact game, ID, and version compare-and-set filters.
  • Recorded ordered card snapshots and the optional destination snapshot in activity metadata without an Appwrite schema migration.

Version 0.37

July 16, 2026

Undo only for the exact action state

Undo now appears only while SimDeck can prove the card or role assignment is still the exact state produced by that activity; older or changed history points David to manual correction.

Why it matters

  • - An old use, transfer, or manual-add entry cannot reverse a newer classroom change merely because the card later returned to the same visible holder or status.
  • - Role-deal Undo is tied to every dealt card version and the exact assignment generation, protecting later card movement and role reassignment.
  • - Dashboard, live dashboard, game desk, and activity history show one consistent verified Undo or manual-correction decision.

Verification

  • - All 298 unit tests pass across 31 files, including producer metadata, changed-and-returned rejection, exact role generations, preflight and transactional guards, atomic reversal, and rendered Undo suppression.
  • - Critical-source coverage is 84.60% statements, 70.28% branches, 95.90% functions, and 92.95% lines; the new Undo helper reaches 92.64% statements, 85.60% branches, 100% functions, and 95.08% lines.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.37 release entry.
  • - 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.
  • - Verified card and role-deal Undo, changed-card correction, legacy correction, and the public release card were inspected at desktop and 390px mobile widths with no horizontal overflow.
  • - Read-only Appwrite schema, production health, integrity, and backup/restore planning checks pass without classroom writes.
  • - The Linear release ledger was updated before this public page entry.

Source: Linear release ledger document, PI-213

  • Recorded Version 2 post-write card snapshots for teacher and student use, direct and approved sends, and manual adds without an Appwrite schema migration.
  • Recorded every role-deal card version plus exact role-assignment IDs and generation, then rechecked the full state before and inside atomic reversal.
  • Suppressed Undo for legacy, malformed, changed, or superseded history and linked directly to the game desk for explicit teacher correction.

Version 0.36

July 16, 2026

Safer student send approvals

Approval-required card sends now stay tied to the exact card version the student submitted, and unsafe older or changed requests become reject-only for David.

Why it matters

  • - A stale student page cannot open a request after the card changed, and an old request cannot move a card that later returned to the same student.
  • - David sees Snapshot verified only while the card, sender, destination, and send policy still match; otherwise Approve disappears and the request explains what changed.
  • - Older requests without snapshot evidence remain rejectable, while one normal open request per card avoids conflicting destination choices during class.

Verification

  • - All 287 unit tests pass across 29 files, including stale request creation, Version 2 metadata, any-destination pending detection, legacy fail-closed approval, changed-and-restored card rejection, target revalidation, transactional snapshot filters, review states, and rendered Approve suppression.
  • - Critical-source coverage is 84.23% statements, 68.70% branches, 94.79% functions, and 92.62% lines; the new transfer-request helper reaches 95.65% statements, 95.45% branches, and 100% functions and lines.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.36 release entry.
  • - 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.
  • - Verified, changed-card, and legacy request states were inspected at desktop and 390px mobile widths; read-only Appwrite schema, production health, integrity, and backup/restore planning also pass.
  • - The Linear release ledger was updated before this public page entry.

Source: Linear release ledger document, PI-213

  • Stored a Version 2 card snapshot and normalized destination in each new approval-required send request without changing the Appwrite schema.
  • Rechecked the exact card version, ownership, active state, source and classmate eligibility, seeded-demo visibility, and current card policy before and inside approval.
  • Unified verified and reject-only request guidance across the teacher dashboard, live dashboard, and activity log.

Version 0.35

July 16, 2026

Safer student account changes

Teacher roster edits now follow the live student sign-in, recover safely from partial email failures, and explain when one password or email belongs to more than one class.

Why it matters

  • - A rejected account-email change no longer leaves the roster showing an address that cannot sign in, and a later retry cannot silently skip the repair.
  • - Each linked student card explains how many classes share the account, whether a restored class reserves the email, and where a password reset applies.
  • - Roster deletion is labeled as removing the student from this class, while invitations distinguish first-time password creation from returning-account sign-in.

Verification

  • - All 271 unit tests pass across 27 files, including live-account failure, stale and blank marker repair, provider rejection, Auth rollback, rollback-failure recovery, shared-scope markup, and exact 256/257 password boundaries.
  • - Critical-source coverage is 83.43% statements, 66.33% branches, 94.39% functions, and 92.05% lines; the membership helper remains above 97% statement and 98% line coverage.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the new Version 0.35 release entry.
  • - 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 shared-account roster treatment was inspected at desktop and 390px mobile widths, and the Version 0.35 release card was inspected from the rendered app.
  • - The Linear release ledger was updated before this public page entry.

Source: Linear release ledger document, PI-213

  • Made live Appwrite Auth the source of truth for linked email edits, with provider-first writes, roster rollback, and stale-marker reconciliation.
  • Kept display names per class instead of renaming a shared account, and left shared/reserved emails read-only while preserving authoritative server checks.
  • Added exact shared-account scope copy, 8-to-256 teacher password reset boundaries, and class-local deletion wording to the teacher roster.
Newer releases

Page 9 of 16

Older releases

SimDeck is demo classroom software for role-based card inventories.

PrivacyTermsSupportHelpWhat's new