Ship R-Dash session output to staging as-is + log two 30-day follow-ups: (a) make widget.query_id optional for chart_type=markdown to remove the phantom-dependency anchor; (b) migrate theme persistenc

Decision

Ship R-Dash session output to staging as-is + log two 30-day follow-ups: (a) make widget.query_id optional for chart_type=markdown to remove the phantom-dependency anchor; (b) migrate theme persistence from localStorage → user-prefs API before prod cutover. Decisions locked: Chrome MCP is the default browse path (Playwright narrowed); runwal-prd DataSource permanently corrected; R-Dash ships 3-state theme toggle with theme-aware ECharts; dashboard adopts Pyramid + So-What + ₹-aware storytelling template.

Rationale

Pre-mortem identified 4 specific failure modes, 3 already mitigated by current implementation (theme re-render via key prop, server-side options merge confirmed via connection-test + live query, MutationObserver covers theme switch). Bias scan returned anchoring + framing as candidates; analysis thought-chain confirmed neither materially affected decisions (v2 dashboard reuse was a fresh slate after v1 archive, markdown query_id is upstream-prescribed pattern not workaround). Cascade verified: MEMORY.md 171/200 with 95/95 links resolving, TypeScript clean on R-Dash, 7 widgets serving live data, 3 browser screenshots prove all theme states. The 2 follow-ups are quality-of-life, not blockers — staging is usable today.

Alternatives Rejected

Outcome

Pending