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.
0.7.0 - 2026-04-08
- SDD (spec-driven development) workflow guides under
docs/guide/covering workflow, configuration, design, prompts, specs, and tasks, plus a matching router-style example underexamples/.lorah/and example design specs underexamples/docs/design/.
lorah --help/-hnow prints usage to stdout; usage on error still prints to stderr.
- BREAKING:
lorah taskcommand andinternal/taskpackage. Track tasks as markdown files in.lorah/tasks/instead (seedocs/guide/tasks.md). - BREAKING:
--dirtop-level flag (was only used bytask). - BREAKING:
runsubcommand. CLI is nowlorah <prompt-file> [claude-flags...], matching the pre-0.5.0 shape.
- A single Ctrl+C now finishes the current iteration naturally instead of interrupting the running claude subprocess. The subprocess is placed in its own process group (
Setpgid) so terminal SIGINT is delivered only to lorah.
0.6.0 - 2026-03-24
--dirtop-level flag to override the lorah data directory (default.lorah)
- BREAKING: Task storage default location changed from
tasks.jsonto.lorah/tasks.json
0.5.0 - 2026-03-21
- Subcommand-based CLI:
lorah <command> [arguments]withrunandtaskcommands - Task management system (
lorah task) with 6 subcommands: list, get, create, update, delete, export - JSON-based task storage in
tasks.jsonwith Storage interface for future backend swaps - Two task output formats: json, markdown (default);
--flatflag onlistfor flat bullet output - Loop status messages now include iteration number
- BREAKING: CLI changed to
lorah run <prompt-file> [claude-flags...](waslorah <prompt-file> [claude-flags...]) - Removed color from Claude text and thinking output sections
- Removed extra newline before loop error output
- Tool name matching now uses prefix match for Task tool names
- Scanner errors are now handled gracefully instead of being silently ignored
0.4.0 - 2026-03-09
- Output sections now use
⏺symbol instead of==> - Added blank line spacing between output sections for improved readability
- Tool inputs now truncate to 1 line instead of 3 lines to prevent trailing blank lines
- Truncated tool inputs now display line count (e.g., "... +5 lines") instead of just "..."
- Removed excessive blank lines caused by trailing whitespace in Claude output
0.3.0 - 2026-03-05
- Infinite loop execution following Ralph pattern
- Direct flag passthrough to Claude Code CLI
- BREAKING: CLI interface changed to
lorah PROMPT.md [claude-flags...](waslorah run --project-dir) - BREAKING: Now follows Ralph technique instead of Anthropic's effective harnesses for long-running agents
- BREAKING: Agent manages its own workflow autonomously (removed multi-phase orchestration, config system, session state, progress tracking)
- Error retry uses fixed 5-second delay (was exponential backoff)
0.2.0 - 2026-02-24
- Configuration is now optional with sensible defaults — only configure what you need to change
- BREAKING: Configuration format changed to a split structure with
harness(lorah settings) andclaude(passthrough to Claude Code CLI) sections. Existing configs require migration—runlorah info templateto see the new format. - Updated documentation to document two-phase execution model with fixed file names (initialization and implementation phases)
- Renamed
docs/setup-guide.mdtodocs/getting-started.md - Renamed review workflow prompts from
inventory.md/fix.mdtoinitialization.md/implementation.md - Migrated examples to new config format; review workflow now uses defaults
- Fixed broken link in getting started guide
0.1.0 - 2026-02-20
- Initial release of Lorah, a configurable harness for long-running autonomous coding agents
- CLI commands:
run,verify,init, andinfo(withtemplate,schema,preset,guidesubcommands) - Multi-phase agent execution with initialization (run-once) and implementation (iterative) phases
- Phase conditions using
exists:andnot_exists:path-based rules - Session state persistence in
.lorah/session.jsonfor resume capability - Graceful interrupt handling with automatic session resume
- Error recovery with configurable exponential backoff and circuit breaker
- JSON checklist progress tracking via
tasks.jsonwith automatic completion detection - Progress notes file (
progress.md) for session handoff documentation - SDK-native sandbox isolation with network, filesystem, and command restrictions
- Permission modes:
default,acceptEdits,bypassPermissions,plan - Fine-grained tool allow/deny rules configuration
- MCP (Model Context Protocol) server integration with environment variable expansion
- Built-in network presets:
python,go,rust,web-nodejs,read-only - PID-based instance locking to prevent concurrent runs
- Project scaffolding via
lorah initwith embedded starter templates - Pre-flight verification via
lorah verify(CLI, API, config, files, permissions) - Configuration JSON schema accessible via
lorah info schema - Single self-contained binary with no external runtime dependencies