refactor(launcher): add ShellService, fix UI feedback patterns#102
Merged
MSTU0 merged 54 commits intobotswin:mainfrom Mar 28, 2026
Merged
refactor(launcher): add ShellService, fix UI feedback patterns#102MSTU0 merged 54 commits intobotswin:mainfrom
MSTU0 merged 54 commits intobotswin:mainfrom
Conversation
Contributor
mykola-zalizniak
commented
Mar 28, 2026
- Add ShellService using non-blocking spawnProcess with event buffering to fix IPC event loop blocking during downloads and extraction
- Migrate all execCommand calls to ShellService (zero remaining)
- Replace native showMessageBox with snackbar (success) or AlertDialog (errors/warnings) for consistent in-app feedback
- Unify all clipboard copy actions with snackbar confirmation
- Add Copy URL button in proxy input
…lino via postinstall
…e input component
… prioritize custom exec path
…kernel executable paths
…range and per-context cross-links
- Add "Save to proxy list" button in proxy input for reusing manually entered proxies - Add batch proxy connectivity check with IP/status display in proxy management - Sort proxy list by creation time (newest first) - Fix kernel date display: parse from asset filename, fix timezone offset bug - Simplify profile status column to icon-only (play/stop) with tooltips - Remove year from "Last Launch" date to prevent truncation - Widen window to 1080px, use fixed table layout to prevent horizontal scrollbar - Add column width constraints for profile and proxy tables
…nd new fields - Add left-side anchor navigation with scrollspy (IntersectionObserver) - Split Fingerprint into separate Noise and Rendering sections - Replace expansion panel with flat Advanced section layout - Add mode toggles for Executable (kernel/custom), Cookies and Bookmarks (file/input) - Add FPS dropdown (profile/real/custom number) instead of free-text input - Add Save IP button in proxy section for explicit IP saving - Add new fields: Time Seed, Proxy Bypass Regex, Cookies, Bookmarks, Custom Headers - Put username/password on same row in proxy input - Widen status column to prevent icon clipping
# Conflicts: # CHANGELOG.md
Normalize both sides with `|| ''` to handle undefined values, and add password to the comparison so proxies with the same host:port but different credentials are treated as distinct entries.
…y check - Block profile editing when browser is running/launching/stopping, show alert dialog instead of silently darkening the background - Remove onIpCheckResult that auto-saved checked IP to proxyIp field
Check for launcher updates on startup and every hour by comparing the local commit hash against the latest launcher-specific commit from GitHub API (path=launcher). When an update is found, silently download, rebuild, and prompt the user to restart. - Add UpdateService with periodic check, ZIP download, and rebuild - Show update status (checking/downloading/building/ready) in sidebar - Display current version (commit hash) at sidebar bottom - Update setup scripts to save commit hash after install/build - Fix sidebar footer layout to stay at bottom via flex container
…enhancements - Separate row highlight (single click) from checkbox selection (batch ops) - Add double-click to edit on both profile and proxy tables - Add clear proxy button in profile editor - Combine proxy type/host/port into single row layout - Add --bot-stack-seed and --bot-network-info-override CLI flags - Update noise seed from float to integer range - Stack seed uses dropdown (profile/real/custom) like FPS - Rearrange noise settings: seed+scale+timeseed row, fps+stackseed row - Widen proxy type column in proxy list table
…text rects off - Return created profile/proxy ID from dialog so the table highlights the new row after creation, matching the edit-then-highlight behavior - Change botConfigNoiseTextRects default from on to off
…es guard - Add --bot-config-orientation dropdown in Display & Input section with all orientation variants, noted as mobile profiles only - Add --bot-gpu-emulation toggle in Behavior section for auto GPU rendering backend selection - Add "Clear User Data" action in both profile edit dialog and profile list context menu to delete user-data-dir - Guard profile and proxy edit dialogs against accidental close: Escape, backdrop click, and Cancel now prompt when forms have unsaved changes
…-03-26 flags
- Restructure sections: Proxy → Proxy & Network, move GPU Emulation
to Rendering, History Injection to Identity (now supports count)
- Add --bot-enable-variations-in-context and --bot-inject-random-history={number}
- Add CLI command preview in Advanced tab + Copy CLI in context menu
- Backward compat for old profiles with flags in behavior.*
- Fix history count type coercion, add copy snackbar feedback
- Use unique directory per install (tagName_githubAssetId) to avoid overwriting running kernel files during auto-update - Verify directory deletion before removing kernel record to prevent orphaned records when files are locked on Windows - Clean up outdated kernels at runtime when browser exits, not only at launcher startup - Check 7z availability early at init and before download, show warning banner when missing - Fix nested 7z/zip extraction: use recursive dir search and trim \r from Windows dir output so chrome.7z is found and cleaned up - Add open-folder button in kernel list to reveal install directory - deleteKernel throws if files are locked instead of silently failing
- Add ShellService using non-blocking spawnProcess with event buffering to fix IPC event loop blocking during downloads and extraction - Migrate all execCommand calls to ShellService (zero remaining) - Replace native showMessageBox with snackbar (success) or AlertDialog (errors/warnings) for consistent in-app feedback - Unify all clipboard copy actions with snackbar confirmation - Add Copy URL button in proxy input
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.