Fix release installers and package manager fallbacks
This commit is contained in:
@@ -222,7 +222,22 @@ trap cleanup EXIT INT TERM
|
||||
|
||||
archive_path="$tmp_dir/$archive_name"
|
||||
step "Downloading ${archive_name}"
|
||||
download_file "$download_url" "$archive_path"
|
||||
if ! download_file "$download_url" "$archive_path"; then
|
||||
cat >&2 <<EOF
|
||||
Failed to download ${archive_name} from:
|
||||
${download_url}
|
||||
|
||||
The ${asset_target} bundle is missing from the GitHub release.
|
||||
This usually means the release exists, but not all platform bundles were uploaded.
|
||||
|
||||
Workarounds:
|
||||
- try again after the release finishes publishing
|
||||
- install via npm instead: npm install -g @companion-ai/feynman
|
||||
- install via pnpm instead: pnpm add -g @companion-ai/feynman
|
||||
- install via bun instead: bun add -g @companion-ai/feynman
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$INSTALL_APP_DIR"
|
||||
rm -rf "$INSTALL_APP_DIR/$bundle_name"
|
||||
|
||||
@@ -45,7 +45,23 @@ New-Item -ItemType Directory -Path $tmpDir | Out-Null
|
||||
try {
|
||||
$archivePath = Join-Path $tmpDir $archiveName
|
||||
Write-Host "==> Downloading $archiveName"
|
||||
Invoke-WebRequest -Uri $downloadUrl -OutFile $archivePath
|
||||
try {
|
||||
Invoke-WebRequest -Uri $downloadUrl -OutFile $archivePath
|
||||
} catch {
|
||||
throw @"
|
||||
Failed to download $archiveName from:
|
||||
$downloadUrl
|
||||
|
||||
The win32-$archSuffix bundle is missing from the GitHub release.
|
||||
This usually means the release exists, but not all platform bundles were uploaded.
|
||||
|
||||
Workarounds:
|
||||
- try again after the release finishes publishing
|
||||
- install via npm instead: npm install -g @companion-ai/feynman
|
||||
- install via pnpm instead: pnpm add -g @companion-ai/feynman
|
||||
- install via bun instead: bun add -g @companion-ai/feynman
|
||||
"@
|
||||
}
|
||||
|
||||
New-Item -ItemType Directory -Path $installRoot -Force | Out-Null
|
||||
if (Test-Path $bundleDir) {
|
||||
|
||||
@@ -15,8 +15,7 @@ Feynman stores all configuration and state under `~/.feynman/`. This directory i
|
||||
├── web-search.json # Web search routing config
|
||||
├── auth/ # OAuth tokens and API keys
|
||||
├── sessions/ # Persisted conversation history
|
||||
├── packages/ # Installed optional packages
|
||||
└── bin/ # Binary (when installed via the native installer)
|
||||
└── packages/ # Installed optional packages
|
||||
```
|
||||
|
||||
The `settings.json` file is the primary configuration file. It is created by `feynman setup` and can be edited manually. A typical configuration looks like:
|
||||
|
||||
@@ -5,7 +5,7 @@ section: Getting Started
|
||||
order: 1
|
||||
---
|
||||
|
||||
Feynman ships as a standalone binary for macOS and Linux, and as an npm package for all platforms including Windows. The recommended approach is the one-line installer, which downloads a prebuilt native binary with zero dependencies.
|
||||
Feynman ships as a standalone runtime bundle for macOS, Linux, and Windows, and as an npm package for environments where Node.js is already installed. The recommended approach is the one-line installer, which downloads a prebuilt native bundle with zero external runtime dependencies.
|
||||
|
||||
## One-line installer (recommended)
|
||||
|
||||
@@ -15,7 +15,7 @@ On **macOS or Linux**, open a terminal and run:
|
||||
curl -fsSL https://feynman.is/install | bash
|
||||
```
|
||||
|
||||
The installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The binary is installed to `~/.feynman/bin` and added to your `PATH`.
|
||||
The installer detects your OS and architecture automatically. On macOS it supports both Intel and Apple Silicon. On Linux it supports x64 and arm64. The launcher is installed to `~/.local/bin`, the bundled runtime is unpacked into `~/.local/share/feynman`, and your `PATH` is updated when needed.
|
||||
|
||||
On **Windows**, open PowerShell as Administrator and run:
|
||||
|
||||
@@ -23,23 +23,35 @@ On **Windows**, open PowerShell as Administrator and run:
|
||||
irm https://feynman.is/install.ps1 | iex
|
||||
```
|
||||
|
||||
This installs the native Windows binary and adds Feynman to your user `PATH`. You can re-run either installer at any time to update to the latest version.
|
||||
This installs the Windows runtime bundle under `%LOCALAPPDATA%\Programs\feynman`, adds its launcher to your user `PATH`, and lets you re-run the installer at any time to update.
|
||||
|
||||
## npm / npx
|
||||
|
||||
If you already have Node.js 18+ installed, you can install Feynman globally via npm:
|
||||
If you already have Node.js 20.18.1+ installed, you can install Feynman globally via npm:
|
||||
|
||||
```bash
|
||||
npm install -g @companion-ai/feynman
|
||||
```
|
||||
|
||||
`pnpm` and `bun` are supported as well:
|
||||
|
||||
```bash
|
||||
pnpm add -g @companion-ai/feynman
|
||||
bun add -g @companion-ai/feynman
|
||||
```
|
||||
|
||||
Or run it directly without installing:
|
||||
|
||||
```bash
|
||||
npx @companion-ai/feynman
|
||||
```
|
||||
|
||||
The npm distribution bundles the same core runtime as the native installer but depends on Node.js being present on your system. The native installer is preferred because it ships a self-contained binary with faster startup.
|
||||
```bash
|
||||
pnpm dlx @companion-ai/feynman
|
||||
bunx @companion-ai/feynman
|
||||
```
|
||||
|
||||
The npm distribution ships the same core application but depends on Node.js being present on your system. The standalone installer is preferred because it bundles its own Node runtime and works without a separate Node installation.
|
||||
|
||||
## Post-install setup
|
||||
|
||||
|
||||
Reference in New Issue
Block a user