Skip to content

refactor(installer): CLI-only installer + doc cleanup#95

Merged
Steffen025 merged 5 commits intomainfrom
feat/cli-only-installer-docs-cleanup
Mar 28, 2026
Merged

refactor(installer): CLI-only installer + doc cleanup#95
Steffen025 merged 5 commits intomainfrom
feat/cli-only-installer-docs-cleanup

Conversation

@Steffen025
Copy link
Copy Markdown
Owner

@Steffen025 Steffen025 commented Mar 27, 2026

Summary

  • Remove the legacy .opencode/PAIOpenCodeWizard.ts and all GUI installer assets.
  • Make PAI-Install/install.sh always run the headless CLI installer.
  • Sweep root docs + docs/ to remove wizard/GUI installer instructions.

Verification

  • bash PAI-Install/install.sh --cli --help prints CLI installer help.
  • bun PAI-Install/cli/quick-install.ts --help prints usage.
  • No PAIOpenCodeWizard, --gui, or --mode gui references remain in docs/.

CodeRabbit focus

  • Confirm no remaining docs reference removed installer entrypoints.
  • Sanity-check PAI-Install/install.sh path resolution and removed flag handling.

Summary by CodeRabbit

  • Refactor

    • Replaced the interactive GUI/web installer with a CLI-only installer; GUI/web UI, Electron app, and related assets removed.
  • Documentation

    • Updated INSTALL, README, CHANGELOG, PRD and docs to reflect CLI-only workflow, renamed presets, new example CLI commands, and revised upgrade/migration guidance.
  • User-facing changes

    • Quick-start/“Try It” now invokes the CLI installer bootstrap command; installer always runs CLI path and rejects GUI flags.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 27, 2026

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
GUI Frontend Removed
PAI-Install/electron/main.js, PAI-Install/electron/package.json, PAI-Install/public/app.js, PAI-Install/public/index.html, PAI-Install/public/styles.css
Deleted Electron entrypoint, manifest, and entire web UI (client JS, HTML, CSS, assets).
Web Server & Routing Removed
PAI-Install/web/server.ts, PAI-Install/web/routes.ts
Removed Bun HTTP/WebSocket server and web installer routing/state management.
Wizard & Main Entrypoints Removed
.opencode/PAIOpenCodeWizard.ts, PAI-Install/main.ts, PAI-Install/generate-welcome.ts
Deleted interactive Bun-based wizard, top-level mode dispatcher, and ElevenLabs TTS generator.
Bootstrap Script → CLI-only
PAI-Install/install.sh
Now hard-sets installer dir, always execs CLI (cli/quick-install.ts), rejects GUI/mode flags, and preserves --cli as backward-compatible alias.
CLI & Engine Adjustments
PAI-Install/cli/quick-install.ts, PAI-Install/engine/build-opencode.ts, PAI-Install/engine/provider-models.ts, .opencode/tsconfig.json
Help text, header comments, tsconfig exclude, and trivial newline/comment edits to reflect CLI installer framing; no behavior changes in engine logic.
Docs & Guides Updated
INSTALL.md, README.md, PAI-Install/README.md, ANNOUNCEMENT-v2.0.0.md, CHANGELOG.md, UPGRADE.md, RELEASE-v2.0.0.md
Replaced wizard usage with CLI install examples; removed GUI/Electron/web references and updated upgrade/migration guidance.
Supporting Docs & Epics Updated
docs/*, docs/epic/*, docs/architecture/..., docs/MIGRATION.md, docs/LOCAL-ONLY-SETUP.md, docs/WINDOWS-COMPATIBILITY.md
Reworded installer/wizard references across ADRs, runbooks, epics; removed GUI artifacts and adapted migration/troubleshooting to CLI flows.
Provider Docs Removed
docs/providers/anthropic-max.md
Deleted Anthropic Max/OAuth preset guide and token-management documentation.
Project Plan / PRD Added
.prd/PRD-20260327-install-docs-cleanup.md
Added PRD capturing CLI-only consolidation, verification checklist, and COMPLETE status.
Misc Config Update
biome.json
Bumped biome schema (1.9.4 → 2.4.9) and removed trailing newline.

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
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐰 The wizard hops away tonight,
Shell script hums with lantern light,
One command: bash, preset, go—
Files written in a steady glow,
Logs cheer on as systems bite.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly summarizes the main changes: refactoring the installer to be CLI-only and updating documentation accordingly.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/cli-only-installer-docs-cleanup

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 | 🟡 Minor

Inconsistency: "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 | 🟠 Major

PR-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 --mode check may be overly broad.

The --cli alias handling is clean. However, catching --mode as 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 --mode usages.

Consider making the error message more generic or checking for --mode gui specifically:

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1513ac4 and 7bf0aff.

⛔ Files ignored due to path filters (18)
  • PAI-Install/electron/package-lock.json is excluded by !**/package-lock.json
  • PAI-Install/public/assets/banner.png is excluded by !**/*.png
  • PAI-Install/public/assets/fonts/advocate_34_narr_reg.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/fonts/advocate_54_wide_reg.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/fonts/concourse_3_bold.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/fonts/concourse_3_regular.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/fonts/concourse_4_regular.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/fonts/triplicate_t3_code_bold.ttf is excluded by !**/*.ttf
  • PAI-Install/public/assets/fonts/triplicate_t3_code_regular.ttf is excluded by !**/*.ttf
  • PAI-Install/public/assets/fonts/valkyrie_a_bold.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/fonts/valkyrie_a_regular.woff2 is excluded by !**/*.woff2
  • PAI-Install/public/assets/pai-icon.png is excluded by !**/*.png
  • PAI-Install/public/assets/pai-logo-wide.png is excluded by !**/*.png
  • PAI-Install/public/assets/pai-logo.png is excluded by !**/*.png
  • PAI-Install/public/assets/voice-female.mp3 is excluded by !**/*.mp3
  • PAI-Install/public/assets/voice-male.mp3 is excluded by !**/*.mp3
  • PAI-Install/public/assets/welcome.mp3 is excluded by !**/*.mp3
  • PAI-Install/public/assets/welcome.wav is excluded by !**/*.wav
📒 Files selected for processing (35)
  • .opencode/PAIOpenCodeWizard.ts
  • .opencode/tsconfig.json
  • .prd/PRD-20260327-install-docs-cleanup.md
  • ANNOUNCEMENT-v2.0.0.md
  • CHANGELOG.md
  • INSTALL.md
  • PAI-Install/README.md
  • PAI-Install/cli/quick-install.ts
  • PAI-Install/electron/main.js
  • PAI-Install/electron/package.json
  • PAI-Install/engine/build-opencode.ts
  • PAI-Install/engine/provider-models.ts
  • PAI-Install/generate-welcome.ts
  • PAI-Install/install.sh
  • PAI-Install/main.ts
  • PAI-Install/public/app.js
  • PAI-Install/public/index.html
  • PAI-Install/public/styles.css
  • PAI-Install/web/routes.ts
  • PAI-Install/web/server.ts
  • README.md
  • RELEASE-v2.0.0.md
  • UPGRADE.md
  • docs/ADVANCED-SETUP.md
  • docs/DEFERRED-FEATURES.md
  • docs/LOCAL-ONLY-SETUP.md
  • docs/MIGRATION.md
  • docs/WINDOWS-COMPATIBILITY.md
  • docs/architecture/adr/ADR-005-configuration-dual-file-approach.md
  • docs/epic/EPIC-v3.0-Synthesis-Architecture.md
  • docs/epic/OPTIMIZED-PR-PLAN.md
  • docs/epic/TODO-v3.0.md
  • docs/epic/V3.0-COMPLETION-PLAN.md
  • docs/epic/V3.0-RUNBOOK.md
  • docs/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

Comment on lines +864 to 866
EBENE 4 — GUI (visuell):
└── Not shipped — installer is CLI-only in this repo
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/MIGRATION.md (1)

80-86: ⚠️ Potential issue | 🟠 Major

Inaccurate description of CLI installer behavior.

The documentation states the installer "normalizes your opencode.json and ~/.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, the runMigration() function:

  1. Detects migration needs
  2. Creates backup of existing files
  3. Runs migration (transforms .claude.opencode)
  4. 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 zen on 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 --help

Then 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.md around 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 Installer

As 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

📥 Commits

Reviewing files that changed from the base of the PR and between 7bf0aff and 676a445.

📒 Files selected for processing (9)
  • .prd/PRD-20260327-install-docs-cleanup.md
  • PAI-Install/README.md
  • PAI-Install/install.sh
  • README.md
  • UPGRADE.md
  • docs/ADVANCED-SETUP.md
  • docs/LOCAL-ONLY-SETUP.md
  • docs/MIGRATION.md
  • docs/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

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 27, 2026

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 1 file(s) based on 1 unresolved review comment.

Files modified:

  • docs/epic/V3.0-COMPLETION-PLAN.md

Commit: 88b194ca973c63f86262c992d4eecb3fc569a261

The changes have been pushed to the feat/cli-only-installer-docs-cleanup branch.

Time taken: 2m 1s

Fixed 1 file(s) based on 1 unresolved review comment.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 676a445 and 88b194c.

📒 Files selected for processing (1)
  • docs/epic/V3.0-COMPLETION-PLAN.md

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 27, 2026

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 10 file(s) based on 1 unresolved review comment.

Files modified:

  • ANNOUNCEMENT-v2.0.0.md
  • CHANGELOG.md
  • INSTALL.md
  • PAI-Install/README.md
  • PAI-Install/install.sh
  • README.md
  • biome.json
  • docs/MIGRATION.md
  • docs/WINDOWS-COMPATIBILITY.md
  • docs/epic/V3.0-COMPLETION-PLAN.md

Commit: c231cd571f926a6b8537e3862ca61e8d27365f11

The changes have been pushed to the feat/cli-only-installer-docs-cleanup branch.

Time taken: 3m 57s

Fixed 10 file(s) based on 1 unresolved review comment.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 88b194c and c231cd5.

📒 Files selected for processing (10)
  • ANNOUNCEMENT-v2.0.0.md
  • CHANGELOG.md
  • INSTALL.md
  • PAI-Install/README.md
  • PAI-Install/install.sh
  • README.md
  • biome.json
  • docs/MIGRATION.md
  • docs/WINDOWS-COMPATIBILITY.md
  • docs/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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
PAI-Install/install.sh (1)

82-85: Consider including --fresh in the error message.

The error suggests --migrate or --update, but quick-install.ts also accepts --fresh as 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

📥 Commits

Reviewing files that changed from the base of the PR and between c231cd5 and db20343.

📒 Files selected for processing (5)
  • CHANGELOG.md
  • PAI-Install/README.md
  • PAI-Install/install.sh
  • docs/WINDOWS-COMPATIBILITY.md
  • docs/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** |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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 canonical

Or 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.

Comment on lines +618 to 621
4. **Alternative: Fresh install (recommended for a clean setup):**
```bash
bash PAI-Install/install.sh
bash PAI-Install/install.sh
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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 --update

Also 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.

@Steffen025 Steffen025 merged commit 1bde50b into main Mar 28, 2026
5 checks passed
@Steffen025 Steffen025 deleted the feat/cli-only-installer-docs-cleanup branch March 28, 2026 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant