feat: v0.3.0 harness selection (two-axis depth+harnesses) - #5
Conversation
Approved design for v0.3.0: split init into depth + harnesses axes, let users pick any combination of claude / codex / openclaw / hermes, introduce .solo-mise/config.json as the source of truth, keep legacy --profile working through v0.3.0 with deprecation note, remove in v0.4.0. Tracks issue #4.
20-task implementation plan derived from the v0.3.0 design spec. Phases: foundation (Selection model, config.json, profile shim), template manifests (depth/harnesses/includes), install engine, CLI surface (flags + deprecation shim + interactive prompt), surrounding tools (doctor, ingester, reconfigure), and ship (docs, CHANGELOG, CI matrix, release).
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (36)
📝 WalkthroughWalkthroughThis release introduces a two-axis harness selection model replacing the single ChangesTwo-axis harness selection model
Selection-based installation and target management
CLI commands and interactive selection
Runtime integration: doctor and ingester
Version, CI, and documentation
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
v0.3.0 replaces the single-pick profile model with a two-axis selection so users can pick any combination of Claude Code, Codex, OpenClaw, and Hermes. Closes #4.
Three things change:
solo-mise initbecomes interactive by default. No flags drops you into a checkbox-style picker (harnesses, depth, includes). Pass--depth/--harnesses/--includeto skip the prompt for CI/scripts..codex/memory-handoffs/. The ingester scans every configured writer inbox..solo-mise/config.jsonis the per-target source of truth.doctor,ingest, and the newreconfiguresubcommand all read it.--profile <x>still works but prints a stderr deprecation note; will be removed in v0.4.0.Implementation
Built task-by-task from
docs/plans/2026-05-16-v0.3.0-harness-selection.md(18 commits in this PR). Design spec atdocs/specs/2026-05-16-v0.3.0-harness-selection-design.md.Phases:
Selectionmodel +Configschema +profile_to_selectionshimTEMPLATE.mdis new on disk)install_selectioncomposes manifests, writes config, manages gitignore--depth/--harnesses/--owner/--includeflags +--profiledeprecation shim + interactive prompt +reconfiguresubcommandTest plan
pytest -q: 115 passed (50 prior + 65 new)reconfigure --prunesmoke: claude+codex install ->reconfigure --harnesses claude --prune->.codex/removed, config updatedinitwith stdin redirected from /dev/null returns clean error pointing at flagspip install solo-mise==0.3.0(using rotated PyPI token)Migration
--profile repo--depth repo --harnesses claude--profile workspace--depth workspace --harnesses claude--profile openclaw--depth workspace --harnesses claude,openclaw--profile hermes--depth workspace --harnesses claude,hermes--profile generic--depth workspace --harnesses none--profile publisher--depth repo --harnesses claude --include publisherThe deprecation warning includes the exact equivalent flags for each invocation.
Summary by CodeRabbit
Release Notes v0.3.0
New Features
solo-mise initfor selecting harnesses, depth, and add-ons--depth(repo/workspace) +--harnesses(claude/codex/openclaw/hermes)reconfigurecommand with optional harness pruningDeprecations
--profileflag deprecated; use--depthand--harnessesflags insteadDocumentation