Skip to content

Alice 0.23.2

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Sep 03:52

Alice 0.23.2 fixes four reported desktop issues: the Windows boot hang, the empty project tree after session switches, computer-use on pure-Wayland sessions, and session-list refresh churn.

Desktop boot (Windows stuck at "Starting Alice" 100%)

  • The backend env now sets PYTHONUNBUFFERED=1 so the port=NNNN announcement is never trapped in the Windows stdout buffer — the #1 cause of the eternal spinner.
  • A bounded (15s) serve --help probe falls back to the legacy dashboard --no-open subcommand for managed installs that predate serve, instead of dying on argparse exit(2) before ever announcing a port.
  • New alice:boot-progress and alice:backend:exit Wails events: the renderer gets a real boot bar (spawn 20% -> ready 60%), and when the backend dies it now sees the exit code plus the last 8KB of stderr — an error screen, not an idle loader. The renderer-side onBackendExit/onBootProgress handlers were no-op stubs; they are wired now.
  • GetBootProgress RPC + regenerated bindings committed (a fresh clone can reproduce the exe).
  • Dropped the orphan second PythonManager instance the update service was creating (stale backend PID tracking).

Session switching (project tree empty/stale)

  • The warm fast-path now restores cwd/branch alongside the transcript, so the right sidebar file tree follows the switch immediately.
  • Cold resumes paint the stored cwd/git_branch in the loader frame; the live session.info re-syncs when the resume resolves.
  • A broadcast session.info carrying the runtime id you just switched to is no longer discarded (switch-race hole).

computer-use on pure-Wayland

  • capture() fails fast with actionable guidance when window enumeration only sees the compositor XWayland anchor (null pid, ~10x10) — previously it returned a blank screenshot and an empty tree while appearing to work.
  • alice computer-use doctor now runs a real list_windows probe after the driver health report and downgrades the verdict to failed with workarounds (GDK_BACKEND=x11 / --ozone-platform=x11). On a pure-Wayland host it used to report OK.
  • pid: null no longer crashes the window deserializer.

Session list churn

  • refreshSessions coalesces concurrent callers into one in-flight fetch with a 2s freshness window (boot + reconnect + route effects were triple-firing 4 round-trips each).
  • emptyOutDir pinned in the desktop vite config: stale hashed chunks from previous builds no longer ride into go:embed.

Validation

  • go build / go vet / full go test suite green (the boot E2E test caught — and led to fixes for — a probe timeout and a self-deadlock under the StartGateway lock before shipping).
  • 15 new tests covering the Wayland guard, capture fail-fast, and doctor probe; python suite 39/39 via scripts/run_tests.sh.
  • tsc: zero new errors; vitest 149/150 in touched files (the one failure reproduces on unmodified main).

Full changelog: v0.23.1...v0.23.2