@herbcaudill/ralph 0.6.5 → 0.7.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.
Files changed (175) hide show
  1. package/README.md +13 -100
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +21 -7
  4. package/dist/cli.js.map +1 -1
  5. package/dist/components/App.d.ts +2 -1
  6. package/dist/components/App.d.ts.map +1 -1
  7. package/dist/components/App.js +5 -1
  8. package/dist/components/App.js.map +1 -1
  9. package/dist/components/InitRalph.js +5 -5
  10. package/dist/components/InitRalph.js.map +1 -1
  11. package/dist/components/IterationRunner.d.ts +1 -1
  12. package/dist/components/IterationRunner.d.ts.map +1 -1
  13. package/dist/components/IterationRunner.js +212 -56
  14. package/dist/components/IterationRunner.js.map +1 -1
  15. package/dist/components/IterationRunner.test.js +2 -2
  16. package/dist/components/IterationRunner.test.js.map +1 -1
  17. package/dist/components/JsonOutput.d.ts +14 -0
  18. package/dist/components/JsonOutput.d.ts.map +1 -0
  19. package/dist/components/JsonOutput.js +246 -0
  20. package/dist/components/JsonOutput.js.map +1 -0
  21. package/dist/components/ProgressBar.d.ts +7 -5
  22. package/dist/components/ProgressBar.d.ts.map +1 -1
  23. package/dist/components/ProgressBar.js +7 -5
  24. package/dist/components/ProgressBar.js.map +1 -1
  25. package/dist/components/ProgressBar.test.js +24 -11
  26. package/dist/components/ProgressBar.test.js.map +1 -1
  27. package/dist/lib/MessageQueue.d.ts +2 -0
  28. package/dist/lib/MessageQueue.d.ts.map +1 -1
  29. package/dist/lib/MessageQueue.js +35 -2
  30. package/dist/lib/MessageQueue.js.map +1 -1
  31. package/dist/lib/MessageQueue.test.js +146 -0
  32. package/dist/lib/MessageQueue.test.js.map +1 -1
  33. package/dist/lib/StdinCommandHandler.d.ts +42 -0
  34. package/dist/lib/StdinCommandHandler.d.ts.map +1 -0
  35. package/dist/lib/StdinCommandHandler.js +102 -0
  36. package/dist/lib/StdinCommandHandler.js.map +1 -0
  37. package/dist/lib/StdinCommandHandler.test.d.ts +2 -0
  38. package/dist/lib/StdinCommandHandler.test.d.ts.map +1 -0
  39. package/dist/lib/StdinCommandHandler.test.js +93 -0
  40. package/dist/lib/StdinCommandHandler.test.js.map +1 -0
  41. package/dist/lib/debug.d.ts +18 -0
  42. package/dist/lib/debug.d.ts.map +1 -0
  43. package/dist/lib/debug.js +44 -0
  44. package/dist/lib/debug.js.map +1 -0
  45. package/dist/lib/formatContentBlock.js +1 -1
  46. package/dist/lib/formatContentBlock.js.map +1 -1
  47. package/dist/lib/getNextLogFile.d.ts +12 -0
  48. package/dist/lib/getNextLogFile.d.ts.map +1 -0
  49. package/dist/lib/getNextLogFile.js +52 -0
  50. package/dist/lib/getNextLogFile.js.map +1 -0
  51. package/dist/lib/getNextLogFile.test.d.ts +2 -0
  52. package/dist/lib/getNextLogFile.test.d.ts.map +1 -0
  53. package/dist/lib/getNextLogFile.test.js +65 -0
  54. package/dist/lib/getNextLogFile.test.js.map +1 -0
  55. package/dist/lib/getOpenIssueCount.d.ts +11 -0
  56. package/dist/lib/getOpenIssueCount.d.ts.map +1 -0
  57. package/dist/lib/getOpenIssueCount.js +31 -0
  58. package/dist/lib/getOpenIssueCount.js.map +1 -0
  59. package/dist/lib/getOpenIssueCount.test.d.ts +2 -0
  60. package/dist/lib/getOpenIssueCount.test.d.ts.map +1 -0
  61. package/dist/lib/getOpenIssueCount.test.js +65 -0
  62. package/dist/lib/getOpenIssueCount.test.js.map +1 -0
  63. package/dist/lib/getProgress.d.ts +22 -6
  64. package/dist/lib/getProgress.d.ts.map +1 -1
  65. package/dist/lib/getProgress.js +69 -23
  66. package/dist/lib/getProgress.js.map +1 -1
  67. package/dist/lib/getProgress.test.js +68 -34
  68. package/dist/lib/getProgress.test.js.map +1 -1
  69. package/package.json +1 -1
  70. package/templates/prompt-beads.md +5 -5
  71. package/dist/lib/cleanupAllWorktrees.d.ts +0 -5
  72. package/dist/lib/cleanupAllWorktrees.d.ts.map +0 -1
  73. package/dist/lib/cleanupAllWorktrees.js +0 -23
  74. package/dist/lib/cleanupAllWorktrees.js.map +0 -1
  75. package/dist/lib/cleanupWorktree.d.ts +0 -6
  76. package/dist/lib/cleanupWorktree.d.ts.map +0 -1
  77. package/dist/lib/cleanupWorktree.js +0 -33
  78. package/dist/lib/cleanupWorktree.js.map +0 -1
  79. package/dist/lib/copyRalphFilesFromWorktree.d.ts +0 -5
  80. package/dist/lib/copyRalphFilesFromWorktree.d.ts.map +0 -1
  81. package/dist/lib/copyRalphFilesFromWorktree.js +0 -19
  82. package/dist/lib/copyRalphFilesFromWorktree.js.map +0 -1
  83. package/dist/lib/copyRalphFilesToWorktree.d.ts +0 -5
  84. package/dist/lib/copyRalphFilesToWorktree.d.ts.map +0 -1
  85. package/dist/lib/copyRalphFilesToWorktree.js +0 -21
  86. package/dist/lib/copyRalphFilesToWorktree.js.map +0 -1
  87. package/dist/lib/createWorktree.d.ts +0 -6
  88. package/dist/lib/createWorktree.d.ts.map +0 -1
  89. package/dist/lib/createWorktree.js +0 -33
  90. package/dist/lib/createWorktree.js.map +0 -1
  91. package/dist/lib/getGitRoot.d.ts +0 -5
  92. package/dist/lib/getGitRoot.d.ts.map +0 -1
  93. package/dist/lib/getGitRoot.js +0 -18
  94. package/dist/lib/getGitRoot.js.map +0 -1
  95. package/dist/lib/installDependencies.d.ts +0 -5
  96. package/dist/lib/installDependencies.d.ts.map +0 -1
  97. package/dist/lib/installDependencies.js +0 -23
  98. package/dist/lib/installDependencies.js.map +0 -1
  99. package/dist/lib/installDependencies.test.d.ts +0 -2
  100. package/dist/lib/installDependencies.test.d.ts.map +0 -1
  101. package/dist/lib/installDependencies.test.js +0 -37
  102. package/dist/lib/installDependencies.test.js.map +0 -1
  103. package/dist/lib/mergeWorktreeToMain.d.ts +0 -6
  104. package/dist/lib/mergeWorktreeToMain.d.ts.map +0 -1
  105. package/dist/lib/mergeWorktreeToMain.js +0 -54
  106. package/dist/lib/mergeWorktreeToMain.js.map +0 -1
  107. package/dist/lib/outputState.d.ts +0 -5
  108. package/dist/lib/outputState.d.ts.map +0 -1
  109. package/dist/lib/outputState.js +0 -6
  110. package/dist/lib/outputState.js.map +0 -1
  111. package/dist/lib/popStash.d.ts +0 -5
  112. package/dist/lib/popStash.d.ts.map +0 -1
  113. package/dist/lib/popStash.js +0 -17
  114. package/dist/lib/popStash.js.map +0 -1
  115. package/dist/lib/processEvent.d.ts +0 -2
  116. package/dist/lib/processEvent.d.ts.map +0 -1
  117. package/dist/lib/processEvent.js +0 -100
  118. package/dist/lib/processEvent.js.map +0 -1
  119. package/dist/lib/replayLog.d.ts +0 -2
  120. package/dist/lib/replayLog.d.ts.map +0 -1
  121. package/dist/lib/replayLog.js +0 -35
  122. package/dist/lib/replayLog.js.map +0 -1
  123. package/dist/lib/resolveConflicts.d.ts +0 -6
  124. package/dist/lib/resolveConflicts.d.ts.map +0 -1
  125. package/dist/lib/resolveConflicts.js +0 -76
  126. package/dist/lib/resolveConflicts.js.map +0 -1
  127. package/dist/lib/runIteration.d.ts +0 -2
  128. package/dist/lib/runIteration.d.ts.map +0 -1
  129. package/dist/lib/runIteration.js +0 -91
  130. package/dist/lib/runIteration.js.map +0 -1
  131. package/dist/lib/showToolUse.d.ts +0 -2
  132. package/dist/lib/showToolUse.d.ts.map +0 -1
  133. package/dist/lib/showToolUse.js +0 -17
  134. package/dist/lib/showToolUse.js.map +0 -1
  135. package/dist/lib/signalHandler.d.ts +0 -3
  136. package/dist/lib/signalHandler.d.ts.map +0 -1
  137. package/dist/lib/signalHandler.js +0 -23
  138. package/dist/lib/signalHandler.js.map +0 -1
  139. package/dist/lib/stashChanges.d.ts +0 -6
  140. package/dist/lib/stashChanges.d.ts.map +0 -1
  141. package/dist/lib/stashChanges.js +0 -27
  142. package/dist/lib/stashChanges.js.map +0 -1
  143. package/dist/lib/textFormatting.d.ts +0 -4
  144. package/dist/lib/textFormatting.d.ts.map +0 -1
  145. package/dist/lib/textFormatting.js +0 -94
  146. package/dist/lib/textFormatting.js.map +0 -1
  147. package/dist/lib/types.d.ts +0 -13
  148. package/dist/lib/types.d.ts.map +0 -1
  149. package/dist/lib/types.js +0 -15
  150. package/dist/lib/types.js.map +0 -1
  151. package/dist/lib/worktree.d.ts +0 -43
  152. package/dist/lib/worktree.d.ts.map +0 -1
  153. package/dist/lib/worktree.js +0 -210
  154. package/dist/lib/worktree.js.map +0 -1
  155. package/dist/ui/EventProcessor.d.ts +0 -11
  156. package/dist/ui/EventProcessor.d.ts.map +0 -1
  157. package/dist/ui/EventProcessor.js +0 -95
  158. package/dist/ui/EventProcessor.js.map +0 -1
  159. package/dist/ui/IterationApp.d.ts +0 -10
  160. package/dist/ui/IterationApp.d.ts.map +0 -1
  161. package/dist/ui/IterationApp.js +0 -21
  162. package/dist/ui/IterationApp.js.map +0 -1
  163. package/dist/ui/IterationUI.d.ts +0 -13
  164. package/dist/ui/IterationUI.d.ts.map +0 -1
  165. package/dist/ui/IterationUI.js +0 -19
  166. package/dist/ui/IterationUI.js.map +0 -1
  167. package/dist/ui/TextDisplay.d.ts +0 -7
  168. package/dist/ui/TextDisplay.d.ts.map +0 -1
  169. package/dist/ui/TextDisplay.js +0 -41
  170. package/dist/ui/TextDisplay.js.map +0 -1
  171. package/dist/ui/ToolUseDisplay.d.ts +0 -10
  172. package/dist/ui/ToolUseDisplay.d.ts.map +0 -1
  173. package/dist/ui/ToolUseDisplay.js +0 -10
  174. package/dist/ui/ToolUseDisplay.js.map +0 -1
  175. /package/templates/{prompt.md → prompt-todos.md} +0 -0
