Skip to content

V0.9.5 beta#1

Merged
vendaface merged 3 commits into
mainfrom
v0.9.5-beta
Apr 5, 2026
Merged

V0.9.5 beta#1
vendaface merged 3 commits into
mainfrom
v0.9.5-beta

Conversation

@vendaface

Copy link
Copy Markdown
Owner

Summary

  • Windows launcher: run.cmd renamed to Start Butterfly Effect - Windows.cmd;
    Mac launcher renamed to Start Butterfly Effect - Mac.command — makes the right
    file immediately obvious on each platform
  • server.ps1 fixes: Start-Process stdout/stderr same-file conflict (crashed
    every restart/factory-reset on Windows); spurious browser tab opening on restart
    removed; ASCII-only enforcement for PowerShell 5.1 cp1252 safety
  • run.ps1 fixes: PYTHONUTF8=1 for Unicode print safety; --simulate-no-python
    CLI flag; startup.html emoji encoding fix; pip failure log visibility; Playwright
    install log noise filter
  • requirements.txt: restrict pywebview to sys_platform=="darwin" — prevents
    pythonnet build failure on Windows/Python 3.14
  • Python encoding: encoding='utf-8' added to all read_text()/write_text()
    calls across 7 files; ASCII-safe print() symbols throughout
  • Factory reset fix: was globbing project root for data files instead of
    APP_DATA_DIR — deleted nothing on Windows; now correctly targets
    %APPDATA%\Butterfly Effect\
  • Settings page: factory reset polling timeout 45s → 90s; Chromium status
    message simplified; restart flow fixed
  • README: installation moved before screenshots; Windows added throughout;
    Mac/Linux-only messaging removed

Test plan

  • Fresh clone on Windows: double-click Start Butterfly Effect - Windows.cmd,
    confirm startup screen, venv creation, pip install, Playwright download, and
    first-run setup flow
  • Restart Server button in Settings completes without error and redirects back
  • Reset to Factory Defaults deletes all user data, server restarts, browser
    lands on first-run setup
  • Python not found: startup screen shows error card with correct filename
  • pip failure: error output visible in console and startup screen
  • Mac: Start Butterfly Effect - Mac.command still launches correctly
  • Mac/Linux: no regression in run.sh / server.sh flows

🤖 Generated with Claude Code

vendaface and others added 3 commits April 5, 2026 06:42
- New entry points: run.cmd (double-click launcher) + run.ps1 (full
  Windows equivalent of run.sh — Python detect, venv, pip, Playwright,
  Flask launch with live startup.html progress)
- New server.ps1: Windows equivalent of server.sh (start/stop/restart/
  status/logs via PowerShell job + Get-NetTCPConnection)
- New reset-for-testing.ps1: Windows equivalent of reset-for-testing.sh
- paths.py: explicit Windows branch → AppData\Roaming\Butterfly Effect
- server.py: two server.sh subprocess calls wrapped in win32/else guard
- main.py: port-conflict hint shows netstat/taskkill on Windows, lsof on Mac
- butterfly-effect.spec: edgechromium hidden import + icon.ico on Windows
- startup.html: windows cases added to nopython/novenv/pipfail error content
- .gitattributes: LF enforced on .sh files, CRLF on .ps1/.cmd
- .github/workflows/ci.yml: CI matrix runs on macos-latest + windows-latest

Mac/Linux behaviour is unchanged — all existing .sh files are untouched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Launcher & scripts
- Rename run.cmd -> "Start Butterfly Effect - Windows.cmd" and
  Start Balance Forecast.command -> "Start Butterfly Effect - Mac.command"
  so the correct file is immediately obvious on each platform
- Add reset.cmd (Windows equivalent of reset-for-testing.sh)
- server.ps1: fix Start-Process stdout/stderr same-file conflict that
  prevented server start/restart on Windows; route stderr to .server.err.log
- server.ps1: remove browser-window open from cmd_start (belongs in run.ps1,
  not the daemon management script; was opening a spurious extra tab on restart)
- server.ps1: drop ErrorActionPreference=Stop; add explicit LASTEXITCODE check
  after pip install; add PYTHONUTF8=1 before server launch
- run.ps1: add PYTHONUTF8=1; fix --simulate-no-python CLI flag; fix
  Get-Content encoding for startup.html emoji; replace all non-ASCII chars
  with ASCII equivalents (PowerShell 5.1 cp1252 parse-safety); improve pip
  failure logging via Tee-Object; clean up Playwright install log noise

Python source
- requirements.txt: restrict pywebview to sys_platform=="darwin" to prevent
  pythonnet build failure on Windows/Python 3.14
- server.py: fix factory reset to glob APP_DATA_DIR (not project root) for
  all user data files; add encoding='utf-8' to all read_text() calls;
  fix subprocess pipe encoding for ai_daily.py; separate stdout/stderr log
  files for Start-Process compatibility
- storage.py, config.py, ai_daily.py, ai_advisor.py, calendar_client.py,
  forecast_builder.py, monarch_client.py: add encoding='utf-8' to all
  read_text()/write_text() calls; replace Unicode symbols in print()
  statements with ASCII equivalents for cp1252 safety

Settings page
- Factory reset: extend polling timeout 45s -> 90s; improve status messaging
- Restart: fix polling and redirect flow after server restart
- Chromium connection message: simplify to remove download-time estimate
  (Chromium is already downloaded by the time Settings is reached)

README
- Move installation instructions before screenshots
- Remove all Mac/Linux-only messaging; add Windows throughout
- Add Windows prerequisites, launch, day-to-day, troubleshooting, reset, and
  power user sections

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vendaface
vendaface merged commit 5523ded into main Apr 5, 2026
4 checks passed
@vendaface
vendaface deleted the v0.9.5-beta branch April 5, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant