You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: send X-API-Key from frontend, fix orphaned-table leak, resolve G1/G5
- Frontend never attached the X-API-Key header, so the app 401s on every
request the moment API_KEY is set per the deployment docs. apiFetch()
now reads VITE_API_KEY and sends it. Fixes#23.
- upload_te() only deleted the csv_files registry row on overwrite,
leaving the prior dynamic-mode table orphaned in csv_uploads. It now
calls _cleanup_prior_registry_entries(), which also had a latent bug:
its DROP TABLE was unqualified and would miss the table entirely since
the connection's search_path is never set to UPLOADS_SCHEMA. Both are
fixed, and the existing unit test (previously mock-only, checking that
*a* DROP ran but not that it was schema-qualified) now asserts the
schema qualification explicitly. Fixes#25.
- Restored the mismatched-type-list-length rejection in upload_dynamic()
that tests/test_service_loader.py already asserted but the code no
longer implemented — it was silently coercing every column to text
instead. Undetected because that test file had no pytest markers and
was silently excluded from `pytest -m "unit or regression or security
or snapshot"`, the documented/CI unit run. Added pytestmark so it now
runs (70 -> 72 tests in that suite). Fixes#29.
- GAP_ANALYSIS.md listed G1 and G5 as open, undecided gaps; both were
already resolved in code (verified via git log and direct inspection).
Moved to "Closed by this pass" with evidence.
Verified: `pytest tests/ -m "unit or regression or security or snapshot"`
72 passed. Frontend: `tsc --noEmit` clean, `vitest run` 95 passed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments