- Add WorkspaceLabelIndex: scans all .qmd files on activation, updates
incrementally on save, provides hasLabel() for cross-file validation
- Extend QmdDiagnosticsManager to validate references against workspace
index (not just current file); triggered on save only, not keystrokes
- Add broken reference decoration (red wavy underline) in chunk
highlighter for refs that don't resolve to any label in the workspace
- Add commands: Add Missing Section IDs, Verify Section IDs,
Validate Cross-References (command palette)
- Enable diagnostics by default (save-triggered, not noisy)
- Support YAML-style label definitions (#| label:, #| fig-label:, etc.)
- Run manage_section_ids.py to add 294 missing section IDs and
standardize 62 non-conforming IDs to hierarchy-based format
- Fix 12 double-hash bugs (e.g., -cbb8-cbb8 -> -cbb8) from script
- All cross-references updated to match new IDs (19 refs across files)
- Verified clean: check_unreferenced_labels.py and check_duplicate_labels.py pass
- Add book-verify-section-ids pre-commit hook (runs --verify mode, ~1.5s)
- Add Python value resolver that executes QMD code blocks and resolves
inline `{python} var` references to their actual values
- Display resolved values as ghost text, hover tooltips, and CodeLens
- Unwrap IPython.display.Markdown objects (.data) and display_value dicts
for readable output instead of object reprs
- Suppress matplotlib plot windows during resolution (Agg backend)
- Split inline Python highlighting into keyword + variable decorations
- Disable callout/div body and table region background highlights by
default (too noisy); fence markers and cross-references still colored
- Add settings: showInlinePythonValues, showInlinePythonCodeLens,
highlightCalloutBackground, highlightTables (default: false)
Moves common diagram and PDF title/build settings into shared metadata layers, simplifies per-volume configs to keep only volume-specific values, and carries related chapter figure text/asset updates needed in the current working set.
Unifies Quarto metadata into shared base/format/volume fragments while carrying through chapter path, asset, and tooling updates to keep the repository consistent and easier to maintain.
- Prefer python over python3 in Git Bash to avoid Microsoft Store alias and incorrect venv paths
- Skip TinyTorch self-reinstall on Windows if already installed (prevents WinError 32 file lock)
- Completed full standardization of 150+ calculation headers across all 16 Volume 1 chapters.
- Replaced legacy 'Why:' blocks with the 'Goal/Show/How' documentation pattern.
- Finalized P.I.C.O. class refactors for complex cells in frameworks and serving.
- Verified header consistency across introduction, ml_systems, training, and optimizations.
- Performed minor stabilization in book/vscode-ext logic.
Standardize Quarto config/style handling for HTML/EPUB volume builds, add explicit binder reset commands by format, and align QMD reference/label highlighting so structural tokens share consistent visual semantics.
Treat internal spacing changes as real formatting differences and normalize separator padding so table prettification is applied consistently. Save files before running pre-commit fixers from the extension so results match editor state.
- Refactored ops_scale.qmd to P.I.C.O. pattern and standardized constants.
- Standardized TikZ colors in storage.qmd (fig-storage-hierarchy) and distributed_training.qmd.
- Verified elimination of magic numbers (1e9, 3600, etc.) across all Volume 2 Python cells.
- Completed full conversion of narrative guards to check() helper in Volume 2.
- Refactored appendix_algorithm.qmd, appendix_data.qmd, and appendix_dam.qmd to P.I.C.O. pattern.
- Integrated standardized constants (BILLION, THOUSAND, SEC_PER_HOUR) in all appendix calculations.
- Simplified narrative guards in appendices using the check() helper.
- Verified backmatter consistency across both volumes.
- Refactored Volume 2 core chapters (Intro, Dist Training, Storage) to P.I.C.O. pattern.
- Moved Young-Daly checkpoint optimization logic from Storage to Distributed Training.
- Eliminated magic numbers (1e9, 3600, etc.) from all Volume 2 calculation cells.
- Implemented central 'chapter-start' cells with shared imports for consistency with Vol 1.
- Standardized time (SEC_PER_HOUR, SEC_PER_DAY), memory (KIB_TO_BYTES), and scale (BILLION, TRILLION) constants in mlsys/constants.py.
- Refactor reordered time constants to fix NameError in constants.py.
- Refactored 90+ narrative guards across Volume 1 to use the simplified check() helper.
- Eliminated remaining magic numbers (1024, 3600, 1e9, etc.) from Python calculation cells.
- Adopted 'Goal / Show / How' documentation structure for key P.I.C.O. scenarios.
- Performed minor stabilization and feature polish in book/vscode-ext.
- Completed full Volume 1 refactor to Safe Class Namespace pattern.
- Fixed render errors and verified all 16 chapters.
- Updated 'binder' CLI with native validation and maintenance namespaces.
- Enhanced VS Code extension with Chapter Navigator and Run History.
- Integrated 'binder validate' into pre-commit workflows.
- ml_systems.qmd: Fixed NameError in CloudEdgeTCO/EdgeSizing exports (replaced undefined '_value' vars with class attributes).
- training.qmd: Fixed IndentationError in TrainingDimensions class.
- Refactored FlashAttentionSpeedup, GradientAccumulation, and TrainingCarbonFootprint to Safe Class Namespace pattern.
- Added P.I.C.O. structure and invariant checks.
- Exported variables for prose integration.
- Fixed inline Python validation warnings (replaced LaTeX math with Unicode).
- Fixed adjacency warnings by replacing with Unicode .
- Fixed missing usage in prose.
- Added to class for self-containment.
- Verified render passes without errors.
- Completed full migration of to objects and Direct Access pattern.
- Refactored (Chapter 4) to use and .
- Refactored (Chapter 5) to use and classes.
- Adopted the 'Direct Access' pattern: eliminating export blocks and referencing directly in Markdown.
- Verified renders for both chapters.
- Refactored to use , , and registries.
- Expanded with devices (Coral, Jetson, NUC) and .
- Expanded with (DLRM) and family.
- Fixed registry bugs (Coral bandwidth, GPT class definition).
- All unit tests passing.
- Added assertions to and to enforce physical plausibility.
- Introduced registry for Cloud/Edge/Mobile/TinyML constraints.
- Refactored , , and to use object-oriented Digital Twins.
- Replaced loose constants with registry-backed attributes (e.g. ).
- Verified build and unit tests pass.
Renamed the core physics engine from to to better align with
the book's title and pedagogical goals.
New features:
- Introduced and classes in and .
- Digital twins now carry their own attributes (bandwidth, FLOPS) and
methods (ridge_point, memory_size).
- Global search and replace updated all 16 chapters to use .
- Maintained backward compatibility for legacy constants during migration.
Removed obsolete Python modules from that were replaced
by the P.I.C.O. design pattern (logic moved directly into QMD files).
Deleted files include chapter-specific scripts (), unused
calculators (, , etc.), and manual audit tools.
This commit refactors the underlying Python calculation cells for Chapters 1-16
to strictly enforce mathematical consistency with the narrative.
**Key Text/Numeric Updates (For Editorial Review):**
1. **Chapter 3 (Workflow) - Edge Necessity Scenario:**
- *Change:* Increased clinic patient count from **100** to **150**.
- *Reason:* With 100 patients, the calculated upload time was ~5.5 hours, which fits within the 8-hour clinic day, contradicting the chapter's conclusion that 'Edge is Mandatory.' Increasing to 150 pushes upload time to >8 hours, mathematically validating the narrative.
2. **Chapter 1 (Introduction) - Model Drift Scenario:**
- *Change:* Reduced monthly accuracy drift rate from **8.0%** to **0.8%**.
- *Reason:* An 8% monthly drop is a catastrophic failure that would be immediately noticed. A 0.8% drop correctly models the 'silent failure' (boiling frog) scenario described in the text.
3. **Chapter 3 (Workflow) - Velocity vs Quality:**
- *Change:* Reduced 'Large Model' accuracy gain per iteration from **0.5%** to **0.15%**.
- *Reason:* The original rate caused the large model to hit 99% accuracy almost instantly, invalidating the 'Velocity is a Feature' argument. The new rate correctly models diminishing returns, allowing the faster (small) model to win.
4. **Chapter 15 (Responsible Engineering) - TCO Analysis:**
- *Verification:* Verified and stabilized the 3-year Total Cost of Ownership (TCO) calculations. Confirmed that Inference TCO (.5M) dominates Training TCO (8K) by ~40x, supporting the 'Efficiency as Responsibility' thesis.
**Technical Changes (Code Only):**
- Refactored all calculation cells to use the **P.I.C.O. (Parameters, Invariants, Calculation, Outputs)** design pattern.
- Added assertion guards (Invariants) to prevent future regressions where math contradicts prose.
- Fixed variable scope issues in Chapter 10 (Model Compression) and Chapter 15.
- Disabled false-positive linter warnings for standard LaTeX spacing.
Refactors figure list generation to reliably locate and clear LaTeX manifest files.
- Searches for the figure manifest in both the quarto root and build output directory,
handling cases where the post-render step moves the file.
- Clears stale manifests from both locations to avoid incorrect figure counts from
previous builds.
- Moves the LaTeX manifest to the build output directory to keep the source
tree clean.
- Updates the merge script to find the manifest dynamically.
This prevents issues where figure counts are mismatched due to outdated or
missing manifest files.
- Fix broken cross-refs in training.qmd (em-dash parsed as part of ID)
- Remove footnote from table cell in ml_systems.qmd
- Add @tbl- references for 22 unreferenced tables across 5 files
- Comment out stale SVG prevention hook in pre-commit config
- Auto-fixes from bibtex-tidy, blank-line collapse, pipe-table prettify
The data bar now uses a smooth vertical gradient derived from the layer
intensities: each color stop matches the wire flowing into it, and PGF
interpolates between stops. This makes data's cross-cutting role visible
— two distant bright layers produce a gradient that stays warm across
the space between them, revealing skip connections through data.
Each wire's color matches its layer's intensity, showing how strongly
each layer plugs into the shared data bus. The About page now shows
three example stacks (HW Acceleration, Training, Responsible Engineering)
to illustrate how the lens shifts across chapters.
Add prose explaining how the ML Systems Stack's data bar shading
reflects cross-layer data flow and skip connections, priming readers
to interpret the visual cue as they progress through chapters.
- Revise prose, index entries, and references across all 16 chapters
- Update quarto config (epub/html) for vol1 and vol2
- Add render_figures.py testing script
- Update inject_parts.lua filter and header-includes.tex
- Update notation, appendix_dam, and references.bib
- Remove vol1/vol2 foreword files