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
+10 -6
View File
@@ -4,6 +4,7 @@ import { SidebarNav } from "./SidebarNav";
import { WatchlistSidebar } from "./WatchlistSidebar";
import { SymbolHeader } from "./SymbolHeader";
import { MobileTabNav } from "./MobileTabNav";
import { CommandPalette } from "./CommandPalette";
import { CollapsibleProvider, useCollapsibleContext } from "@/lib/collapsible-context";
import { useKeyboardShortcuts } from "@/lib/useKeyboardShortcuts";
@@ -57,15 +58,18 @@ function LayoutShellInner({ children }: { children: React.ReactNode }) {
}, [openSectionId, setOpenSectionId]);
return (
<div className="min-h-screen bg-[#0a0b0f] text-[#e6e7ec] flex flex-col">
<div className="min-h-screen bg-surface text-fg flex flex-col">
{/* Symbol Header — always visible */}
<SymbolHeader />
{/* Global command palette (⌘K) */}
<CommandPalette />
{/* Main Content Area — responsive layout */}
{isMobile ? (
/* Mobile: single column, no sidebar */
<>
<main className="flex-1 overflow-y-auto p-4 pb-20">
<main className="flex-1 overflow-y-auto overflow-x-hidden p-4 pb-20">
<div className="max-w-7xl mx-auto space-y-6">
{children}
</div>
@@ -76,7 +80,7 @@ function LayoutShellInner({ children }: { children: React.ReactNode }) {
/* Tablet: 2-column layout, watchlist accessible via compact bar */
<div className="flex flex-1 overflow-hidden flex-col">
{/* Compact horizontal watchlist bar */}
<div className="hidden md:block border-b border-[#2a2b3a] bg-[#121318] px-4 py-2 overflow-x-auto">
<div className="hidden md:block border-b border-line-strong bg-surface-raised px-4 sm:px-6 py-2 overflow-x-auto">
<WatchlistSidebar compact />
</div>
<div className="flex flex-1 overflow-hidden">
@@ -87,8 +91,8 @@ function LayoutShellInner({ children }: { children: React.ReactNode }) {
</div>
</main>
{/* Right analytics — drops below on tablet */}
<aside className="hidden lg:block w-80 border-l border-[#2a2b3a] bg-[#121318] overflow-y-auto">
<div className="p-4 space-y-4">
<aside className="hidden lg:block w-80 border-l border-line-strong bg-surface-raised overflow-y-auto">
<div className="p-4 sm:p-6 space-y-4">
{/* Right column content placeholder */}
</div>
</aside>
@@ -104,7 +108,7 @@ function LayoutShellInner({ children }: { children: React.ReactNode }) {
<WatchlistSidebar />
{/* Content */}
<main className="flex-1 overflow-y-auto p-4 sm:p-6">
<main className="flex-1 overflow-y-auto p-4 sm:p-6 lg:p-4 xl:p-4 2xl:p-4">
<div className="max-w-7xl mx-auto space-y-6">
{children}
</div>