Releases: Ryz3nPlayZ/zWork
Release list
zWork v0.5.2
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS:
Unsigned build — if macOS blocks the install, right-click → Open, or use the cURL installer below.
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
Unsigned build — if SmartScreen appears, click "More info" then "Run anyway".
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexWhat's new
Ship-readiness pass: stability, security, Ollama, and permission UX.
New
- Ollama integration works end-to-end. Model discovery was broken in three independent ways (SSRF guard rejected the default empty URL, double-
/v1path, response-shape mismatch) — clicking "Load models" always errored or showed an empty list. Rewritten to use Ollama's native/api/tagsendpoint with a correct response mapping. Models now auto-load the moment you pick the Ollama credential. Embedding-only models are filtered out. - Pull Ollama models in-app. New
POST /api/ollama/pullendpoint streams download progress from Ollama's/api/pullas SSE. The Settings panel has a pull input with live progress (downloading — 42%,success) and auto-refreshes the model list on completion. Zero-config: empty base URL defaults tohttp://localhost:11434. - Crash reporting foundation. Panic hooks in both the sidecar backend (
~/.zwork/logs/crashes.jsonl) and the Tauri host (host-crashes.jsonl) capture payload, location, thread, and backtrace. Previously, native crashes vanished silently. - macOS Keychain for secrets. BYOK API keys now store in the system Keychain (encrypted at rest) with transparent migration from the legacy plaintext file and full fallback on Linux/Windows.
- Legal docs. Privacy Policy and Terms of Service added (
legal/), with in-app links in Settings.
Fixes (permissions — the "granted but shows Required" bug)
- Permission status now updates after you grant. The
LAST_PERMScache was write-once and never invalidated, so granting in System Settings and returning to zWork kept showing the old "not granted" state until restart. Now has an 8s TTL with live re-read when the driver is up. - Warm-up no longer poisons on slow driver start. A transient failure on first contact permanently returned "CuaDriver isn't running" until manual re-click. The guard now resets on failure so later polls retry.
- Accessibility grant deep-links to System Settings. Previously the AX grant button relied on macOS re-raising the driver's prompt, which it won't after first launch — so it could silently do nothing. Now opens the Accessibility pane directly.
- Stale-cache fix on driver restart.
teardown_drivernow invalidates the permission cache so a fresh read happens on the next poll.
Fixes (stability)
- Mutex poison immunity. 22
std::sync::Mutexlock sites across the agent loop, watchdog, and CUA cache converted to poison-tolerant access. A single panicked thread no longer cascades into permanent process-wide deadlock. - Agent no longer crashes on transient chatstore read failure.
chatstore::get().unwrap()→ graceful fallback with a warning. - Context-overflow recovery wired in.
is_context_overflow_errorandforce_compact_conversation_historywere written to recover fromcontext_length_exceeded400s but never called. A long conversation no longer dead-ends when it crosses a model's real window — it force-compacts and retries once.
Fixes (overlay)
- Custom shortcut now works on every launch. Previously reverted to
Ctrl+Alt+Spaceuntil you opened Settings, because Rust can't read localStorage. Now re-registered on main-window boot. - Keybindings cheatsheet shows your actual shortcut instead of the hardcoded default.
Fixes (Composio / Gmail)
- Gmail pagination. "Check my email" no longer drowns the model on a busy inbox. Default page is 25 (metadata-only, no HTML bodies),
nextPageTokenis surfaced, and the prompt teaches the model to keep paging until exhausted — so nothing gets missed. Paging is scope-aware (doesn't restart at page 1).
Fixes (Share Window)
- "Share window" button hidden on Windows/Linux where it returned "No windows found" (capture is macOS-only via CoreGraphics).
Infrastructure
- Code-signing + notarization CI scaffolding. The release workflow now wires
APPLE_SIGNING_IDENTITY/APPLE_ID/APPLE_PASSWORD/APPLE_TEAM_IDfor macOS (notarytool submit + staple) andWINDOWS_CERTIFICATE_THUMBPRINTfor Windows Authenticode. Entitlements plist added. All optional — unsigned builds still work; reviewers see warnings when secrets are missing. - Version bumped to 0.5.2 across
package.json,tauri.conf.json,Cargo.toml,Casks/zwork.rb. - 4 cargo warnings eliminated (dead code, needless mut).
zWork v0.5.1
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
Windows parity pass + native Share Window capture.
New
- Share Window (macOS). The overlay's window picker now captures windows natively through the Tauri host (CoreGraphics) using zWork's own Screen Recording grant — no cua-driver dependency — and routes the screenshot to zwork-vision.
Fixes (Windows)
- Scroll-dead zones removed. The
app-region: dragCSS rules were dropped: WKWebView ignores them, but WebView2 treats such elements as window caption and swallows all mouse input over them — including wheel events — which made drag-region areas (Settings header, top bands, sidebar base layer) unscrollable on Windows. Dragging still works via thedata-tauri-drag-regionattribute, which wry handles natively. - Consistent typography. Inter (variable) is now bundled and leads the
font-sansstack, so Windows/Linux render the same typeface and metrics as macOS instead of falling back to Segoe UI (which also ignored the Inter-specificss01/cv11feature settings). - Opaque main window on Windows. A
tauri.windows.conf.jsonoverlay disables main-window transparency there — transparency cost the native DWM frame (no drop shadow, no Win11 rounded corners) and existed only to serve macOS vibrancy. - Sidebar translucency gated to macOS. On Tauri Windows/Linux there is no compositor blur behind the window; the CSS
backdrop-blurfallback rendered as a flat slab (black under VMs). The toggle is hidden and the effect forced off on those platforms. - Visible scrollbars. Windows now keeps a faint scrollbar thumb at rest instead of the macOS-style hover-only thumb, restoring scroll affordance.
Fixes (all platforms)
- Window drag no longer hijacks interactive children.
onDragMouseDownnow walksclosest()past buttons, inputs, textareas, and[data-no-drag]before starting a native drag, so drag-selecting text or pressing-and-moving on sidebar items no longer moves the window.
zWork v0.5.0
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
See CHANGELOG.md for details.
zWork v0.5.0-beta.12
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
See CHANGELOG.md for details.
zWork v0.5.0-beta.11
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
See CHANGELOG.md for details.
zWork v0.5.0-beta.9
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
See CHANGELOG.md for details.
zWork v0.5.0-beta.10
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
See CHANGELOG.md for details.
zWork v0.5.0-beta.6
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
UI overhaul: calmer theme system, redesigned titlebar, and a draggable window that finally feels right.
Window & layout
- New full-width top strip owns window dragging. A single 22px transparent strip at the top of the window carries the sidebar collapse button (fixed next to the macOS traffic lights, so it never jumps when the sidebar toggles) and is the one consistent draggable edge across the whole window. Replaces the previous per-view "overlay" drag pattern where each header had its own hit-and-miss drag region.
- Sidebar collapse state now persists across launches (
localStorage["zwork:sidebar-open"]) instead of always resetting to open. - Collapsed sidebar icon spacing fixed. Footer icons now center-align with the nav icons above them, and padding/gap no longer mismatch between nav and footer.
- Cleaned up the dead
.titlebar-dragclass across Settings, ArtifactPanel, Onboarding, LoginScreen, and ChatInput — it was an Electron-ism WKWebView ignores. Onboarding and Login (which render as full-screen gates without the top strip) now use the realstartDragging()handler. - Reduced excessive top padding (128px → 32px) on Analytics, Plan, and Connectors pages now that the top strip handles traffic-light clearance.
Theme system (OpenCode-inspired)
- Alpha-overlay borders. Borders are now translucent overlays (black in light mode, white in dark) via the new
--border-overlaytoken andborder-edge/edge-strong/edge-mutedTailwind colors, plus.hairline-ringand.focus-ringelevation utilities. A border adapts to whatever surface it sits on instead of reading as a harsh fixed-color line. - Fixed surface contrast across all dark themes. Tightened
paperRaisedjumps so the chatbox no longer glares — Catppuccin Mocha's raised surface went from +39pt above base to +19pt; same treatment for Atom One, Dracula, Tokyo Night, Gruvbox, Nord, Monokai, and Aura. Split every duplicateinkMuted === inkFaintpair so text hierarchy has three distinct steps. - Fixed light-mode flatness. Parchment light
paper-soft/paper-raisedwere lighter than base (the OpenCode mirror rule says raised surfaces should step darker toward the foreground in light mode) — corrected. - Chatbox redesigned. Now matches the page fill (
bg-paper) with elevation from a hairline ring and focus from an accent-tinted ring, instead of being a visibly different-colored box. - Deleted dead
bubble/bubbleFgtokens from theTokenSetinterface, all 14 presets, the theme mapper, and Tailwind config — they were defined but used nowhere.
Translucency
- Switched native macOS material from
FullScreenUItoSidebar(the most-muted NSVisualEffectMaterial — what Finder/Mail use). Real desktop bleed-through but text stays crisp. - Raised the CSS fallback opacity from
/70to/85for non-vibrancy platforms. - Top strip is no longer translucent — it's transparent and vanishes into whatever column is below it.
Other fixes
- Stray scrollbars on the landing chatbox — the textarea's scrollbar gutter no longer lights up on hover. Added
[scrollbar-width:none] [&::-webkit-scrollbar]:hiddento the chatbox textarea (the global hover-thumb rule remains for actual scroll containers). - Replaced the desync-prone CSS
zoomwith native webview zoom (getCurrentWebview().setZoom()on Tauri,transform: scale()browser fallback) — fixes the broken text-selection rectangles. Newlib/zoom.tswithzoomIn/zoomOut/zoomReset, persisted tolocalStorage["zwork.zoom"]. - Added
core:window:allow-start-draggingandcore:webview:allow-set-webview-zoomto the Tauri capabilities — the missing permissions were silently breaking window drag and native zoom.
zWork v0.5.0-beta.5
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
Fix: revert secret store to plaintext file I/O — eliminates keychain prompts.
Fixes
-
Removed the
keyringcrate entirely. The secret store is back to pure plaintext file I/O (~/.zwork/secrets.json, 0o600) — exactly as it was in v0.5.0-alpha.19, before the regression was introduced. The backend no longer touches the macOS Keychain, Windows Credential Manager, or Linux Secret Service, so there are zero OS keychain authorization prompts on startup or anywhere else. This reverts the regression that was inadvertently bundled into the beta.2 release.Beta.3's in-process cache and beta.4's file-first-with-keychain-fallback were both over-engineered partial measures. The correct fix was to remove the keychain code altogether and return to what worked: a single plaintext file, no OS integration, no prompts.
Secrets now live only in
~/.zwork/secrets.json. If you previously stored keys in the keychain (via a beta.2/beta.3/beta.4 build), they are not migrated — re-enter your API key once in Settings after upgrading.
zWork v0.5.0-beta.4
Download zWork for your platform:
| Platform | File |
|---|---|
| Linux | zWork-linux-x86_64.AppImage |
| macOS | zWork-macos-universal.dmg |
| Windows | zWork-windows-x86_64-setup.exe |
Install
Linux (recommended):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install.sh | bashOr download the .AppImage and run:
chmod +x zWork-linux-x86_64.AppImage
./zWork-linux-x86_64.AppImagemacOS (cURL - no GateKeeper prompt):
curl -fsSL https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-macos.sh | bashOr download zWork-macos-universal.dmg, open it, then drag zWork to Applications.
Windows:
irm https://raw.githubusercontent.com/Ryz3nPlayZ/zWork/main/scripts/install-windows.ps1 | iexIf SmartScreen appears, click "More info" then "Run anyway".
What's new
This is a beta build. Core features are functional but may still have issues. Feedback welcome.
Fix: macOS keychain prompts — for real this time.
Fixes
-
Secret store now file-first (matching the Python backend). The sidecar reads credentials from
~/.zwork/secrets.jsonbefore ever touching the OS keychain, eliminating the keychain authorization prompts entirely on the read path. The keychain is now only a fallback for credentials missing from the file, and a best-effort sync target on writes. This restores the Python backend's"file"default mode (commit16cc9a4), which the Rust rewrite had inadvertently discarded in favor of keychain-first reads.The first launch after upgrading transparently migrates any existing keychain credentials into
secrets.json, so file-first reads have data to find and never fall through to the keychain. After that one-time migration, the keychain is not consulted on reads at all — no prompts, ever.(Beta 3's in-process cache was a partial measure that only reduced prompt count; this is the actual fix. The cache has been removed since it's no longer needed.)