Personal Entry Workspaces
Winding the chronometer
Chronometric archive
Version history
Every retained commit in Amethyst's repository, with interactive demos for prepared snapshots.
- Cataloged commits
- 60
- Available Demo
- 10
- Not Prepared
- 40
- Unavailable
- 10
Playable historical milestones
Amethyst Archives Launch
feat: Amethyst Archives with live Markdown editor, task details and public sign-up
feat(ui): polish interactions, To Do-style checklists and square game covers
Trigger initial Vercel deploy
chore: add .npmrc file to set npm registry
feat: update navigation to include 'Other' collection and enhance entry creation tests
User-Created Collections
fix: scope production typechecking to application
Home Dashboard & Five Themes
Add themes, update log, live search, fan picker and per-setting resets
Readable URLs, 3D Showcase & Arcade Hall
Arcade coins and prize shop, cabinet-style Arcade hall and Home marquee
Tasks Workspace & Archive | Tasks Switch
feat: Tasks workspace with lists, smart views, sync and My Day on Home
Complete commit catalog (60 commits)
Every retained commit reachable from repository branches and tags, deduplicated by full 40-character SHA.
- Not Prepared3D Forged VaultmainCommitted: Verified release:
Forge the Vault in 3D with a registered access console and unlock sequence
Release (The Vault, forged in 3D): The Vault is now a real 3D artifact: a black-metal seal with crimson light in its seams, an iris door that physically opens and an access console you type into directly. View release notes →a4b36eca4b36ec4f662d3d063d8fe53ef4a4635f76e5ad245 migrations · 20261114000100_vault_phrases.sqlNot Prepared: Cataloged from Git history (45 migrations through 20261114000100_vault_phrases.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedmainCommitted: Verified release:
Summon the Vault in 3D with a server-confirmed reward reveal
Complete Vault Upgrade V2. The previous commit already carried the shared Three.js helpers, timing, audio and reveal components, but its page and chamber were out of sync, so its Vercel build failed; this commit wires everything together. - 3D vault: a Three.js scene loaded only on /vault, with a thick layered vault, controlled reflections, escaping red light, moving runes and bounded
Release (The Vault, resealed): The Vault is now a 3D chamber you summon: a heavy red-lit vault rises out of the dark, opens for the right code and hands you what you’ve earned. Codes can now be real words. View release notes →c5de608c5de608d48c60b37f219c4f7f368022a5eac839c45 migrations · 20261114000100_vault_phrases.sqlNot Prepared: Cataloged from Git history (45 migrations through 20261114000100_vault_phrases.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- UnavailablemainCommitted: Internal / intermediate commit
Rework the Vault experience and support human-readable secret codes
Redesign the Vault with a dark system-style interface, animated rune seal, coordinated audio, decoding transitions and reward reveals. Add shared timing and reveal components alongside updated page styling and release notes. Support operator-selected phrase codes with normalized hash-only storage, duplicate detection and backwards-compatible redemption. Include the Vault phrase migration, API and database types, C...
743b007743b007654975b71f3a49ac3c09516bc0afecd7b45 migrations · 20261114000100_vault_phrases.sqlUnavailable: Mid-rework commit where /vault and its 3D chamber components were out of sync and failed compilation (wired together 41 minutes later in c5de608).
- Not PreparedThe Vault, Lab & Coin SlotsmainCommitted: Verified release:
The Vault, the Lab and Coin Slots
Secret Code Vault (/vault) - Codes are stored as SHA-256 hashes only. redeem_secret_code grants coins and cosmetics in one locked transaction (once per user, max uses, expiry, disable) with identical failure replies and per-user throttling. - Operator CLI: npm run codes -- rewards|create|list|disable (a generated code is printed once and never stored in plain text).
Release (The Vault, the Lab and Coin Slots): Three hidden corners of Amethyst: a vault that opens for secret codes, a lab of ridiculous interface experiments and a slot machine for the coins you’ve earned. View release notes →9e07dd99e07dd9382f374111bbdc04325e681dc1fdc064144 migrations · 20261113000200_coin_slots.sqlNot Prepared: Cataloged from Git history (44 migrations through 20261113000200_coin_slots.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedVirtualized To Do & Catalog SearchmainCommitted: Verified release:
Big To Do lists, bulk actions, catalog search and correct update-log dates
To Do: large lists - Virtualize the task list with @tanstack/react-virtual (VirtualTaskList in components/tasks/task-list.tsx): variable row heights are measured, and the focused and dragged rows stay mounted so keyboard focus, selection, dragging and scroll position survive scrolling. - Filters, search, selection and bulk actions still operate on the full
Release (Big To Do lists, bulk actions and catalog search): To Do stays fast with well over a thousand tasks and lets you act on many at once. Shops and other catalogs can now be searched. View release notes →3c4dc113c4dc11fe0f116906e2b1aba9dd0259ac4d8b7aa42 migrations · 20261112000100_achievement_reconciliation.sqlNot Prepared: Cataloged from Git history (42 migrations through 20261112000100_achievement_reconciliation.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedmainCommitted: Verified release:
Lighter first load and far less main-thread style work
First load - Preload destinations on hover/focus intent (IntentLink) instead of at startup; load legacy storage upload code only when needed. - Right-size Home, fan, stack, hub, entry and frame-picker artwork with explicit sizes; blurred backdrops request 200px. - Linked artwork revisions refresh every 30 days (staggered) and sibling
Release (A lighter first load): Home gives its first screen priority, with smaller startup downloads and less unrelated background work. View release notes →318a93d318a93df52e2bed8151947d7405f919fb2181b2442 migrations · 20261112000100_achievement_reconciliation.sqlNot Prepared: Cataloged from Git history (42 migrations through 20261112000100_achievement_reconciliation.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedmainCommitted: Verified release:
Improve private artwork delivery and archive responsiveness
Private artwork - Add an authenticated artwork route with fixed responsive width buckets, private per-user R2 derivatives, stable signed redirects and owner checks. - Bound and deduplicate Sharp transforms, validate raster signatures, and preserve animated images, alpha and original-resolution viewer sources. - Use responsive artwork for posters, avatars and banners, with original
Release (A quicker archive, with the same detail): Artwork loads at a size suited to its place, collection searches keep their cards ready, and long notes do less repeated work. Your originals, effects and customization stay intact. View release notes →a996450a996450c096224c850feaaab73121a725b9dd26742 migrations · 20261112000100_achievement_reconciliation.sqlNot Prepared: Cataloged from Git history (42 migrations through 20261112000100_achievement_reconciliation.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedmainCommitted: Internal / intermediate commit
Fix production 500s: keep R2 settings from breaking every write route
Since d8b23c2 the server environment defaulted ATTACHMENT_STORAGE to "r2" and rejected the whole environment when the R2_* variables were missing. Production has no R2 variables, so serverEnv() threw on every call. It is used by the cross-origin check of all mutating API routes and by the auth actions, which made task creation (POST /api/tasks), task reordering (PUT /api/tasks/order), preference saves (PATCH /api/...
2c844bb2c844bb227978f2d5e0587442fe0f9f97094efe241 migrations · 20261111000100_game_cosmetics.sqlNot Prepared: Cataloged from Git history (41 migrations through 20261111000100_game_cosmetics.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- UnavailablePer-Game Cosmetic ShopsmainCommitted: Verified release:
Arcade: dedicated cosmetic shops for all six games
Game shops - Every Arcade game (Snake, 2048, Flutter, Sudoku, Fruit Slice, Tower Stacker) gets its own shop with 172 purchasable cosmetics in total: seven items per category plus a free default, and art styles for Snake (pixel, hand-drawn, clay, neon), 2048 (retro, candy, glass, wooden) and Fruit Slice (cartoon, pixel, watercolor).
Release (A shop for every Arcade game): Each of the six Arcade games now has its own shop of cosmetics, bought with the coins you earn by playing. They change how a game looks, never how it plays. View release notes →851d01f851d01f69186bd40fcba21288dd445b48908eec341 migrations · 20261111000100_game_cosmetics.sqlUnavailable: Inherited d8b23c2's global serverEnv() R2 credential check, which rejected write routes whenever production R2 variables were omitted (fixed 27 minutes later in 2c844bb).
- UnavailablemainCommitted: Verified release:
Fix private R2 attachment delivery and resumable migration
Serve verified attachments from private R2 independently of the upload setting, default new uploads to R2, and retain Supabase fallback for unmigrated files. Keep session authorization and existing document links intact. Recover interrupted R2 copies using metadata and checksum verification before downloading Supabase originals. Compare source checksums before skipping verified files, preflight R2 connectivity, an...
Release (Private attachment delivery fixed): Migrated note images and uploaded artwork now load from private R2 storage consistently, while existing documents and image links stay intact. View release notes →d8b23c2d8b23c2f67b63356fbd0e51ed59fb0604e97e44840 migrations · 20261110000100_sudoku_fruit_stacker_daily.sqlUnavailable: serverEnv() unconditionally required live Cloudflare R2 credentials on all write routes and Arcade lazy.tsx had an incomplete type signature (fixed in 2c844bb).
- Not PreparedDaily Sudoku & Isometric StackermainCommitted: Verified release:
Arcade: daily Sudoku, Fruit Slice modes and an isometric Tower Stacker
Sudoku - Daily puzzle: one deterministic medium puzzle per UTC day (seeded generator, unique solution), shared by everyone, with a reset countdown. An unfinished daily from an earlier date is only replaced after confirmation. - Regular and daily games are saved in separate slots (sudoku_games PK is
Release (Daily Sudoku, Fruit Slice modes and a new Tower Stacker): Sudoku gets a daily puzzle and reliable saves, Fruit Slice gets sharper slicing, new modes and a daily run, and Tower Stacker is rebuilt in a three-quarter view with precise drops. View release notes →5de93285de9328152bbbb2d2c6b06e6aa686c6675c38fda40 migrations · 20261110000100_sudoku_fruit_stacker_daily.sqlNot Prepared: Cataloged from Git history (40 migrations through 20261110000100_sudoku_fruit_stacker_daily.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not Prepared2048 & Flutter Daily ChallengesmainCommitted: Verified release:
2048 & Flutter: daily challenges, board sizes and smoother, bouncier 2048
2048 - 3x3 / 4x4 / 5x5 boards with separate saved rounds and records. - Continue after reaching 2048; clearer game-over screen. - Fix choppy slides: render tiles in stable id order so React never moves DOM nodes (which cancelled their translate transitions). - Jiggle along the move axis, merge pop, glow on 128+ merges, board
Release (Daily challenges, board sizes and a fairer Flutter): 2048 and Flutter each get a daily challenge. 2048 also animates more smoothly, saves unfinished rounds and offers three board sizes. Flutter's flight is fairer and pausing is safer. View release notes →ea01ac2ea01ac2bd7fd1bb07c7d0665ac6e92e261bf5ad039 migrations · 20261109000100_arcade_daily.sqlNot Prepared: Cataloged from Git history (39 migrations through 20261109000100_arcade_daily.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedmainCommitted: Verified release:
Snake V3: smoother play, three speeds and per-game Arcade colors
Snake performance - Draw the snake, winged fruit and pushed crates between simulation steps using the loop's interpolation alpha, so motion stays smooth on any refresh rate (no more 60 Hz stepping on 120/144 Hz displays). - Cache the board (checks, tufts, layer tint) and settled scenery (stones, bricks, statues, crystals) in an offscreen canvas, repainted only when it
Release (Snake speeds, smoother play and game colors): Snake runs more smoothly and lets you pick a speed, and every Arcade game now has its own colors instead of following your app theme. View release notes →7e70bab7e70babc70ae9ccf8e6553b7e4e95e927c317e3438 migrations · 20261108000100_snake_speeds.sqlNot Prepared: Cataloged from Git history (38 migrations through 20261108000100_snake_speeds.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedSnake V2 & BlendermainCommitted: Verified release:
Snake V2: cartoon look, icon setup, 15 new modes and Blender
What's new - Icon-led setup panel: compact tiles for mode, fruit, board size and fruit amount with tooltips and accessible labels; clear selected, hover and unavailable states; no more mode description paragraphs. - Original cartoon art: outlined, cel-shaded snake with an expressive face (happy, hungry, worried, dizzy, crashed), new fruit, rocks, bricks,
Release (Snake: cartoon look, 15 new modes and Blender): Snake has a new hand-drawn look, an icon-based setup, many new modes you can play alone or mix in Blender, and more fruit. View release notes →252aa7e252aa7e4ecb823ee4f95374fcbe01b6e11aeed8e37 migrations · 20261107000100_snake_v2.sqlNot Prepared: Cataloged from Git history (37 migrations through 20261107000100_snake_v2.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.
- Not PreparedmainCommitted: Verified release:
feat: Snake modes, fruits, fruit amount, board sizes and smoother play
Classic, Wrap, Obstacles and Timed modes; selectable fruits incl. Fruit Salad; 1-12 fruits; Small/Medium/Large boards; saved setup; per-setup bests (existing best kept as Classic/Medium/1); interpolated movement and feedback; migration for snake record variants and reward limits; changelog entry.
Release (Snake: smoother play, modes, fruits and board sizes): Snake glides between cells, reacts when it eats or crashes, and now lets you pick a mode, a fruit, how many fruits appear and the board size before each round. View release notes →5d1f4b25d1f4b24afb7986bcb4adb868b8dea6fff4cfc3436 migrations · 20261106000100_snake_modes.sqlNot Prepared: Cataloged from Git history (36 migrations through 20261106000100_snake_modes.sql), but not currently built as an active demo instance. Can be prepared via the operator CLI.