@ralph-orchestrator/ralph-cli 2.9.2 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,7 +4,61 @@ All notable changes to ralph-orchestrator are documented here.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased]
7
+ ## [2.10.0] - 2026-06-21
8
+
9
+ ### Added
10
+
11
+ - Forge CLI backend integration.
12
+ - RObot (human-in-the-loop) RPC domain in the control plane, plus a file-backed web mode that drives human interaction through files instead of a live socket.
13
+ - Worktree loops can publish remote review branches, with rebase support.
14
+ - Local file-based hat imports in preflight, including import resolution and schema validation with imported-file context.
15
+ - On-demand export of TUI iteration buffers to disk: `e` exports the current iteration, `E` exports all iterations.
16
+ - Context-window utilization telemetry, surfaced in the TUI.
17
+
18
+ ### Changed
19
+
20
+ - Updated the Pi backend package reference to `@earendil-works/pi-coding-agent`.
21
+ - Refreshed agent waves observability documentation and added the hat imports design spec.
22
+
23
+ ### Fixed
24
+
25
+ - TUI search mode now captures typed query characters instead of leaking them to keybindings (e.g. an `e` in the query no longer triggers export); the `Search:` prompt, `N/M` match counter, and `n`/`N` navigation work again.
26
+ - Runtime now requires an explicit completion signal after guidance, preventing premature loop termination.
27
+ - Persist loop continue state across iterations.
28
+ - Honor per-hat scratchpad configuration in generated instructions.
29
+ - Drain ACP terminal output before exit so the final output is no longer truncated.
30
+ - Canonicalize Ralph artifact paths to avoid path-mismatch errors.
31
+ - Deduplicate MCP tool schemas exposed over the API.
32
+
33
+ ## [2.9.3] - 2026-05-08
34
+
35
+ ### Added
36
+
37
+ - `ralph-docs` skill for `llms.txt`-driven introspection.
38
+ - Unified preset mechanism under `-H <name>`, supporting both YAML and TOML presets.
39
+ - `ralph plan` support for the kiro-acp backend, including a completion fallback.
40
+ - Visual workflow editor (builder) with live agent observation.
41
+ - Per-hat scratchpad configuration.
42
+ - Hats can set a cancellation promise.
43
+ - Improved `--no-tui` UX with a loop banner, per-iteration footer, and resume hint.
44
+
45
+ ### Changed
46
+
47
+ - Switched Linux distribution targets to musl for Amazon Linux 2 / 2023 compatibility.
48
+ - Documented global user config for hooks, added an FAQ section, and linked the autoloop authoring guide for the TOML preset format.
49
+
50
+ ### Fixed
51
+
52
+ - Claude child sessions now default to `--setting-sources project,local`, preventing host user-level `~/.claude/settings.json` hooks, plugins, and MCP servers from leaking into Ralph orchestration runs. Users who want the old behavior can opt back in with `cli.args: ["--setting-sources", "user,project,local"]`.
53
+ - Route the text completion fallback through `check_completion_event()`.
54
+ - Propagate the `RALPH_EVENTS_FILE` env var and preserve late termination reasons.
55
+ - Prevent lingering text backends from stalling loop progression.
56
+ - Resolve Rust 1.95 `duration_suboptimal_units` clippy warnings.
57
+
58
+ ### Security
59
+
60
+ - Replaced `source` with a safe variable parser in `sync-embedded-files.sh`.
61
+ - Use `npm ci` instead of `npm install` in `test-fresh-install.sh`.
8
62
 
9
63
  ## [2.9.2] - 2026-04-10
10
64
 
package/README.md CHANGED
@@ -46,10 +46,10 @@ ralph init --backend claude
46
46
 
47
47
  # 2. Plan your feature (interactive PDD session)
48
48
  ralph plan "Add user authentication with JWT"
49
- # Creates: specs/user-authentication/requirements.md, design.md, implementation-plan.md
49
+ # Creates: .ralph/specs/user-authentication/requirements.md, design.md, implementation-plan.md
50
50
 
51
51
  # 3. Implement the feature
