All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Open-source readiness scaffolding:
CONTRIBUTING.md(CLA, Bash/PowerShell parity rule),CODE_OF_CONDUCT.md,.github/SECURITY.md,CODEOWNERS,CITATION.cff- Issue templates (bug, feature) and PR template
- SPDX headers on the loop scripts (
ralph-loop.sh,ralph-loop.ps1) and thejustfile - bats smoke tests for
ralph-loop.sh(argument validation andstop.mdearly-exit; no AI CLI required) - GitHub Actions workflows (third-party actions pinned to SHA digests):
ci.yml— ShellCheck + PSScriptAnalyzer + batslicense-check.yml— SPDX header verification for shell sourcespattern-check.yml— internal-pattern scan with allowlistscorecard.yml— OpenSSF Scorecard supply-chain analysiscla.yml— CLA Assistant Litestale.yml— stale issues/PRs automationrelease.yml— versioned source archive attached to GitHub Releases
.github/dependabot.yml— monthly GitHub Actions updates- README badges, attribution line, and Contributing/Security/License/Citation sections
ralph-loop.shno longer crashes on macOS (bash 3.2) withmem_limit_prefix[@]: unbound variable. Empty-array expansions now use the${arr[@]:+"${arr[@]}"}idiom, which is safe underset -uon bash < 4.4 (macOS default) and expands identically to"${arr[@]}"when the RAM-limit prefix is populated on Linux.
NOTICE, source headers andCITATION.cffdeclare César Gallego Rodríguez as the original author and copyright holder, with a link to the original GitLab repository; Santander AI Lab is named as distributor/maintainer of the public release (published with the author's consent).
0.1.0 - 2026-06-17
ralph-loop.sh— Bash loop that runs an AI coding CLI (codex,claude,gemini,devin) in a fresh session each iteration, feeding it the same promptralph-loop.ps1— PowerShell counterpart with behavioural parity- Live reload of
.ralph/.envconfiguration before each iteration - Auto-switch of agent on token exhaustion (fixed rotation cycle)
- Hard RAM limit per iteration on Linux via transient
systemd-run --user --scope stop.mdclean-stop signal (invocation directory or anywhere underplan/)- Timestamped per-iteration logs in
.ralph/logs/with rotation justfileinstall recipe and bundledjuez/maestro/ralphskills