docs: update architecture for v0.2.2 fixes
Documents sponsor linking fix, backfill task, member name search split_part approach, search spaces fix, and eager loading fix. Authored-By: Jack Levy
This commit is contained in:
@@ -432,6 +432,7 @@ Auth header: `Authorization: Bearer <jwt>`
|
||||
| POST | `/trigger-poll` | Admin | Queue immediate Congress.gov poll. |
|
||||
| POST | `/trigger-member-sync` | Admin | Queue member sync. |
|
||||
| POST | `/trigger-trend-scores` | Admin | Queue trend score calculation. |
|
||||
| POST | `/backfill-sponsors` | Admin | Queue one-off task to populate `sponsor_id` on all bills where it is NULL. |
|
||||
| GET | `/task-status/{task_id}` | Admin | Celery task status and result. |
|
||||
|
||||
### `/api/health`
|
||||
@@ -479,6 +480,8 @@ Auth header: `Authorization: Bearer <jwt>`
|
||||
↳ Fetches bills updated since last poll (fromDateTime param)
|
||||
↳ Filters: only hr, s, hjres, sjres (legislation that can become law)
|
||||
↳ First run: seeds from 60 days back
|
||||
↳ New bills: fetches bill detail endpoint to get sponsor (list endpoint
|
||||
has no sponsor data), upserts Member, sets bill.sponsor_id
|
||||
↳ New bills → fetch_bill_documents.delay(bill_id)
|
||||
↳ Updated bills → fetch_bill_documents.delay(bill_id) if changed
|
||||
|
||||
@@ -727,6 +730,13 @@ Nginx uses `resolver 127.0.0.11 valid=10s` (Docker's internal DNS) so upstream c
|
||||
- AuthGuard with login/register pages
|
||||
- Analysis status dashboard (auto-refresh every 30s)
|
||||
|
||||
### v0.2.2 — Sponsor Linking & Search Fixes
|
||||
- **Root cause fixed:** Congress.gov list API does not return sponsor data — only the detail endpoint does. Poller now calls the detail endpoint for each new bill to get the sponsor and populate `bill.sponsor_id`
|
||||
- **Backfill task:** `backfill_sponsor_ids` Celery task + `/api/admin/backfill-sponsors` endpoint + "Backfill Sponsors" button in Admin UI — fixes existing bills with `NULL` sponsor_id (~10 req/sec, ~3 min for 1,600 bills)
|
||||
- **Member name search:** members are stored as "Last, First" in the `name` column; search now also matches "First Last" order using PostgreSQL `split_part()` — applied to both the Members page and global search
|
||||
- **Search spaces:** removed `.trim()` on search `onChange` handlers in Members and Bills pages that was eating spaces as you typed
|
||||
- **Member bills 500 error:** `get_member_bills` endpoint now eagerly loads `Bill.sponsor` via `selectinload` to prevent Pydantic MissingGreenlet error during serialization
|
||||
|
||||
### v0.2.0 — Citations
|
||||
- **Per-claim citations on AI briefs:** every key point and risk includes:
|
||||
- `citation` — section reference (e.g., "Section 301(a)(2)")
|
||||
|
||||
Reference in New Issue
Block a user