52
- ralph run -p "Implement the feature in specs/user-authentication/"
52
+ ralph run -p "Implement the feature in .ralph/specs/user-authentication/"
53
53
  ```
54
54
 
55
55
  Ralph iterates until it outputs `LOOP_COMPLETE` or hits the iteration limit.
@@ -135,7 +135,7 @@ Use this mode from an MCP client configuration rather than an interactive termin
135
135
 
136
136
  Ralph implements the [Ralph Wiggum technique](https://ghuntley.com/ralph/) — autonomous task completion through continuous iteration. It supports:
137
137
 
138
- - **Multi-Backend Support** — Claude Code, Kiro, Gemini CLI, Codex, Amp, Copilot CLI, OpenCode
138
+ - **Multi-Backend Support** — Claude Code, Kiro, Gemini CLI, Codex, Forge, Amp, Copilot CLI, OpenCode
139
139
  - **Hat System** — Specialized personas coordinating through events
140
140
  - **Backpressure** — Gates that reject incomplete work (tests, lint, typecheck)
141
141
  - **Memories & Tasks** — Persistent learning and runtime work tracking
@@ -181,6 +181,88 @@ Full documentation is available at **[mikeyobrien.github.io/ralph-orchestrator](
181
181
  - [Concepts: Hats & Events](https://mikeyobrien.github.io/ralph-orchestrator/concepts/hats-and-events/)
182
182
  - [Architecture](https://mikeyobrien.github.io/ralph-orchestrator/advanced/architecture/)
183
183
 
184
+
185
+ ## FAQ
186
+
187
+ ### General
188
+
189
+ **What is Ralph Orchestrator?**
190
+ Ralph is a hat-based orchestration framework that implements the Ralph Wiggum technique — autonomous task completion through continuous iteration. It keeps AI agents in a loop until the task is done, supporting multiple backends like Claude Code, Gemini CLI, Codex, and more.
191
+
192
+ **How is Ralph different from other AI coding tools?**
193
+ Unlike single-shot AI assistants, Ralph iterates until completion using a "hat system" with specialized personas. It includes backpressure gates (tests, lint, typecheck) that reject incomplete work, plus persistent memories and tasks for continuous learning.
194
+
195
+ ### Installation & Setup
196
+
197
+ **What are the system requirements?**
198
+ - Rust 1.75+ (for the `ralph-api` component)
199
+ - Node.js >= 18 + npm (for the web dashboard frontend)
200
+ - An AI coding assistant CLI (Claude Code, Codex, Gemini CLI, etc.)
201
+
202
+ **Which installation method should I use?**
203
+ - **npm** (recommended for most users): `npm install -g @ralph-orchestrator/ralph-cli`
204
+ - **Cargo**: `cargo install ralph-cli` (best for Rust developers)
205
+ - **GitHub Releases installer**: One-link install with `curl ... | sh`
206
+
207
+ **Is Homebrew supported?**
208
+ Homebrew is not currently published from this repository's automated release flow. Prefer npm, Cargo, or the GitHub Releases installer.
209
+
210
+ ### Usage
211
+
212
+ **How do I start a new project with Ralph?**
213
+ ```bash
214
+ ralph init --backend claude
215
+ ralph plan "Add user authentication with JWT"
216
+ ralph run -p "Implement the feature in .ralph/specs/user-authentication/"
217
+ ```
218
+
219
+ **What backends does Ralph support?**
220
+ Claude Code, Kiro, Gemini CLI, Codex, Forge, Amp, Copilot CLI, and OpenCode.
221
+
222
+ **What is the "hat system"?**
223
+ Ralph uses specialized personas (hats) that coordinate through events. Each hat has a specific role — code-assist, debug, research, review, and pdd-to-code-assist — enabling structured multi-step task execution.
224
+
225
+ ### RObot (Human-in-the-Loop)
226
+
227
+ **What is RObot?**
228
+ RObot enables human interaction during orchestration via Telegram. Agents can ask questions and block until answered; humans can send proactive guidance mid-loop.
229
+
230
+ **How do I set up Telegram integration?**
231
+ ```bash
232
+ ralph bot onboard --telegram # guided setup
233
+ ralph bot status # verify config
234
+ ralph bot test # send a test message
235
+ ```
236
+
237
+ ### Web Dashboard
238
+
239
+ **How do I access the web dashboard?**
240
+ Run `ralph web` to start the Rust RPC API + frontend and open your browser. The dashboard is currently in Alpha — expect rough edges and breaking changes.
241
+
242
+ **Can I customize the dashboard ports?**
243
+ Yes: `ralph web --backend-port 4000 --frontend-port 8080`
244
+
245
+ ### MCP Server
246
+
247
+ **How do I run Ralph as an MCP server?**
248
+ ```bash
249
+ ralph mcp serve --workspace-root /path/to/repo
250
+ ```
251
+ Each MCP server instance is scoped to a single workspace root. For multi-repo use, run one instance per workspace.
252
+
253
+ ### Troubleshooting
254
+
255
+ **Ralph fails to start with "node_modules not found"**
256
+ Run `npm install` in the project directory, or let `ralph web` auto-detect and install on first run.
257
+
258
+ **How do I set up Node.js if not installed?**
259
+ Use nvm (recommended): `nvm install` (reads `.nvmrc`), or install directly from https://nodejs.org/
260
+
261
+ **Where can I get help?**
262
+ - Join our [Discord server](https://discord.gg/XWUyeUNffh)
263
+ - Report bugs on the [Issue Tracker](https://github.com/mikeyobrien/ralph-orchestrator/issues)
264
+ - Read full documentation at [mikeyobrien.github.io/ralph-orchestrator](https://mikeyobrien.github.io/ralph-orchestrator/)
265
+
184
266
  ## Contributing
185
267
 
186
268
  Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for community standards.
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "@ralph-orchestrator/ralph-cli",
26
- "version": "2.9.2"
26
+ "version": "2.10.0"
27
27
  },
28
28
  "node_modules/@isaacs/balanced-match": {
29
29
  "engines": {
@@ -515,5 +515,5 @@
515
515
  }
516
516
  },
517
517
  "requires": true,
518
- "version": "2.9.2"
518
+ "version": "2.10.0"
519
519
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "artifactDownloadUrl": "https://github.com/mikeyobrien/ralph-orchestrator/releases/download/v2.9.2",
2
+ "artifactDownloadUrl": "https://github.com/mikeyobrien/ralph-orchestrator/releases/download/v2.10.0",
3
3
  "bin": {
4
4
  "ralph": "run-ralph.js"
5
5
  },
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "glibcMinimum": {
22
22
  "major": 2,
23
- "series": 35
23
+ "series": 31
24
24
  },
25
25
  "homepage": "https://github.com/mikeyobrien/ralph-orchestrator",
26
26
  "license": "MIT",
@@ -41,7 +41,21 @@
41
41
  "zipExt": ".tar.xz"
42
42
  },
43
43
  "aarch64-unknown-linux-gnu": {
44
- "artifactName": "ralph-cli-aarch64-unknown-linux-gnu.tar.xz",
44
+ "artifactName": "ralph-cli-aarch64-unknown-linux-musl.tar.xz",
45
+ "bins": {
46
+ "ralph": "ralph"
47
+ },
48
+ "zipExt": ".tar.xz"
49
+ },
50
+ "aarch64-unknown-linux-musl-dynamic": {
51
+ "artifactName": "ralph-cli-aarch64-unknown-linux-musl.tar.xz",
52
+ "bins": {
53
+ "ralph": "ralph"
54
+ },
55
+ "zipExt": ".tar.xz"
56
+ },
57
+ "aarch64-unknown-linux-musl-static": {
58
+ "artifactName": "ralph-cli-aarch64-unknown-linux-musl.tar.xz",
45
59
  "bins": {
46
60
  "ralph": "ralph"
47
61
  },
@@ -55,14 +69,28 @@
55
69
  "zipExt": ".tar.xz"
56
70
  },
57
71
  "x86_64-unknown-linux-gnu": {
58
- "artifactName": "ralph-cli-x86_64-unknown-linux-gnu.tar.xz",
72
+ "artifactName": "ralph-cli-x86_64-unknown-linux-musl.tar.xz",
73
+ "bins": {
74
+ "ralph": "ralph"
75
+ },
76
+ "zipExt": ".tar.xz"
77
+ },
78
+ "x86_64-unknown-linux-musl-dynamic": {
79
+ "artifactName": "ralph-cli-x86_64-unknown-linux-musl.tar.xz",
80
+ "bins": {
81
+ "ralph": "ralph"
82
+ },
83
+ "zipExt": ".tar.xz"
84
+ },
85
+ "x86_64-unknown-linux-musl-static": {
86
+ "artifactName": "ralph-cli-x86_64-unknown-linux-musl.tar.xz",
59
87
  "bins": {
60
88
  "ralph": "ralph"
61
89
  },
62
90
  "zipExt": ".tar.xz"
63
91
  }
64
92
  },
65
- "version": "2.9.2",
93
+ "version": "2.10.0",
66
94
  "volta": {
67
95
  "node": "18.14.1",
68
96
  "npm": "9.5.0"