feat: dealer flow, mirror portfolio (M21), options convexity, FINRA short interest, alert producers, vendor gate
CI / Test & Type-Check (push) Canceled after 0s
CI / Test & Type-Check (push) Canceled after 0s
Snapshot of in-progress module work across multiple slices: - Dealer Flow: dealerExposureEngine, dealerMapService, dealerMapExplain, dealerMapIntegrity, dealerMapReplay, dealerStudyEngine, hanStyleLevels - Mirror Portfolio (M21): fundRepository, captureIngest, mirrorAlertProducers, fund holdings strip, live book, position capture ingest - Options: BSM, NormalizedOptionSurface types, OptionsChainRouter, ConvexityGate, option legs panel - Alert producers: vixLevel, rotation, thesis, unlock, portfolioRisk, mirror (fund_capture, fund_13f, mirror_diff) - FINRA short interest adapter + queue integration - SEC company tickers adapter + ingest (symbol search index seed) - Vendor gate (rate-limit-first data plane, ADR-0009) - CUSIP registry, reverse 13F refresh, stock float service - LRU cache, portfolio backtest engine - Frontend: dealer-flow, funds, journal, lab, monitor, plan, portfolio, reports, screener, strategies, theses, guided-start, exits, more pages - Volume profile, workspace profile, visibility-aware poll - ADRs 0010 (mirror math not advice), 0011 (symbol search index) - VENDOR_INTEGRATIONS.md, END_USER_TEST.md - .gitignore: exclude DBs, .DS_Store, local config, agent scratch
This commit is contained in:
@@ -235,9 +235,12 @@ test('onboarding.complete writes complexity/risk/drawdown + starter watchlist +
|
||||
assert.equal(u.risk_tolerance, 'moderate');
|
||||
assert.equal(u.drawdown_tolerance, -20);
|
||||
const wl = db.prepare('SELECT symbols FROM watchlists WHERE owner_id=?').get(userId) as { symbols: string };
|
||||
assert.equal(JSON.parse(wl.symbols).length, 9);
|
||||
const wlSymbols = JSON.parse(wl.symbols) as string[];
|
||||
// focused density pack (beginner experience → never_invested → focused)
|
||||
assert.equal(wlSymbols.length, 6);
|
||||
assert.ok(wlSymbols.includes('VTI') && wlSymbols.includes('AAPL'));
|
||||
const demand = await cache.demandSet();
|
||||
assert.ok(demand.includes('NVDA') && demand.includes('BTC'), 'starter symbols subscribed to demand set');
|
||||
assert.ok(demand.includes('VTI') && demand.includes('AAPL'), 'starter symbols subscribed to demand set');
|
||||
});
|
||||
|
||||
// --- Slice 5: market.candles + market.indicators ---
|
||||
|
||||
Reference in New Issue
Block a user