@@ -4,8 +4,8 @@ import Spinner from "ink-spinner";
4
4
  import BigText from "ink-big-text";
5
5
  import Gradient from "ink-gradient";
6
6
  import { EnhancedTextInput } from "./EnhancedTextInput.js";
7
- import { appendFileSync, writeFileSync, readFileSync, mkdirSync, existsSync } from "fs";
8
- import { join, dirname } from "path";
7
+ import { appendFileSync, writeFileSync, readFileSync, existsSync } from "fs";
8
+ import { join, dirname, basename } from "path";
9
9
  import { fileURLToPath } from "url";
10
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
11
11
  import { query } from "@anthropic-ai/claude-agent-sdk";
@@ -13,21 +13,25 @@ import { Header } from "./Header.js";
13
13
  import { eventToBlocks } from "./eventToBlocks.js";
14
14
  import { formatContentBlock } from "../lib/formatContentBlock.js";
15
15
  import { addTodo } from "../lib/addTodo.js";
16
- import { getProgress, getInitialBeadsCount } from "../lib/getProgress.js";
16
+ import { getProgress, captureStartupSnapshot, } from "../lib/getProgress.js";
17
17
  import { ProgressBar } from "./ProgressBar.js";
18
18
  import { watchForNewIssues } from "../lib/beadsClient.js";
