Files
Sprimo/docs/MVP_ACCEPTANCE.md
2026-02-12 22:58:33 +08:00

1.4 KiB

MVP Acceptance Checklist

API

  • GET /v1/health returns version/build/uptime and active sprite pack.
  • GET /v1/state requires bearer token.
  • POST /v1/command requires bearer token and returns 202 for valid command.
  • POST /v1/commands accepts batch in-order.
  • malformed JSON returns 400, server remains alive.

Command Pipeline

  • duplicate command IDs are ignored within dedupe window.
  • SetState updates state and default animation mapping.
  • transient state with ttl_ms returns to durable state.
  • SetTransform persists x/y/scale.
  • SetFlags persists click-through/always-on-top/visible.

Config

  • first run bootstraps config.toml.
  • auth_token generated and reused across restarts.

Sprite

  • selected sprite pack loads when present.
  • missing selected pack falls back to default.
  • runtime SetSpritePack successfully switches pack without restart.
  • failed runtime SetSpritePack keeps current visuals and reports error in state snapshot.

Platform

  • capability flags are exposed in /v1/health.
  • 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.