3 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
5fb95bfd19 test: add dynamic widget interaction testing to CI & fix WASM worker path resolution
This commit introduces the following fixes to the Marimo labs architecture:
1. Interactive Testing: Updates test_widget.py to dynamically extract, simulate clicks, and verify the interactive states hidden behind mo.stop() to ensure execution pipelines don't crash.
2. Ledger Continuity: Fixes an issue in 4 Volume 2 labs where the ledger.save() was mistakenly passed a string key (e.g. 'v2_05') instead of an integer.
3. WASM Relative Pathing: Modifies tools/build_site.sh to duplicate built Pyodide wheel assets into vol1/wheels and vol2/wheels to satisfy Pyodide's worker.js relative path resolution, which was causing the labs to hang at startup on GitHub Pages with BadZipFile errors.
2026-04-25 13:45:03 -04:00
Vijay Janapa Reddi
7fdb49ee5c feat(labs): gold-standard polish — stakeholders, hover templates, test fixes
- Add 16 stakeholder messages to Vol2 labs 10, 11, 12, 15 (4 per lab)
- Add 32 Plotly hover templates across 6 labs with units and precision
- Fix Lab 00 DecisionLog dataflow bug (missing from cell return + signature)
- Fix test_widget slider regex to handle Python underscore literals (100_000)
- Fix test_widget slider count test: check total controls, not just sliders
- Fix test_engine to skip gracefully when marimo is not installed
- Standardize 4 chart heights from 420-450px to 380px

Tests: 1,326 passed, 28 skipped, 0 failed (full suite)
2026-04-02 07:14:13 -04:00
Vijay Janapa Reddi
3a555deabd feat(labs): rebuild all 32 labs with chapter-grounded parts, ed-tech review fixes, and test infrastructure
Complete lab curriculum rebuild:
- 16 Vol1 + 16 Vol2 labs (33,368 lines across 32 files)
- Each lab has 4-5 pedagogically grounded parts + synthesis
- Parts proposed by agents reading actual chapter QMD files
- Ed-tech review identified and fixed: redundancies, time overruns, mlsysim gaps
- V2-03 + V2-06 merged into "Communication at Scale"
- 17 old/superseded files deleted (pre-merger, pre-renumber)

Structural fixes applied:
- V1-01 Part C replaced (Silent Decay -> Triad Across Targets)
- V1-03 grounded in mlsysim (Engine.solve for OOM, Engine.sweep for configs)
- V1-09 Part C replaced (Curriculum Learning -> Preprocessing Tax)
- V1-13 Part E dropped (redundant with Lab 10)
- V1-15 Part C dropped (TCO not fairness-specific), refocused
- V2-12 model extraction dropped, restructured around privacy cost
- V2-16 capstone cut to 4 parts, Design Ledger fallbacks added
- All 15-min parts trimmed to 12 min

Test infrastructure added:
- labs/tests/ with 3-level pytest suite (static, engine, widget)
- CI workflow updated with pytest stages
- pytest added to labs/requirements.txt
2026-03-15 16:26:50 -04:00