19
19
  import { MessageQueue, createUserMessage } from "../lib/MessageQueue.js";
20
- const logFile = join(process.cwd(), ".ralph", "events.log");
20
+ import { createDebugLogger } from "../lib/debug.js";
21
+ import { useTerminalSize } from "../lib/useTerminalSize.js";
22
+ import { getNextLogFile } from "../lib/getNextLogFile.js";
23
+ const log = createDebugLogger("iteration");
21
24
  const ralphDir = join(process.cwd(), ".ralph");
22
25
  const promptFile = join(ralphDir, "prompt.md");
23
26
  const todoFile = join(ralphDir, "todo.md");
24
27
  const beadsDir = join(process.cwd(), ".beads");
25
28
  const templatesDir = join(__dirname, "..", "..", "templates");
29
+ const repoName = basename(process.cwd());
26
30
  /**
27
31
  * Get the prompt content, falling back to templates if .ralph/prompt.md doesn't exist.
28
32
  * Uses the appropriate template based on the project setup:
29
33
  * - If .beads directory exists OR no .ralph/todo.md: use prompt-beads.md
30
- * - If .ralph/todo.md exists: use prompt.md (todo-based workflow)
34
+ * - If .ralph/todo.md exists: use prompt-todos.md (todo-based workflow)
31
35
  */
