feat(desktop-windows): cherry-pick yeedy features into upstream architecture + Windows CLI hooks support#319
feat(desktop-windows): cherry-pick yeedy features into upstream architecture + Windows CLI hooks support#319Yeedy wants to merge 19 commits into
Conversation
Add a build-windows job to desktop-release.yml that builds the Tauri portable exe (--no-bundle) as petdex-desktop-win32-x64.exe so the CLI's existing install model works on Windows like mac/linux. A windows_only manual-dispatch input skips the mac builds and lets the release publish without them, so a fork can cut a Windows-only test release; tag pushes still build everything and a real mac failure still blocks the release. Make the CLI release repo overridable via PETDEX_RELEASE_REPO so a fork can install desktop assets from its own GitHub releases for testing.
- Resolved all conflicts in packages/petdex-desktop-windows/ by accepting upstream's single-file lib.rs + ui/index.html approach - Deleted yeedy-specific files: commands/ split, src/app.js+bridge.js, vite.config.js, postcss.config.mjs, etc. (preserved on desktop-windows-yeedy) - Resolved .github/workflows/desktop-release.yml (upstream version) - All remaining non-desktop changes merged normally
…tecture Port yeedy desktop-windows features into upstream's single-file lib.rs + ui/index.html approach: Backend (Rust): - Add Tauri plugins: deep-link, single-instance, fs, process, http - Add deps: reqwest, tokio - Expand lib.rs with setup hook: auto-spawn sidecar, deep-link registration, single-instance lock, init-status detection, directory bootstrap - New commands: read_petdex_data, set_active, install_pet, set_mascot_state, trigger_update, respawn_sidecar, read_update_info, read_init_status, asset_url_for - Retain all upstream commands: list_pets, get_pet, get_active_pet, read_file_as_base64, spawn_sidecar, get_sidecar_port, stop_sidecar, quit_app Frontend (ui/index.html): - Add deep-link handler (petdex://install/<slug>) - Add init banner: shows when neither sidecar nor CLI is installed - Add update card: polling update info with click-to-install - Add sidecar watchdog: health check + auto-respawn - Keep upstream CSS sprite animation (9 states, GPU-composited) - Keep drag, bubble, right-click quit Config: - Keep window size at upstream's 192x288 - Enable bundle (msi + nsis) - Add CSP + assetProtocol scope - Expand capabilities with fs, http, deep-link, event permissions
|
Someone is attempting to deploy a commit to the Crafter Station Team on Vercel. A member of the Team first needs to authorize it. |
|
I’ll review using the GitHub CLI diff as the source of truth and avoid executing or checking out PR code. [important] [important] Cold-start deep links are not handled. The only place that emits [important] |
|
[blocking] [important] [important] |
Summary
Desktop Windows (Tauri v2)
Ports the yeedy fork's Windows desktop features into upstream's lean architecture (single-file
lib.rs+ui/index.html), keeping upstream's file structure intact while adding:petdex://<slug>auto-activates/installs pets via single-instance lock + protocol registrationnpx petdex init" when neither sidecar nor CLI is installed; click to copy commandtrigger_updateread_petdex_data,set_active,install_pet,set_mascot_state,trigger_update,respawn_sidecar,read_update_info,read_init_status,asset_url_forCLI Hooks — Windows Support
wscript.exehidden launcher instead of POSIX shell commands.petdex-hook.vbsalongside~/.petdex/bin/petdex.jsduring hooks install/init.petdex bubblecannot hang if stdin is never closed.Test Plan
state.json/bubble.jsonno-op behavior is resolved after using the hidden hook runner.Comparison with upstream
What this PR adds vs. upstream main
petdex://)set_active/install_pet/asset_url_forcommandsread_file_as_base64sprite loadingArchitecture choice
This PR keeps upstream's lean architecture (single
lib.rs+ui/index.html, no Vite build step) rather than the yeedy fork's modular Vite setup. Thedesktop-windows-yeedybranch preserves that original implementation for reference.Known limitations
desktop-windows-yeedyif needed).