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
+77
View File
@@ -0,0 +1,77 @@
# Handoff — Investor Flow (2026-07-01)
## Current State
**Orchestrator:** qwopus35b (remote, 131K context)
**Implementer available:** ornith-35 (omlx/local, 131K context)
**Default model:** ornith-35
## What Was Done
### Defect Fix
- Fixed ADR-0007 footer in RiskEngine — appended `ADR_0007_FOOTER` to all 4 recommendation paths and updated test to verify actual footer text presence. All 35 tests pass.
### Task Preparation (All Pending Tasks Now Have SPEC.md + Are in Implement Phase)
19 tasks written with SPEC.md files, all in `implement` phase:
**Ornith's domain (backend adapters, deep modules):**
- sec-edgar-adapter-and-filings-panel-m6 — Wire EdgarAdapter to tRPC + filings panel
- options-adapters-and-options-dd-panel-m3 — Options adapter + M3 DD panel
- x-cookie-adapter-and-sentiment-feed-m8 — X/Cookie + Reddit adapters + sentiment feed
- universe-evaluator-filter-screener-strategy-screener — Universe evaluator + screener (M15a+b)
- sector-confirmation-via-screener-crosslink — Screener + rotation cross-link
- institution-flow-engine-and-insider-stream-m4-m5 — Institution flow engine + insider stream
- options-convexity-sleeve-m17 — 5-state options unlock + convexity sleeve
- strategy-lab-and-backtest-m16 — Strategy authoring + backtest engine
- thesis-monitoring-l1-timeline-alerts — L1 thesis monitor + timeline alerts
- derisking-strategy-library — 6 derisking strategies
- macro-module-m18 — FRED adapter + regime classifier + commentary
- docker-compose-deployment — Docker Compose target
- investor-flow-build — Build pipeline + CI
- backfill-integration-test — End-to-end backfill test
- yfinance-adjustments-parse — Adjustments categorization
**My domain (UI panels, orchestration):**
- alerts-v1-alertengine-hybrid — AlertEngine hybrid (event-driven + polling)
- mobile-companion-m19 — Mobile companion UI
- watchlist-portfolio-shell-panels-m9-m10 — Watchlists + portfolio + journal
- reports-research-note-m11-html-v1 — HTML research notes
## What Needs to Be Done Next
### Priority Order (dependencies from DECOMPOSITION.md):
1. **sec-edgar-adapter-and-filings-panel-m6** (ornith) — unblocks slices 7, 8
2. **institution-flow-engine-and-insider-stream-m4-m5** (ornith) — unblocks slices 8, 17
3. **options-adapters-and-options-dd-panel-m3** (ornith) — unblocks slice 19
4. **x-cookie-adapter-and-sentiment-feed-m8** (ornith) — unblocks slice 17
5. **universe-evaluator-filter-screener-strategy-screener** (ornith) — unblocks slices 13, 14
6. **sector-confirmation-via-screener-crosslink** (ornith) — depends on 9 + 13
7. **options-convexity-sleeve-m17** (ornith) — depends on slice 15 + 18
8. **strategy-lab-and-backtest-m16** (ornith) — depends on slice 11
9. **thesis-monitoring-l1-timeline-alerts** (ornith) — depends on slices 17, 18
10. **derisking-strategy-library** (ornith) — depends on slices 19, 21
11. **macro-module-m18** (ornith) — depends on slice 18
12. **docker-compose-deployment** (ornith) — depends on slice 22
13. **investor-flow-build** (ornith) — infrastructure
14. **backfill-integration-test** (ornith) — testing
15. **yfinance-adjustments-parse** (ornith) — adjustments parsing
16. **alerts-v1-alertengine-hybrid** (orchestrator) — depends on slices 7, 9, 16, 18
17. **mobile-companion-m19** (orchestrator) — depends on slices 17, 18, 22
18. **watchlist-portfolio-shell-panels-m9-m10** (orchestrator) — depends on slices 3, 4
19. **reports-research-note-m11-html-v1** (orchestrator) — depends on slice 18
### Key Issues to Be Aware Of
1. **Guard blocks pi --print on decomposed tasks** (P0 Issue 1) — Cannot use `pi --print` to implement sub-tasks directly. Only loop-runner daemon works.
2. **Loop runner defaults to opencode, not pi** (P0 Issue 2) — Need to configure harness.command in loop.json if using pi dispatch.
3. **No "implement-decomposition" loop template** (P2 Issue 6) — Only ci-triage and self-improvement templates ship. Need to create one.
4. **Slice sizing too large for single model dispatch** (P2 Issue 7) — Each slice needs to be broken into micro-dispatches sized for the model's coherence window (~43k tokens).
### Model Switching Notes
- Both models are reachable: ornith-35 (omlx/local), qwopus35b (remote)
- Current default is ornith-35
- The guard blocks headless pi dispatch on decomposed tasks — use loop-runner if available
- If switching to a different model, update .automaton/models.json accordingly
### What to Work On First
Start with the SEC adapter + filings panel (ornith). This is the foundational piece that unblocks many downstream tasks. The SPEC.md already exists in `.automaton/tasks/sec-edgar-adapter-and-filings-panel-m6/SPEC.md`.
After that, work on the institution flow engine — it's the next critical dependency for alerts and dashboard rollup.