v0.13.1
Changelog
All notable changes documented here. The format follows
Keep a Changelog and the project follows
Semantic Versioning.
0.13.1 - 2026-07-15
Fixed
- (deps) Restore published framework version pins + bump time (#144)
0.13.0 - 2026-07-15
Added
- Adopt the simplified service topology (#142) [breaking]
Refactored
- (api) Consume stable v1 and preview v2 (#141)
0.12.0 - 2026-07-14
Added
- (update) Redesign artifact progress (#138)
0.11.1 - 2026-07-13
Fixed
- (tui) Polish simulation interaction (#134)
0.11.0 - 2026-07-13
Added
- (simulation) Finish clock and diagnostics UX (#131)
0.10.0 - 2026-07-13
Added
- (cli-ux) Event-driven session core (follow-up refactor) (#128)
0.9.0 - 2026-07-13
Added
- (simulate) Serve the robot spawn set over the bus, drop spawn from --config (#120)
- (simulate) Observed-readiness barrier + failure propagation (#122)
- (cli-ux) Branded operational console - theme, TUI, staged startup, live telemetry (#125)
Fixed
- (simulate) Make live Webots simulation work end to end (#116)
- (simulate) Clean Webots shutdown, native IMPORTABLE, in-project base pins (#118)
- (simulate) Fail-fast on terminal graph failure; use framework spawn contracts; atomic state write (#123)
- (run/deploy) Don't pass PHOXAL_CONFIG to configless tools; give telemetry PHOXAL_CONNECT (#126)
Refactored
- (artifacts) Version-atomic store, self-cleaning lock, retire target-independent (#119)
Tests
- (output-mode) Derive cli_version in json baseline from CARGO_PKG_VERSION (#127)
0.8.1 - 2026-07-11
Fixed
- (resolver) Component_assets optional for driverless components (#113)
- (resolver) Read official component-driver binary as phoxal-component- (#115)
0.8.0 - 2026-07-11
Added
- (deploy) Phoxal-deploy group grant instead of per-user sudoers (#110) [breaking]
- (check) Validate user-runtime config against its real emitted schema (W7) [hold: needs slotted catalog] (#109)
Refactored
- (store) Filesystem-safe .phoxal package dirs (phoxal-x, not phoxal%2Fx) (#111)
0.7.0 - 2026-07-11
Added
- Repoint joypad tool catalog to the framework release train (#59)
- (cli) Build against framework 0.11.0 (#61)
- (cli) Build against framework 0.12.0 (robot.yaml schema:v0 + api_version) (#62)
- (cli) Add the
phoxal checkgraph validation engine (pure core) (#63) - (cli) Migrate runtime resolution to api-version + channel (#64) [breaking]
- (cli) Add the
phoxal checkcommand (emit-apis graph validation) (#65) - (cli) Add
phoxal runtime add(scaffold a user runtime) (#66) - (cli) Add
phoxal runtime run(host-native user runtime) + bump to phoxal 0.15 (#67) - (cli) Check user runtimes by building them + running emit-apis (#69)
- (cli) Check component drivers from source (git/path) in
phoxal check(#70) - (cli) Add
phoxal deploy build+ migrate compose to the PHOXAL_* launch env (#71) - (cli) Catalog all 18 official runtimes on a single y2026_1 (#72)
- Reconcile CLI to the rewrite spec + doc polish (plan-vs-code audit) (#73)
- (16) Per-contract schema_id check + 0.20 catch-up (phoxal-cli) (#76)
- (06,16) Catalog consumption, D5 resolution, lifecycle diagnostics (#80)
- (18) The typed LaunchPlan + the shared PHOXAL_* env encoder (#81)
- (04) The host-native supervisor - run engine, board, bus logs (#82)
- (10) Simulate mounts the supervisor with contract substitution (#83)
- (19) --watch hot reload + path overrides (#84)
- (03) The single deploy verb - probe, cross-build, render, sync, health (#85)
- (11) Catalog activation - tools/simulators via catalog, stopgaps removed (#86)
- (12) --message-format json for version and self upgrade (#88)
- (13) Check --service self-sufficient on a cold cache (#89)
- (simulate) Launch Webots with a staged world and supervisor-spawned robots (#91)
- (simulate) Adapt to the relaxed check + stage/launch Webots correctly (#92)
- (cli) Cut over to the five-root-key grammar + package identity (Phase 7 Band B) (#93) [breaking]
- (cli) Catalog-native fetch for component assets + drivers (Phase 7) (#94) [breaking]
- (cli) Add --target to check and simulate for cross-target validation (#95)
- Rework off emit-apis onto the new phoxal-api model (#103) [breaking]
- (check) Coherence gate at check/deploy/run/simulate (W6) (#105)
- (self) Update-available banner (W8) (#106)
- (deploy) Robot-side download + transactional remote release (W9) (#107)
Fixed
- (cli) Drop driver-ddsm115 from the platform-runtime catalog (#68)
- (03) Deploy hardening from the first live robot E2E (Jetson Orin) (#87)
Other
- Bump to phoxal 0.19 + scaffold uses phoxal_api (plan #00) (#74)
- (20) Remove robot new / service add scaffolding commands until v1 (#90)
- Retrigger release-prep after shared-workflow pipefail fix
Refactored
- Remove the lockfile - resolve live, pin via the deploy bundle (#75)
- (05,02) CLI uses shared phoxal::check core + participant_class (#77)
- (15) Retire the runtime name - exact kinds, service verb, 0.21 scaffold (#78)
- Remove Docker/Compose/Balena/GHCR paths from phoxal-cli (#79)
- (catalog) Read the catalog from the
stablerelease, not the git ref (#96) [breaking] - (simulate) Stage under ~/.phoxal/run, symlink controllers+meshes, opt-in joypad (#97)
- (simulate) Drop substitution checking, keep the sim board display (phoxal 0.28) (#98)
- (plan) One LaunchPlan descriptor - LaunchMode::Webots{world}, drop SimulatePlan (WS3) (#99)
- (catalog) Consume phoxal 0.29 lean phoxal::catalog, delete the schema mirror + sidecar (WS1b) (#100) [breaking]
- (cache) Flat tarball store + local manifest + generalize git to any pin (WS2) (#101) [breaking]
- Adapt to phoxal 0.30 - absorb check strip + manifest v0 rename (WS5 downstream) (#102) [breaking]
- Transition phoxal-cli onto phoxal.catalog/v0 (W1-W5) (#104) [breaking]
- Remove the phoxal init command and doctor's gitignore check (#108) [breaking]
0.6.0 - 2026-06-16
Added
- (cli) Lock and recipe-build user runtimes (#55)
- (cli) Provision Webots simulator binaries on live simulate (#57)
Fixed
- (cli) Widen supported runtime train to any 0.x≥0.8 (#48)
- (cli) Validate hard-fails user-runtime framework mismatch (#49)
- (cli) Validate platform-runtime override version against releases (#51)
- (cli) Simulate no longer silently writes phoxal.lock (#50)
Refactored
- (cli) Derive platform-runtime image repo from name (#52)
- (cli) Split simulate.rs into docker_stack + local_build modules (#53)
Style
- (cli) Apply rustfmt to resolver + resolver_basic test (#47)
0.5.1 - 2026-06-16
Added
- (cli) Consume the Webots simulator from the framework release train (#45)
Fixed
- (cli) Make --version and
versionprint the same string (#43)
0.5.0 - 2026-06-13
Added
- Self upgrade, version commands, and a phoxal.com installer (#38)
Refactored
0.4.0 - 2026-06-12
Added
- Decouple CLI version from robot.yaml and pin scaffolds to the runtime train (#34) [breaking]
0.3.0 - 2026-06-09
Added
- (resolver) Stage git components from a repository subdirectory (#29)
CI
Refactored
- Depend on single
phoxalcrate (#31)
0.2.2 - 2026-06-07
CI
- Gate release on the release-prep branch, not the PR title (#25)
Fixed
- Make the lockfile-mismatch error in simulate actionable (#26)
0.2.1 - 2026-06-07
CI
- Adopt shared reusable release workflows (#20)
- Enforce Conventional Commit PR titles (#21)
- Repoint reusable workflows to public phoxal/.github (#22)
Fixed
- Clarify rustup install hint in doctor (#23)
0.2.0 - 2026-06-07
Added
- (compose) Hand-write router service on upstream zenoh + add local_zenoh module
- (simulate) Two-stack bring-up via phoxal-link network + compose --wait readiness
- (simulate) World becomes CLI arg; caches move to ~/.phoxal/
- (gate) Add live split-recovery gate for robot-v1 simulate default (#11)
CI
- (release) Explicit, retry-safe release tag handling (#19)
Documentation
- (README) Document simulate + host layout under ~/.phoxal/
Fixed
- (resolver) Never enter fake image digests into simulate or phoxal.lock (#10)
Other
- Adopt phoxal framework renames (infra/api/core/runtime/validation)
- Restore framework branch pin to main after restructure merge
- (docker) Point OCI image.source label at phoxal/phoxal-cli
0.1.2 - 2026-05-28
Fixed
- (catalog) Bump simulator_webots tools to v0.2.0
0.1.1 - 2026-05-28
Fixed
- (catalog) Bump rerun_proxy + joypad to 0.1.0 with phoxal- prefixed assets
0.1.0 - 2026-05-28
Added
- (simulate) Webots staging pipeline + multi-arch + compose name + install.sh
CI
- (release) Replace release-plz with homegrown release-prep PR + matrix release
- (release) Keep release-prep body out of PR diff
- (release-prep) Skip when Cargo.toml is ahead of last tag (release in flight); cliff ignores 'release:' commits
- (release) Drop x86_64-apple-darwin (Intel Mac); Apple Silicon only
Fixed
- (release) Create tag via gh release --target (GITHUB_TOKEN can't git push workflow-touching commits)
0.0.0-dev - 2026-05-28
Added
- Integrate ORB-SLAM3 backend with robot-localize runtime
- (utils-robot) Single Robot struct + new robot.yaml schema
- (phoxal-cli) Resolver + v1 commands (validate, simulate, doctor, create)
- (phoxal-cli) Add
updatesubcommand andsimulate --dry-runflag - (cli) Offline by default; --pin-digests opts into Docker resolution
- (phoxal-cli) Fetch framework releases over HTTP; cache 1h; drop hardcoded list
CI
- Wire release-plz + cargo-dist binary release
- (release) Cargo-dist owns the GitHub Release; release-plz only tags
Other
- (license) Switch workspace to AGPL-3.0-only
- Bootstrap phoxal-cli workspace
- Ignore target/ and editor cruft
- (deps) Rewire engine/runtimes git deps to phoxal/framework
- (deps) Track framework renames (drop utils- prefix)
- (version) Workspace → 0.0.0-dev (align with framework)
- Release v0.0.0-dev
Refactored
- (workspace) Carve members into future-repo subdirs
- (engine) Fold phoxal-utils-conventions into phoxal-engine
- (api) Introduce pub mod v1 in every phoxal-*-api crate
- (phoxal-cli) Delete orphan command modules + phoxal-cli-webots
Tests
- Inline plan_robot.yaml fixture so CI doesn't need sibling framework checkout