All notable changes to orbiter are documented here. Format follows Keep a Changelog; versioning follows Semantic Versioning.
0.1.0 — 2026-05-07
First public cut, prepared for the Xiaomi MiMo 100T Token Creator Incentive Program. Everything below ships with deterministic mock mode, so the entire pipeline is exercisable without a credential.
- 5-agent pipeline. Detective → Reproducer → Surgeon ⇄ Verifier (closed loop, max 3 iterations) → Reviewer.
- MiMo V2.5 client (
orbiter.llm.MiMoClient) over the OpenAI-compatible endpoint, covering the reasoner, multimodal, and TTS modalities; withtenacityretries, a per-run token-budget cap, and a one-shot JSON-repair pass onValidationError. - Strict cross-agent contracts. 13 Pydantic v2 models in
orbiter.schemas, all withextra="forbid", decoded viaresponse_format=json_schema, strict=True. - Atomic RunState persistence under
~/.orbiter/<run_id>.json(tmp + rename); recovery viaorbiter recover [<id>]. - Sandbox verification.
PytestSandboxsnapshots the working tree, applies the Surgeon's hunks, runs the Reproducer's regression test, then re-runs the project's existing suite. - Patch hygiene.
RepoView.apply_patchrejects any hunk whoseoriginaldoesn't match the target file exactly once; refuses paths outside the repo root. - Typer CLI.
orbiter run,recover,list,show,doctor. - Multimodal artefacts. Each accepted patch ships a markdown PR body, a 1280×720 PNG diagram (MiMo multimodal in live mode, PIL placeholder in mock mode), and a 60–90 s narrated WAV/MP3 (MiMo TTS in live mode, silent WAV in mock mode).
- Demo fixture.
examples/buggy_repo/with two planted bugs (timing-attack inauth.py, bare-except inworker.py) plus four baseline tests that must remain green after patching. - Quality gate. 29 pytest cases (24 unit + 1 e2e + 4 CLI smoke),
ruff clean, mypy
--strictclean on Python 3.11 and 3.12. - CI.
.github/workflows/ci.ymlruns lint + types + tests + an end-to-end mock-mode smoke;.github/workflows/orbiter-nightly.ymlself-scans this repo every night, automatically choosing live or mock mode based on whetherORBITER_MIMO_API_KEYis configured. - Demo recording.
scripts/demo.sh+scripts/record-demo.shproducedocs/img/demo.{cast,gif,mp4}anddocs/img/hero.pngin one shot, used as the README hero animation and as the02_demo.mp4proof artefact for the grant form. - Docs.
README.md,docs/architecture.md(deep-dive),docs/grant-submission.md(long-form rationale),docs/SUBMISSION_PASTE.md(1:1 form paste sheet),docs/demo-script.md(recording recipe).
- Only Python projects are supported. TypeScript is on the roadmap.
- Live mode requires an OpenAI-compatible MiMo endpoint; offline models behind a non-OpenAI shim aren't supported yet.
- Reviewer runs sequentially per finding; for very large find lists this could be parallelised.