@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 +55 -1
- package/README.md +85 -3
- package/npm-shrinkwrap.json +2 -2
- package/package.json +33 -5
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
|
-
## [
|
|
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.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "@ralph-orchestrator/ralph-cli",
|
|
26
|
-
"version": "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.
|
|
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.
|
|
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":
|
|
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-
|
|
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-
|
|
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.
|
|
93
|
+
"version": "2.10.0",
|
|
66
94
|
"volta": {
|
|
67
95
|
"node": "18.14.1",
|
|
68
96
|
"npm": "9.5.0"
|