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

September 2, 2026

Teacher-created usernames replace student email setup

David can add every student before class with a username and starting code 0000, prepare their roles and cards before first sign-in, and reset a forgotten code without changing classwork.

Why it matters

  • - Removes student email, password creation, class codes, join requests, and approval walkthroughs from new classroom setup.
  • - Makes each provisioned roster row an approved class member immediately, so David can preload roles, starter cards, seats, and notes.
  • - Lets students keep 0000 or optionally choose a different four-number code from their Account page.
  • - Lets David reset a code to 0000 while preserving every membership, role, card, and classroom event.

Verification

  • - Unit coverage proves new, replayed, cross-teacher, partial-failure, legacy-activation, code-change, reset, and last-membership reuse behavior.
  • - Responsive browser coverage checks the student sign-in surface at 320 and 390 CSS pixels with exact four-number input semantics.
  • - Exact PR-head CI, production schema creation, deployment binding, and isolated teacher/student production rehearsal remain delivery gates until release completion.

Source: Linear PI-240

  • Stores only a salted scrypt hash in a server-only credential collection; readable codes never enter backups, CSV, print, URLs, or Activity metadata.
  • Keeps usernames globally unique and reserved to the teacher who created them, including after the last class membership is removed.
  • Creates a student session only after the submitted code is verified and at least one approved membership exists.
  • Preserves existing roster IDs, private inventory routes, roles, cards, seats, and notes when a legacy student is assigned a username.

Version 0.69

September 2, 2026

Class backups omit credential-shaped metadata

Downloaded classroom backups now remove password, session, secret, sign-in ID, and private access-code fields from nested card and Activity metadata.

Why it matters

  • - Keeps password-reset bookkeeping out of files that teachers download or later restore.
  • - Preserves ordinary card provenance and classroom Activity details while removing credential-shaped fields recursively.
  • - Applies to existing classroom history at download time without rewriting live classroom data.

Verification

  • - Regression coverage includes nested password, secret, session, Auth user ID, and private access-code fields alongside preserved safe metadata.
  • - Full unit, typecheck, lint, build, exact PR-head CI, production deployment, and byte-level China/Egypt export audits remain required before acceptance.

Source: Linear PI-239

  • Normalizes underscore, hyphen, and camel-case key variants before applying the export allowlist boundary.
  • Sanitizes both card-template metadata and Activity metadata in the canonical backup builder.
  • Leaves classroom CSV exports unchanged and free of password fields.

Version 0.68

September 2, 2026

Teacher Account stays global

Teacher Account now opens in a neutral account context instead of inheriting whichever class or protected template happened to be selected.

Why it matters

  • - Keeps account identity and password controls separate from classroom work.
  • - Prevents a protected China or Egypt template from appearing to be the current context on a global page.
  • - Returns teachers to the neutral Classes page after account recovery or sign-out.

Verification

  • - Unit coverage requires neutral account shell props and rejects classroom-data selection on the account route.
  • - Navigation coverage requires both Account entry points to use the clean global URL.
  • - Full unit, typecheck, lint, build, exact PR-head CI, production deployment, and isolated teacher retest remain required before acceptance.

Source: Linear PI-239

  • Removes the selected-class query from both global Account links.
  • Avoids loading classroom data merely to render the global account page.
  • Uses the neutral classroom visual theme and global navigation only.

Version 0.67

September 2, 2026

Consumed classroom notices do not return later

A teacher notice that has been consumed no longer reappears when David leaves the page and later returns through classroom navigation.

Why it matters

  • - Prevents an old Undo confirmation from appearing beside a newer live classroom state.
  • - Keeps the message visible and accessible on the exact view created by the action.
  • - Consumes it on refresh or navigation without losing the selected class or filters.

Verification

  • - Authenticated smoke coverage leaves a cleaned live notice, visits Activity, returns with browser Back, and confirms the old message stays consumed.
  • - The same flow reloads Activity and returns through in-app navigation without resurrecting the message.
  • - The existing Refresh now and following browser-reload checks remain in the same end-to-end flow.
  • - Full unit, typecheck, lint, build, exact PR-head CI, production deployment, and isolated teacher retest remain required before acceptance.

Source: Linear PI-239

  • Adds a unique action receipt to each teacher result so an old browser-restored success URL cannot claim that a completed action just happened again.
  • Rejects receipt-less legacy success URLs while keeping current error recovery compatible.
  • Preserves the framework's history state when cleaning the address so hidden navigation links cannot carry the old notice forward.
  • Gives each rendered route message a unique browser-history receipt instead of reusing a deterministic component identifier.
  • Consumes that receipt before link, page, back, or forward navigation so stale server-component snapshots cannot revive it.
  • Keeps locally generated demo feedback independent from one-time URL feedback.

Page 1 of 16

Older releases

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

PrivacyTermsSupportHelpWhat's new