Investor Flow Build
2c7e7a0786
fix-backend-review-findings (ornith-35): oauth empty-token guard, session-secret startup assertion, OAuth email-link test
...
Fixes from ornith's backend code review, implemented by ornith-35 (cross-review by
qwopus35b pending). 129/129 tests green.
2026-06-29 23:33:02 -04:00
Investor Flow Build
a303720c35
slice 5b (omlx/ornith-35): market.candles + market.indicators endpoints
...
Chart Lab data path: market.candles (cached OHLCV by timeframe) + market.indicators
(EMA/RSI/relativeVolume via analysis/indicators.ts). By ornith-35 (local, ~75s);
reviewed by orchestrator (128/128 tests, no regression). Conflict-free: impl=ornith-35,
reviewer=orchestrator.
2026-06-29 22:57:34 -04:00
Investor Flow Build
e6b7219dd2
slice 4d (omlx/ornith-35): backfill integration test (first-track 4 keys -> drain -> candles+adjustments; rerun no-op)
...
Slice 4 (yfinance-backfill-permanent-ohlcv) COMPLETE: parseAdjustments + adjustments
kind + candles 10y backfill + adjustments fetchOne + subscribe queues backfill. 102/102
tests green. Implemented by local ornith-35, reviewed by orchestrator.
2026-06-29 22:09:12 -04:00
Investor Flow Build
2a99e008e3
slice 4c (omlx/ornith-35): YFinanceAdapter candles 10y backfill + adjustments fetchOne
2026-06-29 21:58:39 -04:00
Investor Flow Build
796d7b58b3
slice 4b (omlx/ornith-35): CacheRepository adjustments kind + subscribe queues backfill keys
...
Local ornith-35 dispatch (~2min). +PriceAdjustment, +adjustmentsHandler
(price_adjustments table, permanent), subscribe now queues candles+adjustments on
first demand. Surgical, 99/99 tests, no regression.
2026-06-29 21:55:27 -04:00
Investor Flow Build
190e9500a9
slice 4a (omlx/ornith-35): parseAdjustments (chart events -> price_adjustments) + 12 tests
...
First dispatch to the LOCAL ornith-35 (omlx) — ~3min vs ~8min for remote. Pure fn
parses yf2 chart events (splits/dividends, array or map) into PriceAdjustment[]; 12
tests incl. NVDA 5y fixture (2 splits + 26 dividends). Reviewed + approved.
2026-06-29 21:50:27 -04:00
Investor Flow Build
965f8d3b1c
slice 3 COMPLETE: onboarding wizard (complexity/risk/drawdown + starter watchlist + demand subscribe)
...
starter.ts by ornith (9 symbols w/ ticker-kind + ADR-0007 reasons, defaults, 12 tests).
onboarding.complete + onboarding.starter + me().onboarded by orchestrator; schema
+drawdown_tolerance. Wizard UI (complexity picker, starter list, disclaimer, finish).
onboarding subscribes starter symbols to the demand set (adapter fetches them). 87/87
backend + 2/2 lint green. Slice 3 done; slices 1-3 complete.
2026-06-29 21:31:59 -04:00
Investor Flow Build
4816b19976
slice 2 UI: 2FA enrollment (enable -> secret/QR/backup codes -> confirm)
...
Orchestrator (me) SPA work: auth client +2FA/OAuth methods, 2FA strings, AuthSection
enrollment flow. Primary-Rule lint stays green. Slice 2 (auth-2fa-and-social-oauth)
COMPLETE: 2FA + OAuth backend (ornith modules + me integration) + 2FA enrollment UI.
2026-06-29 21:21:09 -04:00
Investor Flow Build
3b5aa90a89
slice 2b COMPLETE: social OAuth (GitHub/Google) — oauthStart/oauthCallback
...
oauth.ts by ornith (zero-dep, injectable-fetch, 15 tests; fixed its self-import bug
so OAuthProvider is exported). Router/context integration by orchestrator: CSRF state
cookie (HMAC), code exchange, find/link/create user (sentinel pw_hash for OAuth-only),
session. 74/74 backend tests green. CSRF rejection + reuse-no-duplicate covered.
2026-06-29 21:17:57 -04:00
Investor Flow Build
89bdf0edc4
slice 2a COMPLETE: TOTP 2FA (enable2fa/confirm2fa/login-2fa + protectedProcedure)
...
totp.ts + backup-codes.ts produced by ornith (remote model, reviewed+approved);
router/context/schema integration by orchestrator (delicate edit-existing — ornith
timed out on a dispatch of that size in-session). 58/58 backend tests green.
2FA flow: enable2fa -> confirm2fa -> login now requires a valid TOTP.
2026-06-29 19:32:09 -04:00
Investor Flow Build
9df05ade71
slice 2a (ornith): backup codes (scrypt, constant-time verify) + 13 tests
2026-06-29 19:19:59 -04:00
Investor Flow Build
3b6d306e4c
slice 2a (ornith): TOTP core (RFC 6238, zero-dep) + 8 tests
...
First ornith remote-model dispatch. Right-sized single-file prompt -> ornith produced
correct totp.ts (base32/HMAC-SHA1/dynamic-truncation/+-1 window), reviewed + approved.
44/44 backend tests green. Ornith ~8min/dispatch; small focused prompts succeed.
2026-06-29 19:14:21 -04:00
Investor Flow Build
a8b95e36e3
slice 1g: Next.js M1 overview panel + Primary-Rule lint (ADR-0007)
...
Symbol command bar (Zustand active-symbol) -> OverviewPanel (price + day-change
shape/color/label per P7 G3 + Recharts sparkline + sector) + signup/login + ADR-0007
footer. next.config rewrites proxy /api -> backend:3001 (same-origin cookies). Vanilla
fetch tRPC client (decoupled from server Node types). Primary-Rule lint 2/2 green.
Slice 1 tracer bullet COMPLETE: 38 tests green, live-verified end-to-end.
2026-06-29 17:51:54 -04:00
Investor Flow Build
82079b3e66
slice 1e-1f: tRPC router (auth + market.snapshot) + node:http server
...
auth.signup/login/logout/me with signed HMAC session cookies + scrypt hashing;
market.snapshot mega-endpoint (quote+candles+sector). node:http server mounts
tRPC at /api/trpc + /health + background drain loop. Live-verified: real NVDA
194.97/65 candles/Technology served after stale-while-revalidate drain. 36 tests green.
2026-06-29 17:40:42 -04:00
Investor Flow Build
1962ecc740
slice 1a-1d: DB + CacheRepository + YFinance adapter + AdapterQueue
...
Node 26 + node:sqlite backend (zero native deps; runtime glue adapted from
Bun-spec design, deep-module architecture unchanged). 29 tests green across
schema/CacheRepository/YFinance-parse/AdapterQueue-dedupe.
2026-06-29 17:28:57 -04:00