32
36
  export const getPromptContent = () => {
33
37
  // First, try to read from .ralph/prompt.md
@@ -36,7 +40,7 @@ export const getPromptContent = () => {
36
40
  }
37
41
  // Fall back to templates based on project setup
38
42
  const useBeadsTemplate = existsSync(beadsDir) || !existsSync(todoFile);
39
- const templateFile = useBeadsTemplate ? "prompt-beads.md" : "prompt.md";
43
+ const templateFile = useBeadsTemplate ? "prompt-beads.md" : "prompt-todos.md";
40
44
  const templatePath = join(templatesDir, templateFile);
41
45
  if (existsSync(templatePath)) {
42
46
  return readFileSync(templatePath, "utf-8");
@@ -58,6 +62,8 @@ const sdkMessageToEvent = (message) => {
58
62
  // as it builds up. Each snapshot may contain different parts of the message content,
59
63
  // so we need to merge them and deduplicate.
60
64
  const processEvents = (events) => {
65
+ const blocks = [];
66
+ // First pass: collect all assistant message content and track message order
61
67
  const assistantEvents = events.filter(event => event.type === "assistant");
62
68
  // Collect all content blocks from all snapshots of the same message
63
69
  const messageMap = new Map();
@@ -130,10 +136,36 @@ const processEvents = (events) => {
130
136
  },
131
137
  };
132
138
  });
133
- return mergedEvents.flatMap(event => eventToBlocks(event));
139
+ const assistantBlocks = mergedEvents.flatMap(event => eventToBlocks(event));
140
+ // Second pass: process events in order, including user messages
141
+ // Track which user messages and assistant messages we've already seen
142
+ const processedUserIds = new Set();
143
+ const processedAssistantIds = new Set();
144
+ for (const event of events) {
145
+ if (event.type === "user") {
146
+ const message = event.message;
147
+ const messageId = message?.id ?? `user-${Date.now()}`;
148
+ if (!processedUserIds.has(messageId)) {
149
+ processedUserIds.add(messageId);
150
+ blocks.push(...eventToBlocks(event));
151
+ }
152
+ }
153
+ else if (event.type === "assistant") {
154
+ const message = event.message;
155
+ const messageId = message?.id;
156
+ if (messageId && !processedAssistantIds.has(messageId)) {
157
+ processedAssistantIds.add(messageId);
158
+ // Find the merged version of this message
159
+ const merged = assistantBlocks.filter(b => b.id.startsWith(messageId));
160
+ blocks.push(...merged);
161
+ }
162
+ }
163
+ }
164
+ return blocks;
134
165
  };
135
166
  export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion, watch }) => {
136
167
  const { exit } = useApp();
168
+ const { columns } = useTerminalSize();
137
169
  const [currentIteration, setCurrentIteration] = useState(1);
138
170
  const [events, setEvents] = useState([]);
139
171
  const eventsRef = useRef([]);
@@ -142,16 +174,24 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
142
174
  const [isAddingTodo, setIsAddingTodo] = useState(false);
143
175
  const [todoText, setTodoText] = useState("");
144
176
  const [todoMessage, setTodoMessage] = useState(null);
145
- const [isAddingUserMessage, setIsAddingUserMessage] = useState(false);
146
177
  const [userMessageText, setUserMessageText] = useState("");
147
178
  const [userMessageStatus, setUserMessageStatus] = useState(null);
148
179
  const [hasTodoFile, setHasTodoFile] = useState(false);
149
- const [initialBeadsCount] = useState(() => getInitialBeadsCount());
150
- const [progressData, setProgressData] = useState(() => getProgress(getInitialBeadsCount()));
180
+ const [startupSnapshot] = useState(() => captureStartupSnapshot());
181
+ const [progressData, setProgressData] = useState(() => {
182
+ const snapshot = captureStartupSnapshot();
183
+ if (!snapshot)
184
+ return { type: "none", completed: 0, total: 0 };
185
+ return { type: snapshot.type, completed: 0, total: snapshot.initialCount };
186
+ });
151
187
  const [isWatching, setIsWatching] = useState(false);
152
188
  const [detectedIssue, setDetectedIssue] = useState(null);
153
189
  const watchCleanupRef = useRef(null);
154
190
  const [watchCycle, setWatchCycle] = useState(0); // Increments to force useEffect re-run
191
+ const [stopAfterCurrent, setStopAfterCurrent] = useState(false); // Stop gracefully after current iteration
192
+ const stopAfterCurrentRef = useRef(false); // Ref to access in async callbacks
193
+ const [isPaused, setIsPaused] = useState(false); // Pause after current iteration completes
194
+ const isPausedRef = useRef(false); // Ref to access in async callbacks
155
195
  // Track static items that have been rendered (for Ink's Static component)
156
196
  const [staticItems, setStaticItems] = useState([
157
197
  { type: "header", claudeVersion, ralphVersion, key: "header" },
@@ -160,6 +200,8 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
160
200
  const lastIterationRef = useRef(0);
161
201
  // Message queue for sending user messages to Claude while running
162
202
  const messageQueueRef = useRef(null);
203
+ // Log file path for this run (set once at startup, persisted across iterations)
204
+ const logFileRef = useRef(null);
163
205
  // Only use input handling if stdin supports raw mode
164
206
  const stdinSupportsRawMode = process.stdin.isTTY === true;
165
207
  // Handle Ctrl-T to add a new todo
@@ -189,11 +231,10 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
189
231
  setTimeout(() => setTodoMessage(null), 5000);
190
232
  }
191
233
  };
192
- // Handle Ctrl+M to send a message to Claude
234
+ // Handle submitting a user message to Claude
193
235
  const handleUserMessageSubmit = (text) => {
194
236
  const trimmed = text.trim();
195
237
  if (!trimmed) {
196
- setIsAddingUserMessage(false);
197
238
  setUserMessageText("");
198
239
  return;
199
240
  }
@@ -211,7 +252,7 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
211
252
  },
212
253
  };
