Commit Graph

162 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
aae2ac16bf Fix setup command venv recreation logic
When user declined venv recreation, setup was still printing
"Setting up virtual environment..." before checking if it existed,
making it appear that recreation was proceeding anyway.

Changes:
- Check for existing venv before printing any messages
- Show " Using existing virtual environment" when user declines
- Show "🐍 Recreating..." only when actually recreating
- Show "🐍 Setting up..." only for new venv creation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 12:11:19 -05:00
Vijay Janapa Reddi
244ac44a3e Add Rich-formatted help output for tito --help
Replace plain argparse help with custom Rich-formatted output:
- Intercept --help flag before argparse processes it
- Show ASCII logo at top (consistent with tito alone)
- Display commands in beautiful Rich table with colors
- Reuse _generate_welcome_text() for consistency
- Add formatted global options section

Benefits:
- Consistent Rich formatting across tito and tito --help
- Professional table layout for commands (green names, dim descriptions)
- Color-coded sections (cyan headers, yellow options, green commands)
- Same visual experience whether you run tito or tito --help
- All command info dynamically pulled from self.commands dict

Before: Plain black-and-white argparse output
After: Colorful, formatted Rich output with ASCII logo and tables
2025-12-01 08:23:29 -05:00
Vijay Janapa Reddi
3a297fdf64 Make CLI help text dynamically generated from single source of truth
Replace static hardcoded help text with dynamic generation from command registry:
- Create welcome_sections dict as single source of truth for examples
- Add _generate_welcome_text() for interactive mode (tito)
- Add _generate_epilog() for help mode (tito --help)
- Both screens now pull from same data structure

Benefits:
- No more forgetting to update help when commands change
- Student/Developer command lists auto-generated from self.commands dict
- Quick Start examples defined once, used in both places
- Ensures consistency between tito and tito --help outputs

Changes:
- tito/main.py: Replace 40+ lines of static text with 70 lines of dynamic generation
- Commands automatically categorized from student_commands/developer_commands lists
- Rich formatting maintained for interactive mode, stripped for plain --help
2025-12-01 08:13:00 -05:00
Vijay Janapa Reddi
033fa148ff Apply consistent Rich formatting across all CLI commands
Standardize color usage to match TinyTorch CLI style guide:
- Replace [blue] with [cyan] for all action/info messages (10 instances)
- Replace [bold blue] with [bold cyan] for headers (1 instance)
- Replace "bold blue" with "bold cyan" for table headers (3 instances)
- Replace "bright_blue" with "bright_cyan" for panel borders (1 instance)

Files updated:
- tito/main.py: Welcome screen community commands now use [cyan]
- tito/commands/login.py: URL display now uses [cyan]
- tito/commands/protect.py: All 7 blue instances → cyan
- tito/commands/milestone.py: Table headers → bold cyan
- tito/commands/test.py: Table headers → bold cyan
- tito/commands/grade.py: Border style → bright_cyan

Result: Holistic CLI consistency with [cyan] for actions, [green] for success,
[yellow] for warnings, [red] for errors across all 15+ commands.
2025-12-01 07:57:05 -05:00
Vijay Janapa Reddi
7d3e302672 Refactor community command: consolidate login/logout under community namespace
- Move login/logout from standalone commands to tito community subcommands
- Reduce community.py from 860 to 264 lines by removing placeholder profile code
- Delegate login/logout to existing LoginCommand/LogoutCommand (no auth code changes)
- Maintain leaderboard, compete, and submit functionality
- Apply consistent Rich formatting:  emoji, [cyan] for actions, [green] for success
- Update main.py help text to show new command structure

Commands:
  tito community login       - OAuth login via browser
  tito community logout      - Clear credentials
  tito community leaderboard - Open leaderboard
  tito community compete     - Open competitions
  tito community submit      - Validate/submit benchmarks

All auth/submission code unchanged. Style consistent with TinyTorch CLI conventions.
2025-12-01 07:53:43 -05:00
kai
c682ec2ee3 updates to submission to server database and login flow 2025-11-30 21:01:57 -05:00
Vijay Janapa Reddi
ecf9d527c0 Improve CLI command output formatting and messaging 2025-11-29 19:16:55 -05:00
Vijay Janapa Reddi
deea02f3b6 Add submission command to tito community CLI
Implement tito community submit command for Module 20 capstone submissions with schema validation, metrics display, and error handling. Shows baseline and optimized model metrics with improvement calculations. Includes Coming soon message for future leaderboard integration.
2025-11-29 18:45:02 -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
5686ca198b Fix syntax error in console.py comment
Fixed broken multiline comment that had closing parenthesis on wrong line.
The syntax error was preventing tito from running.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:47:36 -05:00
Vijay Janapa Reddi
499f8aa066 Improve ASCII logo letter spacing and breathing room
Typography refinements:
- Add extra space between TORCH letters for better readability
- Improve breathing room in R, C, and H letter forms
- Adjust flame positioning to match wider letter spacing
- Align tagline with updated TORCH width

