Commit 4a4e14f
chore(release): v0.2.0 stable release (#171)
* feat: Show rate limit stats and reset time when limit reached
Closes github#80
Generated by ralph-starter auto mode
* feat: Add session pause/resume for rate limit recovery
Closes github#79
Generated by ralph-starter auto mode
* fix: improve cleanTaskName to handle list prefixes, HTML, and links
Strip numbered list prefixes, bullet markers, HTML tags, markdown
links, and collapse whitespace in task names for cleaner display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: increase task name truncation limits for better readability
Increase completed task name limit from 25 to 50 chars and loop
header task name limit from 40 to 60 chars so task context is
preserved in the CLI output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: use terminal width for dynamic task name truncation
Replace hardcoded truncation limits with terminal-width-aware
helpers. Task names now adapt to the available terminal space
instead of cutting at arbitrary character counts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add source integration icons to task name display
Show a compact icon (GitHub, Linear, Figma, Notion, etc.) next
to task names in the loop header so users can quickly identify
where tasks originated from.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: replace shimmer with readable progress text
Replace the per-character color cycling shimmer effect with a
subtle slow pulse between white and cyan. Much more readable
and accessible while still providing visual feedback.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add progress bar and box-drawing utilities
Add box.ts with drawBox(), drawSeparator(), and renderProgressBar()
helpers. Update ProgressRenderer with iteration tracking, progress
bar display, and live cost indicator.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: box-drawing headers, startup summary, and completion banner
Replace plain separator lines with box-drawing UI throughout the
executor. Adds a startup config summary box, per-iteration header
boxes with agent/iteration info, and a clean completion banner
with stats. Wire progress bar with iteration and cost tracking.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add status separators and compact validation feedback
Show a status separator between iterations with iteration count,
task progress, cost, and elapsed time. Replace verbose validation
error output with a compact one-line summary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: improve skill detection with YAML frontmatter and .agents/skills support
- Add .agents/skills/ directory scanning (multi-agent skill sharing)
- Support subdirectories with SKILL.md inside (not just flat .md files)
- Parse YAML frontmatter for skill name and description
- Parse npx add-skill commands from skills.sh
- Add findSkill() helper for looking up skills by name
- Refactor directory scanning into reusable scanSkillsDir()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: expand skills registry with categories and info command
- Add 6 curated skill entries across 4 categories (agents, development, testing, design)
- Group skills by category in list output with visual separators
- Add 'info' action to show installed skill details
- Search now matches against categories
- Add interactive browse with categorized choices
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: sync MCP server version with package.json
Read version dynamically from package.json instead of hardcoding '0.1.0'.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add ralph_list_presets and ralph_fetch_spec MCP tools
- Add ralph_list_presets tool to discover all 19 workflow presets by category
- Add ralph_fetch_spec tool to preview specs from GitHub, Linear, Notion, and
Figma without running the full coding loop
- Improve all existing tool descriptions with detailed context for LLM clients
- ralph_fetch_spec supports Figma modes (spec, tokens, components, content, assets)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add figma_to_code and batch_issues MCP prompts
- Add figma_to_code prompt for Figma design-to-code workflow with framework
and mode selection (spec, tokens, components, content)
- Add batch_issues prompt for processing multiple GitHub/Linear issues
automatically with auto mode
- Update fetch_and_build prompt to include Figma as a source option
- Update fetch_and_build to use ralph_fetch_spec for preview before building
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: expose activity log as MCP resource
Add .ralph/activity.md as a readable MCP resource so Claude Desktop
and other MCP clients can access loop execution history, timing data,
and cost information.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add smart context windowing to reduce input tokens per iteration
Introduces a context builder that progressively narrows the prompt sent to
agents across loop iterations. Iteration 1 gets full context (spec + skills +
plan), iterations 2-3 get trimmed plan context, and iterations 4+ get minimal
context with just the current task. Validation feedback is compressed to reduce
token waste. Adds --context-budget flag for optional token budget enforcement.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add Anthropic SDK with prompt caching support
Replaces raw fetch calls to Anthropic API with the official @anthropic-ai/sdk,
enabling prompt caching via cache_control on system messages. Cache reads are
90% cheaper than regular input tokens. Adds cache-aware pricing to cost tracker
with savings metrics displayed in CLI output and activity summaries. Also adds
system message support and usage tracking for OpenAI/OpenRouter providers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add Anthropic Batch API support for 50% cost reduction
Adds --batch flag to ralph-starter auto command that submits tasks via the
Anthropic Batch API instead of running agent loops. Batch requests are processed
asynchronously at 50% cost reduction. Includes polling with exponential backoff,
progress display, and cost savings summary. Note: batch mode uses the API
directly (no tool use), best for planning, code generation, and review tasks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback on MCP tools and prompts
- Fix batch_issues prompt: use ralph_run with auto mode instead of
incorrectly referencing ralph_fetch_spec for listing issues
- Fix handleListPresets category filter: use strict equality instead of
substring match to prevent unintended matches
- handleFetchSpec already passes path to fetchFromIntegration (linter fix)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address CodeRabbit review round 2
- Normalize framework casing in figma_to_code prompt (consistent display name)
- Guard undefined args in handleListPresets with fallback to empty object
- Enforce non-empty path in ralph_fetch_spec schema (.min(1)) and always
assign path to options instead of truthiness check
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve build errors from PR merges
- Restore drawSeparator import in executor.ts
- Remove conflicting getPackageVersion import in server.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address CodeRabbit review issues in batch API
- Add empty requests guard in submitBatch
- Add retry logic for transient errors in polling loop
- Extract taskCustomId helper to avoid duplicated pattern
- Add pricing caveat for non-Sonnet models
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add stable-release label for non-beta releases
Add `stable-release` label support to prepare-release workflow.
When a PR with this label is merged to main, the workflow strips
the prerelease suffix and applies a proper semver bump instead
of incrementing the beta number.
Example: 0.1.1-beta.16 + feat PR + stable-release → 0.2.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve CI failures on staging PR
- Update pnpm-lock.yaml to include @anthropic-ai/sdk dependency
- Remove duplicate rate-limits.md doc (rate-limiting.md already exists)
- Use 'release' label instead of 'stable-release' in workflow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(security): resolve CodeQL alerts
- Loop HTML tag removal to prevent incomplete sanitization bypass
- Replace TOCTOU existsSync+readFileSync with try/catch
- Remove unused fullTask variable in context-builder
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(security): eliminate file system race condition in skills detection
Remove statSync+readFileSync TOCTOU pattern entirely. Instead of
checking file type then reading, try reading directly and catch
errors. This eliminates the race window between stat and read.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(ci): fetch remote branch before force-push in docs SEO sync
The --force-with-lease push fails when the automation branch already
exists remotely because the local checkout has no knowledge of the
remote ref. Adding a fetch first resolves the stale info rejection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Revert "fix(ci): fetch remote branch before force-push in docs SEO sync"
This reverts commit 73dfbcc.
* docs: add branch naming convention with staging/v<version> rule
Staging branches must use semver version numbers (e.g. staging/v0.2.0)
instead of arbitrary names.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve wizard hanging on "Setting up project..."
initCommand has interactive prompts (git init confirmation, agent
selection) and agent detection that blocks when called from the wizard
since the wizard's spinner consumes stdout. Added nonInteractive flag
to skip prompts, auto-init git, and skip agent detection when called
from the wizard context.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: fixes
* feat: improve skills
* fix: wizard fixes
* feat: prompt
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 3265c7f commit 4a4e14f
File tree
35 files changed
+3102
-387
lines changed- .github/workflows
- docs/docs
- cli
- wizard
- src
- commands
- llm
- loop
- mcp
- skills
- ui
- utils
- wizard
35 files changed
+3102
-387
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
16 | 20 | | |
17 | | - | |
| 21 | + | |
18 | 22 | | |
19 | 23 | | |
20 | 24 | | |
21 | 25 | | |
22 | 26 | | |
23 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
24 | 31 | | |
25 | 32 | | |
26 | 33 | | |
| |||
57 | 64 | | |
58 | 65 | | |
59 | 66 | | |
60 | | - | |
| 67 | + | |
61 | 68 | | |
62 | | - | |
| 69 | + | |
63 | 70 | | |
64 | 71 | | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
68 | 75 | | |
69 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
70 | 87 | | |
71 | 88 | | |
72 | 89 | | |
| |||
125 | 142 | | |
126 | 143 | | |
127 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
128 | 153 | | |
129 | 154 | | |
130 | 155 | | |
131 | 156 | | |
132 | 157 | | |
133 | 158 | | |
| 159 | + | |
134 | 160 | | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
135 | 165 | | |
136 | | - | |
137 | | - | |
138 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
139 | 181 | | |
140 | 182 | | |
141 | 183 | | |
142 | 184 | | |
143 | 185 | | |
144 | 186 | | |
145 | | - | |
| 187 | + | |
146 | 188 | | |
147 | 189 | | |
148 | 190 | | |
| |||
202 | 244 | | |
203 | 245 | | |
204 | 246 | | |
| 247 | + | |
205 | 248 | | |
206 | 249 | | |
207 | 250 | | |
| |||
257 | 300 | | |
258 | 301 | | |
259 | 302 | | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
260 | 311 | | |
261 | | - | |
| 312 | + | |
262 | 313 | | |
263 | | - | |
| 314 | + | |
264 | 315 | | |
265 | 316 | | |
266 | 317 | | |
| |||
273 | 324 | | |
274 | 325 | | |
275 | 326 | | |
276 | | - | |
| 327 | + | |
277 | 328 | | |
278 | 329 | | |
279 | 330 | | |
| |||
286 | 337 | | |
287 | 338 | | |
288 | 339 | | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
289 | 345 | | |
290 | | - | |
| 346 | + | |
291 | 347 | | |
292 | 348 | | |
293 | 349 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
66 | 68 | | |
67 | | - | |
68 | | - | |
69 | | - | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
70 | 73 | | |
71 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
72 | 83 | | |
73 | 84 | | |
74 | 85 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
42 | 48 | | |
43 | 49 | | |
44 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
368 | 368 | | |
369 | 369 | | |
370 | 370 | | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
371 | 398 | | |
372 | 399 | | |
373 | 400 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
126 | 136 | | |
127 | 137 | | |
128 | 138 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| 69 | + | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments