Ballast 0.4.0-beta · Windows · invited beta
Windows launch, startup, and recovery
Use Start Ballast.pyw to open Ballast without a console. The first run opens the visible Start Ballast.bat setup helper to install the reviewed components. Subsequent launches use Python's windowless pythonw.exe; recovery runs in the background. Closing the application window leaves the server and bot running. Use Stop bot in the interface to stop trading.
Automatic launch at Windows sign-in is off by default. Enable it explicitly in System → Automatic startup. This creates a current-user Startup shortcut, uses no administrator elevation, and installs no scheduled task. Saving either choice removes the old Ballast Watchdog scheduled task when Windows permits it. Earlier installations show a review notice instead of silently retaining consent. If Windows refuses removal, the app identifies the remaining task so its owner can remove it in Task Scheduler. An old task may keep flashing a console until that registration is removed. Neither changing startup nor closing the window stops a currently running bot.
setup_scheduler.ps1 is retained for older instructions. It no longer registers anything. Running it with -Disable removes the Ballast startup registration. Ballast does not change Windows sleep settings.
The launcher records server output in launcher.log under the private data directory. An interrupted update retains update/RESTART and a durable rollback journal. A subsequent launch asks the copied recovery helper to restore a consistent installation. Updates are committed only after the new server reports the expected version. A failed new startup restores the previous code and Python environment. If rollback cannot be verified, Ballast leaves the restart marker in place and does not start mixed application files. Recovery never kills an unknown process that happens to own the port.
Move an older installation out of a synced folder
New installs default to %LOCALAPPDATA%\Ballast\data. Existing trading ledgers are not silently relocated. The normal path is System → Private data → Move private data. Review the locations and confirm in the app; it closes the engine, performs the verified offline move and restarts with STOP engaged. No terminal is required. System → Quit Ballast also closes the background engine when you want a complete shutdown. See Private data.
For advanced offline recovery only, close the server and background launcher, not just the app window, and disable any legacy watchdog. Then run:
.venv\Scripts\python.exe -m bot.storage_migrate --app-closed
The tool refuses an active server/supervisor or recent trading lease, an existing destination containing files, and a custom DATA_DIR override. It copies a consistent SQLite snapshot, checks integrity, encrypts legacy copied credentials, restricts the new Windows folder to the current user and SYSTEM, and switches paths only after the copy finishes. STOP remains engaged: reopen Ballast, verify the ledger and settings, then release STOP in System when ready.
Original files remain for recovery. After verification, remove obsolete copies and cloud version history yourself; rotate any keys that were previously stored unencrypted or exposed. Moving a file cannot recall earlier shared/cloud copies.