The wider spacing gives each letter more presence and makes
the logo feel less cramped on narrow terminal windows.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:18:59 -05:00
Vijay Janapa Reddi
495ff1cea9 Refine ASCII logo cohesion and visual balance
Typography refinements:
- Move flames 1 space closer to T and H for better visual cohesion
- Make tagline bold to match flame glow intensity
- Use TAGLINE_COLOR constant for consistency

These micro-adjustments make the logo feel crafted rather than
assembled, with each element belonging to a unified whole.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:11:32 -05:00
Vijay Janapa Reddi
88f8753b0d Add Help & Docs section to welcome screen
Added fourth section with essential help commands:
- tito system doctor (check environment health)
- tito --help (see all commands)

Completes welcome screen simplification with 4 focused groups
showing 10 total commands for new users.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:09:25 -05:00
Vijay Janapa Reddi
22908bd4d6 Align tagline text under TORCH in ASCII logo
Added proper spacing (8 spaces) to align the tagline
'🔥 Don't just import it. Build it.' directly under the TORCH letters.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 11:59:39 -05:00
Vijay Janapa Reddi
f81ab97100 Update dependency checks to match requirements.txt
Separate required vs optional dependencies in health checks:

Required (from requirements.txt):
- NumPy, Rich, PyYAML, Pytest, Jupytext

Optional (nice to have):
- JupyterLab, Matplotlib

Now health check shows:
- Required deps as  OK or  Missing
- Optional deps as  Installed or ○ Not installed (dim, not alarming)

This prevents students from thinking they have issues when
optional tools like JupyterLab aren't installed.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 11:46:15 -05:00
Vijay Janapa Reddi
53cd2a90f0 Add leaderboard and compete subcommands to community
New browser-opening subcommands:
- tito community leaderboard → Opens https://tinytorch.ai/community/leaderboard
- tito community compete → Opens https://tinytorch.ai/community/compete

These provide easy access to community features that will be
implemented on the website later. Clean integration with the
GitHub-first join flow.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 11:44:18 -05:00
Vijay Janapa Reddi
58fe9363f0 Simplify CLI welcome screen and remove redundant community commands
Dramatically simplified the welcome screen to show only essential info:
- Quick Start (3 commands)
- Track Progress (2 commands)
- Community (1 command)

Removed redundant commands:
- leaderboard -> merged into community
- olympics -> merged into community

These backend-dependent features are consolidated into a single
community command that will handle all social features when the
backend is ready.

Changes:
- Simplified welcome screen (10 lines vs 40+ lines)
- Moved leaderboard.py and olympics.py to _archived/
- Updated all tests (45 passing)
- Cleaner --help output
- Updated archived README

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 11:41:51 -05:00
Vijay Janapa Reddi
63e6b282be Remove demo and book commands from CLI
Students can run demos directly with Python, and developers can
run jupyter-book directly. The CLI wrappers don't add value.

Changes:
- Move demo.py and book.py to _archived/
- Remove from main.py command registry
- Remove from __init__.py imports
- Update test expectations (47 tests passing)
- Update archived README with removal rationale

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 11:19:30 -05:00
Vijay Janapa Reddi
3e0e22a376 Refactor community join to GitHub-first flow with browser redirect
Changed community join from anonymous UUID-based to GitHub-authenticated
profile creation with minimal CLI questions and web completion.

Changes:
- Ask only 3 questions: GitHub username (required), country, institution
- GitHub username is the authentication anchor (no more anonymous UUIDs)
- Auto-detect country when possible
- Open browser to tinytorch.ai/community/join with pre-filled params
- Store minimal profile locally (.tinytorch/community.json)
- Full profile completion happens on website (OAuth, bio, social links)
- Updated command description to be clearer

Benefits:
- Faster CLI experience (3 questions max vs 5+)
- GitHub username = single source of truth
- Better UX for complex forms (website has rich UI)
- OAuth authentication built-in
- Profile sync possible via API later

Local storage format:
{
  "github_username": "studentX",
  "joined_at": "2025-11-29T...",
  "country": "USA",
  "institution": "MIT",
  "profile_url": "https://tinytorch.ai/community/studentX",
  "last_synced": null
}

