@neriros/ralphy 3.0.1 โ 3.2.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/README.md +35 -1
- package/dist/shell/index.js +2064 -480
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -187,6 +187,7 @@ Example `ralphy.config.json`:
|
|
|
187
187
|
"mentionHandle": "@ralphy",
|
|
188
188
|
"codeReviewTrigger": true,
|
|
189
189
|
"codeReviewStaleHours": 24,
|
|
190
|
+
"syncTasksToDescription": false,
|
|
190
191
|
"indicators": {
|
|
191
192
|
"getTodo": { "filter": [{ "type": "status", "value": "Todo" }] },
|
|
192
193
|
"getInProgress": {
|
|
@@ -219,7 +220,7 @@ When a Linear issue is in a done state and a reviewer adds the `getReview` marke
|
|
|
219
220
|
|
|
220
221
|
#### `@ralphy` mention trigger
|
|
221
222
|
|
|
222
|
-
Set `linear.mentionTrigger: true` to scan
|
|
223
|
+
Set `linear.mentionTrigger: true` to scan Linear issue comments on every non-cancelled issue (Todo, In Progress, Backlog, Triage, Done) _and_ on the linked GitHub PR for a configurable handle (`linear.mentionHandle`, default `@ralphy`). Each unprocessed mention queues the issue as a review run, with the mention text used **verbatim** as the prepended task. Idempotency: a mention is processed when its `createdAt` is older than Ralph's latest `๐ picked up` Linear comment, so the same comment never re-fires. Requires `gh` for the GitHub side.
|
|
223
224
|
|
|
224
225
|
#### Code-review iteration
|
|
225
226
|
|
|
@@ -230,6 +231,10 @@ Set `linear.codeReviewTrigger: true` (or pass `--code-review`) to watch open, un
|
|
|
230
231
|
|
|
231
232
|
The loop exits; the next poll re-checks the PR. The cycle continues until the PR is **approved** or **merged**. If the reviewer is silent for more than `linear.codeReviewStaleHours` (default `24`, `0` disables) while Ralph is the last actor, one `@`-mention ping comment is posted on the GitHub PR.
|
|
232
233
|
|
|
234
|
+
#### Sync tasks into Linear description
|
|
235
|
+
|
|
236
|
+
Set `linear.syncTasksToDescription: true` to mirror the active change's `tasks.md` into the linked Linear issue description. Ralph writes a checklist between sentinel HTML comments (`<!-- ralphy:tasks:start -->` / `<!-- ralphy:tasks:end -->`); any content outside the markers is preserved verbatim. The block is refreshed when the worker launches, on the same cadence as `updateEveryIterations`, and on done-transition. Sync failures are logged but never abort the loop.
|
|
237
|
+
|
|
233
238
|
#### Conflict re-fix
|
|
234
239
|
|
|
235
240
|
Done issues whose PR `gh pr view --json mergeable` reports as `CONFLICTING` get `setConflicted` applied and a conflict-fix task prepended. The scanner is resilient to:
|
|
@@ -250,6 +255,35 @@ Done issues whose PR `gh pr view --json mergeable` reports as `CONFLICTING` get
|
|
|
250
255
|
| `ignoreCiChecks` | Array of check names to ignore when computing pass/fail. |
|
|
251
256
|
| `codeReviewTrigger` / `--code-review` | See [Code-review iteration](#code-review-iteration). |
|
|
252
257
|
|
|
258
|
+
### Pre-existing error check
|
|
259
|
+
|
|
260
|
+
Opt-in gate that protects the agent from chasing failures it cannot fix. When
|
|
261
|
+
enabled (config `preExistingErrorCheck.enabled: true` or `--pre-existing-error-check`),
|
|
262
|
+
on every poll tick Ralph runs the configured commands against the base branch
|
|
263
|
+
HEAD. If any command fails:
|
|
264
|
+
|
|
265
|
+
1. A Linear issue is created with the failing command, exit code, and truncated
|
|
266
|
+
output (fingerprint embedded in the body so re-runs with the same failure
|
|
267
|
+
don't open duplicates).
|
|
268
|
+
2. The coordinator pauses โ new fresh/resume/conflict-fix/review pickups are
|
|
269
|
+
blocked until the trunk is green again. **In-flight workers are not killed.**
|
|
270
|
+
3. The dashboard shows a red `โ BASELINE BROKEN <LIN-ID> ยท <duration>` banner.
|
|
271
|
+
|
|
272
|
+
When the baseline goes green (the human merged the fix), the next poll lifts
|
|
273
|
+
the pause automatically.
|
|
274
|
+
|
|
275
|
+
```jsonc
|
|
276
|
+
{
|
|
277
|
+
"preExistingErrorCheck": {
|
|
278
|
+
"enabled": false,
|
|
279
|
+
"commands": ["bun run lint", "bun run test"], // falls back to commands.lint + commands.test when empty
|
|
280
|
+
"baseBranch": "main",
|
|
281
|
+
"label": "ralph:pre-existing-error",
|
|
282
|
+
"outputCharLimit": 4000,
|
|
283
|
+
},
|
|
284
|
+
}
|
|
285
|
+
```
|
|
286
|
+
|
|
253
287
|
### Worktrees, setup, teardown
|
|
254
288
|
|
|
255
289
|
With `useWorktree: true` (or `--worktree`) each task runs in an isolated worktree at `~/.ralph/<project>/worktrees/<change-name>` checked out onto a fresh `ralph/<change-name>` branch. Concurrent workers can't stomp on each other, and the worker's cwd _is_ the worktree.
|