Model Peer v0.3.0
Repository setup and orchestration robustness. model-peer init closes the gap between installing the tool and an agent ever using it; the review path is hardened against the failure modes that cost a whole run.
Install
curl -fsSL https://raw.githubusercontent.com/makedirectory/ModelPeer/v0.3.0/install.sh | bashDocs: https://modelpeer.app
Set up a repository
Installing Model Peer globally gives you a command. It does not give the coding agent in your repository a habit. One command per project fixes that:
cd ~/code/your-project
model-peer init created AGENTS.md
linked CLAUDE.md -> AGENTS.md
linked GEMINI.md -> AGENTS.md
created .claude/commands/peer-review.md (/peer-review)
--split writes one tailored file per CLI instead, each addressing that model directly and naming its two peers, so each harness loads only its own: .claude/rules/cross-model-consultation.md, AGENTS.md, GEMINI.md.
These are the paths each CLI genuinely loads, verified against the shipping binaries. .codex/rules/*.md and .gemini/global_rules.md look tidy and are never read, so init will not create them.
Rules live between <!-- BEGIN MODEL PEER RULES --> markers. Content outside them is never rewritten, so init appends below an existing AGENTS.md, is safe to re-run, and refreshes in place after an upgrade. model-peer rules check exits 1 on a missing or stale block, for CI.
Review robustness
- Bounded consultations.
--timeout(600s default,0disables,MODEL_PEER_TIMEOUT), a 30s stderr heartbeat, exit124on timeout. - Hangs actually die. On timeout the peer's whole process group is signalled. Killing only the direct child left vendor helper processes holding the inherited stdout, so the downstream pipeline never saw EOF and the hang survived the kill.
- Partial panels. A reviewer that times out, fails, or exits
0with zero output is dropped and named. Synthesis proceeds while at least two reviewers produced a real review and is refused below that. The synthesizer is told which reviewers are missing, so a partial panel is never reported as complete.--strictrestores refuse-on-any-failure.
Fixed
- Untracked files were invisible to reviewers.
git diff HEADcannot see them, andgit status --shortcollapses a new directory to a single?? src/line — an entire new package reached reviewers as one path with no filenames and no contents. Context now includes an add-diff for every untracked, non-ignored file. - Gemini failed silently in untrusted directories. Its folder-trust gate refuses to work headlessly and exits
0having produced nothing, which a panel read as "this reviewer found no issues". Model Peer now passes--skip-trust, feature-detected fromgemini --help. This does not widen the boundary. - An empty review counted as a clean review.
Docs
New pages: In your workflow and Troubleshooting. The site moved to its own domain, https://modelpeer.app.
Full notes in CHANGELOG.md.
Full Changelog: v0.2.0...v0.3.0