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.46

July 16, 2026

A restored class keeps its complete Activity history

Full backup restore now carries every exported Activity entry into the new game as read-only history, with student and card references remapped safely and old live controls kept inactive.

Why it matters

  • - A full restore no longer drops the class history that the backup file preserved.
  • - Old pending sends and Undo snapshots remain visible evidence but cannot reappear in the new class's approval or Undo queues.
  • - Restored history links to the copied students and card instances while preserving the original summary, timestamps, closure state, and metadata.

Verification

  • - All 438 unit tests pass across 42 files, including reference remapping, inert actions, preserved audit fields, invalid data and size rejection, history batching, atomic-limit enforcement, failed-history aborts, and rendered guidance.
  • - Critical-source coverage is 85.63% statements, 72.56% branches, 96.52% functions, and 94.50% lines; backup/restore planning reaches 95.41% lines and actions reach 95.20% lines.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.46 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 public Version 0.46 release card was inspected at desktop and 390px mobile widths with no horizontal overflow.
  • - Read-only Appwrite schema, production health, integrity, exact export transaction, and complete-history restore planning checks pass without classroom or Auth writes.
  • - The Version 0.46 draft was recorded on PI-213 before this public page entry; the canonical ledger was finalized after exact staging proof.

Source: Linear release ledger document, PI-213

  • Validated and remapped every Activity game, student, and card-instance reference before opening the restore transaction.
  • Stored copied actions under inert restored_* types with trusted source provenance and repeat-restore history chaining.
  • Staged complete history before the new backup_restore event and counted every 100-row Activity batch against Appwrite's 100-operation atomic limit.

Version 0.45

July 16, 2026

Every export from one complete class moment

Full restore backups, inventory CSV files, and printable inventories now come from one integrity-checked database snapshot; SimDeck stops the export if any related class data is incomplete or changes cannot be read safely.

Why it matters

  • - A backup cannot quietly combine students, roles, cards, and Activity from different moments while class data is changing.
  • - Full restore backups keep the complete Activity history instead of falling back to only the 80 newest desk entries.
  • - CSV backups list every active role for a student, while inactive assignments remain available in the full restore backup.

Verification

  • - All 432 unit tests pass across 41 files, including one-transaction collection reads, 81-row Activity completeness, commit and rollback behavior, cross-class relationship rejection, route output, CSV safety and role rendering, and print snapshot wiring.
  • - Critical-source coverage is 85.32% statements, 72.07% branches, 96.50% functions, and 94.37% lines; the new export-snapshot module reaches 100% line coverage.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.45 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 public Version 0.45 release card was inspected at desktop and 390px mobile widths with no horizontal overflow.
  • - Read-only Appwrite schema, production health, integrity, backup/restore planning, and live eight-collection export-transaction checks pass without classroom or Auth writes.
  • - The Version 0.45 draft was recorded on PI-213 before this public page entry; the canonical ledger was finalized after exact staging proof.

Source: Linear release ledger document, PI-213

  • Added one shared Appwrite read transaction for the game, students, card templates, roles, both relationship collections, card instances, and complete Activity history.
  • Scoped relationship rows from either endpoint so dangling or cross-class links reach integrity review instead of disappearing from the export.
  • Reused the validated snapshot across JSON, CSV, and print output while preserving teacher authorization, private no-store headers, sanitized filenames, formula-safe CSV cells, and restore compatibility.

Version 0.44

July 16, 2026

New setup and imports only for the class David reviewed

Adding students, cards, or roles and replacing imported roster or card rows now stays tied to the exact game and complete collection on David's screen; changed setup stops the stale action before any write.

Why it matters

  • - An older Students, Cards, or Roles tab cannot add setup under a class that changed after David opened it.
  • - A bulk replacement cannot overwrite a student or card that was renamed or edited after David reviewed the import.
  • - Duplicate current names stop an import with a clear correction instead of choosing an arbitrary matching row.

Verification

  • - All 423 unit tests pass across 39 files, including malformed snapshots, collection membership/name/version drift, transaction-time parent drift, ambiguous names, replacement compare-and-set filters, and no-write aborts.
  • - Critical-source coverage is 84.93% statements, 71.89% branches, 96.36% functions, and 94.08% lines; actions reach 95.12% line coverage and the new setup-collection snapshot module reaches 100% lines/functions.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.44 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 public Version 0.44 release card was 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 or Auth writes.
  • - The Version 0.44 draft was recorded on PI-213 before this public page entry; the canonical ledger was finalized after exact staging proof.

Source: Linear release ledger document, PI-213

  • Bound student, card-template, and role creation to the rendered game version, with the same review repeated inside each insert transaction.
  • Added canonical complete roster and card-library snapshots covering membership, names, parent scope, and row versions before and inside bulk-import transactions.
  • Added exact row-version compare-and-set filters to every import replacement while preserving all-or-nothing batching and the 95-row limit.

Version 0.43

July 16, 2026

Class controls only for the game David opened

Game settings, safety controls, class-code regeneration, end-class, deletion, and seeded reset now stay tied to the exact game on David's screen; changed class state stops the stale action.

Why it matters

  • - An older Game Desk, Settings, Dashboard, Live Dashboard, or Students tab cannot overwrite a newer class state.
  • - End class counts the final roster and cards inside the same transaction that locks the simulation and records Activity.
  • - Game deletion and seeded reset repeat the exact game review inside their transaction before dependent or demo-card changes.

Verification

  • - All 397 unit tests pass across 37 files, including malformed and stale game intent, compare-and-set misses, transactional drift, Activity suppression, final-inventory consistency, reset drift, and deletion rollback.
  • - Critical-source coverage is 84.79% statements, 71.38% branches, 96.24% functions, and 93.86% lines; actions reach 94.92% line coverage and game/dependent deletion reach 100% lines/functions.
  • - All 465 public smoke and accessibility cases pass across Chromium, Firefox, WebKit, Mobile Chrome, and Mobile Safari, including the Version 0.43 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 public Version 0.43 release card was 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 or Auth writes.
  • - The Linear release ledger was updated before this public page entry.

Source: Linear release ledger document, PI-213

  • Replaced raw game IDs across all nine existing-game lifecycle forms with the rendered game version.
  • Added compare-and-set settings, class-code, safety, and end-class updates with repeated transactional game review where needed.
  • Moved final-inventory and demo-reset prerequisite reads into their owning transactions, and version-guarded dependent game deletion.
Newer releases

Page 7 of 16

Older releases

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

PrivacyTermsSupportHelpWhat's new