DEEP SHELTER
Patch Notes
← Back to deepshelter.gg
Features
- ui: show aggregated loadout stats (Boons/Curses/Echoes) in the in-run Sigils view
Fixes
- ui: split the in-run Sigils view into Loadout / Found pages (stop the bounce)
Fixes
- battery: stop gear changes refilling a battery drained to 0 mid-run
Fixes
- ui: highlight only the boosted numbers on mutated items in Run Details
- ui: say "Tap" not "Click" on the gear page for touch devices
Features
- world: scale radiation aggression with depth to soft-cap horizontal travel
Fixes
- world: stop long sideways runs from failing replay validation (ty Mohlan)
Fixes
- replay: stop pause flushes from writing to a finalized run
- ui: keep auto-loot and auto-destroy toggles set across Continue Run
- ui: shrink long gear names to one line so stats stay inside the card frame
- ui: wrap upgraded mutated item effect lines in the detail panel
Fixes
- items: apply mutations, crit-block, and Lucky Rolls to item-proc damage
- items: Boomhammer and Compass Charm read their thresholds from items.json
- items: correct four tooltips that misstated their mechanics
- items: merged mutated items now reroll their properties on a lucky upgrade
- items: Rime Kite tooltip shows its true 0.2s shatter cooldown
- items: stop scratch-state clears wiping persistent conversion/gain-as-extra rules
- items: Thor's Helmet and Ore's Offering tooltips now show their real added damage ranges
- stats: make attack speed and DPS displays match the sim
- stats: remove the dead Chill Spread Chance stat
Performance
- render: stop rune fire-spark layers allocating an RNG closure per spark
- stats: drop per-roll allocations in rollStat
- worldgen: drop the per-tile string block-key in chunk lookups
Fixes
- leaderboard: month rolls over at UTC midnight, not each player's local midnight
- ui: restore Runes button in HUD after Continue
Fixes
- replay: My Runs shows the validated server duration for already-saved runs
Fixes
- replay: resumed runs show correct whole-run DPS and duration in My Runs
Fixes
- controls: horizontal digging no longer stalls after a step
- input: block gameplay keybinds while the Reactor window is open
- items: freeze the Worm Thumper's worm in place when the game pauses
- items: tone down Cold Shatter chain reach and burst damage
- items: widen the Worm Thumper corridor and bring the worm into view instantly
- sigils: lighten ritual-stone tap-progress cracks so they read on dark stone
- sigils: resolve over-cap storage from the normal list, not a broken modal
- ui: show the real percentage for Bonus Ore and Gem Chance on the Survival stats panel
- ui: widen the mutation chamber button so its label fits
Features
- leaderboard: add a Depth/Level toggle to the global and Discord boards
Fixes
- leaderboard: level board ranks only Ouroboros relic owners
- ritual stones stop bleeding sky-blue and crack like normal blocks
- ui: show item upgrade cost as have/needed (0/2 not 2/0)
- ui: stop the item Destroy button jumping to centre on single-level items
Fixes
- balance: early-game blocks dig faster — softer Surface Soil and Stone Caverns
- balance: rein in runaway Shatter chains at high crit
- balance: tighter Prismatic Detonator blast — 5/7/9 blocks per level
- ui: drop stray highlight box over ritual cluster stones
Features
- items: add Worm Thumper, a Physical-scaling sandworm that clears the rows below you
Fixes
- ui: keep Destroy button put when an item hits max level
Features
- balance: deeper loops hit harder, more high-tier sigils, two new echoes
Features
- damage: block armor reduces dig damage, scaled by hit size
Fixes
- items: Zipflops no longer teleports the player when tapping ritual-stone clusters
- world: bake loop-scaled block armor onto BlockData; stone-anchor treasure armor
- world: ritual stones stay breakable at any depth
Fixes
- sigils: CHEAPSKATE echo no longer zeroes or inverts shop costs
Fixes
- items: Blood Diamond no longer fails leaderboard validation on iOS/Safari
- ui: gear cards with wrapping names no longer overlap their stats
- ui: widen Replace button so its label and reward aren't cramped
Features
- items: add Supercharged Lodestone — chain-lightning between diamond blocks
Fixes
- ui: smooth, proportional mouse-wheel/trackpad scrolling
Fixes
- items: Crown of Flame ignites the blocks it burns
- items: Crown of Flame spread ignite burns at the normal rate
Performance
- items: reuse Crown of Flame validBlocks buffer + drop per-tile allocations
Fixes
- worker: re-authenticate when the _superusers token expires
Fixes
- gear: inventory gear survives Continue Run
Fixes
- reactor: Ore trades at 1/5 the rate vs gems, gold, diamond
- shop: upgrade costs keep scaling past level 20 instead of going flat
- world: leaderboard depth lines now mark beating a score, not tying it
Features
- world: race past leaderboard depth markers while digging
- world: some shelters now hold a fission-chamber resource converter
Fixes
- items: Glacial Heart cold damage no longer inflates with each upgrade
- oxygen: show air countdown and red bar only at ≤30s left
- ui: stop LoadoutScene leaking UI into a stopped scene after a run
- world: surface-break burst fires on the real surface, not 11 tiles down
Performance
- audio: destroy mutation-sound instances and dispose AudioManager on shutdown
- items: drop per-link allocations in Thor's Helmet chain lightning
- simulation: preallocate applyGravity cave-traversal scratch
- stats: drop per-call allocations in getStat and clearModifiersBySource
- ui: bound discoveredShelters so deep runs stop slowing down
- ui: preallocate shelter-entry offset tables to drop per-frame GC churn
- ui: stop UpgradeShop glow tween leaking on card teardown
- ui: update drain-rate modifier in place instead of re-adding it every frame
- world: trim render-loop allocations and speed up chunk lookups
Features
- items: cap The Collector at 5 concurrent buffs
Fixes
- sigils: tougher ritual-cluster stones, chill no longer covers them
Features
- items: Ore's Offering flicker is rounder with longer reach and now fires on Esther's/Zipflops ore digs and teleport-digs; clearer charge & fire-damage card text
Fixes
- world: high-speed builds no longer re-loot regenerated terrain or desync replay validation
Fixes
- ouroboros: show each XP gain once as its own delta, not the lifetime balance
Features
- ui: show full inherited stats for mutated items in Run Details
Fixes
- audio: silence ambient loop and SFX when the tab/window loses focus
- ui: KAL rune tooltip describes flat crit chance, not "increased"
- ui: loot popup sizes to its content so long item effects fit
- ui: Ouroboros XP bar animates only the gain from the action that triggered it
- ui: scroll the backpack found-sigils list by touch, not just wheel
Features
- items: add Ore's Sacrifice — ignite-charged flicker flurry through ore veins
- items: make Ore's Sacrifice upgradeable to 3 levels (ignite chance + charge cap)
- items: Ore's Offering orbs each grant +50% increased fire damage
- items: Ore's Sacrifice now deals fire damage and flickers visibly through ore
- sigils: mine ritual clusters in the world instead of a popup
- sigils: replace in-world ritual-cluster mining with a tap-to-dig overlay
- ui: rework stats window into Base / Survival / Damage tabs
- ui: show all Damage stats on one page (drop Added/Increased/More sub-tabs)
Fixes
- shatter: stop chill/shatter chaining through ritual-cluster sigil stones
- ui: surface combat stats (Ignite/Chill Chance) in stats window
Features
- ui: prompt to refresh when a newer build is live
Fixes
- leaderboard: show shared-server players on Discord boards
Features
- leaderboard: switch between Global and Discord boards with tabs
Fixes
- leaderboard: capture Discord profile + guild membership on login
- leaderboard: keep the clean Discord username on the leaderboard
Features
- leaderboard: rank against players in your Discord servers
- ui: label the main menu as Early Access
- ui: tidy profile hub — gallery on profile-name click, sign-out below frame
Fixes
- ouroboros: only fire the run-end XP popup for a run played on this device
- ui: show floored Max Oxygen/Battery with raw value in parens
Features
- ui: add settings toggle to show/hide the performance overlay
Fixes
- hud: keep oxygen/battery meters visible and fast when max stat is floored or negative
- ui: show all gear affixes without clipping on character-sheet cards
Features
- ui: redesign rune selection & in-run list to match My Runs
Fixes
- replay: validate runs that die exactly on a checkpoint tick
Features
- menu: all-caps tagline, shorter Ouroboros button
Features
- menu: bigger Discord sign-in button + clearer signed-out prompt
- menu: refresh main menu — new logo & background, bottom nav row, compact continue/abandon
Features
- menu: redesign main menu — hero art, top title + action bar, swapped CTAs
Fixes
- changelog: back-link points to the website (deepshelter.gg), not the game
Fixes
- ouroboros: clear stale local meta cache so stuck XP/popup state recovers
Fixes
- ouroboros: run-end XP popup survives a hard refresh mid-validation
Fixes
- ouroboros: run-end XP popup no longer goes silent on the main menu
Features
- items: right-click to arm, left-click to fire Esther's Gloves on PC
Fixes
- replay: a refresh mid-upload no longer rejects a valid run
- sigils: LUCKYSTRIKE echo grants a working +3% ultra-crit chance
- ui: gear-loot popup no longer stacks the ESC pause on focus loss
- ui: unequip a sigil after tapping directly into its slot
Features
- ui: move Sign out into the Profile hub; declutter the signed-in menu corner
- ui: rework rune choice modal with select-then-confirm
- world: gems spawn from depth 250, gold from 350
Fixes
- bound runaway poison/Collector loop that bricks the run to ~1 fps
- ignite: ignite DoT burns tiles even when off-viewport, fixing replay divergence on fire builds
- ui: HUD buttons no longer flicker during screen shake
- ui: HUD buttons only trigger on a press+release that both land on them
- ui: Play button no longer sticks on "Validating Run..." after an invalidated run
- ui: popup & window buttons only fire on a press+release that both land on them
- ui: tighten Delete Gear confirmation spacing
Features
- ui: add player profile screen
Fixes
- ui: HUD buttons no longer flicker during screen shake; Runes button now black
Fixes
- items: Esther's Gloves double-tap teleport fires reliably
- ouroboros: don't pop XP gain on the menu while a run is still paused mid-flight
Fixes
- ouroboros: XP popup now fires after a run — run-end writes no longer wipe the last-seen anchor
Features
- ui: add main-menu notification popup queue
- ui: animate the Ouroboros menu popup as an XP bar
Fixes
- battery: floor max battery at 10 so stacked HUSK sigils can't brick the flashlight
- oxygen: floor max oxygen at 10 so stacked HOLLOW sigils can't disable oxygen death
- ui: gear-window per-slot headers + unseen-gear badge for manual loot
Fixes
- replay: pending runs self-heal on launch & app foreground
Fixes
- replay: auto-recover runs wrongly rejected after a long pause
- replay: stop rejecting resumed runs once their token's 4h TTL expires
- ui: Play button no longer wedges on un-pressable "Continue Run"
Features
- items: double-tap a block to instant-fire Esther's Gloves teleport
- ui: bouncing scroll hint on scrollable run lists
Fixes
- ui: gear loot popup no longer closes on overlay click
Features
- ui: open run details and runner profiles from leaderboard entries
Features
- replay: run_summary carries Ouroboros level + slot count
- ui: run details list rune effects with per-rune values + crisper icons
- ui: run details show damage-per-second (DPS)
- ui: run details show equipped loadout (gear, sigils, Ouroboros level)
Fixes
- ui: reorder run-details sections to upgrades, items, gear, runes, sigils
- ui: restyle run-details stat header and rune rows
- ui: run details list upgrades in upgrade-shop order
Fixes
- balance: gem blocks drop more gems (3-5, was 2-4)
- balance: gems spawn from depth 250, gold pushed to 350
- balance: pricier combat upgrades, cheaper tank past level 20
Features
- ui: add machine nineslice frame style
- ui: machine frame background on the stats window
- ui: seat the stats header on the machine frame's display sign
- ui: title-plate anchor for frames + machine display sign
- world: let sigil clusters grow through gem/gold/diamond veins
Fixes
- balance: rarer high-tier sigil drops near the surface
- world: show stone background in dug gem/gold/diamond tunnels
Features
- reskin gem/gold/diamond treasure blocks and refresh resource icons
- runes: refine rune glyph spritesheet artwork
- runes: refresh rune artwork with a new 21-glyph spritesheet
- sigils: convert tier gating to weighted curve with Ouroboros bias
- world: embed gem/gold/diamond treasure veins in stone like ore
Fixes
- ui: shrink touch joystick for shorter thumb travel
Features
- items: default auto-discard for lower-quality gear drops to on
- ui: add Toggle and CloseX primitives to the UI library
- ui: expand Esc-menu settings with toggle hub, sound sub-view, and rusty frame
Features
- ui: add "give up" action to the Esc menu to end a run instantly
- ui: hide keyboard-shortcut hints on touch devices
Fixes
- radiation: lower max banked grace from 30s to 20s
Features
- items: add per-slot auto-discard for lower-quality gear drops
Fixes
- loadout: move next-slot-unlock hint to bottom-left, left-aligned with Sigils button
- sigils: sigil clusters only take damage from direct player digs
- ui: ritual cluster glow now shows on every stone in all performance modes
- ui: tighten damage-breakdown spacing and abbreviate large damage values
Features
- input: transparent virtual joystick for touch digging
Fixes
- loadout: show next slot unlock level in Ouroboros loadout
Features
- sigils: functional Vision Radius, new survival echoes, Blessed Chalice retune
Fixes
- replay: terminally-rejected uploads drop from the queue instead of blocking it
Fixes
- replay: equipped sigils with no suffix now upload and validate
Features
- items: chest payouts now scale with new Item & Gear Drop Chance stats
Fixes
- balance: halve Ariel Sand nova reach to 20 blocks and trigger it on any dig
- ui: correct Ariel Sand tooltip — nova procs on any dig, not just poison hits
Features
- replay: record mutated item fusions in run history detail
Performance
- radiation: stop grain overlay tanking framerate on low-end mobile
Fixes
- sigils: persist Ouroboros sigils found via item procs, not just digs
Fixes
- radiation: run-start prompt gating + 60s opening grace
- ui: stop HUD action buttons flickering during play
Fixes
- sigils: equip/discard the sigil you picked, not a list-position guess
Features
- balance: double sigil cluster spawns, halve shelter spawns
Fixes
- replay: restore logged-in replay uploads with an equipped sigil
Fixes
- ouroboros: don't mislabel resumed ranked runs as local
Features
- ouroboros: soft-gate anonymous play with a full local sandbox
Fixes
- ouroboros: persist first-find on new accounts by seeding state row
- ui: make Ouroboros first-find Continue button clickable
Fixes
- determinism: route chest-popup item dust grants through sim
- replay: name the specific upgradeItem rejection reason
Fixes
- release: nudge release-please to rebase 0.4.17 PR
- worldgen: ancient block clusters now actually spawn
Features
- balance: radiation edge now creeps continuously, capped at 0.5 tiles/sec at 0% grace
Fixes
- ui: main menu rank + high score now update live after replay validation
Features
- determinism: snapshot per-item internal state + manager extras
Fixes
- determinism: snapshot GenerationalWealth lastPayoutTick per tick
- determinism: sort ailment-block iteration so per-tick RNG ignores Map insertion order
- determinism: validator passes isManualDig through ailment destroy callback
- determinism: wire OxygenSystem.itemManager sim-side so validator sees mutations
- items: bound ailment-RNG draws on chained/AoE damage
- items: Rime Kite procs reliably regardless of pickup order
Fixes
- balance: increase block health/armor across biomes 4-10
- ui: Low Oxygen mutation tooltip shows correct 20% threshold (was 30%)
Fixes
- replay: trash zero-depth runs instead of stalling them on SYNCING
Fixes
- scene: stop MainMenuScene when starting a fresh GameScene
Features
- balance: triple ritual-stone cluster spawn rate
Fixes
- determinism: isolate rune popup RNG from future sim consumers
Fixes
- determinism: pump checkpoint sampler during resume catch-up
Features
- replay: stamp tick on checkpoint samples + reject backward sampling
Fixes
- determinism: cycle Convention of Commerce sim-side, not via DOM event
- determinism: reset checkpointSampler between runs
Fixes
- items: cap active poisoned blocks at 200 to stop runaway spread chains
- items: tame Corrosion Blade — single-spread crits + 35% duration decay
Features
- admin: PB replay list + creator stats dashboard
Fixes
- determinism: wire item death-prevention sim-side
Fixes
- determinism: clear chill on destroyed blocks sim-side
Features
- admin: drop-zone replay diagnostic UI for failed validations
- replay: name first divergent checkpoint in validator failures
Fixes
- determinism: item damage routes through sim so off-screen targets count
Fixes
- replay: Continue Run survives cosmetic releases
Fixes
- determinism: scene-side oxygen/battery side-effects now fire from sim
- replay: firstSnapshotDiff covers all CanonicalSimSnapshot keys
Fixes
- ui: destroy-item modal — Yes/No now clickable, dust icon no longer overlaps label
Fixes
- ui: loot popup Continue buttons use the standard close size
⚠ BREAKING CHANGES
- sim: radiation cloud is now a real hitbox — backtracking into it ticks damage
Features
- admin: flag stats with no prefix/suffix on affix tabs
- admin: formula tuner with strict fit-check, ID pill indicator, header save status
- admin: per-row formula-fit indicator and ladder tuning modal
- admin: talisman pool editor in admin UI
- ARPG-conventional talisman + item card text
- balance: sigil clusters appear from depth 300, ~43% more common
- battery: flashlight always-on, drop toggle + tutorial
- items: rework gear rarity drops to loop-based curve
- items: rework The Collector to trigger on diamonds, double diamond yield from mined diamond blocks
- loadout: ambient smoke + chain-active runes glow between slots
- loadout: drag-to-swap sigils, hover-preview tooltips on the Ouroboros
- loadout: drop a held sigil onto the stats area to unequip it
- loadout: equip sigils locally even when signed-out + ring icons 2x scale
- loadout: equip-from-storage auto-closes with snap; Echoes sorted by slot
- loadout: equipped sigils get color-matched halos + rising smoke
- loadout: only level multiplier tints values green; surface active amplify echoes on Echoes tab
- loadout: paint locked sockets and restyle center stack
- loadout: painted ouroboros ring with per-sigil icons and red theme
- loadout: pickup + snap audio when dragging sigils on the ring
- loadout: rebuild Sigils storage with scrollable list + select-to-equip
- loadout: repaint ouroboros artifact and restyle center stack
- loadout: split Ouroboros stats into Boons/Curses/Echoes tabs
- menu: gate Start Run while sigil overflow is pending
- meta: expand talisman pool — add 6 prefixes, 9 suffixes, complete damage matrix
- meta: Ouroboros loadout shell + ritual-stone clusters
- meta: Ouroboros Slice 2 — talisman drops, storage, discard-for-XP
- meta: Ouroboros Slice 3 — talismans wire into the run
- meta: Ouroboros Slice 4 — chain effects fire into the run
- meta: Ouroboros Slice 5 — XP curve unlocks slots + UI rebuild
- meta: Ouroboros Slice 6 — show amplified values on stat panel + card
- meta: pool-based talismans — emergent prefix/suffix/coil generation
- meta: server-authoritative discard XP — close last tamper surface
- meta: server-canonical sigil inventory + +1000 XP per overflow discard
- meta: TalismanStatFormatter as runtime single source of truth
- ouroboros: refresh first-find modal with painted artwork and shorter copy
- radiation: corrupt oxygen meter from prolonged exposure
- replay: close determinism audit punch list
- replay: pause a run and resume it later from the main menu
- replay: worker re-derives run_summary on validation success
- sigils: add attack-speed and blessed-stat-chance affix lines
- sigils: add crit-damage, oxygen-integrity, max-battery affix lines
- sigils: bulk-discard non-favorites cleanup button
- sigils: echoes contribute traits to the chain-condition surface
- sigils: explicit Close button + in-run Sigils browser with auto-loot
- sigils: favorite-mark sigils in storage with favorites-only filter
- sigils: hint chain compatibility + valence arrows in equip UI
- sigils: hint forward chain compatibility on inventory candidates
- sigils: omens fire on suffix rolls; remove KINDLED/igniteSource
- sigils: pure-good drops at low loops — gate suffix on T3+ prefix
- sigils: rebalance affix ladders into linear-tiers + chase-tier T6
- sigils: rebalance affix pools and gate every trait with a dedicated omen
- sigils: show stats cards on find and game-over screen
- sigils: split survival into oxygen/battery; new MOLEBORN grant echo
- sigils: store rolls as tier percentile for balance-retune safety
- sigils: unified storage view with in-place equip and discard
- sigils: wire CASCADE/BOON/MAUL echoes into chain compatibility
- sim: radiation cloud is now a real hitbox — backtracking into it ticks damage
- split coil into omen+echo and rename talisman to sigil
- ui: add loading screen for Continue Run catch-up
- ui: chiseled button palette + sigil storage polish
- ui: chiseled buttons on backpack window and item tooltip
- ui: chiseled buttons on HUD action bar
- ui: chiseled buttons on loot popups, shelter, and stats tabs
- ui: chiseled buttons on pause menu
- ui: chiseled confirmation dialogs + leaderboard polish
- ui: chiseled nine-slice buttons + main-menu / modal button reskin
- ui: flat fixed edge on the radiation field
- ui: radiation edge floats at constant speed and approaches from above during grace
- ui: radiation edge frozen during decay and grace, slides on active build
- ui: radiation edge is a monotonic floor, body is a uniform fill
- ui: radiation edge looms in during grace, lands on player at expiration
- ui: retire 3-slice stone buttons, tune chiseled label colors
- ui: rusty frame backgrounds on loot popups and upgrade shop
- ui: rusty frames on Run Details + How To Play, gold chiseled button
- ui: sigil rows + Ouroboros button reskinned to nineslice frames
- ui: slower edge + chase deepest+3 when player re-enters the cloud
- ui: snap radiation edge into view when stranded above viewport
- ui: stone-button system, rusty-frame modals, main-menu refresh
- ui: visualize radiation as a world-space field with a clear edge below the player
- worldgen: unified depth-scaled spawn rate framework
Fixes
- ariel-sand: nova procs only on player block hits, not poison ticks
- damage: negative components no longer reduce total damage
- items: Ariel Sand card now correctly describes nova trigger
- items: Flux Cube now equalizes negative elementals up to max
- items: nudge gear rarity curve toward rarer drops on loops 1-4
- items: resource pickups now anchor to the destroyed block
- items: teleport pickups now fly from the post-teleport block
- loadout: chain stat payoffs no longer level-amplified
- loadout: dragged sigil leaves source slot fully empty until drop
- loadout: hover tooltip shows base sigil values; lower stats panel
- loadout: read-only Ouroboros UI while a run is in progress
- meta: correct ASHROOT/IRONWIDOW/MIRROR_PETAL inverted talisman effects
- meta: equip-sigil hook now persists server-side
- meta: equip/discard hooks decode JSON columns at read boundary
- mutations: store mutation values as fractions, drop /100 in MutationHookRegistry
- ouroboros: reset local cache when server confirms account has no rows
- radiation: cap banked grace at 30s (was 60s)
- radiation: hold oxygen corruption steady until radiation fully clears
- radiation: match corruption band tint to wavy edge for a clean seam
- replay: abandon run now clears all in-progress saves
- replay: bind item visuals during resume catch-up + trim abandon button
- replay: crit-shatter destroys full 3x3 in headless replay
- replay: poison DoT damages untouched blocks on resume catch-up
- replay: radiation state restored on Continue Run
- replay: resume catch-up no longer drops in-flight scheduled effects
- replay: resume no longer crashes on second Continue Run
- replay: silence item SFX during resume catch-up
- replay: suppress ailment visuals, pre-position camera, and consolidate resume UI
- replay: suppress item visuals during resume catch-up
- replay: suppress resource flyers and DoT visuals during resume catch-up
- replay: tear down stale block renderers when resuming a run
- sigils: correct 100x over-application of "increased" damage modifiers
- sigils: echoes panel shows producing slot for grant + ban lines
- sigils: equip the sigil you actually selected
- sigils: equip the sigil you clicked, every time
- sigils: favorited sigils block discard + storage view UX pass
- sigils: grant inventoryGrant echo items at run start
- sigils: multiplier stats render with explicit Increased/Decreased word
- sigils: preserve leading "any" in trait labels for sigil chain text
- sigils: snap every roll to whole percent points (no more 12.93%)
- sigils: snap percentage-style affix rolls to whole percent
- sigils: stagger sigil-found modal until cluster cascade finishes
- sigils: start-run no longer crashes when a sigil is equipped
- sigils: unify sigil values as fractions, drop /100 bandaid
- stats: store crit chance + crit damage as fractions end-to-end
- ui: equipped sigil row clears header in slot-context loadout view
- ui: highlight active-skill button while teleport mode is armed
- ui: main-menu buttons activate on release, not press
- ui: pause-menu buttons now trigger on mouse release, not press
- ui: pointer cursor on My Runs list row hover
- ui: radiation cloud parks at viewport edge when out-dug, descends ~5s before grace ends
- ui: runes button hoverable while hidden until first rune
- ui: show the radiation edge from the moment the run starts
- ui: sigil chain hint greens the affix that carries the matching trait, not the echo payoff
- ui: stats window now renders negative modifiers as '-45%' instead of '+-45%'
- ui: version-mismatch modal clips bottom hint line
- visuals: render radiation field above the player
- worker: polyfill EventSource for PocketBase realtime on Node 20
- world: scale special-block HP off the local biome's stone
Performance
- replay: realtime pickup for validator worker, ~30s → ~2s verdict
Features
- replay: cross-device My Runs sync + heal stuck-pending runs
- replay: persist runSummary on leaderboard_scores for cross-device detail
- ui: tap a row in My Runs to open a per-run detail screen
Fixes
- replay: #84 follow-ups missed by squash merge
- ui: cache every server runSummary into IDB on My Runs open + preload icons
- ui: shrink Run Details modal to fit and use the standard close X
Fixes
- replay: passive items + teleport-into-chest converge on validator
Features
- ui: "My Runs" view on main menu — dive history synced across devices
- ui: delete runs from My Runs (and the leaderboard)
- ui: My Runs sort toggle + rugged-border helper extraction
- ui: roll run count into header ("MY 6 RUNS"), drop subtitle line
- ui: tap-to-reveal delete X on My Runs rows, matching the rest of the UI
Fixes
- ui: replace tap-to-reveal X with explicit "DELETE?" pill
Fixes
- leaderboard: exclude unvalidated runs from 'Your Rank' widget
- replay: drop client-side verdict patch that 404'd against PB update rule
Fixes
- replay: pb init-token hook bugs blocked uploads on PocketBase v0.30
Fixes
- replay: pb init-token hook passes ISO date strings
Features
- replay: server-issued init token binds runs to authenticated player
Fixes
- determinism: retire dead Phase 2 anti-cheat chain
Fixes
- sim: same seed now produces the same world (Perlin noise was unseeded)
Fixes
- items: tick-locked cadence for Discharge Wig, Flux Cube, Volta's Folly
- replay: passive items, upgrades, and shatter chains validate
Fixes
- replay: auto-move runs no longer fail validation
Fixes
- replay: surface first diverging snapshot field on stateHash drift
Fixes
- replay: validator equips starter gear before applying events
- replay: worker fetches private-repo bundles via GitHub API endpoint
- replay: worker requests a file token before downloading the replay blob
Fixes
- ui: drop replay-validation status from game-over screen
Features
- replay: persist run summary blob to IDB on finalize
- replay: ReplayUploader syncs score to PB after replay upload
- replay: worker mirrors validation verdict onto leaderboard_scores
Fixes
- replay: worker filters on validation_result null and skips legacy records with empty game_version (PB rejects PATCH otherwise)
Features
- Complete mutation animation system for shelter window
- Track mutation upgrade status and refine effect formatting
- upload game_version as top-level field on replay_uploads
Fixes
- center Convention of Commerce indicator on screen
- DPS meter counts all damage again
- fall back to package.json version when git tags aren't fetched
- Gelbin's Goggles tooltip no longer misreports drain as percentage
- Oxygen Limiter Mk I caps oxygen at 50% (was 30%)
- Resolve TypeScript build errors and mutation result display issues
- Rime Kite shards no longer get stuck; sound and damage fire per-impact
- tone down Book of Darkness more-damage curve; rebalance Glacial Heart crit
Chore
Bug Fixes
- bump package.json so menu version label matches the deployed tag
Bug Fixes
- center Convention of Commerce indicator on screen
- Rime Kite shards no longer get stuck; sound and damage fire per-impact
- tone down Book of Darkness more-damage curve; rebalance Glacial Heart crit