Phase 1 release candidate (v0.1.0-rc.1)
Pre-release
Pre-release
Phase 1 release candidate. All mocked Phase-1-done acceptance
criteria from TASK.md §"Required for Phase 1 done" are green:
pnpm install && pnpm buildexits 0 (7 packages).pnpm testexits 0 (284 unit tests, 1 documented skip).pnpm test:integrationexits 0 (25 end-to-end tests against the
live Docker Postgres + Redis with nock-intercepted provider HTTP).docker compose up -d && pnpm db:migrate && pnpm db:bootstrap
applies the schema and seeds the admin api_key end-to-end against
Postgres 15.bash scripts/smoke/mocked/run-all.shPASSes all 10 endpoint
scenarios from TASK.md §"Required for Phase 1 done" item 4, plus a
bonus/verifystep.- README has a copy-paste runnable quick start (clone → docker compose
→ migrate → bootstrap → smoke).
Known limitations carried into Phase 2
- Race-replay of
/settlemay surface a payment inpendingstate.
Exactly one row and one adapter HTTP call still happen (verified by
the integrationPromise.alltest); clients shouldGET /payments/:idto see the terminal state. Phase 2 will hold the
Redis lock through finalization. pnpm db:bootstrap --forcerotation updates the on-disk hash; the
running server keeps the prior hash in memory until restart.
Documented in README; Phase 2 will add SIGHUP-style rotation.- One vitest case (
services/orchestrator/src/health-check.test.ts:177)
isit.skipped because the 175ms wait + 50ms tick assertion is
flaky under parallel test load. Phase 2 will rewrite with
vi.useFakeTimers().
Release gate (NOT in this RC)
- Real-network smoke against a deployed
cosmos-payCosmos testnet
facilitator. - Real-network smoke against Coinbase CDP x402 with a real API key.
Both are documented in TASK.md §"Required for v0.1.0 release tag".
The full v0.1.0 tag depends on at least item #7 (cosmos-pay
testnet) passing.