2.5 KiB
2.5 KiB
Milestone 1 contract
User-selected scope: multi-character assets and reference/estimated valuation in both assistant and conventional views; first EVE login creates an application user; single-host Docker Compose deployment.
Acceptance criteria
- Shared deterministic service aggregates only the authenticated application user's connected characters; browser and assistant do not duplicate valuation logic.
- An unauthenticated request returns a typed authorization-required state and a connect action. Original request can resume after connecting/synchronizing. Missing scopes and incomplete/stale synchronization are not silently treated as empty assets.
- EVE OAuth secrets/refresh tokens never enter browser-visible queries, serialization or logs. Multiple-character connection is explicit and cannot silently transfer a character between application users.
- Reference prices carry source and timestamps. Missing/unpriceable items and partial character coverage are explicit. Estimate is not Jita price, a firm sale offer, immediate liquidation, or an assertion of liquidity.
- The initial scaffolding phase consumed only tiny representative fixtures. The subsequently authorized live-data phase adds explicit full-archive adapters and production-profile validation. Normal queries read normalized indexed SQLite, never runtime fixture/raw archive JSON.
- Compiler makes a new artifact, validates it, atomically publishes it and preserves a rollback target. Independent Reference Data/Hoboleaks source state survives individual failures. Invalid imports cannot replace active data.
- Central ESI transport controls compatibility date, pagination, conditional cache, retry/rate limits and redacted observability. Sync does not replace a complete snapshot with partially fetched pages.
- JEV makes typed semantic routing judgments only. Permissions, capabilities, lookups, arithmetic and execution are deterministic code.
- Tests run offline on Bun. Production build is checked. Live credentials and full archive compatibility are separate validation gates and must not be represented as completed if not exercised.
Explicitly not delivered in milestone 1
Full manufacturing optimization, blueprint/skills synchronization, wallets, market-depth ingestion, order-book-based liquidation, arbitrage, capital route search, definitive structure docking authorization, full general-purpose EVE conversational answering, and a production-certified full-archive ingestion pipeline.
Interfaces and domain models should make these incremental additions possible, not pretend they already work.