Skip to content

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

4cd98fcOnline

Personal Entry Workspaces

feat!: replace MyAnimeList sync with personal anime/game workspaces

Launch Demo
Browser-local sample workspace
3c27ef5Online

Amethyst Archives Launch

feat: Amethyst Archives with live Markdown editor, task details and public sign-up

Release: · Release

Launch Demo
Browser-local sample workspace
a33650cOnline

feat(ui): polish interactions, To Do-style checklists and square game covers

Launch Demo
Browser-local sample workspace
41c0112Online

Trigger initial Vercel deploy

Launch Demo
Browser-local sample workspace
bb14398Online

chore: add .npmrc file to set npm registry

Launch Demo
Browser-local sample workspace
8969276Online

feat: update navigation to include 'Other' collection and enhance entry creation tests

Launch Demo
Browser-local sample workspace
7ec9aa4Offline

User-Created Collections

fix: scope production typechecking to application

Release: · Release

Isolated visitor workspace
03070fcOffline

Home Dashboard & Five Themes

Add themes, update log, live search, fan picker and per-setting resets

Release: · Release

Isolated visitor workspace
3882439Offline

Readable URLs, 3D Showcase & Arcade Hall

Arcade coins and prize shop, cabinet-style Arcade hall and Home marquee

Release: · Release

Isolated visitor workspace
688565dOffline

Tasks Workspace & Archive | Tasks Switch

feat: Tasks workspace with lists, smart views, sync and My Day on Home

Release: · Release

Isolated visitor workspace

Complete commit catalog (60 commits)

Every retained commit reachable from repository branches and tags, deduplicated by full 40-character SHA.

  1. Not Prepared3D Forged Vaultmain
    Committed: 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 →
    a4b36eca4b36ec4f662d3d063d8fe53ef4a4635f76e5ad2
    45 migrations · 20261114000100_vault_phrases.sql

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

  2. Not Preparedmain
    Committed: 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 →
    c5de608c5de608d48c60b37f219c4f7f368022a5eac839c
    45 migrations · 20261114000100_vault_phrases.sql

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

  3. Unavailablemain
    Committed: 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...

    743b007743b007654975b71f3a49ac3c09516bc0afecd7b
    45 migrations · 20261114000100_vault_phrases.sql

    Unavailable: Mid-rework commit where /vault and its 3D chamber components were out of sync and failed compilation (wired together 41 minutes later in c5de608).

  4. Not PreparedThe Vault, Lab & Coin Slotsmain
    Committed: 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 →
    9e07dd99e07dd9382f374111bbdc04325e681dc1fdc0641
    44 migrations · 20261113000200_coin_slots.sql

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

  5. Not PreparedVirtualized To Do & Catalog Searchmain
    Committed: 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 →
    3c4dc113c4dc11fe0f116906e2b1aba9dd0259ac4d8b7aa
    42 migrations · 20261112000100_achievement_reconciliation.sql

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

  6. Not Preparedmain
    Committed: 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 →
    318a93d318a93df52e2bed8151947d7405f919fb2181b24
    42 migrations · 20261112000100_achievement_reconciliation.sql

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

  7. Not Preparedmain
    Committed: 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 →
    a996450a996450c096224c850feaaab73121a725b9dd267
    42 migrations · 20261112000100_achievement_reconciliation.sql

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

  8. Not Preparedmain
    Committed: 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/...

    2c844bb2c844bb227978f2d5e0587442fe0f9f97094efe2
    41 migrations · 20261111000100_game_cosmetics.sql

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

  9. UnavailablePer-Game Cosmetic Shopsmain
    Committed: 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 →
    851d01f851d01f69186bd40fcba21288dd445b48908eec3
    41 migrations · 20261111000100_game_cosmetics.sql

    Unavailable: Inherited d8b23c2's global serverEnv() R2 credential check, which rejected write routes whenever production R2 variables were omitted (fixed 27 minutes later in 2c844bb).

  10. Unavailablemain
    Committed: 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 →
    d8b23c2d8b23c2f67b63356fbd0e51ed59fb0604e97e448
    40 migrations · 20261110000100_sudoku_fruit_stacker_daily.sql

    Unavailable: serverEnv() unconditionally required live Cloudflare R2 credentials on all write routes and Arcade lazy.tsx had an incomplete type signature (fixed in 2c844bb).

  11. Not PreparedDaily Sudoku & Isometric Stackermain
    Committed: 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 →
    5de93285de9328152bbbb2d2c6b06e6aa686c6675c38fda
    40 migrations · 20261110000100_sudoku_fruit_stacker_daily.sql

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

  12. Not Prepared2048 & Flutter Daily Challengesmain
    Committed: 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 →
    ea01ac2ea01ac2bd7fd1bb07c7d0665ac6e92e261bf5ad0
    39 migrations · 20261109000100_arcade_daily.sql

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

  13. Not Preparedmain
    Committed: 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 →
    7e70bab7e70babc70ae9ccf8e6553b7e4e95e927c317e34
    38 migrations · 20261108000100_snake_speeds.sql

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

  14. Not PreparedSnake V2 & Blendermain
    Committed: 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 →
    252aa7e252aa7e4ecb823ee4f95374fcbe01b6e11aeed8e
    37 migrations · 20261107000100_snake_v2.sql

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

  15. Not Preparedmain
    Committed: 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 →
    5d1f4b25d1f4b24afb7986bcb4adb868b8dea6fff4cfc34
    36 migrations · 20261106000100_snake_modes.sql

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

Showing 1–15 of 60 commits
Page 1 of 4