Files
Sprimo/docs/MVP_ACCEPTANCE.md
2026-02-13 11:22:46 +08:00

42 lines
1.5 KiB
Markdown

# MVP Acceptance Checklist
## API
- [x] `GET /v1/health` returns version/build/uptime and active sprite pack.
- [x] `GET /v1/state` requires bearer token.
- [x] `POST /v1/command` requires bearer token and returns `202` for valid command.
- [x] `POST /v1/commands` accepts batch in-order.
- [x] malformed JSON returns `400`, server remains alive.
## Command Pipeline
- [x] duplicate command IDs are ignored within dedupe window.
- [x] `SetState` updates state and default animation mapping.
- [x] transient state with `ttl_ms` returns to durable state.
- [x] `SetTransform` persists x/y/scale.
- [x] `SetFlags` persists always-on-top/visible and ignores deprecated click-through.
## Config
- [x] first run bootstraps `config.toml`.
- [x] `auth_token` generated and reused across restarts.
## Sprite
- [x] selected sprite pack loads when present.
- [x] missing selected pack falls back to `default`.
- [x] runtime `SetSpritePack` successfully switches pack without restart.
- [x] failed runtime `SetSpritePack` keeps current visuals and reports error in state snapshot.
## Platform
- [x] capability flags are exposed in `/v1/health`.
- [x] non-supported platform operations do not crash the process.
## Evidence
- `cargo test --workspace` passes.
- API auth coverage exists in `crates/sprimo-api/src/lib.rs` tests.
- Config bootstrap and roundtrip coverage exists in `crates/sprimo-config/src/lib.rs` tests.
- Sprite fallback coverage exists in `crates/sprimo-sprite/src/lib.rs` tests.