Conversation
- Remove UTF-8 BOM from install.ps1 to fix PowerShell execution error - Update logger to default to ~/.gaia/gaia.log instead of current directory - Add graceful PermissionError handling with helpful user messages - Prevents permission errors when running from protected directories like C:\windows\system32
Comprehensive plan for the GAIA Agent UI desktop installer — the primary install path for non-developer end users. Ground-up implementation using Lemonade Server's installer as a reference architecture (not vendored). Key decisions: - Distribute via GitHub Releases initially (R2 deferred) - NSIS on Windows, DMG on macOS, DEB + AppImage on Linux - Remove the existing Squirrel installer entirely (no migration — v0.17.1 users uninstall manually via release-notes step) - Reuse `bin/gaia-ui.mjs` install logic via a shared `services/backend-installer.cjs` module — both the npm CLI and the Electron app call it (eliminates the broken Squirrel UX) - Auto-update via electron-updater + GitHub provider - `gaia uninstall` CLI as the unifying piece for all four platforms - Drag-to-trash for macOS uninstall (DMG convention) - Documentation as a first-class deliverable (Phase I) - Code signing via SignPath OSS (Windows) + Apple Developer ID (macOS) Plan is structured as 9 phases (A–I) with explicit dependency ordering. Phase A is independently mergeable and ships first. Refs: #530 Related: #341 (folded into Phase B), #597 (left as polish) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The file began with a UTF-8 BOM (EF BB BF), which causes PowerShell to fail with: "The term '#' is not recognized as the name of a cmdlet". Removing the BOM so the script runs cleanly when piped through iex. Folds in the first of three fixes from the stale PR #341. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…llback (#341) GaiaLogger used to default to a relative "gaia.log" in the current working directory, which had two problems: 1. It littered CWD with log files on every invocation. 2. It crashed with PermissionError when GAIA was invoked from a read-only or system directory (e.g. `cd / && gaia ...`), which broke the Windows PowerShell one-liner installer from PR #341 whenever it ran in restricted shells. Fix: - Default log_file is now ~/.gaia/gaia.log (created on demand). - File-handler creation is wrapped in try/except for both PermissionError and OSError. - On failure we try ~/.gaia/gaia.log, then tempfile.gettempdir() /gaia.log, then fall back to console-only logging with a friendly warning on stderr instead of crashing. Folds in the logger portion of the stale PR #341. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Closing as superseded — both fixes from this PR have already landed in `main`: 1. UTF-8 BOM removed from install.ps1 ✅ 2. Logger writes to user space with permission fallback ✅ This PR's branch is also significantly out of date (37+ commits behind, conflicts on the moved files). No need to rebase — work is done. |
Summary
Changes
Install Script Fix
install.ps1that caused PowerShell execution errorThe term '#' is not recognizederror when running installerLogger Improvements
~/.gaia/gaia.logC:\windows\system32)Testing
These fixes improve the first-run experience and prevent common permission issues on Windows.