trading/services/api_gateway
Viktor Barzin 7b81980c66 fix(meet-kevin): API smoke-test bugs from Task 17 QA
Three issues caught during end-to-end manual QA against docker-compose:

1. SAEnum field columns serialized to Python enum NAMES ('DISCOVERED')
   but the DB enum had VALUES ('discovered'). Added `values_callable`
   to all 5 SAEnum() declarations in shared/models/meet_kevin.py so they
   emit values, matching the migration's enum literals.

2. /dashboard's "last 7 days" / "last 14 days" filters used
   `func.cast("7 days", type_=None)` which produced NullType DDL.
   Replaced with `text("now() - interval '7 days'")`.

3. /dashboard's outlook trend query repeated `func.date_trunc("day", col)`
   in SELECT, GROUP BY and ORDER BY — Postgres treats each as a separate
   parameterized expression. Hoisted into a single `day_trunc` variable
   so all three clauses reference the same SQL fragment.

All 11 /api/meet-kevin/* endpoints now return valid JSON against a
docker-compose Postgres seeded with one analyzed video + NVDA mention.
2026-05-21 20:15:08 +00:00
..
auth fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
routes fix(meet-kevin): API smoke-test bugs from Task 17 QA 2026-05-21 20:15:08 +00:00
tasks fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
__init__.py feat: API gateway with passkey (WebAuthn) authentication 2026-02-22 15:53:48 +00:00
config.py fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
main.py feat(api): /api/meet-kevin/* routes (11 endpoints) 2026-05-21 19:53:16 +00:00
ws.py feat: API gateway trading endpoints, controls, backtest, WebSocket 2026-02-22 15:54:20 +00:00