App.vue fetches the default config, posts it to /api/comparison, and renders ComparisonTable; the Vite dev server proxies /api to the Go server so the browser sees one origin. src/lib/api.ts is the only fetch code and uses exclusively generated types: no shape is defined on the frontend. Scaffold example components removed. Engine fix surfaced by the smoke test: a nil Go slice marshals to JSON null, violating the generated 'educated: number[]' contract; RunScenario now returns an empty slice instead. Verified end to end: curl through the Vite proxy returns the golden 99/70/7. Vitest covers the table rendering; type-check, oxlint, eslint clean. This completes the milestone 2 parity check. |
||
|---|---|---|
| .. | ||
| bench_test.go | ||
| cascade.go | ||
| cascade_test.go | ||
| educate.go | ||
| educate_test.go | ||
| graph.go | ||
| graph_test.go | ||
| holmekim.go | ||
| holmekim_test.go | ||
| rng.go | ||
| rng_test.go | ||
| scenario.go | ||
| scenario_test.go | ||