213
254
  setEvents(prev => [...prev, displayEvent]);
214
- setUserMessageStatus({ type: "success", text: `📨 Sent: "${trimmed}"` });
255
+ // No confirmation message - the user message appears directly in the stream
215
256
  }
216
257
  else {
217
258
  setUserMessageStatus({
@@ -220,44 +261,71 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
220
261
  });
221
262
  }
222
263
  setUserMessageText("");
223
- setIsAddingUserMessage(false);
224
264
  // Clear status message after 3 seconds
225
265
  setTimeout(() => setUserMessageStatus(null), 3000);
226
266
  };
227
- // Handle keyboard input for Ctrl-T (todo) and Ctrl-M (message)
267
+ // Handle keyboard input for Ctrl-T (todo), Ctrl-S (stop), and Escape (cancel todo input)
228
268
  useInput((input, key) => {
229
269
  // Ctrl-T to start adding a todo (only if todo.md exists)
230
- if (key.ctrl && input === "t" && hasTodoFile && !isAddingUserMessage) {
270
+ if (key.ctrl && input === "t" && hasTodoFile) {
231
271
  setIsAddingTodo(true);
232
272
  setTodoText("");
233
273
  setTodoMessage(null);
234
274
  }
235
- // Ctrl-M to start adding a message to Claude (only while running)
236
- if (key.ctrl && input === "m" && isRunning && !isAddingTodo) {
237
- setIsAddingUserMessage(true);
238
- setUserMessageText("");
239
- setUserMessageStatus(null);
275
+ // Ctrl-S to request stop after current iteration
276
+ if (key.ctrl && input === "s" && isRunning && !stopAfterCurrent) {
277
+ setStopAfterCurrent(true);
240
278
  }
241
- // Escape to cancel adding a todo or message
242
- if (key.escape && isAddingTodo) {
243
- setIsAddingTodo(false);
244
- setTodoText("");
279
+ // Ctrl-P to toggle pause state
280
+ if (key.ctrl && input === "p") {
281
+ if (isPaused) {
282
+ // Resume - if we were paused between iterations, trigger next iteration
283
+ setIsPaused(false);
284
+ if (!isRunning) {
285
+ setTimeout(() => setCurrentIteration(i => i + 1), 100);
286
+ }
287
+ }
288
+ else if (isRunning) {
289
+ // Request pause after current iteration
290
+ setIsPaused(true);
291
+ }
245
292
  }
246
- if (key.escape && isAddingUserMessage) {
247
- setIsAddingUserMessage(false);
248
- setUserMessageText("");
293
+ // Escape to cancel todo input
294
+ if (key.escape) {
295
+ if (isAddingTodo) {
296
+ // Cancel todo input
297
+ setIsAddingTodo(false);
298
+ setTodoText("");
299
+ }
249
300
  }
250
301
  }, { isActive: stdinSupportsRawMode });
251
302
  // Keep ref in sync with events state for access in callbacks
252
303
  useEffect(() => {
253
304
  eventsRef.current = events;
254
305
  }, [events]);
306
+ // Keep stopAfterCurrent ref in sync with state for access in async callbacks
307
+ useEffect(() => {
308
+ stopAfterCurrentRef.current = stopAfterCurrent;
309
+ }, [stopAfterCurrent]);
310
+ // Keep isPaused ref in sync with state for access in async callbacks
311
+ useEffect(() => {
312
+ isPausedRef.current = isPaused;
313
+ }, [isPaused]);
255
314
  // Update progress data when iteration changes or running stops
256
315
  useEffect(() => {
257
- if (!isRunning) {
258
- setProgressData(getProgress(initialBeadsCount));
316
+ if (!isRunning && startupSnapshot) {
317
+ setProgressData(getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp));
259
318
  }
260
- }, [currentIteration, isRunning, initialBeadsCount]);
319
+ }, [currentIteration, isRunning, startupSnapshot]);
320
+ // Poll progress data periodically while running to catch newly created/closed issues
321
+ useEffect(() => {
322
+ if (!isRunning || !startupSnapshot)
323
+ return;
324
+ const pollInterval = setInterval(() => {
325
+ setProgressData(getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp));
326
+ }, 5000); // Poll every 5 seconds
327
+ return () => clearInterval(pollInterval);
328
+ }, [isRunning, startupSnapshot]);
261
329
  // Watch for new issues when in watch mode
262
330
  useEffect(() => {
263
331
  if (!isWatching)
@@ -265,6 +333,11 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
265
333
  // Start watching for new issues
266
334
  const cleanup = watchForNewIssues(issue => {
267
335
  setDetectedIssue(issue);
336
+ // Refresh progress data to pick up the new issue
337
+ // The timestamp-based counting will automatically include it
338
+ if (startupSnapshot) {
339
+ setProgressData(getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp));
340
+ }
268
341
  // Brief pause to show the detected issue, then resume
269
342
  setTimeout(() => {
270
343
  setIsWatching(false);
@@ -281,7 +354,7 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
281
354
  cleanup();
282
355
  watchCleanupRef.current = null;
283
356
  };
284
- }, [isWatching]);
357
+ }, [isWatching, startupSnapshot]);
285
358
  // Convert events to static items as they arrive
286
359
  useEffect(() => {
287
360
  const newItems = [];
@@ -315,16 +388,40 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
315
388
  exit();
316
389
  return;
317
390
  }
318
- // Ensure .ralph directory exists and clear log file at start of each iteration
319
- mkdirSync(dirname(logFile), { recursive: true });
320
- writeFileSync(logFile, "");
391
+ // Check if there are any tasks available before starting a round
392
+ // This avoids running Claude unnecessarily when there's no work to do
393
+ const currentProgress = startupSnapshot ?
394
+ getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp)
395
+ : { type: "none", completed: 0, total: 0 };
396
+ // All tasks are complete when completed equals total
397
+ if (currentProgress.completed >= currentProgress.total && currentProgress.type !== "none") {
398
+ // No tasks available - go straight to watching if enabled
399
+ if (watch) {
400
+ setIsWatching(true);
401
+ }
402
+ else {
403
+ exit();
404
+ process.exit(0);
405
+ }
406
+ return;
407
+ }
408
+ // Get or create the log file path for this run
409
+ // Only create a new sequential log file on the first iteration
410
+ if (!logFileRef.current) {
411
+ logFileRef.current = getNextLogFile();
412
+ writeFileSync(logFileRef.current, "");
413
+ }
414
+ const logFile = logFileRef.current;
321
415
  setEvents([]);
322
416
  // Read prompt (from .ralph/prompt.md or falling back to templates)
323
417
  const promptContent = getPromptContent();
324
418
  const todoExists = existsSync(todoFile);
325
419
  setHasTodoFile(todoExists);
326
420
  const todoContent = todoExists ? readFileSync(todoFile, "utf-8") : "";
327
- const fullPrompt = todoContent ? `${promptContent}\n\n## Current Todo List\n\n${todoContent}` : promptContent;
421
+ const roundHeader = `# Ralph, round ${currentIteration}\n\n`;
422
+ const fullPrompt = todoContent ?
423
+ `${roundHeader}${promptContent}\n\n## Current Todo List\n\n${todoContent}`
424
+ : `${roundHeader}${promptContent}`;
328
425
  const abortController = new AbortController();
329
426
  setIsRunning(true);
330
427
  // Create a message queue for this iteration
@@ -335,7 +432,9 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
335
432
  messageQueue.push(createUserMessage(fullPrompt));
336
433
  const runQuery = async () => {
337
434
  let finalResult = "";
435
+ log(`Starting iteration ${currentIteration}`);
338
436
  try {
437
+ log(`Beginning query() loop`);
339
438
  for await (const message of query({
340
439
  prompt: messageQueue,
341
440
  options: {
@@ -350,8 +449,9 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
350
449
  },
351
450
  },
352
451
  })) {
353
- // Log raw message to file
354
- appendFileSync(logFile, JSON.stringify(message, null, 2) + "\n\n");
452
+ log(`Received message type: ${message.type}`);
453
+ // Log raw message to file (JSONL format - one JSON object per line)
454
+ appendFileSync(logFile, JSON.stringify(message) + "\n");
355
455
  // Convert to event format for display
356
456
  const event = sdkMessageToEvent(message);
357
457
  if (event) {
@@ -361,12 +461,31 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
361
461
  if (message.type === "result" &&
362
462
  "result" in message &&
363
463
  typeof message.result === "string") {
464
+ log(`Received result message`);
364
465
  finalResult = message.result;
466
+ // Close the message queue immediately when we get the result.
467
+ // This is critical to prevent hangs: the SDK's streamInput() needs
468
+ // to complete iterating our queue before it can call endInput(),
469
+ // which signals EOF to the CLI. If we wait until after the for-await
470
+ // loop exits, we create a circular dependency that can cause hangs.
471
+ log(`Closing message queue on result`);
472
+ messageQueue.close();
365
473
  }
366
474
  }
475
+ log(`query() loop completed normally`);
367
476
  setIsRunning(false);
477
+ // MessageQueue should already be closed when we received the result message.
478
+ // We ensure it's closed here as a safety measure (close() is idempotent).
479
+ log(`Ensuring message queue is closed`);
368
480
  messageQueue.close();
369
481
  messageQueueRef.current = null;
482
+ // Check for stop-after-current request
483
+ if (stopAfterCurrentRef.current) {
484
+ log(`Stop after current requested - exiting gracefully`);
485
+ exit();
486
+ process.exit(0);
487
+ return;
488
+ }
370
489
  // Check for completion
371
490
  if (finalResult.includes("<promise>COMPLETE</promise>")) {
372
491
  if (watch) {
@@ -379,14 +498,23 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
379
498
  }
380
499
  return;
381
500
  }
501
+ // Check for pause request - if paused, we wait for resume via Ctrl-P
502
+ if (isPausedRef.current) {
503
+ log(`Paused after iteration ${currentIteration}`);
504
+ // Don't move to next iteration - the resume handler (Ctrl-P) will trigger it
505
+ return;
506
+ }
382
507
  // Move to next iteration
383
508
  setTimeout(() => setCurrentIteration(i => i + 1), 500);
384
509
  }
385
510
  catch (err) {
511
+ log(`query() loop error: ${err instanceof Error ? err.message : String(err)}`);
386
512
  setIsRunning(false);
513
+ log(`Closing message queue after error`);
387
514
  messageQueue.close();
388
515
  messageQueueRef.current = null;
389
516
  if (abortController.signal.aborted) {
517
+ log(`Abort signal detected`);
390
518
  return; // Intentionally aborted
391
519
  }
392
520
  setError(`Error running Claude: ${err instanceof Error ? err.message : String(err)}`);
@@ -398,6 +526,7 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
398
526
  };
399
527
  runQuery();
400
528
  return () => {
529
+ log(`Cleanup: aborting and closing queue for iteration ${currentIteration}`);
401
530
  abortController.abort();
402
531
  messageQueue.close();
403
532
  messageQueueRef.current = null;
@@ -429,15 +558,16 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
429
558
  React.createElement(Text, { dimColor: true }, "(Enter to add, Esc to cancel)"))),
430
559
  todoMessage && (React.createElement(Box, { marginTop: 1 },
431
560
  React.createElement(Text, { color: todoMessage.type === "success" ? "green" : "red" }, todoMessage.text))),
432
- isAddingUserMessage && (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
433
- React.createElement(Text, { color: "cyan" }, "Message to Claude:"),
434
- React.createElement(EnhancedTextInput, { value: userMessageText, onChange: setUserMessageText, onSubmit: handleUserMessageSubmit }),
435
- React.createElement(Text, { dimColor: true }, "(Enter to send, Esc to cancel)"))),
436
- userMessageStatus && (React.createElement(Box, { marginTop: 1 },
437
- React.createElement(Text, { color: userMessageStatus.type === "success" ? "green"
561
+ !isWatching && (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
562
+ React.createElement(Text, { dimColor: true }, "".repeat(columns)),
563
+ React.createElement(Box, null,
564
+ React.createElement(Text, { color: isRunning ? "yellow" : "gray" }, "\u276F "),
565
+ React.createElement(EnhancedTextInput, { value: userMessageText, placeholder: isRunning ? "Type a message for Ralph..." : "Waiting for Ralph to start...", onChange: setUserMessageText, onSubmit: handleUserMessageSubmit, focus: isRunning && !isAddingTodo })),
566
+ userMessageStatus && (React.createElement(Text, { color: userMessageStatus.type === "success" ? "green"
438
567
  : userMessageStatus.type === "error" ?
439
568
  "red"
440
- : "yellow" }, userMessageStatus.text))),
569
+ : "yellow" }, userMessageStatus.text)),
570
+ React.createElement(Text, { dimColor: true }, "─".repeat(columns)))),
441
571
  React.createElement(Box, { marginTop: 1, justifyContent: "space-between" },
442
572
  isWatching ?
443
573
  detectedIssue ?
@@ -447,18 +577,44 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
447
577
  React.createElement(Text, { color: "yellow" }, detectedIssue.IssueID),
448
578
  detectedIssue.Title ? ` - ${detectedIssue.Title}` : "")
