12 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
d8e8df81af Fix broken imports after CLI cleanup: system and module commands
Fixed broken imports in system and module commands after removing dead command files:

1. System Command (system/system.py):
   - Removed imports: check, version, clean_workspace, report, protect
   - Kept: info, health, jupyter
   - Added 'doctor' as alias for comprehensive health check
   - Simplified to 4 subcommands: info, health, doctor, jupyter

2. Module Workflow Command (module/workflow.py):
   - Removed imports: view, test
   - Replaced ViewCommand._open_jupyter() with direct Jupyter Lab launch
   - Kept all module workflow functionality intact

All 15 registered commands now load and execute successfully:
 Student: module, milestones, community, benchmark, olympics
 Developer: dev, system, src, package, nbgrader
 Shortcuts: export, test, grade, logo
 Essential: setup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 08:19:26 -08:00
Vijay Janapa Reddi
4aa444517b Extend integration test mapping to cover all 20 modules
Added explicit comments explaining which tests apply to each tier:
- Foundation (01-07): Core integration tests
- Architecture (08-13): CNN and NLP pipeline tests
- Performance (14-19): Module-specific tests only
- Capstone (20): Comprehensive validation
2025-12-02 23:07:04 -08:00
Vijay Janapa Reddi
47635d1550 Add three-phase testing to tito module test
- Phase 1: Inline unit tests (quick sanity checks)
- Phase 2: Module pytest with --tinytorch educational output
- Phase 3: Integration tests for modules 01-N

Added --unit-only and --no-integration flags for flexibility.
Students can now run comprehensive tests with clear feedback
about what each phase is checking and why it matters.
2025-12-02 23:06:17 -08:00
Vijay Janapa Reddi
73a229faa3 Add tito module list command for students to see all modules
New command shows all 21 modules with descriptions:
- tito module list - Shows numbered table of all modules
- Educational descriptions explain what each module covers
- Links to start and status commands for next steps
2025-12-02 22:50:43 -08:00
kai
c682ec2ee3 updates to submission to server database and login flow 2025-11-30 21:01:57 -05:00
Vijay Janapa Reddi
c89cedd080 Enhance module test CLI with rich progress bars
Added live progress bar to `tito module test --all` command:
- Shows spinner, progress bar, and task progress (X/20)
- Updates description with current module being tested
- Provides better visual feedback during long test runs
- Maintains all existing rich output (logo, panels, tables)

Uses rich.progress with SpinnerColumn, TextColumn, BarColumn,
and TaskProgressColumn for comprehensive progress visualization.

This completes the rich CLI enhancement pass for bulk commands.
2025-11-29 14:45:09 -05:00
Vijay Janapa Reddi
5ce54ce228 Add bulk testing and export commands for modules
New Commands:
- tito module test [NUMBER]    - Test single module
- tito module test --all        - Test all 20 modules sequentially
- tito module complete --all    - Complete all modules (test + export)
- tito module reset --all       - Reset all modules (already existed)

Features:
- Detailed test results with pass/fail status
- --verbose flag for full test output
- --stop-on-fail to halt on first failure
- Summary table showing all module test results
- 5-minute timeout per module test
- Proper error reporting and exit codes

This enables:
- Quick validation of all modules after global changes
- Bulk export workflow for package releases
- Easy testing during development

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 13:59:48 -05:00
Vijay Janapa Reddi
c776519284 Update demo tapes and fix reset command
Demo improvements:
- Add hidden setup phase to demo tapes for clean state
- New benchmark and logo demo tapes
- Improved build-test-ship, milestone, and share-journey demos
- All demos now use Hide/Show for cleaner presentation

CLI fix:
- Add default=None to module reset command argument
- Prevents argparse error when no module specified

Cleanup:
- Remove outdated tinytorch/core/activations.py binary

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 13:28:19 -05:00
Vijay Janapa Reddi
dab6ea215f Fix module complete: correct SrcCommand import path
Changed import from `.src` to `..src` since SrcCommand is in
tito/commands/src.py not tito/commands/module/src.py

This fixes the "No module named 'tito.commands.module.src'" error
when running `tito module complete`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:10:55 -05:00
Vijay Janapa Reddi
f36abec2e7 Fix module completion tracking and add sequential validation
- Remove module from started_modules when marking complete
- Add validation to prevent completing modules out of order
- Show all modules in status (removed smart collapsing)
- Fix data integrity: modules must be completed sequentially

Prevents invalid states where module N is complete but N-1 is not.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 00:08:52 +01:00
Vijay Janapa Reddi
8d3025afc5 Refactor CLI commands into hierarchical folder structure
Reorganize TinyTorch CLI from flat structure to hierarchical organization
with subfolders for complex commands with subcommands.

Changes:
- Create subfolders: module/, system/, package/
- Move module commands: module_workflow.py → module/workflow.py
- Move module_reset.py → module/reset.py
- Move system commands: system.py → system/system.py
- Move system subcommands: info.py, health.py, jupyter.py → system/
- Move package commands: package.py → package/package.py
- Move package helpers: reset.py, nbdev.py → package/
- Archive deprecated files: clean.py, help.py, notebooks.py, status.py
- Update all imports in moved files and main.py
- Add __init__.py exports for each subfolder
- Create comprehensive CLI test suite (52 tests)
  - test_cli_registry.py: Validate command registration
  - test_cli_execution.py: Smoke tests for all commands
  - test_cli_help_consistency.py: Help text validation
- Update tests to match new structure

Benefits:
- Clear ownership: Easy to see which helpers belong to which commands
- Better organization: Related files grouped together
- Scales cleanly: Adding subcommands is straightforward
- Zero user impact: All commands work exactly the same

All 52 tests passing 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:42:03 +01:00
Vijay Janapa Reddi
e159a65118 Fix module reset command: use getattr for optional args
- Fix AttributeError when calling reset without --all flag
- Use getattr() with defaults for 'all' and 'list_backups' attributes
2025-11-28 23:39:13 +01:00