Why
v0.2.0 proved the package can install and run locally, but the adoption path still deserves a repeatable clean-machine smoke that catches PATH, package asset, daemon, and first command regressions before release.
Scope
Turn the documented first-run path into a repeatable smoke check for installed dispatch.
Acceptance criteria
- Define the clean install path: install ->
dispatch doctor -> dispatch up -> one basic command -> dispatch down.
- Run the smoke against an installed artifact (
uv tool install outfitter-dispatch or a built wheel), not just in-tree uv run.
- Use isolated temp
DISPATCH_HOME/Codex state where possible and avoid touching live user sessions.
- Make expected warning states explicit when Codex auth or App Server access is unavailable.
- Add the smoke to CI/release checks if it can be reliable there; otherwise add a maintainer-run script with documented constraints.
- Update release docs so maintainers know exactly when and how to run it.
Notes
Keep live App Server usage cheap and conservative. If a full live Codex chat is required, use a tiny prompt, lesser model, minimal reasoning, and clearly bounded cleanup.
Why
v0.2.0proved the package can install and run locally, but the adoption path still deserves a repeatable clean-machine smoke that catches PATH, package asset, daemon, and first command regressions before release.Scope
Turn the documented first-run path into a repeatable smoke check for installed dispatch.
Acceptance criteria
dispatch doctor->dispatch up-> one basic command ->dispatch down.uv tool install outfitter-dispatchor a built wheel), not just in-treeuv run.DISPATCH_HOME/Codex state where possible and avoid touching live user sessions.Notes
Keep live App Server usage cheap and conservative. If a full live Codex chat is required, use a tiny prompt, lesser model, minimal reasoning, and clearly bounded cleanup.