Commit History
-
[KM-715] charts: render_chart tool + message_charts store + GET /api/v1/charts + planner viz slice
Rifqi Hafizuddin +1: Claude Fable 5W2 of SPINE_V2_PLAN: deterministic Plotly-JSON spec builder (dataeyond.chart.v1, no plotly dep), ToolOutput.kind "chart", never-throw ChartStore mirroring traceability (rows written before done), FE fetches GET /charts on done (empty list = valid 200; done event unchanged). Planner: recipe table + explicit-ask rule, Examples J (viz tail) + K (viz-infeasible), validator Check 10 (render_chart.data must be table-kind). Traceability records charts compactly (point_count, not raw arrays). Live e2e vs dedorch: ALL PASS. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>87cfcf8