···1313- [x] Write a production storage decision record with workload and operational tradeoffs, using `docs/adr/pg.md` and `docs/adr/turso.md`
1414- [x] Define the migration path from the experimental local setup to the chosen production backend
1515- [x] Add a durable read-through indexing job queue for records fetched through the API
1616-- [x] Add API smoke tests for `healthz`, `readyz`, `search`, `documents`, indexing, and activity in `scripts/api/`
1616+- [x] Add API smoke tests for `healthz`, `readyz`, `search`, `documents`, indexing, and activity in `packages/scripts/api/`
1717 - desertthunder.dev DID: `did:plc:xg2vq45muivyy3xwatcehspu`
1818 - Twisted AT URI: `at://did:plc:xg2vq45muivyy3xwatcehspu/sh.tangled.repo/3mho6hukiei22`
1919 - Profile AT URI: `at://did:plc:xg2vq45muivyy3xwatcehspu/sh.tangled.actor.profile/self`
+3-3
packages/api/README.md
···2121## API Smoke Tests
22222323Smoke checks for the API surface live in a uv-managed Python project at
2424-`scripts/api/`.
2424+`packages/scripts/api/`.
25252626From the repo root:
27272828```sh
2929-uv run --project scripts/api twister-api-smoke
2929+uv run --project packages/scripts/api twister-api-smoke
3030```
31313232Optional base URL override:
33333434```sh
3535TWISTER_API_BASE_URL=http://localhost:8080 \
3636- uv run --project scripts/api twister-api-smoke
3636+ uv run --project packages/scripts/api twister-api-smoke
3737```
38383939## Experimental Local DB Operations