- pull async/promises forward (was ch18): every LLM call is async,
it's the core of any agent
- add modules (import/export), a TS track, and an agent-domain +
pi-hands-on tier
- defer browser topics (regex/DOM/events/web-storage) as pi is a
Node CLI/TUI, not a browser app
- 09-loops: finish exercises A-F
- 00-concepts: add semicolons-and-asi.md (when ; is mandatory: line
starting with ( or [, no newline after return/throw)
- README: index the new concept note
- 08-sets-maps: correct 'object order not guaranteed' -> objects keep
insertion order except integer-like keys (reordered ascending); this
is the real reason to prefer Map when numeric keys must stay ordered
- 05-conditionals: soften 'only 6 falsy values' (note 0n/-0 exist)
- 04-strings: annotate expected output for immutable string[0]='x'
(silent in sloppy mode, TypeError in strict/ESM)
- 04-strings: reword exercise C hint to direction-only (no full answer)
- 09-loops: fix typo in for...in comment
- flat single-file structure: NN-topic.js per topic (concepts as
comments + demo + exercises in one file), replacing the old
NN-topic/ folder with separate notes.md + practice.js
- 00-concepts/ cross-topic notes (mistakes log, call-forms,
value-vs-reference, shortcircuit bash-vs-js)
- move quokka_playground.js from repo root into js_notes/
- add project CLAUDE.md