This merge brings critical student work preservation features:
Key Changes:
- Rewrote 'tito system update' to preserve student work
- Uses git sparse checkout for selective updates
- Preserves: modules/, tinytorch/core/, .tito/, .venv/
- Updates: src/, tito/, tests/, milestones/, datasets/
- Added consistent Panel warnings for destructive actions
- Removed unused TestCommand and ExportCommand (replaced by module/dev commands)
- Fixed integration tests and training module tests
- Improved optimizer and training module error handling
This addresses issue #1112 and ensures students can safely update
TinyTorch without losing their work in progress.
Commits merged:
- e7051671d chore(tito): remove unused TestCommand and ExportCommand
- abc033d8d fix(tito): rewrite update command to preserve student work
- f9fd2c8fe style(tito): use Panel warnings consistently for destructive actions
- 2ed310d6f fix(tinytorch): fix integration tests and improve update command
Fixed module integration tests to only use modules up to and including
the current module (progressive disclosure). Tests were importing from
future modules which caused validation failures.
Changes:
- Module 05: Remove seed parameter (DataLoader does not support it)
- Module 06: Remove spatial/attention imports (modules 09, 12)
- Module 07: Make gradient tests lenient for partial autograd
- Module 08: Remove spatial imports (module 09)
- Module 09: Remove attention imports (module 12)
Validation result: All 20 modules now pass
- Fix gradient accumulation scaling in Trainer (divide gradient, not just loss)
- Fix evaluation loop to count batches correctly instead of using len(dataloader)
- Ensure optimizer params have requires_grad=True and grad initialized
- Add pytest -o addopts= to prevent config pollution in integration tests
- Improve update command messaging with Panel warning
Fixes#1112