github mcthesw/game-save-manager latest
Bleeding edge/前沿版本

pre-release3 hours ago

Changes since last stable release (v1.8.0)

  • fix(backup): 🐛 expose retention for all automatic backup triggers (449dc9d)
  • refactor(backup): ♻️ separate retention from timer configuration (bc603dd)
  • feat(updates): ✨ stage Windows updates before a safe restart (c43888f)
  • feat(updates): ✨ publish stable releases and offer opt-in checks (d8c1d26)
  • fix(game): 🐛 restore deletion with local and shared scopes (8cb2f4c)
  • refactor(sync): ♻️ remove retired legacy cloud queue (74f2f20)
  • fix(sync): 🔒 require migration for legacy cloud operations (c74c568)
  • fix(sync): 🐛 synchronize snapshot description edits across devices (9d726d2)
  • test(sync): 🧪 verify migration and device boundaries (4a9ba22)
  • feat(gui): ✨ simplify navigation and remember the default game list (47ff345)
  • fix(gui): 🐛 separate transient feedback from activity history (1bb5b1b)
  • fix(settings): 🐛 deduplicate detected game library paths (0e00add)
  • fix(sync): 🐛 migrate released cloud configurations before cutover (acf58ec)
  • fix(sync): 🐛 keep local progress without forcing archive uploads (d1d1d3e)
  • fix(gui): 💬 clarify partial undo feedback (7c9cb91)
  • fix(sync): 🐛 let retained local games enable cloud sync (b8991e5)
  • feat(gui): ✨ add confirmed cloud joining and location reuse (3c8ab9a)
  • feat(sync): ✨ add cloud join codes and safe location reuse (2779d24)
  • feat(testing): ✨ add scoped GUI acceptance workflow (b96043d)
  • fix(registry): 🐛 restore archived values to current device targets (5b3d742)
  • fix(gui): 🐛 report partial undo failures accurately (aa723e0)
  • fix(storage): 🐛 retry briefly blocked Windows metadata replacements (3e17800)
  • docs(changelog): 📝 translate the release archive into English (8898ed2)
  • feat(docs): 🌐 add native English documentation (657f4bf)
  • chore(dev): 🔥 remove editor presets and Git hooks (02d33a8)
  • docs(guide): 📝 publish the developer guide on the docs site (082bc17)
  • build(docs): 🏗️ add screenshot capture and build checks (983f557)
  • docs(guide): 📝 rewrite the 1.9 user guide by task (15eedad)
  • perf(cloud-sync): ⚡ reuse metadata across game navigation (c4f5dc7)
  • feat(settings): ✨ add snapshot time display preference (a18f23e)
  • fix(ui): 🐛 clarify navigation and snapshot position (bb459b1)
  • docs(domain): 📝 add the domain glossary (bfbf56e)
  • fix(ui): 🐛 keep drawer feedback and cloud setup coherent (6f8a084)
  • fix(build): 🐛 restore production frontend startup (852fb6f)
  • docs(sync): 📝 align release contracts and regression coverage (fb78e23)
  • fix(sync): 🐛 clarify snapshot removal and preserve ancestry (f7fad1a)
  • fix(sync): 🐛 allow removed devices to reconnect after confirmation (1d848da)
  • fix(sync): 🐛 tolerate incomplete metadata reads during overwrites (005c776)
  • fix(backup): 🐛 keep game timers and settings drafts independent (b98478d)
  • fix(import): 🐛 preserve confirmed path selections (64ab475)
  • fix(games): 🐛 preserve stable references across navigation and upgrades (d171c34)
  • perf(e2e): ⚡ isolate and reuse owned test processes (04c77a1)
  • feat(sync): ✨ prompt before using remote progress (0576168)
  • refactor(sync): ♻️ require player choice before applying remote progress (d2d4c17)
  • refactor(sync): ♻️ share cloud metadata refresh across pages (bc3cc36)
  • fix(sync): 🐛 preserve live descendants of deleted snapshots (7753961)
  • feat(backup): ✨ separate snapshot identities from creation time (76ed0b7)
  • fix(sync): 🐛 preserve snapshot creation metadata across transfers (f7a597a)
  • feat(sync): ✨ discover cloud games without blocking local backups (d7682e6)
  • fix(sync): 🐛 require explicit game definition choices (4b47773)
  • fix(config): 🐛 preserve local games when connecting cloud libraries (e5120f3)
  • refactor(sync): ♻️ separate catalog queries from reconciliation (436f1d7)
  • test(upgrade): ✅ cover historical player restore paths (4ef4e48)
  • fix(backup): 🐛 finish snapshot deletion after catalog write failure (ec7b649)
  • perf(e2e): ⚡ reuse host builds and shard Linux coverage (cf59567)
  • fix(gui): 🐛 report startup failures accurately (3b74cf7)
  • fix(desktop): 🐛 centralize main window lifecycle (c7c4fe3)
  • fix(gui): 🐛 unify snapshot availability state (f09a603)
  • test(e2e): ✅ cover v1.8 snapshot upgrades (2327985)
  • fix(backup): 🐛 restore V2 archives through resolved targets (1df8996)
  • fix(gui): 🐛 allow backups after completion (96b9c28)
  • fix(sync): 🔒 serialize local cloud mutations (6a0dece)
  • feat(sync): 🔒 bind devices to cloud library identity (b746719)
  • ci(e2e): 💚 add Windows release gate (e132a93)
  • fix(sync): 🐛 recover V2 cloud libraries across devices (0f325a4)
  • docs(gui): 📝 drop runtime e2e outcomes from coverage notes (1b31cea)
  • fix(cloud): 🐛 resume cutover and land catch-up downloads (c6206d1)
  • fix(gui): 🐛 stack nested confirms and refresh cloud overview (ed307b0)
  • fix(gui): 🐛 stack confirm dialogs above drawers (0b4d3ed)
  • chore(i18n): 🌐 match Weblate 4-space locale indent (e99bc1b)
  • i18n: Translated using Weblate (English (United States)) (340e164)
  • ci(gui): 💚 run gui e2e under xvfb for the GTK host (52c3611)
  • test(gui): 🔊 capture host output in memory for e2e startup diagnostics (bd24d0b)
  • test(gui): 🔊 surface host log tail on e2e startup failure (13467b8)
  • docs(gui): 📝 document favorites, batch ops, failure surface, and import e2e (95b4d5c)
  • test(gui): ✅ add ludusavi manifest import onboarding e2e (3e7960c)
  • test(gui): ✅ add local failure surface e2e and harden activity drawer helper (fcb5e09)
  • test(gui): ✅ add favorites persistence and backup-all/apply-all e2e (f1aa4b7)
  • docs(gui): 📝 document local e2e coverage and remaining gaps (dcb7cbf)
  • test(gui): ✅ add compression preset round-trip and legacy zip restore e2e (e42d9e1)
  • test(gui): ✅ add batch delete e2e with tree rewiring assertions (e378cf1)
  • test(gui): ✅ add extra backup and undo e2e (drawer delete red on known layering defect) (0b1563b)
  • test(gui): ✅ add restore permission matrix e2e (90f4e33)
  • test(gui): ✅ add mtime preservation e2e (20caa22)
  • test(gui): ✅ add save path relocation e2e (4045bfe)
  • test(gui): ✅ add save unit lifecycle e2e (f855c07)
  • test(gui): ✅ add snapshot branch tree e2e (92ec060)
  • test(gui): ✅ add local e2e infrastructure and main path spec (688d66b)
  • test(gui): ✅ add repeated upload-download round trip e2e (fec19c1)
  • test(gui): ⏪ keep known product failures red and poll async namespace recreate (572082b)
  • test(gui): ✅ add player-path cloud sync e2e suite (01151e0)
  • docs(gui): 📝 align e2e headings with test names (9bb2070)
  • docs(gui): 📝 name e2e cases by configs and archives (ca8b572)
  • docs(gui): 📝 describe e2e cases as device-cloud interactions (8fa00a7)
  • docs(gui): 📝 keep e2e README as case inventory only (189697c)
  • docs(gui): 📝 rewrite cloud e2e checklist for humans (695752b)
  • docs(gui): 📝 list cloud e2e coverage and unmet cases (bb6bcb7)
  • test(gui): ✅ add dual-host cloud library Playwright e2e (2ff4a5f)
  • fix(sync): 🐛 publish baseline snapshot metadata when enabling cloud sync (ee98192)
  • fix(sync): 🐛 select unique maximal forward head instead of all advertised heads (f6b2a2d)
  • fix(sync): 🐛 reorder disable head-clear and propagate reset deletion errors (d6d7277)
  • fix(sync): 🐛 confirm namespace reset and honor catch-up on mode switch (ffb155c)
  • fix(sync): 🐛 guard auto-apply, clear disabled heads, and fix hook suspension (5b23c03)
  • fix(sync): 🐛 reject forward target when any maximal head diverges (4df2e2f)
  • feat(gui): ✨ auto-fallback head to parent on snapshot deletion (b000039)
  • feat(gui): ✨ surface V2 presets, sync overview, and archive management (7e4a671)
  • feat(sync): ✨ implement V2 cloud presets, divergence detection, and archive lifecycle (44084aa)
  • docs(cloud): 📝 explain synchronization modes and deletion (76306d6)
  • chore(docs): 🚚 move documentation site into monorepo (ef8c926)
  • fix(gui): 🐛 wait for config before management deep links (1a26826)
  • i18n: Update translation files (dd23232)
  • feat(gui): ♿ kit accessibility pass: table roles, segmented arrow keys, assertive error toasts, nav aria-current (cb1c516)
  • refactor(gui): ♻️ redesign About page on kit (b7f8bf8)
  • fix(gui): 🐛 reject Meta hotkey chords, honor confirm fulfillment, clamp number input bounds (fd53269)
  • chore(gui): 🔥 remove Element Plus entirely: deps, resolver, shims, dark css (S8) (524ce7b)
  • refactor(gui): ♻️ migrate sync dialogs to kit, drop dead cloud components (S7b part 3) (6f118b1)
  • refactor(gui): ♻️ rebuild sync settings page on kit with sub-nav (S7b part 2) (52a5431)
  • refactor(gui): ♻️ migrate sync settings child components to kit (S7b part 1) (3b12318)
  • refactor(gui): ♻️ rebuild settings page on kit with sub-tab nav (S7a) (0cfb2ab)
  • refactor(gui): ♻️ migrate game page drawers to kit (S6c), add KNumberInput and resource multi-select (b6b32af)
  • refactor(gui): 💄 reskin branch view (S6b): amber HEAD pin, tokenized nodes, KPopover, global dayjs plugin (8d3466e)
  • refactor(gui): ♻️ rebuild game page on kit (S6a): drop el-table-v2, labeled toolbar + overflow menu, split page (0959288)
  • refactor(gui): ♻️ migrate add-game flow to kit: global drawer, KDrawer/KAlert/KCheckbox/KTagInput (S5) (9a1550c)
  • refactor(gui): 💄 rebuild sidebar with kit, favorites tree and segmented view (c616c03)
  • feat(ui): 💄 reskin home page on design tokens (3973352)
  • feat(backup): ✨ emit live stage events during snapshot creation (db06b04)
  • feat(ui): ✨ add headless kit primitives on Reka UI (fa5aa99)
  • feat(ui): 🏗️ add design token foundation (Tailwind v4, Plex fonts) (fb93139)
  • docs(skill): 📝 add browser-first RGSM debugging workflow (1411bbf)
  • docs(architecture): 📝 document loopback frontend transport (2af99a2)
  • feat(api): ✨ replace frontend IPC with loopback HTTP (5b75025)
  • feat(home): ✨ rebuild welcome page as ambient greeting field (ed7bace)
  • fix(cloud): 🐛 import downloads and restore snapshot action holes (d78090a)
  • chore: 🔧 add local Fs cloud fixture script (b8809a7)
  • feat(manage): 💄 split local and cloud snapshot actions (d3b23ff)
  • fix(cloud): 🐛 publish local snapshots before manual upload (baa8a83)
  • feat(manage): ✨ show snapshot location and batch cloud copies (df29511)
  • fix(sync): ⚡ show v2 sync UI before cloud inspect finishes (f46df7c)
  • fix(manage): 💄 keep game page full-height and clarify cloud actions (6df9e5d)
  • refactor(sync): ♻️ separate cloud backend from library overview (61fed5f)
  • refactor(sync): 🔥 drop V2 high-risk tab and stub TUI (ff94166)
  • feat(sync): ✨ force Cloud Library upgrade and stabilize join (a15999c)
  • test(cloud): ✅ cover Fs synchronization safety (#488) (e0c61ba)
  • fix(cloud-sync): 🛡️ block writes before library activation (b58b3b1)
  • chore(deps-dev): bump adm-zip from 0.5.16 to 0.6.0 (0149a30)
  • chore(deps): bump quinn-proto from 0.11.14 to 0.11.16 (a796321)
  • chore(deps): bump serde_with from 3.18.0 to 3.21.0 (bf8dee4)
  • fix(cloud-sync): 🐛 keep V2 controls during outages (9c91d9e)
  • test(cloud-sync): 🧪 cover Fs V2 destructive paths (ad3d861)
  • test(cloud-sync): 🧪 cover Fs V2 sync paths (75482df)
  • test(cloud-sync): 🧪 add persistent Fs V2 fixture (6809eae)
  • fix(cloud-sync): 🐛 ignore listed directory entries (1bde01a)
  • refactor(backup): ♻️ move backup path resolution to core (e0a7cd8)
  • feat(cloud-sync): 📁 add local folder backend (48396f0)
  • fix(gui): 🐛 resolve renamed game backup folders by storage key (9b26431)
  • fix(cloud-sync): 🛡️ harden merged V2 workflows (69bbf3a)
  • feat(cloud-sync): 🗑️ permanently delete shared games (6b6e57c)
  • feat(cloud-sync): 🗑️ remove abandoned device profiles (db9d4d4)
  • feat(cloud-sync): 👤 add device game lifecycle controls (42b1f4b)
  • feat(cloud-sync): 🗑️ enforce shared snapshot retention (e6bd644)
  • feat(cloud-sync): 📐 add snapshot retention foundation (c3b98a5)
  • feat(cloud-sync): 🗑️ add global snapshot deletion (2560edb)
  • feat(cloud-sync): ✨ add safe Live Save Sync (2dcb648)
  • feat(cloud-sync): ✨ apply selected V2 progress safely (2d60c33)
  • feat(cloud-sync): ✨ keep local V2 progress safely (d06ee1d)
  • feat(cloud-sync): ✨ compare V2 device progress (9213bd6)
  • feat(cloud-sync): ✨ automate V2 snapshot sync (a68a155)
  • feat(cloud-sync): ✨ configure V2 snapshot sync (afd9cef)
  • feat(cloud-sync): ✨ materialize V2 snapshot archives (3067c1e)
  • feat(cloud-sync): ✨ migrate legacy V1 libraries (a55ba69)
  • feat(cloud-sync): ✨ join existing V2 libraries (#456) (e27160d)
  • feat(cloud-sync): ✨ create V2 cloud libraries (#455) (13d2825)
  • feat(cloud-sync): ✨ add V2 bootstrap domain (#454) (c580954)
  • build(deps): ⬆️ upgrade OpenDAL to 0.57 (#453) (47a5703)
  • feat(cloud-sync): ✨ add V2 manifest foundation (#452) (a67c50f)
  • refactor(config): ♻️ persist configuration owners (8667d99)
  • refactor(config): ♻️ establish V2 configuration ownership (f17f946)
  • fix(backup): 🐛 gate no-atime file opens to Linux (0b04015)
  • fix(config): 🐛 preserve data across configuration upgrades (fb5c904)
  • fix(backup): 🐛 harden Archive V4 retention and validation (758ffea)
  • fix(backup): 🐛 preserve mapped targets and Windows attributes (b8e4810)
  • docs(backup): 📝 document Archive V4 compatibility (7df48af)
  • fix(backup): 🐛 restore directory timestamps after extraction (996916a)
  • refactor(backup): ♻️ support mixed archive formats across sync (5f95336)
  • feat(backup): ✨ add metadata-faithful Archive V4 (af525ff)
  • build(rust): ⬆️ pin Rust 1.97 and add 7z dependencies (2f12108)
  • fix(quick-actions): 🐛 satisfy Rust 1.97 clippy (9859b3a)
  • fix(import): 🐛 show Steam account names (d6967be)
  • docs(paths): 📝 record dynamic resolution decisions (ef5ceaa)
  • refactor(paths): ♻️ unify preview and mapping workflows (2926884)
  • refactor(paths): ♻️ separate install metadata from device locations (f0c9355)
  • fix(ui): 🐛 reliably open path variable suggestions (65e249d)
  • feat(restore): ✨ remember device target choices (7993832)
  • feat(paths): ✨ expose device-aware path controls (f7a386f)
  • feat(restore): ✨ plan V3 target mappings (9d389ac)
  • feat(backup): ✨ resolve dynamic paths before capture (0853751)
  • feat(backup): 📦 add atomic capture plans and V3 archives (4481c50)
  • refactor(backup): ♻️ model portable manifest pattern sources (a220e1c)
  • feat(config): 🗃️ add device resources and game bindings (7ad1f06)
  • feat(path-resolution): ✨ add typed manifest pattern planning (10f0e51)
  • docs(about): 📝 update contributors list with new members (c0bc7f9)
  • refactor(web): 💥 migrate Nuxt frontend to Vite (e4d1b52)
  • chore(web): ⚡ tune Nuxt dev startup (b1d9c7b)
  • fix(cloud-sync): 🐛 upload migrated config on startup (f7f5d58)
  • feat(manage): ✨ add separate apply confirmations (7ba8fe6)
  • docs(agents): 📝 document Tauri WebView debugging (49975b5)
  • feat(save-list): ✨ add configurable game sorting (3103f89)
  • docs(dev): 📝 document snapshot attachment layers (24ad3e9)
  • feat(gui): ✨ add auto-save settings drawer (d6a618e)
  • feat(gui): ✨ run auto-save automation jobs (703e083)
  • feat(core): ✨ add auto-save metadata and attachments (43a705d)
  • feat(gui): merge duplicate activity messages with ×n counter (3c1b7de)
  • feat(gui): ✨ show backend check results (0f2813e)
  • fix(cloud): 🐛 report backend check degradation (7e08be9)
  • ci: 💚 pin Node.js version in workflows (f993a2e)
  • fix(gui): 🐛 warn for registry open requests (7c46db3)
  • feat(gui): ✨ open registry save units from drawer (eabccb3)
  • feat(backup): ✨ store registry snapshots as reg files (805d5df)
  • style(tui): 💄 polish terminal layout (c2d90ee)
  • feat(tui): ✨ isolate profile imports (9694860)
  • feat(tui): ⚠️ gate experimental TUI startup (648b40c)
  • docs(tui): 📝 mark terminal UI experimental (b688e87)
  • docs(tui): 📝 add terminal usage guide (e17f49f)
  • i18n(tui): 🌐 add terminal UI strings (4c5ead0)
  • feat(tui): ✨ add terminal workspace app (8de7cfb)
  • feat(core): ✨ support explicit app data dirs (eb2bbfc)
  • docs(agents): 📝 require reviewable commit slices (a6121be)
  • feat(sync-settings): ✨ add conflict recovery controls (a235615)
  • feat(cloud-sync): ✨ add guarded conflict recovery (3027b22)
  • fix(ci): 🐛 retry transient release asset uploads (7526a33)
  • fix(ci): 🐛 avoid stale commits in nightly changelog (ffb47b8)
  • fix(ci): 🐛 harden nightly publish baseline (#408) (c7f9b29)
  • ci(nightly): 👷 publish nightly only when scheduled (644c767)
  • chore(deps): bump openssl from 0.10.79 to 0.10.80 (6e3fbbc)
  • chore(deps): ⬆️ update lockfile for nuxt 4.4.6 (6ee7b1f)
  • chore(deps): bump nuxt from 4.4.2 to 4.4.6 in /apps/rgsm-gui (19354e3)
  • fix(settings): 🐛 refresh quick action game (28b935a)
  • fix(security): 🔒 address dependency and workflow alerts (398bf4a)
  • chore(deps): bump devalue from 5.6.4 to 5.8.1 (5e4ad27)
  • i18n: Added translation using Weblate (Arabic) (4fa1aec)
  • chore(deps): bump tauri from 2.10.3 to 2.11.1 (6d4efb9)
  • fix(ci): 🐛 allow pnpm dependency build scripts (d5e65d3)
  • chore(deps): bump openssl from 0.10.78 to 0.10.79 (8ea4d5c)
  • i18n: Translated using Weblate (English (United States)) (2530f6b)
  • i18n: Translated using Weblate (Chinese (Simplified Han script)) (642bba9)
  • i18n: Update translation files (73c243b)
  • chore(i18n): 🔧 preserve human Weblate translations (ef0a64c)
  • fix(ci): 🐛 clobber existing release assets (e16d277)
  • fix(game): 🐛 clear deleted game quick-action references (d39154d)
  • chore(deps): bump uuid from 13.0.0 to 14.0.0 (91693c4)
  • chore(deps): bump openssl from 0.10.76 to 0.10.78 (e8a6e28)
  • chore(deps): bump rustls-webpki from 0.103.10 to 0.103.13 (f63a604)
  • feat(ci): improve release publishing and nightly release notes (dec3ac8)
  • fix(build): pass release id in reusable GUI builds (b10602a)
  • fix(build): slim build and better ci (83fc16e)
  • feat(gui): ✨ auto-collapse drawer and add copy button for errors (dca822e)
  • feat(gui): ✨ replace fragmented notifications with unified ActivityDrawer (41ec8dd)
  • feat(ui): 增加文件点击时按住Ctrl打开父文件夹的功能 (4befa29)
  • feat(sync): ✨ add S3 addressing style and virtual-host error hints (df92980)
  • feat(import): ✨ polish ludusavi path variable UX (a206aa7)
  • feat(import): ✨ improve ludusavi import flow (1ee6c19)
  • feat(settings): ✨ add configurable game roots (5aff34f)
  • feat(core): ✨ support ludusavi path variables (0368a52)
  • feat(gui): ✨ allow special chars in game names, support rename (314c4a3)
  • refactor(core): ♻️ decouple display name from storage path (0cb441d)
  • refactor(core): ♻️ clarify cross-platform path launch behavior (96bda95)
  • fix(gui): 🐛 set working directory for launched executables (5e1964b)
  • fix: 🔧 correct license to AGPL-3.0 and fix fmt (7cd4efa)
  • feat(build): ✨ slim build and fix macOS artifact naming (d2bf5df)
  • fix(build): 🐛 fix Windows portable packaging script resolution in CI (8f19db0)
  • refactor(vn-scanner): ♻️ rename and relocate vn scanner (6b5e25c)
  • refactor(scanner): ♻️ integrate scanner into current workspace (32defef)
  • feat(scanner): ✨ port galgame scanner flow (d21139a)
  • fix(web): 🐛 align vue-router with Nuxt typecheck (5b8f8ca)
  • ci: ⬆️ fix Node.js 20 deprecation and tauri-action pnpm detection (973e0fd)
  • perf(gui): ⚡ pre-bundle vite runtime dependencies (4a8a372)
  • feat(core): 🏷️ embed git commit hash in build info (53e1a58)
  • chore(deps): ⬆️ update cargo and npm dependencies (fb42221)
  • chore(ci): ♻️ rename workflows and add manual dispatch (3a27560)
  • chore(hooks): 🔧 align pre-commit checks with workspace layout (d22efeb)
  • refactor(runtime): ♻️ harden startup diagnostics and bundled resources (e718020)
  • chore(workspace): 🔧 update tooling and workspace metadata (e89aac5)
  • refactor(hooks): ♻️ introduce service layer and lifecycle pipeline (53eb6d4)
  • refactor(core): ♻️ extract reusable rgsm-core domain modules (cceb7e1)
  • refactor(workspace): 🚚 move GUI app into apps workspace (5a44013)
  • feat: Add acknowledgments section to README (19eb841)
  • feat(ui): ✨ highlight quick backup button when active for current game (85990c9)
  • feat(ui): ✨ add per-game auto-backup controls and keep action (fae5aa7)
  • feat(quick_actions): ✨ add per-game auto-backup scheduler and remove global timer (77518ab)
  • feat(backup): ✨ add per-game auto-backup model and snapshot source tracking (8a09200)
  • refactor(config): ♻️ move legacy cloud-sync compatibility into migration (6fca61b)
  • fix(backup): ♻️ clarify restore skip semantics with RestoreOutcome enum (ddb2dd2)
  • chore(gitignore): 🙈 ignore config backup artifacts (d21c752)
  • feat(ui): 💄 simplify the save location drawer (e9da9f8)
  • feat(backup): ✨ preserve save-unit compatibility when editing (57a4ab9)
  • fix: read version from Cargo.toml in portable script (fixes #334) (3561d6b)

Don't miss a new game-save-manager release

NewReleases is sending notifications on new releases.