Skip to content

Releases: Stuko0/alice-agent

Alice 0.23.2

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

Alice 0.23.1

Choose a tag to compare

@Stuko0 Stuko0 released this 02 Sep 07:06

Windows portability batch

Validated end-to-end on a Windows 11 VM (Python 3.13, full test suite via the official per-file runner). Every fix verified green on Linux with scripts/run_tests.sh — no regressions.

Windows fixes

  • Image routing: local image-path regex now accepts Windows drive-letter paths (C:\... / C:/...), same anchor the gateway's extract_local_files() uses; expanded ~/x.png matches are normalized with normpath() so they print as native paths.
  • File safety: sandbox-mirror classifier returns POSIX inner_path / mirror_root (mirrors classify_container_mirror_target's existing contract).
  • Shell hooks: on Windows, shebang scripts (#!/usr/bin/env bash) resolve through _shebang_interpreter() — bash from PATH or the standard Git-for-Windows install dirs — and commands re-tokenize with shlex posix=False so C:\ paths keep their backslashes.
  • Skills: _find_windows_bash() locates Git-bash off-PATH for inline-shell snippets (!\echo ...``), with a cmd.exe fallback when no bash exists.
  • Subdirectory hints / verification evidence: shlex.split(posix=False) for commands containing Windows paths — backslash paths are no longer eaten, so sub-dir hints register and ad-hoc verification scripts are recognized.
  • Learning graph: %-d (glibc-only) replaced with portable f"{dt.day}".
  • Test runner: forces UTF-8 stdout/stderr — cp1252 consoles no longer crash on progress glyphs (✓/✗).

Test-suite portability

  • USERPROFILE mocked alongside HOME (Windows expanduser() prefers the former)
  • tempfile.gettempdir() instead of hardcoded /tmp
  • shutil.which() instead of which subprocess calls
  • Explicit utf-8 read_text() (Windows default is cp1252 — em-dashes became mojibake)
  • Path assertions compare parts instead of raw strings
  • Case-insensitive env-var key match (Windows os.environ is case-insensitive)

Also in this release

  • Repo URLs rebranded from the internal Gitea host to github.com/Stuko0/alice-agent (banner, auth, updater, Telegram adapter, installers, osint UA).
  • README fixes: providers link points to the actual /docs/providers/ page; broken 404 links and internal IPs removed from badges.

Full changelog: v0.23.0...v0.23.1

v0.23.0

Choose a tag to compare

@Stuko0 Stuko0 released this 31 Aug 09:55

v0.23.0 — P3-13 embedded backend (proof of concept) — task broad-glitter-acae

  • Detect a bundled self-contained Python beside the binary (POSIX resources/python/bin/python3 + resources/python in findPythonForRoot/findVenvRoot), mirroring the existing Windows layout.
  • getVenvSitePackages fallback widened to 3.14/3.15 (only reached 3.13 before).
  • scripts/bundle-python.sh: provisions a python-build-standalone CPython via uv python install --install-dir and installs alice-agent + deps into resources/python (PEP 668 bypassed with --break-system-packages).
  • Verified end-to-end: the bundle is relocatable, imports alice_cli (0.23.0), and the embedded backend served /api/status -> HTTP 200. ~211MB; build/bin is git-ignored.
  • Make buildBackendEnv tests hermetic; gitignore repo-root /build/.

Commit e8d038e.

v0.22.0

Choose a tag to compare

@Stuko0 Stuko0 released this 31 Aug 09:06

v0.22.0 — P2: shell E2E tests + Linux packaging

P2-9 — shell Wails E2E: unit tests for all Go services (PythonManager, ConnectionService, GitService, LogService, PTY), an end-to-end backend boot test (StartGateway -> watchPort -> IsHealthy -> WaitForHealthy -> GetBackendPIDs -> StopGateway), and a real fix to LogService.GetRecentLogs (it trimmed to the tail before filtering blank lines, so a trailing newline dropped a line). 49 Go tests total. endpoint-parity-check.sh moved into the repo and wired as a desktop-parity CI job (70/70 + 11/11).

P2-11 — Linux distribution: native nfpm packaging config in wails.json (deb/rpm/apk), build.sh deb|rpm|apk -> wails build -package, and scripts/package-appimage.sh for AppImage.

P2 pending: P2-8 (Windows ConPTY), P2-10 (Authenticode signing). Commit 469f3e7.

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 31 Aug 08:51

v0.21.0 — P1: desktop Wails parity with Electron

  • Remote gateway: ConnectionService (persist config, server-side ProbeRemote avoids renderer CORS, IsRemote), App.ProxyApi routes to remote with X-Alice-Session-Token, App.GetConnectionInfo remote-aware, no local backend in remote mode.
  • Deep links + single-instance (POSIX): unix-socket lock, secondary instance forwards alice:// and exits, deep-link event to the bridge. Windows stub no-op.
  • Native dialogs: fs_service.SelectPaths uses runtime.OpenFileDialog/OpenDirectoryDialog for single/directory selection; multi-path keeps shell fallback.
  • Window state: restore/save size, position, maximised to desktop-window.json.

P1 deferred: P1-5 (tray + notifications) pending. Commit 88f8a06.

Alice 0.20.0

Choose a tag to compare

@Stuko0 Stuko0 released this 31 Aug 08:07

Alice 0.20.0 — Self-update nativo + deprecación de Electron

Self-update en el shell Wails (UpdateService)

  • Check(): distancia vs la rama configurada (ls-remote, sin fetch); no-git → hint manual.
  • Apply(): alice update --yes --branch <pin> → rebuild del binario Wails (alice desktop --build-only) → watcher detached que re-exec el binario fresco.
  • El backend propio queda a salvo del reaper de alice update (ALICE_DESKTOP_CHILD_PID).
  • Branch pin persistido; progreso en vivo por eventos (alice:updates:progress).
  • La UI de updates existente (overlay + pill) ahora funciona sobre el bridge real.

Electron deprecado en Windows

  • Eliminados dist:win* (NSIS/MSI) y el job de CI correspondiente — el único artefacto Windows es el binario Wails + checksum.
  • El instalador (Alice-Setup.exe) ya solo produce/abre el binario Wails.
  • --electron queda como escape hatch temporal para checkouts de fuente.

Otros

  • WAILS-ROADMAP.md agregado (hoja de ruta Wails, P0 marcado como hecho).
  • Bump de versión unificado a 0.20.0.

Commits (desde v0.19.1)

$(git log v0.19.1..HEAD --oneline --no-merges | sed 's/^/ - /')

Alice 0.19.1

Choose a tag to compare

@Stuko0 Stuko0 released this 31 Aug 07:49

Alice 0.19.1 — corrección del release

Fix

  • Revertido el commit fdb566f (remoción errónea de deployments de Docker/contenedores): se restauró Dockerfile, docker-compose, la imagen s6 (docker/), tests/docker/, container_boot.py, .hadolint.yaml y los workflows docker.yml/docker-lint.yml/upload_to_pypi.yml.
  • Removido el deployment de GitHub Pages (deploy-site.yml) — esa era la intención original.
  • .logs/ y .plans/ fuera del repo (ahora gitignored).

Commits

$(git log v0.19.0..HEAD --oneline --no-merges | sed 's/^/ - /')

Alice 0.19.0

Choose a tag to compare

@Stuko0 Stuko0 released this 31 Aug 07:38

Alice 0.19.0

Desktop — Wails es el runtime por defecto

  • alice desktop ahora lanza el shell Wails (Go) por defecto; Electron queda como legacy opt-in con --electron
  • Portabilidad Windows de la app Wails: PTY por pipes, dialogs PowerShell, build.ps1, icono, CI que publica el binario + checksum
  • El instalador de Windows (Alice-Setup.exe) descarga/construye y abre el binario Wails con verificación SHA-256
  • Capability-gating de features Electron-only en el shell Wails + tuning de arranque (code splitting, polling reducido, React Query)

Integraciones

  • Refactor de integraciones extra: se removió el upstream Nous Portal del proxy, la cuenta/billing/subscription Nous y el plugin de modelo Nous (stubs compatibles para imports legacy)
  • Rebranding completo a la identidad Alice (Lydia→Alice, Nous Research→Stuko, URLs → stuko.dev)

Repo

  • Bump de versión unificado a 0.19.0 (pyproject, init, ACP registry, desktop, wails.json)
  • Removidos los deployments del repo (Dockerfile, docker-compose, imagen s6, workflows de deploy) y los scratch dirs .logs//.plans/

Commits (26)

$(git log v0.18.1..HEAD --oneline --no-merges | sed 's/^/ - /')

Alice v0.18.1

Choose a tag to compare

@Stuko0 Stuko0 released this 16 Aug 04:18

Alice v0.18.1 — Lydia → Alice rename (full codebase)

What Changed

Complete rename of all lydia references to alice across the entire codebase:

  • 218 files changed, 2207 insertions, 2207 deletions
  • Function names, constants, env vars, variables, parameters, comments

Core (alice_constants.py)

  • set/get/reset_lydia_home_overrideset/get/reset_alice_home_override
  • _get_platform_default_lydia_home_get_platform_default_alice_home
  • ensure_lydia_homeensure_alice_home
  • find_lydia_node_executablefind_alice_node_executable
  • with_lydia_node_pathwith_alice_node_path
    • 10 more function renames

Environment Variables

  • LYDIA_HOMEALICE_HOME
  • LYDIA_HOME_MODEALICE_HOME_MODE
  • LYDIA_GIT_SHAALICE_GIT_SHA
  • LYDIA_GIT_BASH_PATHALICE_GIT_BASH_PATH
  • LYDIA_BUNDLED_SKILLSALICE_BUNDLED_SKILLS
  • LYDIA_OPTIONAL_SKILLSALICE_OPTIONAL_SKILLS
  • LYDIA_OPTIONAL_MCPSALICE_OPTIONAL_MCPS
  • LYDIA_NODE_TARGET_MAJORALICE_NODE_TARGET_MAJOR

Electron Desktop

  • resolveLydiaHome()resolveAliceHome()
  • LYDIA_HOME variable → ALICE_HOME
  • ACTIVE_LYDIA_ROOTACTIVE_ALICE_ROOT
  • .lydia-bootstrap-complete.alice-bootstrap-complete
  • APP_NAME = 'Lydia'APP_NAME = 'Alice'
  • com.nousresearch.lydiacom.nousresearch.alice
  • verifyLydiaCliverifyAliceCli
  • All .cjs files updated (backend-env, backend-probes, bootstrap-runner, etc.)

Python Codebase

  • 60+ function renames across alice_cli/, agent/, gateway/, tools/, tui_gateway/, cron/
  • 351 variable/parameter renames
  • 79 additional renames (cookies, build info, temp files)

Intentional Remaining (4 references)

  • r/lydiaagent — Reddit subreddit (external reference)
  • "clydia-foo" — anti-false-positive string in uninstall
  • Regex patterns in approval.py — detect old lydia commands for security

Stats

  • 49/49 tests passing
  • 0 syntax errors
  • Rename-only change, no functional difference

Alice v0.18.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 02:38

Alice v0.18.0 — Desktop-driven for everyone

New

  • Setup Driver (desktop): overlay asistente de primer arranque sin terminal — provider + terminal backend en 3 pasos, con UI dedicada.
  • OmniRoute como quick-setup default: free-gateway con ~90 providers sin registro/API-key, spawn automático del thin-client. Ruta B: si no hay Node ni Docker, Alice descarga Node 22 + hace npm install omniroute en ~/.alice/omniroute/ (SHA256-verificado).
  • Recomendación de terminal en Windows: WSL2 detectado como backend preferido en Windows.
  • DPR (Dynamic Provider Registry): providers declarativos en ~/.alice/providers.d/*.yaml, merge al catálogo unificado como custom:<id>.
    • CLI: alice providers list/add/test/remove
    • REST: GET/POST /api/providers/custom, DELETE .../test
    • Desktop: sección "Custom providers" en Settings → Providers con add/test/remove
  • Task-scoped Help: alice help <topic> (11 tareas → docs reales de website/docs/) + REST /api/help/topics|task. Desktop: FAB "?" + panel de ayuda con renderización markdown.
  • Migración OpenClaw: API programática (scan → preview dry-run → apply) sin terminal. Desktop: wizard 3 pasos sobre /api/migration/*.
  • Updates transparentes: sistema validado — check automático al arranque, cada 30 min y al enfocar ventana; toast + overlay con changelog.

Stats

  • 100/100 tests Python verdes en la suite de features; baseline desktop (58 vitest preexistentes + ~101 tsc preexistentes) inalterado.
  • 16 commits: 15 features + 1 bump.