Tests: 49/49 passing 

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:17:45 -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
bb5e631214 Remove checkpoint command (superseded by milestones)
The checkpoint command tracked 21 technical capability checkpoints, but
this overlapped significantly with the milestones system which provides
a more engaging, narrative-driven progress tracking experience.

Changes:
- Removed checkpoint command and test files
- Updated milestone.py to remove checkpoint dependencies
- Removed checkpoint integration from export.py, src.py, leaderboard.py
- Updated CLI help text to reference milestones instead
- Updated test suite (49/49 tests passing)
- Archived checkpoint.py for reference

Rationale:
- Milestones is more engaging (historical ML achievements)
- Module status already shows granular progress
- Reduces duplication and confusion
- Single clear progress tracking system

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 01:24:25 +01:00
Vijay Janapa Reddi
204ac81b42 Make CLI welcome screen dynamically generated from registered commands
- Remove hardcoded command list in welcome screen
- Dynamically build help from self.commands registry
- Categorize commands: Essential, Student Workflow, Community, Developer, Shortcuts
- Ensures welcome screen always shows only registered commands
- No more stale command references

Benefits:
- Single source of truth (commands registry)
- Adding/removing commands automatically updates welcome
- Clear categorization for different user roles

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 00:14:49 +01: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
Vijay Janapa Reddi
a3de9654e7 Add --all flag to module reset command for bulk module reset 2025-11-28 22:05:14 +01:00
Vijay Janapa Reddi
319260e5cb Update TinyTorch CLI: consistent tagline, milestones naming, and auto-install
- Update tagline across all commands to 'Don't just import it. Build it.'
- Rename milestone command to milestones for better consistency
- Remove duplicate milestones.py file
- Add auto-install of tito CLI in activate.sh
- Add command metadata structure to BaseCommand
- Clean up command registration with single source of truth
2025-11-28 21:29:12 +01:00
Vijay Janapa Reddi
403d4c2f4c Add .tito/backups and docs/_build to gitignore 2025-11-28 14:59:51 +01:00
Vijay Janapa Reddi
a5d9ed3984 Remove doctor.py and update remaining system doctor references
- Delete tito/commands/doctor.py (replaced by health/check commands)
- Update export.py: system doctor → system health
- Update help.py: system doctor → system health (4 occurrences)
- Update module_workflow.py: system doctor → system health
- Update setup.py: system doctor → system health
- Update src.py: system doctor → system health

Completes migration from 'tito system doctor' to new command structure.
2025-11-27 13:35:33 +01:00
Vijay Janapa Reddi
9b09888749 Clean up CLI debug output
- Add suppress_output() helper in base.py (for reference)
- Comment out debug print in virtual_env_manager.py
- Remove noisy 'running this from' messages
2025-11-26 18:11:06 +01:00
Vijay Janapa Reddi
763ea7e462 Wire up new system commands and set TINYTORCH_QUIET
- Register new commands in __init__.py
- Add subparsers in system.py
- Set TINYTORCH_QUIET=1 in main.py to suppress autograd messages
2025-11-26 18:10:53 +01:00
Vijay Janapa Reddi
f913b54356 Add new system commands: check, version, clean, report
- check: Comprehensive environment validation (60+ tests)
- version: Definitive version catalog for all dependencies
- clean: Workspace cleanup (caches, temp files, build artifacts)
- report: Generate diagnostic JSON for bug reports and support
2025-11-26 18:10:47 +01:00
Vijay Janapa Reddi
62511ae91d Deduplicate system commands: remove version info redundancy
- health: Show only / status (no version numbers)
- info: Remove dependency table (use 'system version' instead)
- Clear separation: health=status, info=resources, version=versions
2025-11-26 18:10:39 +01:00
Vijay Janapa Reddi
356ef2b1a1 Add personal professor message and TinyML origin story to logo command
Enhanced the tito logo command with a personal message from Professor Vijay
Janapa Reddi explaining how TinyTorch grew from the TinyML movement at Harvard.
The message emphasizes the importance of engineering ML systems from first
principles and includes the memorable Lego/Star Wars analogy.

Key changes:
- Added personal signature with Harvard CS 249R affiliation
- Included TinyML movement origin story in conversational, italic style
- Emphasized "engineer" as the core philosophy
- Added Lego blocks analogy for building from scratch
- Updated catchphrase: "The future of ML is tiny and bright—don't just 'import torch', build it."
- Updated tagline: "Start tiny. Go deep. Build big."

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 16:43:12 +01:00
Vijay Janapa Reddi
8f99175f2c Fix CLI bugs and rename milestone → milestones
## Bug Fixes
- Fixed Bug #1: Reset command directory path (modules/ → src/)
- Fixed Bug #2: Reset command file naming (short name → full module name)
- Fixed Transformer milestone prerequisites (skip CNN/spatial modules)