449
579
  : React.createElement(Text, { color: "cyan" },
450
- React.createElement(Spinner, { type: "simpleDotsScrolling" }),
451
- " Waiting for new issues...")
452
- : isRunning ?
453
- React.createElement(Text, { color: "cyan" },
454
- React.createElement(Spinner, { type: "dots" }),
455
- " Running round ",
580
+ "Waiting for new issues ",
581
+ React.createElement(Spinner, { type: "simpleDotsScrolling" }))
582
+ : isPaused && !isRunning ?
583
+ React.createElement(Text, { color: "magenta" },
584
+ "\u23F8 Paused after round ",
456
585
  React.createElement(Text, { color: "yellow" }, currentIteration),
457
586
  " ",
458
- "(max ",
459
- totalIterations,
460
- ")")
461
- : React.createElement(Text, { dimColor: true }, "Ready"),
462
- progressData.type !== "none" && progressData.total > 0 && (React.createElement(ProgressBar, { remaining: progressData.remaining, total: progressData.total })))));
587
+ React.createElement(Text, { dimColor: true }, "(Ctrl-P to resume)"))
588
+ : isRunning ?
589
+ stopAfterCurrent ?
590
+ React.createElement(Text, { color: "yellow" },
591
+ React.createElement(Spinner, { type: "dots" }),
592
+ " Stopping after round",
593
+ " ",
594
+ React.createElement(Text, { color: "yellow" }, currentIteration),
595
+ " completes...",
596
+ " ",
597
+ React.createElement(Text, { dimColor: true }, "(Ctrl-S pressed)"))
598
+ : isPaused ?
599
+ React.createElement(Text, { color: "magenta" },
600
+ React.createElement(Spinner, { type: "dots" }),
601
+ " Pausing after round",
602
+ " ",
603
+ React.createElement(Text, { color: "yellow" }, currentIteration),
604
+ " completes...",
605
+ " ",
606
+ React.createElement(Text, { dimColor: true }, "(Ctrl-P pressed)"))
607
+ : React.createElement(Text, { color: "cyan" },
608
+ React.createElement(Spinner, { type: "dots" }),
609
+ " Running round ",
610
+ React.createElement(Text, { color: "yellow" }, currentIteration),
611
+ " ",
612
+ "(max ",
613
+ totalIterations,
614
+ ")")
615
+ : React.createElement(Text, { color: "cyan" },
616
+ React.createElement(Spinner, { type: "simpleDotsScrolling" }),
617
+ " Waiting for Ralph to start..."),
618
+ progressData.type !== "none" && progressData.total > 0 && (React.createElement(ProgressBar, { completed: progressData.completed, total: progressData.total, repoName: repoName })))));
463
619
  };
