fix: backfill symbol_demand for sidebar-added symbols + analyst ratings schema fix

- Add await ctx.cache.subscribe() to addSymbol mutation so symbols
  added via the sidebar get registered in symbol_demand and yfinance
  jobs are queued immediately
- Backfill PEP, WYNN, STZ, CELH into symbol_demand + adapter_queue
- Upgrade yahoo-finance2 3.15.3 -> 3.15.4 and pass validateResult:false
  to quoteSummary() to handle Yahoo schema drift
- Add error detail logging for analyst ratings schema failures
- Update .gitignore with common ignores
This commit is contained in:
Investor Flow Build
2026-07-23 18:02:24 -04:00
parent 5ef2b2f060
commit e262187c3c
204 changed files with 25014 additions and 2934 deletions
+33
View File
@@ -0,0 +1,33 @@
// Ambient module shim for `node:sqlite`.
//
// The SPA tsconfig compiles against @types/node v20, which predates the
// `node:sqlite` built-in (added in Node 22.5). The backend (app/server) runs on
// Node 22+ and imports `node:sqlite` for real. A few server modules get pulled
// into the SPA type-check via `import type` edges from __tests__; this shim lets
// the SPA type-check those modules without a runtime dependency. The backend's
// own tsconfig (with a newer @types/node) is unaffected because the module is
// genuinely provided at runtime.
declare module "node:sqlite" {
export interface SqliteStatement {
run(...params: unknown[]): unknown;
get(...params: unknown[]): unknown;
all(...params: unknown[]): unknown[];
iterate(...params: unknown[]): IterableIterator<unknown>;
[key: string]: unknown;
}
export interface DatabaseSyncOptions {
location?: string;
nativeBinding?: string;
[key: string]: unknown;
}
export class DatabaseSync {
constructor(path?: string, options?: DatabaseSyncOptions);
exec(sql: string): unknown;
prepare(sql: string): SqliteStatement;
close(): void;
[key: string]: unknown;
}
}