## Command Changes
- Renamed `milestone` → `milestones` (plural)
- Removed old `milestone` backward compatibility alias
- Updated all milestone references to use "MLPerf benchmarks"

## Testing
- Completed 8/8 Priority 1 & 2 CLI tests
- Documented 3 bugs (1 fixed, 2 open)
- Added comprehensive test documentation

## Visual Improvements
- Fixed "Tiny" capitalization in banner
- Enhanced prerequisite checking with locked module display
- Improved completion workflow with 3-step visual feedback

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 13:07:30 -05:00
Vijay Janapa Reddi
b613bc8452 Fix brand capitalization: tiny → Tiny
Changed banner to display 'Tiny🔥TORCH' with capital T to match
the official brand style.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 12:00:17 -05:00
Vijay Janapa Reddi
785e7c1582 Enhance CLI visual design for better student engagement
Improved three key student-facing commands with Rich formatting:

1. tito module status
   - Visual progress bar (███░░░)
   - Clean table with status icons (🚀🔒)
   - Smart list collapsing for readability
   - Milestone readiness indicators
   - Clear "Next Action" guidance

2. tito module complete
   - 3-step visual workflow (Test → Export → Track)
   - Celebratory completion message
   - Shows what students can now do
   - Progress percentage tracking
   - Suggests next module

3. tito module start
   - Prerequisite checking (enforces sequential learning)
   - Beautiful locked/unlocked module displays
   - Shows missing prerequisites in table
   - Milestone progress preview
   - Clear step-by-step instructions

Design principles:
- Progressive disclosure (show relevant info only)
- Clear visual hierarchy (panels, tables, separators)
- Pedagogical guidance (always show next action)
- Consistent iconography (🚀🔒🏆💡)

Ready for demo GIF recording!

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 11:53:29 -05:00
Vijay Janapa Reddi
4b230eec34 Rename command: tito source → tito src for directory alignment
Changed 'source' to 'src' to match src/ directory name:
- Renamed SourceCommand → SrcCommand
- Updated command from 'tito source' → 'tito src'
- Updated all imports and references
- Updated documentation (README, COMMAND_HIERARCHY)

Benefits:
- Perfect alignment with src/ directory
- Follows standard convention (src/ is ubiquitous)
- Shorter, clearer commands
- Obvious context: 'tito src export' = export from src/

Tested: tito src export 01_tensor works correctly
2025-11-25 02:29:14 -05:00
Vijay Janapa Reddi
0e16e17e32 Fix critical bugs in module complete and milestone run
Fixes:
- module complete: Update paths to use src/ for source files
- module complete: Fix export call to use new SourceCommand API
- milestone run: Remove nonexistent progress_tracker dependency
- milestone run: Use progress.json directly for prerequisite checking

