@neriros/ralphy 2.22.0 → 2.23.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 +27 -21
- package/dist/cli/index.js +1124 -853
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ ralph task --name fix-auth --prompt "Fix the JWT validation bug" --claude opus -
|
|
|
66
66
|
ralph task --name fix-auth
|
|
67
67
|
|
|
68
68
|
# Inspect
|
|
69
|
-
ralph list #
|
|
69
|
+
ralph list # local tasks + Linear tickets per indicator bucket (with linked PR URLs)
|
|
70
70
|
ralph status --name fix-auth # one task (details)
|
|
71
71
|
```
|
|
72
72
|
|
|
@@ -142,19 +142,19 @@ The cycle repeats every poll. For code-review-iteration in particular, `setDone`
|
|
|
142
142
|
|
|
143
143
|
Linear is the source of truth for which issues Ralph has touched. The `linear.indicators` map declares how Ralph queries and mutates Linear at each lifecycle event. All keys are optional; an unset key means "Ralph doesn't perform that action".
|
|
144
144
|
|
|
145
|
-
| Key | Type
|
|
146
|
-
| ----------------- |
|
|
147
|
-
| `getTodo` | `{filter: Marker[]}`
|
|
148
|
-
| `getInProgress` | `{filter: Marker[]}`
|
|
149
|
-
| `getConflicted` | `{filter: Marker[]}`
|
|
150
|
-
| `getReview` | `{filter: Marker[]}`
|
|
151
|
-
| `getAutoMerge` | `{filter: Marker[]}`
|
|
152
|
-
| `setInProgress` | `Marker` or `
|
|
153
|
-
| `setDone` | `Marker` or `
|
|
154
|
-
| `setError` | `Marker` or `
|
|
155
|
-
| `setConflicted` | `Marker` or `
|
|
156
|
-
| `clearConflicted` | `Marker` or `
|
|
157
|
-
| `clearReview` | `Marker` or `
|
|
145
|
+
| Key | Type | Purpose |
|
|
146
|
+
| ----------------- | ---------------------- | ------------------------------------------------------------------------------- |
|
|
147
|
+
| `getTodo` | `{filter: Marker[]}` | Issues to pick up (fresh) |
|
|
148
|
+
| `getInProgress` | `{filter: Marker[]}` | Issues to resume after restart |
|
|
149
|
+
| `getConflicted` | `{filter: Marker[]}` | Issues whose PR is conflicted (re-fix run) |
|
|
150
|
+
| `getReview` | `{filter: Marker[]}` | Done issues flagged for review follow-up |
|
|
151
|
+
| `getAutoMerge` | `{filter: Marker[]}` | Issues whose PR should be auto-merged once required checks pass |
|
|
152
|
+
| `setInProgress` | `Marker` or `Marker[]` | Applied when a worker spawns (any non-resume mode) |
|
|
153
|
+
| `setDone` | `Marker` or `Marker[]` | Applied on clean exit |
|
|
154
|
+
| `setError` | `Marker` or `Marker[]` | Applied on non-zero exit (quarantine signal — issue is _not_ auto-resumed) |
|
|
155
|
+
| `setConflicted` | `Marker` or `Marker[]` | Applied when a done-PR is detected as conflicted |
|
|
156
|
+
| `clearConflicted` | `Marker` or `Marker[]` | Label(s) removed when a conflict-fix succeeds (status removal is not supported) |
|
|
157
|
+
| `clearReview` | `Marker` or `Marker[]` | Label(s) removed when a review pickup happens (status removal is not supported) |
|
|
158
158
|
|
|
159
159
|
A `Marker` is one of three types:
|
|
160
160
|
|
|
@@ -164,7 +164,7 @@ A `Marker` is one of three types:
|
|
|
164
164
|
| `"status"` | `"In Progress"` | Updates the Linear workflow status of the issue |
|
|
165
165
|
| `"attachment"` | `"In Progress"` | Upserts a single **Ralphy** attachment on the issue; `value` becomes the subtitle. The same entry is reused across every lifecycle transition — Ralph creates it on first apply and edits it on subsequent ones, so the issue stays tidy. |
|
|
166
166
|
|
|
167
|
-
|
|
167
|
+
Use an array when one event sets multiple — e.g. `setDone` flipping a status _and_ adding a label _and_ updating the attachment subtitle.
|
|
168
168
|
|
|
169
169
|
Example `ralphy.config.json`:
|
|
170
170
|
|
|
@@ -200,12 +200,10 @@ Example `ralphy.config.json`:
|
|
|
200
200
|
"filter": [{ "type": "label", "value": "ralph:auto-merge" }],
|
|
201
201
|
},
|
|
202
202
|
"setInProgress": { "type": "status", "value": "In Progress" },
|
|
203
|
-
"setDone":
|
|
204
|
-
"
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
],
|
|
208
|
-
},
|
|
203
|
+
"setDone": [
|
|
204
|
+
{ "type": "status", "value": "In Review" },
|
|
205
|
+
{ "type": "label", "value": "ralphy-done" },
|
|
206
|
+
],
|
|
209
207
|
"setError": { "type": "label", "value": "ralph:error" },
|
|
210
208
|
"setConflicted": { "type": "label", "value": "ralph:conflicted" },
|
|
211
209
|
"clearConflicted": { "type": "label", "value": "ralph:conflicted" },
|
|
@@ -318,6 +316,14 @@ Failed workers are not marked processed, so they retry on the next poll. SIGINT
|
|
|
318
316
|
| `--code-review` | Watch open tracked PRs for unresolved review comments and prepend a code-review task |
|
|
319
317
|
| `--json-output` | Emit JSONL to stdout instead of rendering the Ink dashboard (CI / scripting) |
|
|
320
318
|
|
|
319
|
+
**List-mode flags**
|
|
320
|
+
|
|
321
|
+
| Option | Behavior |
|
|
322
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
323
|
+
| `--debug --name <id>` | Diagnose why a Linear ticket (e.g. `ENG-42`) is not being picked up — checks team, assignee, include / exclude markers, and blocked-by relations against every configured `get*` indicator. |
|
|
324
|
+
|
|
325
|
+
`ralph list` reads `ralphy.config.json` and, when `LINEAR_API_KEY` is set, fetches every issue matching each configured `getTodo` / `getInProgress` / `getConflicted` / `getReview` / `getAutoMerge` indicator using the same include / exclude rules as `ralph agent`. For each ticket it also resolves the linked GitHub PR URL from Linear attachments.
|
|
326
|
+
|
|
321
327
|
**`--max-tickets`.** Caps how many issues ralph picks up in a single agent run. Once the limit is hit the coordinator stops enqueuing new work; in-flight workers continue to completion, and the dashboard header shows `│ tickets ≤N`. The limit resets each restart.
|
|
322
328
|
|
|
323
329
|
## Change layout (OpenSpec)
|