464
620
  //# sourceMappingURL=IterationRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IterationRunner.js","sourceRoot":"","sources":["../../src/components/IterationRunner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IterationRunner.js","sourceRoot":"","sources":["../../src/components/IterationRunner.tsx"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ describe("IterationRunner prompt content", () => {
60
60
  const content = getPromptContent();
61
61
  expect(content).toBe("Beads template content");
62
62
  });
63
- it("falls back to prompt.md template when .ralph/todo.md exists", async () => {
63
+ it("falls back to prompt-todos.md template when .ralph/todo.md exists", async () => {
64
64
  const mockExistsSync = existsSync;
65
65
  const mockReadFileSync = readFileSync;
66
66
  mockExistsSync.mockImplementation((path) => {
@@ -74,7 +74,7 @@ describe("IterationRunner prompt content", () => {
74
74
  if (path.includes("todo.md") && path.includes(".ralph"))
75
75
  return true;
76
76
  // Template files exist
77
- if (path.includes("templates") && path.includes("prompt.md"))
77
+ if (path.includes("templates") && path.includes("prompt-todos.md"))
78
78
  return true;
79
79
  return false;
80
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"IterationRunner.test.js","sourceRoot":"","sources":["../../src/components/IterationRunner.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IterationRunner.test.js","sourceRoot":"","sources":["../../src/components/IterationRunner.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ /**
3
+ * Get the prompt content, falling back to templates if .ralph/prompt.md doesn't exist.
4
+ * Uses the appropriate template based on the project setup:
5
+ * - If .beads directory exists OR no .ralph/todo.md: use prompt-beads.md
6
+ * - If .ralph/todo.md exists: use prompt-todos.md (todo-based workflow)
7
+ */
8
+ export declare const getPromptContent: () => string;
9
+ export declare const JsonOutput: ({ totalIterations }: Props) => React.JSX.Element;
10
+ type Props = {
11
+ totalIterations: number;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=JsonOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonOutput.d.ts","sourceRoot":"","sources":["../../src/components/JsonOutput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAsB1D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAiBnC,CAAA;AAOD,eAAO,MAAM,UAAU,GAAI,qBAAqB,KAAK,sBAsOpD,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA"}