Lavra v0.7.4 Release Notes
Release date: 2026-04-07
One command rename, one new configuration option for /lavra-work, and a batch of installer and memory hook fixes. Thanks to xanharris for two PRs and to AIDan for reporting the OpenCode installer issues.
What’s New
/project-setup Renamed to /lavra-setup
The /project-setup command is now /lavra-setup. The config file it writes (.lavra/config/project-setup.md) is unchanged — only the command name changed. Update any notes or muscle memory accordingly.
/lavra-review Gate in /lavra-work
/lavra-review was already mandatory in /lavra-work, but there was nothing stopping the agent from reasoning past it. That’s fixed.
Before leaving the review phase, the agent must now print a checklist to the conversation — and the /lavra-review box requires pasting the first line of actual Skill output. You can’t check it without running it.
This applies to both single-bead work (Phase 3) and multi-bead waves (after each wave). If you use review_scope: "targeted", skips are still allowed but require a stated reason.
/lavra-work Agent Colors
All 30 agents now have a color: field in their frontmatter. In coding agents that support it (Claude Code, Cursor), agents show up color-coded by role: red for security, orange for data/deployment safety, green for goal verification, blue for architecture, pink for language-specific reviewers, and so on. No behavior change — cosmetic only.
review_scope Config for /lavra-work
By default, /lavra-work runs /lavra-review on every change. That’s the right default for most projects---multi-agent reviews consistently surface many important things that would otherwise go unnoticed. But review does have a cost in time and tokens, and on large, fast-moving codebases it adds significant time per bead, and not every change warrants full multi-agent review.
So I added a configuration option to control how much reviewing happens.
The new workflow.review_scope option in .lavra/config/lavra.json gives you control over when /lavra-review fires:
{
"workflow": {
"review_scope": "targeted"
}
}
"full"(default):/lavra-reviewruns on every bead and every wave. Nothing ships without multi-agent review."targeted":/lavra-reviewruns only on beads that are P0/P1 priority, or whose title or description contains architecture or security terms. Everything else gets a self-review only.
If you’re not sure which to use, leave it unset. "full" is the default and the safer option. "targeted" is for teams that want to move faster on low-risk work without skipping review entirely on the things that matter.
Bug Fixes
Claude Installer Silently Exiting Mid-Install (#6, xanharris)
The installer appeared to succeed but left users with zero commands, agents, or skills. Fixed.
Knowledge Entries Corrupted When Chaining Commands (#7, xanharris)
When multiple commands were chained in one Bash call, memory-capture.sh would produce corrupted entries — bead IDs containing shell pipelines, and comment bodies from multiple commands merged into one blob. Fixed by scoping extraction to the first matching line.
OpenCode Installer (Thanks AIDan)
Several issues that caused the OpenCode installer to fail or produce a broken setup: missing dependency checks, incorrect script ordering, model selection output being swallowed, and a hardcoded model allowlist that rejected valid models. All fixed.
Memory Convention Override for Beads Projects
If you use beads alongside Lavra, bd prime instructs agents to use bd remember for persistent knowledge. That bypasses knowledge.jsonl entirely, so those entries never surface via auto-recall.sh.
The session-start hook now tells agents to use bd comments add {BEAD_ID} "LEARNED: ..." instead. The note appears in both the first-run orientation message and in the standard recall output, so it lands before any command is invoked.
Knowledge Base
Fixed a SQL injection vector in kb_search and a gap where content wasn’t being sanitized before writing to knowledge.jsonl.
import-plan.sh
Plan import was silently losing track of the previous bead ID between steps. Fixed.
npx/bunx Installer
Fixed a double scope prompt and duplicate banner that appeared during npx installs.
Fixed the Cortex Code installer crashing with mkdir: illegal option -- - when invoked via bunx — the --no-banner flag was being interpreted as a target directory path. Fixed the interactive installer showing (~/.claude/) as the global path when installing for Cortex, OpenCode, or Gemini — it now shows the correct platform-specific path.
Upgrading
Re-run the installer:
bunx @lavralabs/lavra@latest
No breaking changes to bead data, config files, or existing workflows.