mirror of
https://github.com/playit-cloud/playit-agent.git
synced 2026-07-01 15:44:30 +00:00
* Use clap enum & struct parser rather than macro fn * Oneshot doing a service * working :) * bugfixes * Improve log format * fix comp for unix * stage changes * Move stuff around, improve ipc * improvements... * improve commands * Add window service support * Setup macos * UDP improvements * Start on MTU discovery logic * Do not start windows service on install or boot * change start condition for windows to fix service * fix windows service and update service perms * Improve setup logic * Add windows-build.sh * Improve secret setup logic * Add Windows tray companion for playitd (#136) * Add Windows tray companion for playitd - Build and install a new `playitd-tray` binary - Register a startup shortcut and poll the service to show the tray icon - Let the tray app open status or stop the installed service * Improve Windows tray service controls - Add start/stop service actions to the tray menu - Keep tray icon status in sync with service state - Allow removing the tray startup shortcut * Embed tray icon in Windows build - Add a Windows resource build step for the tray binary - Load the embedded icon at startup with a fallback to the default icon * Switch Windows tray to tray-icon - Replace custom Win32 tray/menu code with `tray-icon` - Remove the `winres` build script and embed the tray icon asset - Add Windows tray menu handling for service actions * Wrap tray state access in unsafe block - Keep `refresh_tray_status` safe at the function boundary - Limit `unsafe` to the `get_state(hwnd).as_mut()` call * Simplify tray menu state updates on Windows - Stop treating menu item enable/disable as fallible - Keep tray tooltip and service state in sync * Tighten unsafe boundaries in Windows tray code - Wrap Win32 calls in explicit unsafe blocks - Keep tray event handlers using HWND values that outlive the closures - Make state access helpers safe wrappers around raw window data * Add Windows tray debug console logging - Add an optional `--debug-console` mode for the tray process - Attach or allocate a console and emit tray lifecycle logs * Stabilize Windows tray menu and tooltip updates - Track tray menu visibility to defer tooltip refreshes until the menu closes - Avoid holding mutable app state across `show_menu()` on Windows - Clean up IPC and logging imports plus formatting * Remove macOS release build from workflow - Drop the macOS packaging, signing, and notarization job from the release pipeline - Leave Windows and Linux release jobs unchanged * Launch tray app after MSI install - Add a Wix shell exec custom action for the tray executable - Start the tray app automatically after successful installs * Launch playit.exe with auto mode from tray - Change the Windows tray service to invoke `playit.exe auto` instead of `attach` - Update the launch error message to match the new subcommand * Add tray action to reset agent secret - add a Windows tray menu item for resetting the agent - reset the IPC secret and stop playitd after a successful reset - make the installer launch action wait for completion * do not use auto command * Launch playit setup after starting service - Add a helper to spawn `playit.exe` in a new console - Run the setup executable after successfully starting the Windows service * Wait for playitd startup before auto-attach - Poll lifecycle until playitd leaves Starting - Return a timeout error if startup never completes - Reformat UI imports and widget lines * Disable Reset Agent while playitd is waiting or stopping - Query playitd lifecycle over IPC before enabling the tray action - Block Reset Agent during WaitingForSecret and Stopping states - Keep the menu state in sync on startup and polling * Move tray service actions to background threads - Run refresh, start, stop, and reset actions asynchronously - Disable tray controls while background work is in progress - Refresh tray state after each action completes * Retry daemon setup after invalid agent secret - detect invalid or expired agent secrets during startup - wait for reprovisioning before retrying agent creation - add tests for secret error classification * Ensure daemon shuts down agent task cleanly - keep the agent running flag until shutdown - await the agent task during teardown to avoid leaks * Abort agent tasks on shutdown - add cooperative shutdown for tunnel and UDP tasks - clean up formatting and import ordering across agent core * Swap tray actions between playit launch and status window - Left-click now opens playit directly - Rename helper calls so setup launches the status window with `attach` * Stop playitd via IPC before service shutdown - Add a tray stop path that sends IPC stop first, then falls back to the installed service - After agent secret reset, request the service stop separately before relaunching playit * stop service after secret reset * Split tray app into its own crate (#138) * Split tray app into its own crate - Add `playitd-tray` as a workspace member - Move Windows tray-specific dependencies into the new package - Remove the tray binary and related deps from `playitd` * Allow same-version upgrades in WiX installer - Set `AllowSameVersionUpgrades=yes` for the CLI installer - Keep downgrade protection in place * Refactor Windows tray background work onto a runtime worker - Move tray async actions off ad hoc threads - Add a dedicated runtime worker and async service helpers - Update tray state handling to dispatch background jobs through the runtime * Close tray app before Playit install - Add WiX CloseApplication entry for `playitd-tray.exe` - Prompt the tray process to exit before setup continues * Refactor Windows tray backend and frontend split - Replace the tray runtime with a dedicated backend request loop - Split UI event handling from backend responses and rename modules * Add detailed backend and service lifecycle logging - Log tray backend request flow and wakeup handling - Log service start/stop/reset and lifecycle checks for debugging * Defer tray refresh until after menu closes - Queue a deferred refresh UI event after closing the menu - Add debug logging for busy dispatch coalescing and dropped actions * Refine tray refresh request handling - Track refresh requests independently from other backend work - Allow UI controls to stay enabled while refreshes are in flight - Queue deferred refreshes when the backend is saturated * remove ping_monitor code * Switch Linux packaging to manage playit systemd unit (#140) - Package both `playit` CLI and `playitd` daemon in the .deb - Install and control the `playit` systemd service during postinst - Update Linux service launch target and add unit-target tests * Resolve origin hostnames asynchronously (#142) * Resolve origin hostnames asynchronously - Allow origin local_ip to be a hostname as well as an IP - Resolve origin targets asynchronously in TCP and UDP clients - Add tests for hostname parsing and lookup * change resolve call order to improve perf * Update version * update package versions * fix daemon tunnel print * Update docker build * Include tray package in Windows release build (#145) - Build `playitd-tray` alongside the CLI and daemon in the release workflow - Keep the MSI packaging step unchanged * format action and update windows exe bin * Refactor CLI attach UI and simplify stdout logging (#149) - Split attach handling into interactive TUI and stdout modes - Remove legacy log capture UI plumbing - Route setup and claim flows through the new console UI * Skip restarting active playitd and prompt before start - Detect when the installed service is already running - Prompt before starting systemd on Linux from CLI flows - Thread console access through start and setup commands * Surface clearer Linux IPC socket errors - Wait briefly for the installed service socket before failing - Report precise Linux socket access diagnostics when IPC is unreachable - Preserve the specific socket error in auto-attach handling * Restrict Linux IPC socket to playit group - Create the `playit` system group during Debian packaging - Set root-owned Unix socket permissions to `0660` and `playit` - Improve CLI diagnostics when access is blocked by group membership * Improve Linux socket access errors - Split playit socket diagnostics into structured cases - Add clearer guidance for playit group access and shell refresh - Expand tests for multiline permission messages * Refactor Linux service handling into shared modules - Move Linux CLI socket diagnostics and startup checks into `linux.rs` - Centralize daemon socket permission setup in `playitd::linux` - Preserve clearer IPC errors for installed service startup * fix service command * Handle agent-limit failures in CLI and daemon - Add a DisabledOverLimit lifecycle and service error code - Surface recovery guidance in CLI, TUI, and IPC status handling - Retry daemon startup until the account limit is resolved * Improve over-limit messaging across CLI and daemon - Rewrite agent-limit errors with clearer titles and guidance - Format service phase labels in natural language - Update IPC daemon provisioning error to include setup guidance * Move tray startup shortcut management into tray app - Add CLI modes to create or remove the Windows startup shortcut - Self-heal the tray shortcut on normal startup - Shift installer actions to invoke the tray helper instead of shipping the shortcut * Refine tray close and startup shortcut handling - Split tray menu actions for startup shortcut management and close behavior - Prompt before closing while the service is still running - Track startup shortcut presence to keep menu state in sync * Enable status button only while service is running - Disable the Open Status action unless the Windows service is active - Keep service control button states in sync with runtime state * remove exe name and cleanup dead code * bump readme * remove broken & dead macos build scripts * Add hello handshake to IPC protocol - Rename protocol version fields to IPC version - Send server hello before requests and ignore unknown event types - Decode requests by type and surface invalid request errors * Handle unknown IPC message types without losing typed validation - Parse request and event envelopes into known-or-unknown variants - Preserve errors for malformed payloads on known message types - Return clearer invalid request responses for future IPC types * Simplify TUI to remove panel navigation - Remove focus switching and scrolling state from the CLI TUI - Always render tunnels and logs in fixed follow mode - Update help text and tests for the reduced key handling * Handle stopped installed service in CLI stop flow - Skip fallback service stop when the installed service is already inactive - Reuse a shared Linux service-activity check for start and stop paths * Await UDP client cleanup and add tunnel integration tests - shut down removed UDP clients before dropping them - cover tunnel relay flow recovery after cleanup - verify parallel UDP flows survive client eviction * Add UDP tunnel stress throughput test - add ignored multi-threaded stress coverage for UDP tunnel bitrate - log payload and wire throughput by packet size - factor out helpers for warmup and throughput measurement * incease stress packet count * Support IPv6 UDP origin addresses (#152) - Bind LAN UDP sockets for IPv4 or IPv6 targets - Accept IPv6 origin packets in UDP client matching - Add integration coverage for IPv6 origin tunneling * Harden Windows IPC ACLs and package secret files - Restrict Windows named pipes to admins and the installed user SID - Persist the installed user SID during MSI install - Write Linux config and log directories with tighter permissions * Rewrite playit user messages for clarity (#154) - Replace terse service and setup errors with friendlier guidance - Update tray and daemon text to match the new terminology - Improve setup prompts and status messages across CLI flows * Refactor IPC paths and platform helpers - Switch CLI config parsing to `serde_yml` - Centralize IPC endpoint and default socket path logic - Move Unix account and Windows startup shortcut helpers into shared modules * Switch IdSlab to slotmap-backed storage - Replace custom slot management with `slotmap` - Preserve vacant-entry capacity semantics - Add regression test for dropped vacant entries * Switch IPC transport to framed JSON codecs - Replace manual line buffering with tokio-util framed readers and writers - Reuse shared IPC connect and framing helpers in client and server - Add codec dependencies for IPC message handling * Consolidate tray menu display handling - Route left and right tray clicks through a shared menu helper - Keep post-menu refresh behavior in one place * Hide Windows consoles and remove legacy startup shortcuts - suppress console windows for Windows service and CLI launches - clean up old console startup shortcuts during tray startup * Split Windows setup helper into its own binary - Add playitd-windows-setup for shortcut and SID setup tasks - Update MSI and build pipeline to package the new helper - Simplify playitd-tray to reject helper-only CLI args * Refactor daemon startup and IPC response handling - Centralize IPC response extraction with shared error handling - Split daemon startup into runtime, secret, and agent phases - Preserve shutdown behavior while supporting secret reprovisioning * Propagate cancellation through agent TCP and UDP tasks - Thread a shared cancellation token through PlayitAgent, TcpClients, and TcpPipe - Stop background work promptly on shutdown and avoid hanging channel sends/connects - Increase TCP pipe buffer and keep busy loops cooperative * add public cert and update windows sign script * Handle Windows service start and stop directly - Add Windows-specific start/stop control paths for the installed service - Treat already-running and already-stopped service states as success - Factor shared SCM opening and service-not-found error handling * Log client disconnects as debug in IPC server - Add IPC error classification for closed connections - Downgrade expected client disconnects to debug logs - Cover connection-close detection with unit tests * Disable duplicate service actions in tray - Track pending start/stop requests in tray state - Prevent repeated clicks until backend responds - Open playit directly on left click * Remove legacy startup shortcut cleanup - Stop deleting old console shortcut variants - Drop obsolete tray helper-arg test and dead code - Trim unused agent_core dev-dependency comments * Remove obsolete test modules - Drop stale unit tests across agent, IPC, CLI, and daemon crates - Keep production code unchanged * update cert * update cert chain
3 lines
182 B
Bash
3 lines
182 B
Bash
cargo build --release --all --target=x86_64-pc-windows-msvc
|
|
cargo wix --target x86_64-pc-windows-msvc --package playit-cli --nocapture --output=target/wix/x86_64-pc-windows-msvc.msi
|