- Closing lesson or chapter notes with unsaved edits now offers Save, Discard, or Keep editing. Escape and Enter in the prompt return to the draft; failed saves keep the text in the editor for retry.
This version is prepared for publication; the tag/release is not created by these files.
- A modular Python package, separate curriculum JSON, and an executable zipapp build.
- A one-command bootstrap installer, local installer, and
cpp-tree --uninstall. --state-pathto locate the active profile without creating files.- README preview, install/update/uninstall instructions, contributor and maintainer guides, an MIT license, attribution, conduct and security policies.
- Regression tests, a Linux/macOS CI matrix, issue forms, and a pull request template.
--summaryis read-only and can run while the interactive app has the profile open.- Invalid optional view preferences are normalized; malformed progress still fails visibly without overwriting it.
- The installer refuses to overwrite unrelated files or symlinks and preserves progress on update and uninstall.
The original 1.1.6 script's lesson entries, version-1 saves, notes, pins, default
state location, key bindings, colors, and OBS stream.txt behavior are retained.
Baseline version supplied as cpp-tree-dev.py. Earlier release history is not
reconstructed here.