Skip to content

Implement RFC-001: Lisa Loop v0.6.0 breaking release - #20

Merged
freol35241 merged 8 commits into
mainfrom
towards_0.6.0
Apr 2, 2026
Merged

freol35241 merged 8 commits into
mainfrom
towards_0.6.0

Conversation

@freol35241

Copy link
Copy Markdown
Owner

Five proposals implemented:

  • Reworked init: two-phase init with agent-assisted codebase discovery, empty path defaults, CODEBASE.md for existing codebases
  • Diagonal scoping: max_tasks_per_pass (default 5), lower ralph iterations (default 15), prompt guidance for one-phenomenon-one-fidelity passes
  • Per-pass artifact folders: plots move to spiral/pass-N/plots/, {{pass}} placeholder, code-diff.patch at pass boundaries
  • CLI simplification: 12 commands → 7, history merged into status, continue absorbed into run --follow-up
  • Lightweight exploration: [E] EXPLORE at pass review gate, git branch isolation, merge/discard workflow, new Exploring/ExploreReview states

freol35241 and others added 8 commits March 28, 2026 12:29
Five proposals implemented:

- Reworked init: two-phase init with agent-assisted codebase discovery,
  empty path defaults, CODEBASE.md for existing codebases
- Diagonal scoping: max_tasks_per_pass (default 5), lower ralph iterations
  (default 15), prompt guidance for one-phenomenon-one-fidelity passes
- Per-pass artifact folders: plots move to spiral/pass-N/plots/, {{pass}}
  placeholder, code-diff.patch at pass boundaries
- CLI simplification: 12 commands → 7, history merged into status,
  continue absorbed into run --follow-up
- Lightweight exploration: [E] EXPLORE at pass review gate, git branch
  isolation, merge/discard workflow, new Exploring/ExploreReview states

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Break stale DDV test dead end: Refine now resets manifest status to
  PENDING when updating scenarios; Validate now updates existing tests
  for PENDING scenarios instead of categorically refusing modification
- Guard against scope/DDV quit continuing the spiral: ensure_scope_complete
  and ensure_ddv_complete now re-check completion markers after run
- Fix task count warning counting all passes: add per-pass filtering via
  count_tasks_by_status_for_pass() in tasks.rs
- Restore DDV L0/L1 levels: add Level field to DDV Agent scenario format,
  manifest table, and category definitions
- Standardize pass-N to pass-{{pass}} in all prompt file paths (16 occurrences
  across 4 prompt files)
- Delete dead template: templates/plots_review.md (never scaffolded)
- Persist exploration question to question.md for seamless resume
- Exploration resume now continues into pass_review_loop instead of returning

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Scaffold a CLAUDE.md inside .lisa/ that maps every artifact location,
so agents (and humans) can easily find and discuss results, methods,
assumptions, and validation evidence after a loop run. Also add an
ARTIFACTS section to CLI --help pointing to .lisa/CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
.lisa/ is now local workspace state, never committed. This prevents
process artifacts from polluting project history and enables multiple
engineers to run independent loops without merge conflicts.

- lisa init adds .lisa/ to .gitignore (removes .gitkeep creation)
- git.rs stages only configured source/test paths instead of git add -A
- Finalize generates LISA-REPORT.md audit artifact in project root
- Rollback resets .lisa/ state on filesystem instead of via git history
- Remove unused show_file_from_ref function

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Agents that produce no output for idle_timeout_secs (default 300s)
are now killed automatically. The NDJSON reader runs in a background
thread with channel-based recv_timeout, so the main thread can detect
idle agents and terminate them cleanly.

- agent.rs: channel-based NDJSON reading with idle timeout detection
- config.rs: add idle_timeout_secs to [limits] (default 300)
- prompt.rs: heartbeat guidance in context preamble tells agents to
  emit periodic echo commands during long-running operations
- Error context written to last-error.md on timeout for lisa resume

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Agents that hit the idle timeout are now retried up to max_agent_retries
(default 2) with a 30s backoff between attempts. Non-timeout errors
(exit code failures) are surfaced immediately without retry.

- agent.rs: add AgentError enum to distinguish IdleTimeout from Other
- config.rs: add max_agent_retries to [limits] (default 2)
- orchestrator.rs: retry loop in run_agent_with_tracking, only for
  IdleTimeout errors; logs attempt count and surfaces after exhaustion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The dynamically linked glibc binary fails on systems with older glibc.
Building with x86_64-unknown-linux-musl produces a fully statically
linked binary that runs on any Linux without glibc dependency.

- release.yml: switch Linux target to musl, install musl-tools
- CLAUDE.md: add portable release build instructions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The scoping prompt (PROMPT_scope.md) was 668 lines with ~450 lines of
inline artifact format specifications. This created fatigue risk for the
agent — late-prompt artifacts got less attention.

Extracted 7 artifact specs to prompts/scope/ (methodology, literature
survey, spiral plan, stack selection, validation, implementation plan,
DDV scenarios). These are compiled into the binary and written to
.lisa/prompts/scope/ before the scope agent runs, rendered with concrete
paths and config values. The agent reads each spec on demand when writing
that artifact.

The main prompt is now 279 lines (58% reduction) — a focused action plan
with workflow phases, rules, and small inline artifacts. The literature
survey template was also deduplicated (was in two places, now in one file).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@freol35241
freol35241 merged commit 4515d06 into main Apr 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant