Commissioning shell repository for Anolis.
Repository structure:
anolis_workbench/core— pure domain library (projects, renderer, launcher, exporter, validators, paths)anolis_workbench/server— unified HTTP server (Compose + Commission + Operate/v0/*proxy)anolis_workbench/cli— CLI entry points (anolis-workbench,anolis-package,anolis-validate)
Developer references:
- Contributing guide:
CONTRIBUTING.md - Changelog:
CHANGELOG.md
Desktop app (recommended for commissioning):
Download the latest Tauri desktop installer from Releases. Run the installer — the desktop wrapper bundles the Python runtime and starts automatically.
CLI / server via PyPI:
pip install anolis-workbench
anolis-workbench # starts the commissioning server
anolis-package <project> # build a handoff package
anolis-validate <pkg> # validate a handoff packageRequires Python 3.11+. Open http://127.0.0.1:3010 in a browser after starting.
uv sync --locked --extra dev
./start.shOr via module entry point:
python -m anolis_workbench.server.appWindows launcher: start.cmd.
Build handoff package:
anolis-package <project-name> [output.anpkg]Validate handoff package:
anolis-validate <package.anpkg>
# or
python contracts/validate-handoff-packages.py <package.anpkg>cd frontend
npm run test:unit:coverage
npm run test:components:coverageThe Vitest lanes enforce coverage thresholds for frontend/src/lib/*.
A native Tauri wrapper now lives under desktop/.
Runtime model:
- Tauri launches a frozen Python sidecar.
- Sidecar serves Workbench at
http://127.0.0.1:3010. - WebView consumes the same localhost HTTP/SSE surface as browser mode.
Important system requirement:
- Port
3010is reserved by the desktop wrapper. If another process is bound to that port, desktop startup fails with a native error dialog.
Desktop workflows/docs:
- Desktop release workflow:
.github/workflows/desktop-release.yml - Desktop wrapper source:
desktop/src-tauri/ - Desktop handoff guide:
docs/release-desktop-handoff.md
- Runtime HTTP snapshot:
contracts/runtime-http.openapi.v0.yaml - Workbench API OpenAPI:
contracts/workbench-api.openapi.v1.yaml - Handoff/control baselines:
docs/contracts/*.md - Runtime config schema:
anolis_workbench/schemas/runtime-config.schema.json - Machine profile schema:
anolis_workbench/schemas/machine-profile.schema.json
- Commissioning handoff runbook:
docs/commissioning-handoff-runbook.md - Handoff package v1 format:
docs/contracts/handoff-package-v1.md - PyPI/OIDC release handoff:
docs/release-pypi-handoff.md - Desktop release handoff:
docs/release-desktop-handoff.md