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 approved SimDeck improvements.

Source of truth

SimDeck release notes

Approved release notes are published here. Draft entries are labeled and are not live releases.

Version 0.39

July 16, 2026

Single-card changes only for what David saw

Use, Restore, Archive, and Transfer now stay tied to the exact card and student destination on David's screen; if either changed, SimDeck stops instead of overwriting newer classroom work.

Why it matters

  • - A stale game-desk or activity tab cannot use, restore, archive, or transfer a card after another classroom action changed it.
  • - A student destination that was renamed, deleted, or otherwise changed must be selected again before a direct transfer can continue.
  • - Use history names the card's trusted current holder, while Use and Bank-routing policy are checked again inside the transaction.

Verification

  • - All 324 unit tests pass across 33 files, including stale versions for all four actions, raw-ID tampering, trusted Use attribution, destination drift, and Use/Bank policy drift.
  • - Critical-source coverage is 84.99% statements, 71.88% branches, 95.98% functions, and 93.30% lines.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.39 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 direct-action safety notice and the public Version 0.39 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 visible single-card teacher control to the rendered card version with shared hidden inputs across student inventory, David reserve, Bank, and Activity.
  • Replaced raw direct-transfer student IDs with versioned destination selections and repeated destination validation inside the atomic transfer.
  • Removed browser-supplied Use attribution and reloaded the trusted card holder and relevant card policy inside the transaction.

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.
Newer releases

Page 11 of 19

Older releases

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

PrivacyTermsSupportHelpWhat's new