Commit Graph
38 Commits
Author SHA1 Message Date
Lucas WintherandClaude Opus 5.5 9891bb596d docs(course): replace Scala bridges with general programming in 06–11, method, reference
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:55:36 +01:00
Lucas WintherandClaude Opus 5.5 b46a3611af fix: final review findings
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:43:48 +01:00
Lucas WintherandClaude Opus 5.5 82f47fb3ee docs(course): consistency pass
- m04: F# mulberry32 hints and skeleton route * and + through uint64 helpers;
  new 'F# in the browser' note on the Fable uint32 trap
- m01-m05: 'About test names' notes like m06-m11; m00 explains JS vs Scala/F# titles
- m00/m09: first build-web.sh run restores Fable; m09 JS file list (main.js is given)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:17:35 +01:00
Lucas WintherandClaude Opus 5.5 1a80d57499 chore: link checker
Zero-dependency scripts/check-links.mjs: HEAD/GET every http(s) link in the
course Markdown (skipping localhost), plus relative links and anchors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:17:35 +01:00
Lucas WintherandClaude Opus 5.5 a23fd07906 docs: README, mentor mode and reference
README front page (module map, checkpoint policy with per-track file map,
maintainer tools), MENTOR.md Socratic mentor instructions with AGENTS.md /
CLAUDE.md pointers, and course/reference.md listing every API side by side.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:17:35 +01:00
Lucas WintherandClaude Opus 5.5 673be0067e docs(course): fix review findings in modules 06–11
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:06:09 +01:00
Lucas WintherandClaude Opus 5.5 a7a4cb5b2a feat(fsharp): Fable browser platform, snake and pong pages, build-web.sh
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:04:20 +01:00
Lucas WintherandClaude Opus 5.5 527b2cd157 fix(fsharp): mulberry32 wraps through uint64 so the Fable build matches the fixtures
Fable compiles uint32 * and + to plain JavaScript arithmetic (no wrap, inexact
above 2^53); 2 of 37 RNG fixture cases matched in the browser build. uint64
helpers are exact on .NET and in Fable (BigInt).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:04:10 +01:00
Lucas WintherandClaude Opus 5.5 ab8abaaa77 docs(course): fix review findings in modules 00–05
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:04:03 +01:00
Lucas WintherandClaude Opus 5.5 1d0b8c3a5c feat(fsharp): m11 pong capstone (model, rules, view, app) with tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:00:29 +01:00
Lucas WintherandClaude Opus 5.5 038a375027 docs(course): modules 06–11 and method
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:00:23 +01:00
Lucas WintherandClaude Opus 5.5 939903dae0 docs(course): modules 00–05
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:59:58 +01:00
Lucas WintherandClaude Opus 5.5 55f8b0b30f feat(fsharp): m09 input/app/runtime and m10 extensions with tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:56:27 +01:00
Lucas WintherandClaude Opus 5.5 e27372f017 feat(fsharp): m07 io and m08 stream with tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:52:44 +01:00
Lucas WintherandClaude Opus 5.5 9cbefeb2be feat(fsharp): m01-m06 util, model, rules, random, spawn, game, view with Expecto tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:49:42 +01:00
Lucas WintherandClaude Opus 5.5 183821737e feat(scala): Scala.js browser platform, snake and pong pages, build-web.sh
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:17:02 +01:00
Lucas WintherandClaude Opus 5.5 f4b671678e feat(scala): m11 pong capstone (model, rules, view, app) with tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:15:33 +01:00
Lucas WintherandClaude Opus 5.5 c6ecb7c013 feat(scala): m09 input/app/runtime and m10 extensions with tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:13:52 +01:00
Lucas WintherandClaude Opus 5.5 bd0c9fcc0c feat(scala): m07 io and m08 stream with tests
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:12:08 +01:00
Lucas WintherandClaude Sonnet 5.5 56bc6b4cf7 chore: progression checkpoint script
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:07:27 +01:00
Lucas WintherandClaude Sonnet 5.5 1e186733d1 feat(scala): m01–m06 port with shared fixtures
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:07:27 +01:00
Lucas WintherandClaude Sonnet 5.5 045029639e fix(js): keep test/helpers.js free of src imports
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:03:01 +01:00
Lucas WintherandClaude Sonnet 5.5 59bece5443 chore(js): polish pong keys, held mapping and m09 main test
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:02:23 +01:00
Lucas WintherandClaude Opus 5.5 3146bb630a docs(plan): pongKey accepts uppercase keys
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 00:01:22 +01:00
Lucas WintherandClaude Sonnet 5.5 1d1d918805 feat(js): m11 pong capstone (model, rules, view, app, page) and polling smoke test
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:59:25 +01:00
Lucas WintherandClaude Sonnet 5.5 fd7c5f2acf feat(js): m10 extensions (pause, restart, speed-up via Frame) with tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:56:49 +01:00
Lucas WintherandClaude Sonnet 5.5 25141ce86d fix(scripts): smoke.mjs kills Chrome's whole process group so the temp profile is removed
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:53:45 +01:00
Lucas WintherandClaude Sonnet 5.5 8028bb2fc0 feat(js): m09 input, app, runtime, browser, main, index.html and smoke test
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:53:09 +01:00
Lucas WintherandClaude Sonnet 5.5 584f1d4825 feat(js): m08 stream (event streams as pure automata) with tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:49:50 +01:00
Lucas WintherandClaude Sonnet 5.5 64135499b0 feat(js): m07 io (effects as values) with trace interpreter and tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:49:30 +01:00
Lucas WintherandClaude Sonnet 5.5 b83f94894e feat(js): m05 game and m06 view with fixtures and tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:45:10 +01:00
Lucas WintherandClaude Sonnet 5.5 08b462d5cc feat(js): m04 random and spawn with fixtures and tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:42:36 +01:00
Lucas WintherandClaude Sonnet 5.5 2e39f23bb3 feat(js): m03 rules with fixtures and tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:41:34 +01:00
Lucas WintherandClaude Sonnet 5.5 e9c41fed03 fix(js): deepFreeze recurses below already-frozen parents
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:39:46 +01:00
Lucas WintherandClaude Sonnet 5.5 22c221a042 feat(js): m01 util and m02 model with tests, fixtures, purity audit
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:38:29 +01:00
Lucas WintherandClaude Opus 5.5 5be3cebe71 fix: make check-stubs distinguish test failures from tooling errors
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:36:25 +01:00
Lucas WintherandClaude Opus 5.5 e150b7fefb chore: scaffold tracks and tooling
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:34:21 +01:00
Lucas WintherandClaude Opus 5.5 6dc5bdde9e docs: course design spec and implementation plan
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:31:16 +01:00