refactor(installer): CLI-only installer + doc cleanup#95
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR removes the Bun/Electron/web interactive installer and related frontend/server artifacts, consolidating installation to a CLI-only flow; it updates the installer bootstrap script, CLI/engine comments/help, removes GUI/web assets and wizard code, and revises documentation and PRD to document CLI-only installation. Changes
Sequence Diagram(s)sequenceDiagram
participant User as User
participant Script as install.sh
participant CLI as quick-install.ts (CLI)
participant Engine as Engine (build/opencode, provider logic)
participant FS as Filesystem (~/.opencode/opencode.json, dirs)
rect rgba(200,200,255,0.5)
User->>Script: runs `bash PAI-Install/install.sh --preset ...`
Script->>CLI: execs CLI installer (forwards args)
end
rect rgba(200,255,200,0.5)
CLI->>Engine: run engine steps (checks, optional build, config gen)
Engine->>FS: create/update `~/.opencode/*`, `opencode.json`, memory dirs
Engine->>FS: write identity/skill markdown, apply perms
end
rect rgba(255,200,200,0.5)
Engine->>CLI: return success/failure and next-step commands
CLI->>User: print summary and exit code
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
UPGRADE.md (1)
207-214:⚠️ Potential issue | 🟡 MinorInconsistency: "What's New" table still advertises removed Electron GUI.
Line 212 lists "Electron GUI | Visual installer, no CLI needed" as a v3.0 feature, but the PR removes the GUI installer entirely. This contradicts the changes at line 15 and the PR objectives.
🔧 Proposed fix
| Feature | Benefit | |---------|---------| | Plugin Event Bus | Cleaner code, better testability | | Model Tiers | 60x cost optimization (quick/standard/advanced) | | Prompt Injection Guard | Security against adversarial attacks | -| Electron GUI | Visual installer, no CLI needed | +| CLI Installer | Streamlined headless installation | | DB Archiving | Automated session cleanup | | Hierarchical Skills | Better organization, lazy loading |🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@UPGRADE.md` around lines 207 - 214, Update the "What's New" table to reflect the removal of the Electron installer by removing or changing the "Electron GUI | Visual installer, no CLI needed" row; locate the table header "What's New" and the table row containing the exact text "Electron GUI | Visual installer, no CLI needed" and either delete that row or replace it with a note that the Electron GUI was removed (e.g., "Electron GUI | Removed in v3.0") so the documentation matches the PR changes.docs/epic/V3.0-COMPLETION-PLAN.md (1)
155-196:⚠️ Potential issue | 🟠 MajorPR-01 file inventory is inconsistent with CLI-only scope
This section still lists removed GUI/web installer files (
PAI-Install/main.ts,PAI-Install/public/*,PAI-Install/web/*) even though the PR is now CLI-only. This can cause incorrect cherry-picks and verification steps.Proposed doc correction
### PR-01: PAI-Install — CLI Installer **Branch:** `release/v3.0-pr01-installer` **Dateien:** 46 (alle ADD — neuer Code) **CodeRabbit-Fokus:** Sicherheit des Installers, Fehlerbehandlung -ADD PAI-Install/main.ts -ADD PAI-Install/public/app.js -ADD PAI-Install/public/assets/banner.png -ADD PAI-Install/public/assets/fonts/* (9 Fontdateien) -ADD PAI-Install/public/assets/pai-icon.png -ADD PAI-Install/public/assets/pai-logo-wide.png -ADD PAI-Install/public/assets/pai-logo.png -ADD PAI-Install/public/assets/voice-female.mp3 -ADD PAI-Install/public/assets/voice-male.mp3 -ADD PAI-Install/public/assets/welcome.mp3 -ADD PAI-Install/public/assets/welcome.wav -ADD PAI-Install/public/index.html -ADD PAI-Install/public/styles.css -ADD PAI-Install/web/routes.ts -ADD PAI-Install/web/server.ts +ADD PAI-Install/cli/quick-install.ts +ADD PAI-Install/engine/* +ADD PAI-Install/install.sh +ADD PAI-Install/wrapper-template.sh🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/epic/V3.0-COMPLETION-PLAN.md` around lines 155 - 196, The PR-01 file inventory in V3.0-COMPLETION-PLAN.md incorrectly includes GUI/web installer files even though this branch is CLI-only; update the PR-01 listing for branch `release/v3.0-pr01-installer` by removing references to PAI-Install/main.ts, the entire PAI-Install/public/* asset block, and PAI-Install/web/* routes/server entries (and adjust the total file count and description accordingly) so the list reflects only CLI-related files like PAI-Install/cli/quick-install.ts and the engine/*.ts files to prevent wrong cherry-picks and verification steps.
🧹 Nitpick comments (3)
PAI-Install/install.sh (1)
60-71: Good backwards compatibility and error handling, but--modecheck may be overly broad.The
--clialias handling is clean. However, catching--modeas a removed GUI flag could confuse users who might try--mode migrate(if they saw old docs). The error message specifically says "GUI mode was removed" which might not be accurate for all--modeusages.Consider making the error message more generic or checking for
--mode guispecifically:More precise --mode handling
# Hard fail if someone tries to use the removed GUI mode -if [ "${1:-}" = "--gui" ] || [ "${1:-}" = "--mode" ]; then - error "GUI mode was removed. Use CLI options." +if [ "${1:-}" = "--gui" ]; then + error "GUI mode was removed. Use CLI options." + exec bun "$INSTALLER_DIR/cli/quick-install.ts" --help +fi +if [ "${1:-}" = "--mode" ]; then + error "--mode flag was removed. Use --fresh, --migrate, or --update instead." exec bun "$INSTALLER_DIR/cli/quick-install.ts" --help fi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@PAI-Install/install.sh` around lines 60 - 71, The current check treats any use of "$1" == "--mode" as a removed GUI flag which can misflag legitimate uses like "--mode migrate"; update the condition to only error when the user explicitly requests GUI mode by checking for "--gui", "--mode" followed by "gui" (i.e. "$1" == "--mode" && "$2" == "gui"), and the combined form "--mode=gui"; also make the error message either generic ("requested GUI mode was removed") or explicitly mention "mode=gui" and only then exec the help command (symbols to edit: "$1", "$2", "--gui", "--mode", "--mode=gui", and the exec bun quick-install.ts invocation)..prd/PRD-20260327-install-docs-cleanup.md (1)
1-77: PRD structure and verification criteria look good.The PRD comprehensively documents the CLI-only installer transition. However, note that UPGRADE.md line 212 still references "Electron GUI" as a v3.0 feature, which may indicate ISC-C8 verification didn't cover all docs files (UPGRADE.md is not in
docs/directory but in root).Consider adding root-level docs to grep verification
-- [x] ISC-C8: docs/ contain no instructions to run removed GUI mode | Verify: Grep: "--mode gui" has 0 matches in docs/ +- [x] ISC-C8: docs/ and root .md files contain no instructions to run removed GUI mode | Verify: Grep: "--mode gui" and "Electron GUI" have 0 matches in docs/ and *.md🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.prd/PRD-20260327-install-docs-cleanup.md around lines 1 - 77, PRD notes that UPGRADE.md still references "Electron GUI" (issue found at UPGRADE.md line ~212) so update the content to remove or rephrase the Electron/GU I mention and extend verification to include root-level docs; edit UPGRADE.md to remove the "Electron GUI" v3.0 claim (search for the exact phrase "Electron GUI" in UPGRADE.md and replace with the CLI-only wording or delete the sentence), and update the PRD verification criteria (e.g., ISC-C8 or add a new ISC-C#) to grep root-level docs as well as docs/ for the patterns "--mode gui" and "PAIOpenCodeWizard" so the automated checks cover UPGRADE.md and other top-level files.docs/ADVANCED-SETUP.md (1)
6-6: Consider listing available presets for clarity.The overview now states "configures a preset" but doesn't indicate which presets are available. Consider mentioning the available options (zen, openrouter, openai, anthropic per context snippets) or linking to installation documentation.
💡 Suggested enhancement
-The installer configures a preset for your initial provider routing. This guide covers advanced configuration for power users who want fine-grained control over their AI infrastructure. +The installer configures one of four provider presets (zen, openrouter, openai, anthropic) for your initial provider routing. This guide covers advanced configuration for power users who want fine-grained control over their AI infrastructure.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ADVANCED-SETUP.md` at line 6, Update the sentence that says "configures a preset for your initial provider routing" to explicitly list the available presets (e.g., zen, openrouter, openai, anthropic) and/or add a short link or pointer to the installation docs for full details; ensure the example names appear in the ADVANCED-SETUP.md text near that sentence so readers immediately see which presets are supported and where to find more info.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/epic/EPIC-v3.0-Synthesis-Architecture.md`:
- Around line 864-866: The V3.0-COMPLETION-PLAN document contradicts the EPIC
and OPTIMIZED-PR-PLAN by listing PAI-Install/main.ts, PAI-Install/web/, and
PAI-Install/electron/ as "ADD" while they were removed; update
docs/epic/V3.0-COMPLETION-PLAN.md to either mark those entries as "Removed" (or
delete them) or add a clear "outdated" note referencing the EPIC decision (EBENE
4 — GUI: CLI-only) so the three PAI-Install paths are no longer listed as added
and all three docs (EPIC, OPTIMIZED-PR-PLAN, V3.0-COMPLETION-PLAN) are
consistent.
In `@docs/LOCAL-ONLY-SETUP.md`:
- Around line 9-13: The numbered step after the intro is incorrectly labeled
"2." — update the ordered list in LOCAL-ONLY-SETUP.md so the step "Make sure
Ollama is running:" (and any subsequent steps in that sequence) start at "1."
instead of "2."; ensure the markdown ordered list numbering for that block (the
lines containing "Make sure Ollama is running:") is renumbered sequentially to
begin at 1 so the Quick Start steps are unambiguous.
In `@docs/MIGRATION.md`:
- Around line 80-89: The migration doc now has duplicate "Step 3" headings;
update the numbering so "Step 3: Preview Migration (Dry Run)" becomes "Step 4",
and increment all following step headings (e.g., "Run Migration", etc.) by +1
throughout the document; locate headings by their exact titles ("Step 3: Run CLI
Installer (Baseline Config)" and "Step 3: Preview Migration (Dry Run)") and
adjust each subsequent "Step N" label accordingly to keep the sequence
consistent.
In `@PAI-Install/README.md`:
- Around line 23-44: Update the directory structure code fence so it includes a
language identifier (use "text") by replacing the opening ``` with ```text for
the block that starts with "PAI-Install/" in README.md; this will silence the
lint warning for the code block.
In `@README.md`:
- Around line 127-130: The README installer preset list is inaccurate: update
the README.md installer bullet that lists "Ollama (local)" to match the actual
provider presets defined in PAI-Install/engine/provider-models.ts (which exposes
cloud-only presets: "anthropic", "zen", "openrouter", "openai"); edit the line
in README.md under the installer bullets to list the real supported presets
(e.g., "Anthropic (recommended), ZEN PAID, ZEN FREE, OpenRouter, OpenAI") or
otherwise note Ollama is not supported, ensuring the README text matches the
provider-models.ts configured presets.
- Around line 348-351: The README example uses an unsupported flag
"--add-researchers" for switch-provider.ts; update the example to call the
script with a provider profile positional argument and the supported
"--multi-research" flag instead (e.g., run .opencode/tools/switch-provider.ts
with a profile like "anthropic" plus --multi-research). Locate the README
snippet and replace the incorrect command that references "--add-researchers"
with the correct invocation pattern for switch-provider.ts (profileName
--multi-research) so it matches the script's expected arguments.
---
Outside diff comments:
In `@docs/epic/V3.0-COMPLETION-PLAN.md`:
- Around line 155-196: The PR-01 file inventory in V3.0-COMPLETION-PLAN.md
incorrectly includes GUI/web installer files even though this branch is
CLI-only; update the PR-01 listing for branch `release/v3.0-pr01-installer` by
removing references to PAI-Install/main.ts, the entire PAI-Install/public/*
asset block, and PAI-Install/web/* routes/server entries (and adjust the total
file count and description accordingly) so the list reflects only CLI-related
files like PAI-Install/cli/quick-install.ts and the engine/*.ts files to prevent
wrong cherry-picks and verification steps.
In `@UPGRADE.md`:
- Around line 207-214: Update the "What's New" table to reflect the removal of
the Electron installer by removing or changing the "Electron GUI | Visual
installer, no CLI needed" row; locate the table header "What's New" and the
table row containing the exact text "Electron GUI | Visual installer, no CLI
needed" and either delete that row or replace it with a note that the Electron
GUI was removed (e.g., "Electron GUI | Removed in v3.0") so the documentation
matches the PR changes.
---
Nitpick comments:
In @.prd/PRD-20260327-install-docs-cleanup.md:
- Around line 1-77: PRD notes that UPGRADE.md still references "Electron GUI"
(issue found at UPGRADE.md line ~212) so update the content to remove or
rephrase the Electron/GU I mention and extend verification to include root-level
docs; edit UPGRADE.md to remove the "Electron GUI" v3.0 claim (search for the
exact phrase "Electron GUI" in UPGRADE.md and replace with the CLI-only wording
or delete the sentence), and update the PRD verification criteria (e.g., ISC-C8
or add a new ISC-C#) to grep root-level docs as well as docs/ for the patterns
"--mode gui" and "PAIOpenCodeWizard" so the automated checks cover UPGRADE.md
and other top-level files.
In `@docs/ADVANCED-SETUP.md`:
- Line 6: Update the sentence that says "configures a preset for your initial
provider routing" to explicitly list the available presets (e.g., zen,
openrouter, openai, anthropic) and/or add a short link or pointer to the
installation docs for full details; ensure the example names appear in the
ADVANCED-SETUP.md text near that sentence so readers immediately see which
presets are supported and where to find more info.
In `@PAI-Install/install.sh`:
- Around line 60-71: The current check treats any use of "$1" == "--mode" as a
removed GUI flag which can misflag legitimate uses like "--mode migrate"; update
the condition to only error when the user explicitly requests GUI mode by
checking for "--gui", "--mode" followed by "gui" (i.e. "$1" == "--mode" && "$2"
== "gui"), and the combined form "--mode=gui"; also make the error message
either generic ("requested GUI mode was removed") or explicitly mention
"mode=gui" and only then exec the help command (symbols to edit: "$1", "$2",
"--gui", "--mode", "--mode=gui", and the exec bun quick-install.ts invocation).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 3c3e46da-7676-422d-bfaf-a83108ae802f
⛔ Files ignored due to path filters (18)
PAI-Install/electron/package-lock.jsonis excluded by!**/package-lock.jsonPAI-Install/public/assets/banner.pngis excluded by!**/*.pngPAI-Install/public/assets/fonts/advocate_34_narr_reg.woff2is excluded by!**/*.woff2PAI-Install/public/assets/fonts/advocate_54_wide_reg.woff2is excluded by!**/*.woff2PAI-Install/public/assets/fonts/concourse_3_bold.woff2is excluded by!**/*.woff2PAI-Install/public/assets/fonts/concourse_3_regular.woff2is excluded by!**/*.woff2PAI-Install/public/assets/fonts/concourse_4_regular.woff2is excluded by!**/*.woff2PAI-Install/public/assets/fonts/triplicate_t3_code_bold.ttfis excluded by!**/*.ttfPAI-Install/public/assets/fonts/triplicate_t3_code_regular.ttfis excluded by!**/*.ttfPAI-Install/public/assets/fonts/valkyrie_a_bold.woff2is excluded by!**/*.woff2PAI-Install/public/assets/fonts/valkyrie_a_regular.woff2is excluded by!**/*.woff2PAI-Install/public/assets/pai-icon.pngis excluded by!**/*.pngPAI-Install/public/assets/pai-logo-wide.pngis excluded by!**/*.pngPAI-Install/public/assets/pai-logo.pngis excluded by!**/*.pngPAI-Install/public/assets/voice-female.mp3is excluded by!**/*.mp3PAI-Install/public/assets/voice-male.mp3is excluded by!**/*.mp3PAI-Install/public/assets/welcome.mp3is excluded by!**/*.mp3PAI-Install/public/assets/welcome.wavis excluded by!**/*.wav
📒 Files selected for processing (35)
.opencode/PAIOpenCodeWizard.ts.opencode/tsconfig.json.prd/PRD-20260327-install-docs-cleanup.mdANNOUNCEMENT-v2.0.0.mdCHANGELOG.mdINSTALL.mdPAI-Install/README.mdPAI-Install/cli/quick-install.tsPAI-Install/electron/main.jsPAI-Install/electron/package.jsonPAI-Install/engine/build-opencode.tsPAI-Install/engine/provider-models.tsPAI-Install/generate-welcome.tsPAI-Install/install.shPAI-Install/main.tsPAI-Install/public/app.jsPAI-Install/public/index.htmlPAI-Install/public/styles.cssPAI-Install/web/routes.tsPAI-Install/web/server.tsREADME.mdRELEASE-v2.0.0.mdUPGRADE.mddocs/ADVANCED-SETUP.mddocs/DEFERRED-FEATURES.mddocs/LOCAL-ONLY-SETUP.mddocs/MIGRATION.mddocs/WINDOWS-COMPATIBILITY.mddocs/architecture/adr/ADR-005-configuration-dual-file-approach.mddocs/epic/EPIC-v3.0-Synthesis-Architecture.mddocs/epic/OPTIMIZED-PR-PLAN.mddocs/epic/TODO-v3.0.mddocs/epic/V3.0-COMPLETION-PLAN.mddocs/epic/V3.0-RUNBOOK.mddocs/providers/anthropic-max.md
💤 Files with no reviewable changes (11)
- PAI-Install/electron/package.json
- PAI-Install/public/index.html
- PAI-Install/public/app.js
- PAI-Install/public/styles.css
- PAI-Install/generate-welcome.ts
- PAI-Install/electron/main.js
- .opencode/PAIOpenCodeWizard.ts
- PAI-Install/web/routes.ts
- docs/providers/anthropic-max.md
- PAI-Install/main.ts
- PAI-Install/web/server.ts
| EBENE 4 — GUI (visuell): | ||
| └── Not shipped — installer is CLI-only in this repo | ||
| ``` |
There was a problem hiding this comment.
Documentation correctly reflects CLI-only installer.
The update to mark the GUI layer as "Not shipped — installer is CLI-only" is accurate and consistent with the PR's objectives.
Note: Based on relevant code snippets, there's a contradiction between planning documents. docs/epic/V3.0-COMPLETION-PLAN.md lists PAI-Install/main.ts, PAI-Install/web/, and PAI-Install/electron/ as "ADD" files (context snippet 2), while docs/epic/OPTIMIZED-PR-PLAN.md correctly marks them as "Removed" (context snippet 1). The EPIC doc here correctly states "CLI-only," but the V3.0-COMPLETION-PLAN should be updated or noted as outdated to avoid confusion.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/epic/EPIC-v3.0-Synthesis-Architecture.md` around lines 864 - 866, The
V3.0-COMPLETION-PLAN document contradicts the EPIC and OPTIMIZED-PR-PLAN by
listing PAI-Install/main.ts, PAI-Install/web/, and PAI-Install/electron/ as
"ADD" while they were removed; update docs/epic/V3.0-COMPLETION-PLAN.md to
either mark those entries as "Removed" (or delete them) or add a clear
"outdated" note referencing the EPIC decision (EBENE 4 — GUI: CLI-only) so the
three PAI-Install paths are no longer listed as added and all three docs (EPIC,
OPTIMIZED-PR-PLAN, V3.0-COMPLETION-PLAN) are consistent.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
docs/MIGRATION.md (1)
80-86:⚠️ Potential issue | 🟠 MajorInaccurate description of CLI installer behavior.
The documentation states the installer "normalizes your
opencode.jsonand~/.opencode/before migration" (line 82), but this is not what the CLI installer actually does.According to the relevant code snippet from
PAI-Install/cli/quick-install.ts:253-295, therunMigration()function:
- Detects migration needs
- Creates backup of existing files
- Runs migration (transforms
.claude→.opencode)- Builds OpenCode binary
There is no pre-normalization step. The installer either performs a fresh install OR detects an existing installation and migrates it. Running the installer with
--preset zenon an existing installation would trigger migration, not normalization.✏️ Suggested correction
Either:
Option A: Remove this step entirely if users should just proceed directly to migration dry-run.
Option B: Rephrase to accurately describe what happens:
-### Step 3: Run CLI Installer (Baseline Config) +### Step 3: Verify CLI Installer Available -This normalizes your `opencode.json` and `~/.opencode/` before migration. +Ensure the CLI installer is ready. You can test it without making changes: ```bash -bash PAI-Install/install.sh --cli --preset zen --name "Your Name" --ai-name "Jeremy" +bash PAI-Install/install.sh --helpThen renumber Step 4 → Step 3, etc. </details> Based on code analysis of `PAI-Install/cli/quick-install.ts` lines 253-295 and `PAI-Install/install.sh` lines 54-71. <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@docs/MIGRATION.mdaround lines 80 - 86, The doc incorrectly claims the CLI
installer "normalizes" opencode.json and ~/.opencode/ before migration; update
the Step 3 text to reflect actual behavior: the installer either performs a
fresh install or, when an existing install is detected, calls runMigration()
which creates backups, transforms old files (e.g., .claude → .opencode) and then
builds the OpenCode binary (see PAI-Install/cli/quick-install.ts runMigration
and PAI-Install/install.sh behavior). Change the prose to describe detection →
backup → migrate → build, or remove the step per the suggested Option A, and
renumber subsequent steps accordingly.</details> </blockquote></details> </blockquote></details> <details> <summary>🧹 Nitpick comments (2)</summary><blockquote> <details> <summary>PAI-Install/README.md (1)</summary><blockquote> `1-1`: **Consider adding frontmatter for discoverability.** Per the coding guidelines, important documents should include frontmatter. Adding frontmatter could improve navigation and organization in documentation tools. <details> <summary>📋 Suggested frontmatter</summary> ```diff +--- +title: PAI OpenCode Installer +description: CLI-only installer for PAI OpenCode +version: 3.0 +--- + # PAI OpenCode InstallerAs per coding guidelines: "Frontmatter for important documents"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@PAI-Install/README.md` at line 1, The README titled "PAI OpenCode Installer" is missing YAML frontmatter required by our docs guidelines; add a frontmatter block at the very top of the file (above the "PAI OpenCode Installer" header) containing at minimum title: "PAI OpenCode Installer", a short description, and relevant metadata such as tags or sidebar/category to improve discoverability and navigation; ensure the frontmatter is valid YAML and placed before the existing content so doc tooling picks it up.docs/MIGRATION.md (1)
30-30: Use Obsidian callout syntax for better rendering.The note uses non-standard callout syntax. Per coding guidelines, Obsidian documentation should use
> [!type]syntax for callouts.📝 Proposed callout syntax fix
- > **Note:** Model tiers and agent-specific routing may require a build from our fork (`Steffen025/opencode`, branch `feature/model-tiers`). The CLI installer handles this. + > [!note] + > Model tiers and agent-specific routing may require a build from our fork (`Steffen025/opencode`, branch `feature/model-tiers`). The CLI installer handles this.Based on coding guidelines: "Callouts use
> [!type]syntax" for Obsidian-formatted documentation.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/MIGRATION.md` at line 30, Replace the plain blockquote with an Obsidian callout by changing the line containing "Model tiers and agent-specific routing may require a build from our fork (`Steffen025/opencode`, branch `feature/model-tiers`). The CLI installer handles this." to use Obsidian callout syntax (e.g., start the block with "> [!note]" and keep the same content), so the note becomes a proper callout in MIGRATION.md and renders correctly in Obsidian.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/epic/V3.0-COMPLETION-PLAN.md`:
- Line 363: In V3.0-COMPLETION-PLAN.md replace the occurrence of the phrase
"legacy installer" (the mapping entry shown in the diff) with the preferred
terminology used in INSTALL.md — either "CLI installer" or the more specific
"install.sh --cli"; update the mapping text so it matches INSTALL.md conventions
and remove the word "legacy" to avoid confusion with the removed GUI/wizard
installer.
---
Duplicate comments:
In `@docs/MIGRATION.md`:
- Around line 80-86: The doc incorrectly claims the CLI installer "normalizes"
opencode.json and ~/.opencode/ before migration; update the Step 3 text to
reflect actual behavior: the installer either performs a fresh install or, when
an existing install is detected, calls runMigration() which creates backups,
transforms old files (e.g., .claude → .opencode) and then builds the OpenCode
binary (see PAI-Install/cli/quick-install.ts runMigration and
PAI-Install/install.sh behavior). Change the prose to describe detection →
backup → migrate → build, or remove the step per the suggested Option A, and
renumber subsequent steps accordingly.
---
Nitpick comments:
In `@docs/MIGRATION.md`:
- Line 30: Replace the plain blockquote with an Obsidian callout by changing the
line containing "Model tiers and agent-specific routing may require a build from
our fork (`Steffen025/opencode`, branch `feature/model-tiers`). The CLI
installer handles this." to use Obsidian callout syntax (e.g., start the block
with "> [!note]" and keep the same content), so the note becomes a proper
callout in MIGRATION.md and renders correctly in Obsidian.
In `@PAI-Install/README.md`:
- Line 1: The README titled "PAI OpenCode Installer" is missing YAML frontmatter
required by our docs guidelines; add a frontmatter block at the very top of the
file (above the "PAI OpenCode Installer" header) containing at minimum title:
"PAI OpenCode Installer", a short description, and relevant metadata such as
tags or sidebar/category to improve discoverability and navigation; ensure the
frontmatter is valid YAML and placed before the existing content so doc tooling
picks it up.
🪄 Autofix (Beta)
✅ Autofix completed
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 68e53c07-24aa-4efe-ad49-b318a67fe70a
📒 Files selected for processing (9)
.prd/PRD-20260327-install-docs-cleanup.mdPAI-Install/README.mdPAI-Install/install.shREADME.mdUPGRADE.mddocs/ADVANCED-SETUP.mddocs/LOCAL-ONLY-SETUP.mddocs/MIGRATION.mddocs/epic/V3.0-COMPLETION-PLAN.md
✅ Files skipped from review due to trivial changes (4)
- UPGRADE.md
- docs/ADVANCED-SETUP.md
- README.md
- .prd/PRD-20260327-install-docs-cleanup.md
🚧 Files skipped from review as they are similar to previous changes (2)
- PAI-Install/install.sh
- docs/LOCAL-ONLY-SETUP.md
|
Note Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it. Fixes Applied SuccessfullyFixed 1 file(s) based on 1 unresolved review comment. Files modified:
Commit: The changes have been pushed to the Time taken: |
Fixed 1 file(s) based on 1 unresolved review comment. Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/epic/V3.0-COMPLETION-PLAN.md`:
- Line 363: Choose a single canonical installer command and update docs to
match: pick either "bash PAI-Install/install.sh" (default) or "bash
PAI-Install/install.sh --cli" (alias); then update INSTALL.md, README.md and any
other references so they all use the chosen form. Ensure mention of install.sh
and the --cli flag is consistent (if kept, document it as an alias; if omitted,
note that --cli is accepted for backward compatibility) and update the Quick
Start line that currently references INSTALL.md and README.md to the selected
canonical command.
🪄 Autofix (Beta)
✅ Autofix completed
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: cb5c0c6d-0d17-4260-b8a7-db7094f5527d
📒 Files selected for processing (1)
docs/epic/V3.0-COMPLETION-PLAN.md
|
Note Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it. Fixes Applied SuccessfullyFixed 10 file(s) based on 1 unresolved review comment. Files modified:
Commit: The changes have been pushed to the Time taken: |
Fixed 10 file(s) based on 1 unresolved review comment. Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Line 331: The changelog currently tells readers to "Re-run the installer" but
uses the discovery flag `--help` (e.g., `bash PAI-Install/install.sh --help`),
which only prints usage; replace those `--help` invocations with the actual
installer/update/migrate commands that perform the action (for example use `bash
PAI-Install/install.sh` or the appropriate `--install`/`--update`/`--migrate`
subcommand that matches the surrounding prose) for the occurrences referencing
`PAI-Install/install.sh --help` and the other similar entries mentioned (lines
620 and 631).
In `@docs/epic/V3.0-COMPLETION-PLAN.md`:
- Line 157: The PR-01 file count in the header is incorrect—update the header
line that currently reads "**Dateien:** 17 (alle ADD — neuer Code)" to match the
actual list (change 17 to 18) or remove the extra ADD entry so the list and the
header are consistent; locate the header text in V3.0-COMPLETION-PLAN.md (the
PR-01 section) and sync the numeric count with the enumerated ADD entries.
In `@docs/WINDOWS-COMPATIBILITY.md`:
- Line 118: Update the documentation line that currently points remediation to
"PAI-Install/install.sh" so it references the actual engine/CLI code that makes
the HOME/SHELL assumptions: engine/actions.ts, engine/steps-fresh.ts,
engine/steps-migrate.ts and cli/quick-install.ts; mention the specific
assumptions to address (process.env.HOME, process.env.SHELL, and modifications
to .bashrc/.zshrc) and make the same correction wherever this incorrect
reference appears (also at the instances around lines 141 and 263).
In `@PAI-Install/install.sh`:
- Around line 60-71: Scan all command-line arguments (iterate over "$@") in
install.sh and reject any occurrence of the removed flags (--cli, --gui,
--mode/--mode=gui/--mode gui) instead of only checking ${1} and ${2}; when a GUI
mode is detected call the existing error function and exit non-zero (do not exec
the quick-install.ts --help path), and for any removed flag also fail with a
non-zero exit so these flags cannot slip through to exec bun
"$INSTALLER_DIR/cli/quick-install.ts" "$@".
In `@PAI-Install/README.md`:
- Around line 14-15: Replace the plain blockquote containing the sentence
"`--cli` flag is accepted for backward compatibility but is no longer required."
with an Obsidian-style callout by using the `> [!note]` callout header followed
by the same note text; ensure the backticked `--cli` remains quoted inside the
callout and preserve the sentence exactly to match repo Markdown conventions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 2053331f-c640-4e96-9036-1d6044529a13
📒 Files selected for processing (10)
ANNOUNCEMENT-v2.0.0.mdCHANGELOG.mdINSTALL.mdPAI-Install/README.mdPAI-Install/install.shREADME.mdbiome.jsondocs/MIGRATION.mddocs/WINDOWS-COMPATIBILITY.mddocs/epic/V3.0-COMPLETION-PLAN.md
✅ Files skipped from review due to trivial changes (3)
- biome.json
- README.md
- docs/MIGRATION.md
🚧 Files skipped from review as they are similar to previous changes (2)
- ANNOUNCEMENT-v2.0.0.md
- INSTALL.md
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
PAI-Install/install.sh (1)
82-85: Consider including--freshin the error message.The error suggests
--migrateor--update, butquick-install.tsalso accepts--freshas a mode flag. For completeness:if [ "$arg" = "--mode" ] || [[ "$arg" == --mode=* ]]; then - error "Flag --mode is not supported. Use --migrate or --update." + error "Flag --mode is not supported. Use --fresh, --migrate, or --update." exit 2 fi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@PAI-Install/install.sh` around lines 82 - 85, Update the error message in the install.sh branch that detects the --mode flag (the if block checking "$arg" = "--mode" or [[ "$arg" == --mode=* ]]) to mention the full set of supported mode options, adding "--fresh" alongside "--migrate" and "--update"; modify the call to the error function so it suggests "Use --migrate, --update or --fresh." to match quick-install.ts.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Around line 618-621: Remove the leading spaces before the command lines inside
the code blocks that contain "bash PAI-Install/install.sh" (the two occurrences
shown in the diff), so the command lines start at column 1; update the code
blocks containing "bash PAI-Install/install.sh" to have no leading indentation
on the command lines to avoid copy-paste issues.
- Line 585: Update the v3.0.0 "Changed" section entry that currently reads
"Installer: CLI-only → CLI + Electron GUI" so it matches the release matrix
which shows "Installer (CLI-only)"; either change that line to reflect
"Installer: remains CLI-only" (or similar wording consistent with the matrix) or
remove the installer bullet entirely if the GUI was never released; locate the
entry by searching for the exact string "Installer: CLI-only → CLI + Electron
GUI" in the v3.0.0 "Changed" section and make the consistent edit.
---
Nitpick comments:
In `@PAI-Install/install.sh`:
- Around line 82-85: Update the error message in the install.sh branch that
detects the --mode flag (the if block checking "$arg" = "--mode" or [[ "$arg" ==
--mode=* ]]) to mention the full set of supported mode options, adding "--fresh"
alongside "--migrate" and "--update"; modify the call to the error function so
it suggests "Use --migrate, --update or --fresh." to match quick-install.ts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 009344e2-443d-4eeb-9fca-e5a87678f28f
📒 Files selected for processing (5)
CHANGELOG.mdPAI-Install/README.mdPAI-Install/install.shdocs/WINDOWS-COMPATIBILITY.mddocs/epic/V3.0-COMPLETION-PLAN.md
🚧 Files skipped from review as they are similar to previous changes (2)
- docs/WINDOWS-COMPATIBILITY.md
- PAI-Install/README.md
| | Effort-Scaled Gates | No | No | No | No | No | **Yes** | Yes | | ||
| | **DB Health Tooling** | No | No | No | No | No | No | **Yes** | | ||
| | **Electron GUI Installer** | No | No | No | No | No | No | **Yes** | | ||
| | **Installer (CLI-only)** | No | No | No | No | No | No | **Yes** | |
There was a problem hiding this comment.
Inconsistency: line 74 contradicts this CLI-only installer entry.
Line 585 correctly shows "Installer (CLI-only)" as a v3.0.0 feature, but line 74 (in the v3.0.0 "Changed" section) still reads:
Installer: CLI-only → CLI + Electron GUI
This suggests the installer gained Electron GUI, which contradicts the PR's goal of removing GUI. Consider updating line 74 to:
-- Installer: CLI-only → CLI + Electron GUI
+- Installer: Electron GUI removed, CLI-only is canonicalOr remove the installer line from the v3.0.0 "Changed" section entirely if GUI was never released.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` at line 585, Update the v3.0.0 "Changed" section entry that
currently reads "Installer: CLI-only → CLI + Electron GUI" so it matches the
release matrix which shows "Installer (CLI-only)"; either change that line to
reflect "Installer: remains CLI-only" (or similar wording consistent with the
matrix) or remove the installer bullet entirely if the GUI was never released;
locate the entry by searching for the exact string "Installer: CLI-only → CLI +
Electron GUI" in the v3.0.0 "Changed" section and make the consistent edit.
| 4. **Alternative: Fresh install (recommended for a clean setup):** | ||
| ```bash | ||
| bash PAI-Install/install.sh | ||
| bash PAI-Install/install.sh | ||
| ``` |
There was a problem hiding this comment.
Remove leading whitespace from command lines in code blocks.
The commands at lines 620 and 631 have leading whitespace that could cause issues when copy-pasting:
4. **Alternative: Fresh install (recommended for a clean setup):**
```bash
- bash PAI-Install/install.sh
+ bash PAI-Install/install.sh
```- bash PAI-Install/install.sh --update
+ bash PAI-Install/install.sh --updateAlso applies to: 631-631
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` around lines 618 - 621, Remove the leading spaces before the
command lines inside the code blocks that contain "bash PAI-Install/install.sh"
(the two occurrences shown in the diff), so the command lines start at column 1;
update the code blocks containing "bash PAI-Install/install.sh" to have no
leading indentation on the command lines to avoid copy-paste issues.
Summary
.opencode/PAIOpenCodeWizard.tsand all GUI installer assets.PAI-Install/install.shalways run the headless CLI installer.docs/to remove wizard/GUI installer instructions.Verification
bash PAI-Install/install.sh --cli --helpprints CLI installer help.bun PAI-Install/cli/quick-install.ts --helpprints usage.PAIOpenCodeWizard,--gui, or--mode guireferences remain indocs/.CodeRabbit focus
PAI-Install/install.shpath resolution and removed flag handling.Summary by CodeRabbit
Refactor
Documentation
User-facing changes