Both commands now work correctly with new directory structure
2025-11-25 02:01:52 -05:00
Vijay Janapa Reddi
0ed557286e Add 'tito source' command hierarchy for developer workflow
New command structure for developer operations on src/ files:
- tito source export <num>   - Export src/*.py → modules/*.ipynb → tinytorch/*.py
- tito source export --all    - Export all modules
- tito source test <num>      - Test source modules (planned)

Benefits:
- Clear hierarchy: 'source' = working with src/ directory
- Maps to directory structure: src/ → tito source
- Separates developer (source) from student (module) workflows
- More explicit than generic 'dev' naming

Commands:
- Students use: tito module start/complete
- Developers use: tito source export
- 'export' remains as shortcut for backward compatibility

Tested:
- tito source export 01_tensor 
- Generates notebook and exports to package 
2025-11-25 01:48:31 -05:00
Vijay Janapa Reddi
d3a126235c Restructure: Separate developer source (src/) from learner notebooks (modules/)
Major directory restructure to support both developer and learner workflows:

Structure Changes:
- NEW: src/ directory for Python source files (version controlled)
  - Files renamed: tensor.py → 01_tensor.py (matches directory naming)
  - All 20 modules moved from modules/ to src/
- CHANGED: modules/ now holds generated notebooks (gitignored)
  - Generated from src/*.py using jupytext
  - Learners work in notebooks, developers work in Python source
- UNCHANGED: tinytorch/ package (still auto-generated from notebooks)

Workflow: src/*.py → modules/*.ipynb → tinytorch/*.py

Command Updates:
- Updated export command to read from src/ and generate to modules/
- Export flow: discovers modules in src/, converts to notebooks in modules/, exports to tinytorch/
- All 20 modules tested and working

Configuration:
- Updated .gitignore to ignore modules/ directory
- Updated README.md with new three-layer architecture explanation
- Updated export.py source mappings and paths

Benefits:
- Clean separation: developers edit Python, learners use notebooks
- Better version control: only Python source committed, notebooks generated
- Flexible learning: can work in notebooks OR Python source
- Maintains backward compatibility: tinytorch package unchanged

Tested:
- Single module export: tito export 01_tensor 
- All modules export: tito export --all 
- Package imports: from tinytorch.core.tensor import Tensor 
- 20/20 modules successfully converted and exported
2025-11-25 00:02:21 -05:00
Vijay Janapa Reddi
9767c78155 Add milestone system with clean architecture
- Single source of truth in milestone_tracker.py
- Zero code duplication across codebase
- Clean API: check_module_export(module_name, console)
- Gamified learning experience through ML history
- Progressive unlocking of 5 major milestones
- Comprehensive documentation for students and developers
- Integration with module workflow and CLI commands
2025-11-22 20:29:34 -05:00
Vijay Janapa Reddi
308d6f2049 Add transformer quickdemo with live learning progression dashboard
New milestone 05 demo that shows students the model learning to "talk":
- Live dashboard with epoch-by-epoch response progression
- Systems stats panel (tokens/sec, batch time, memory)
- 3 test prompts with full history displayed
- Smaller model (110K params) for ~2 minute training time

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-22 15:55:12 -05:00
Vijay Janapa Reddi
521aee0af3 Disable auto-protection to prevent permission errors during export
The auto-protection feature was setting core tinytorch files to read-only
after each export, which caused permission errors on subsequent exports.
Students who want file protection can run 'tito protect --enable' manually.
2025-11-22 15:27:33 -05:00
Vijay Janapa Reddi
97e0563614 Add community and benchmark features with baseline validation
- Implement tito benchmark baseline and capstone commands
- Add SPEC-style normalization for baseline benchmarks
- Implement tito community join, update, leave, stats, profile commands
- Use project-local storage (.tinytorch/) for user data
- Add privacy-by-design with explicit consent prompts
- Update site documentation for community and benchmark features
- Add Marimo integration for online notebooks
- Clean up redundant milestone setup exploration docs
- Finalize baseline design: fast setup validation (~1 second) with normalized results
2025-11-20 00:17:21 -05:00
Vijay Janapa Reddi
37e254f8d7 Checkpoint: Paper revisions before Figure 1 restructuring
- Table 2 revised with balanced ML/Systems concepts
- Student feedback addressed (abstract, intro examples)
- Repetitions removed, progressive flow improved
- ~1,000 words cut from redundant content

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 21:52:23 -05:00
Vijay Janapa Reddi
f31865560e Add enumitem package to fix itemize formatting
The itemize environment parameters [leftmargin=*, itemsep=1pt, parsep=0pt]
were appearing as visible text in the PDF because the enumitem package
wasn't loaded. This fix adds \usepackage{enumitem} to the preamble.

All itemized lists now format correctly with proper spacing and margins.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 08:43:41 -05:00
Vijay Janapa Reddi
a13b4f7244 Improve SIGCSE paper with reviewer feedback and clean up repository
Paper improvements:
- Add differentiated time estimates (60-80h experienced, 100-120h typical, 140-180h struggling)
- Moderate cognitive load claims with hedging language and empirical validation notes
- Add ML Systems Research subsection with citations (Baydin AD survey, Chen gradient checkpointing, TVM, FlashAttention)
- Add comprehensive Threats to Validity section (selection bias, single institution, demand characteristics, no control group, maturation, assessment validity)
- Define jargon (monkey-patching) at first use with clear explanation

Documentation updates:
- Restructure TITO CLI docs into dedicated section (overview, modules, milestones, data, troubleshooting)
- Update student workflow guide and quickstart guide
- Remove deprecated files (testing-framework.md, tito-essentials.md)
- Update module template and testing architecture docs

Repository cleanup:
- Remove temporary review files (ADDITIONAL_REVIEWS.md, EDTECH_OPENSOURCE_REVIEWS.md, TA_STRUGGLING_STUDENT_REVIEWS.md, etc.)
- Remove temporary development planning docs
- Update demo GIFs and configurations
2025-11-16 23:46:38 -05:00