Adds 26 integration tests in handlers::integration_tests using a real
NativeRepository backed by a NamedTempFile SQLite database. Each test
gets an isolated database via test_router(). tempfile added to
[dev-dependencies]. Closes tickets: 5f5ba0, 9b581f, 789d0f, aa0eab,
f9f448, 4a4c26, 93f1b6, fae330, 8c87db, 893eba, e8f5cf, ce1e4f.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces the three separate sub-crates (api/, ui/, tests/) with a single
Cargo crate at the quotesdb/ root. Shared code lives in src/lib.rs; the
api and ui are multi-binary targets; integration tests use the standard
Cargo tests/ layout. Trunk files moved to project root with data-bin="ui".
Closes ticket b38032.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Evaluated all quotesdb tickets and assigned each to the correct sub-project
dependency (api/f3dc74, ui/c3503b, qa/ce1e4f, infra/25c413). Also wired
inter-ticket dependencies to enforce correct implementation order within each
domain and cross-domain (e.g. QA test suites depend on the API handlers they
exercise). Validated with `nbd graph --json` — 78 nodes, 200 edges, no cycles.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds 84 tickets across 4 sub-domains with a full dependency graph:
- quotesdb/api (f3dc74): 15 work tickets + 6 TRIAGE tickets
Covers Cargo.toml, Workers entry point, DB migrations, all 7 endpoints,
auth code gen, tag handling, error envelope, unit tests, and docs.
- quotesdb/ui (c3503b): 15 work tickets + 5 TRIAGE tickets
Covers Yew/Wasm setup, Trunk config, app shell, API client, 5 pages,
shared components (QuoteCard, auth modal, pagination, tag filter), and docs.
- quotesdb/qa (ce1e4f): 12 work tickets + 4 TRIAGE tickets
Covers test harness, one test suite per endpoint, router ordering,
tag operations, and README.
- quotesdb/infra (25c413): 10 work tickets + 6 TRIAGE tickets
Covers OpenTofu setup, D1 database, Worker script + route, Pages project,
custom domain (quotes.elijah.run), migration workflow, secrets, and README.
Dependency graph:
- Root ticket (ec118c) blocked on all 4 sub-project tickets
- Sub-project tickets blocked on their leaf work tickets
- Work tickets have intra-domain sequential deps (e.g. Cargo.toml → DB → handlers)
- QA test harness has a cross-domain dep on the completed api sub-project
- All 21 TRIAGE tickets are immediately unblocked as the highest-priority starting work
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>