Repository navigation
Releases: Prismo-Studio/Zephyr
Release list
Zephyr v1.3.3
Zephyr 1.3.3
Archipelago folder settings, random ranges in randomizer options, a compact config layout, and a batch of sync and folder fixes.
Added
- Configurable Archipelago folders: the randomizer runtime directory and the player slot directory can be picked from the app, with the choice kept across restarts.
- Random ranges in randomizer options: numeric options accept a random range (
random-range-x-y, plus thelow/middle/highvariants), and weighted value lists are no longer capped to three entries. - Compact layout option for the config manager, in Preferences > Display.
Fixed
- Cloud sync now logs out on its own when the Discord session expires instead of holding on to a dead token, so mod installs are no longer blocked by a stale session.
- Data folder and cache folder settings survive a restart.
- Mod tags in Browse keep a stable alphabetical order. They were stored in a hash set, so every re-fetch of the package list reshuffled them.
Full diff: v1.3.2...v1.3.3
Zephyr v1.3.2
Zephyr 1.3.2
Patch release.
Fixed
- Cloud sync no longer spams an error toast on every action when the Discord token is expired. Auto-sync pauses for the session after the first 401 and resumes automatically after re-login.
- "No mods installed" empty state is now properly centered in grid view.
Full diff: v1.3.1...v1.3.2
Zephyr v1.3.1
v1.3.1
Patch release.
Fixed
- macOS app icons in the bundle (Dock, Finder, About panel).
Full diff: v1.3.0...v1.3.1
Zephyr v1.3.0
Community plugins, v1.3.0
This release lands the plugin system: a framework for community-built features that ship outside the Zephyr binary, with a shared SDK, dev tooling, and a sandboxed runtime. It also tightens the Zephyr Mods registry pipeline and ships a handful of UX fixes.
Plugin system
- Sandboxed iframe runtime with a postMessage bridge to Zephyr core. Plugins get sidebar items, their own routes, and access to host capabilities through an explicit API.
- Per-plugin storage (
zephyr.storage,zephyr.fs) and notifications (zephyr.notify,zephyr.openExternal). - Event bus for host signals:
game.launched,game.exited,game.changed,profile.switched,locale.changed,theme.changed. Plugins subscribe viazephyr.on(event, cb). - Native screen recording capability (
zephyr.recording.start/stop) backed by ffmpeg, with auto window detection on Windows (EnumWindows+ substring match). - Theme propagation: plugins inherit Zephyr's active theme automatically (light, dark, custom, etc.).
- Dev Mode: pick a folder on disk, load the plugin live, edit and hot-reload without re-publishing.
Plugin SDK (@zephyr-plugin/sdk)
- Svelte 5 components matching Zephyr:
Toggle,Select,Button,Card,Row,StatusPill,StatCard. - Design tokens that track the host's active theme.
- Typed bridge client with autocomplete for events and capabilities.
Community plugins shipped
- Captures (1.2.0): native screen recording, configurable quality (720p to 2160p), framerate (30/60 fps), local mp4 output, preview modal. Auto-record on game launch is wired but disabled in 1.3.0 (coming next).
Mods & profile improvements
- Version selector now reflects the installed version rather than always showing the latest available (Thunderstore + Zephyr Mods).
- Zephyr Mods installed mods get a working version dropdown that fetches the version list on-demand from the registry.
- Browse & Mods pages refresh automatically after a version change, no manual reload needed.
- Sidebar items for community features show the icon from the plugin manifest (
sidebarIcon).
Zephyr Mods registry
- Validation workflow on every PR: schema validation, ownership check via full git history, SHA-256 verification of release archives.
- Manifest schema locked and published (
schema/registry.schema.json). - Master branch normalised across all workflows + registry URLs.
UX
- Welcome modal on first launch (7 locales) with a single soft prompt toward the GitHub repo.
- Modal backdrops now cover the full window instead of leaving the sidebar visible.
- Dropdown styling in plugins matches Zephyr (custom select instead of the native browser one).
- Bumped versions across
package.json,tauri.conf.json,Cargo.toml.
Under the hood
- New Rust modules:
plugins/dev.rs,plugins/recording.rs,plugins/install_featurepath. - Filesystem watcher for dev plugins (
notify-debouncer-mini). - ffmpeg bundling via
ffmpeg-sidecar(auto-downloads on first recording). - SPA fallback enabled on adapter-static so dynamic plugin routes work.
Documentation
- New Plugins page on the docs site.
- New Plugins wiki page with screenshots.
- Zephyr-plugin README rewritten with SDK reference and full manifest spec.
Full diff: v1.2.14...v1.3.0
Zephyr v1.2.14
v1.2.14
A small maintenance release focused on transparency and supply-chain hygiene.
✨ What's new
- A complete public
CHANGELOG.mdships with the package, so the
Thunderstore listing's Changelog tab now reflects the full history of
Zephyr from v0.7 through today.
🔒 Security
This release closes the remaining build-time dependency advisories that
showed up on Dependabot:
| Package | Before | After | Issue |
|---|---|---|---|
@inlang/paraglide-js |
2.3.0 | 2.18.0 | dropped vulnerable transitive kysely 0.27 |
cookie (forced) |
0.6.0 | 0.7.2 | out-of-bounds character handling |
esbuild (forced) |
0.21.5 | 0.25.12 | dev-server cross-origin request leak |
Frontend and Rust runtime patches from 1.2.13 (svelte 5.55, vite 5.4.21,
postcss 8.5.14, devalue 5.8, aws-lc-sys 0.40, tar 0.4.45, time 0.3.47,
quinn-proto 0.11.14, rustls-webpki 0.103.13) all carry over.
🩹 Carry-over fixes from 1.2.13
For users updating directly from 1.2.12, this build also includes:
- Anonymous, opt-in usage telemetry (PostHog EU) with a Privacy toggle in
Settings, off until you enable it, and never sends personal info or IPs. - Gamepad d-pad no longer triggers navigation twice per press on Standard
Mapping controllers (Xbox / DualShock on Windows). - Virtual on-screen keyboard d-pad input doesn't fire a duplicate event on
quick taps anymore. - Pressing Start on the gamepad now opens the Play menu directly.
- Profile names limited to 25 characters; long legacy names are truncated in
the dashboard hero and profile switcher to prevent layout overflow. - Scroll-to-top button moved to the bottom-left on Mods and Browse pages so
it doesn't overlap the version dropdown chevron. - Install button hover no longer flickers; the version chevron matches the
gradient at all states.
📦 Install
Pick the installer matching your platform from the assets below:
- Windows:
Zephyr_1.2.14_x64-setup.exeorZephyr_1.2.14_x64_en-US.msi - Linux:
Zephyr_1.2.14_amd64.AppImage,.deb, or.rpm - macOS:
Zephyr_1.2.14_universal.dmg
If you already have Zephyr 1.2.x installed, the in-app updater will fetch
this release automatically on next launch.
📝 Full changelog
See CHANGELOG.md
in the repository for the complete history.
Zephyr v1.2.13
v1.2.13
New
- Archipelago, Randomized & Weighted inputs: new option editors for randomizer fields, with validation, tests, and translations across all 7 locales.
- Anonymous telemetry (opt in): new Privacy section in Preferences with a fully anonymous, opt in telemetry toggle. Off by default, nothing is sent unless you enable it.
Fixes
- Game card: favorite button no longer overlaps the title.
- Weighted value editor: corrected weighted value handling in randomizer fields.
timeSinceplurals: fixed broken plural forms across locales (no moremoiss,mêss,mes(es)s).- Version dropdown chevron: simplified install button chevron hover, no more flicker or invisible state.
Polish
- Cleaner install button styling.
Full Changelog: v1.2.12...v1.2.13
Zephyr v1.2.12
Zephyr 1.2.12
New Features
Customizable keyboard shortcuts. Rebind global shortcuts from a new shortcuts settings panel, with the updated bindings reflected in the help modal and global search.
Fixes
Modded launch on Linux is now wired up properly. Modded profiles can launch on Linux instead of only working on Windows.
Installed mod version dropdown. The chevron is no longer invisible on hover.
Polish
Removed the pulsing dot indicator on the selected game in the dashboard.
Cleaned up profile lock wording across all locales.
Filled in missing translations across es-ES, fr, pt-BR, ru, and zh-CN, and removed orphaned i18n keys.
Under the Hood
Major refactor: split large monolithic components (Sidebar, ModCard, ModDetails, RandomizerServerPanel, prefs/+page, profiles/+page, browse/+page) into focused subcomponents, and centralized external URLs in a new api.constants.ts / Rust constants.rs.
Extracted mod list drag and drop into a reusable useModDrag hook.
Split profile/commands.rs into per-domain submodules (dirs, game, icons, mgmt, mods).
Migrated the toast store to Svelte 5 runes.
Removed the unused justerror Rust dependency, the legacy r2modman importer, dead code, and committed debug artifacts; added clippy redundant_clone fixes.
Full Changelog: v1.2.11...v1.2.12
Zephyr v1.2.11
v1.2.11
Documentation: https://docs.zephyr.prismo-studios.dev/
New features
- Launch options menu, replaced the standalone "Vanilla" button with a full launch options menu, giving easier access to vanilla and modded launch modes.
- Mod enable/disable toggle, added a toggle switch on mod cards to quickly disable/enable individual mods.
- Favorites-based game ordering, your favorite games now sort to the top of the game list.
- RPM packaging, Linux builds now include an .rpm artifact alongside the AppImage and .deb.
Improvements
- Custom-sort drag rail, refined the drag handle on mod cards for smoother custom ordering (#27).
- macOS deep links, refactored deep-link handling for better macOS support and increased the broadcast channel capacity for auth callbacks (fewer dropped login redirects).
- Documentation, README now links to the new docs site at https://docs.zephyr.prismo-studios.dev/.
Bug Fixes
- Fixed dropdowns not closing when the cursor left them.
- Fixed drag-and-drop issues with .apworld files in the Archipelago randomizer.
Zephyr v1.2.10
Zephyr v1.2.10
Fixes
- Start inventory now populates on first Archipelago install, schemas refresh in the background once the runtime is extracted, so the item list and browser modal fill in without a manual refresh
- start_inventory no longer triggers a false "unknown option" validation error; the validator now recognizes Archipelago's PerGameCommonOptions (start_inventory, start_inventory_from_pool)
- Game search now matches names containing punctuation (apostrophes, dashes, etc.) and the empty-state UI has been simplified
Improvements
-
Orphan schemas (left over after an apworld is removed or renamed) are now pruned automatically when the supported-games list loads
-
Runtime install logic has been extracted into a dedicated runtimeInstall store, shrinking the install banner component and making the install / venv-provision flows reusable
Zephyr v1.2.9
1.2.9
Archipelago
- New "Browse items" modal in the Start Inventory editor with inline count stepper
- Top-level YAML fields now highlight when modified
- Lighter Archipelago runtime banner in the catalog header
- Search now matches games with punctuation
- Cleaner empty state in the game search dropdown
Console
- Polished console UI overall
- You can select and Ctrl+C copy any output, plus right-click for a copy menu
Mods and Browse
- Added a scroll-to-top button that lifts above the batch action bar when needed
Settings
- New shortcuts modal listing every keybind in the app
- Ctrl+B opens it from anywhere
- Ctrl+wheel zoom on the main view, with clearer zoom shortcut labels
- Settings title and sections properly aligned

