Commit Graph

145 Commits

Author SHA1 Message Date
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
Vijay Janapa Reddi
3562b4e124 Update book CLI command to use site directory instead of book
- Rename all references from book/ to site/ directory
- Update error messages and paths throughout the command
- Maintain backward compatibility with existing functionality
2025-11-14 18:27:19 -05:00
Vijay Janapa Reddi
8302b825e2 Add module reset command and consistency review documentation
- Add module_reset.py command for resetting modules with backup functionality
- Add module 20 consistency review document
2025-11-13 10:46:13 -05:00
Vijay Janapa Reddi
57b19c627f Refactor tito CLI: consolidate module commands and improve structure
- Remove redundant module.py command file
- Consolidate module functionality into module_workflow.py
- Update command registration and help system
- Improve setup command and community integration
2025-11-13 10:42:45 -05:00
Vijay Janapa Reddi
d73cd9b53f Remove Python bytecode cache files from version control 2025-11-13 10:42:42 -05:00
Vijay Janapa Reddi
57111ea139 Fix failing module tests
- Fix 14_profiling: Replace Tensor with Linear model in test_module, fix profile_forward_pass calls
- Fix 15_quantization: Increase error tolerance for INT8 quantization test, add export marker for QuantizedLinear
- Fix 19_benchmarking: Return Tensor objects from RealisticModel.parameters(), handle memoryview in pred_array.flatten()
- Fix 20_capstone: Make imports optional (MixedPrecisionTrainer, QuantizedLinear, compression functions)
- Fix 20_competition: Create Flatten class since it doesn't exist in spatial module
- Fix 16_compression: Add export markers for magnitude_prune and structured_prune

All modules now pass their inline tests.
2025-11-12 14:19:33 -05:00
Vijay Janapa Reddi
96880b3133 Update tinytorch and tito with module exports
Re-exported all modules after restructuring:
- Updated _modidx.py with new module locations
- Removed outdated autogeneration headers
- Updated all core modules (tensor, autograd, layers, etc.)
- Updated optimization modules (quantization, compression, etc.)
- Updated TITO commands for new structure

Changes include:
- 24 tinytorch/ module files
- 24 tito/ command and core files
- Updated references from modules/source/ to modules/

All modules re-exported via nbdev from their new locations.
2025-11-10 19:42:03 -05:00
Vijay Janapa Reddi
1f0e5713b4 fix: Simplify book deployment workflow and remove legacy convert_readmes dependency 2025-11-08 18:47:02 -05:00
Vijay Janapa Reddi
c12ae5f3c2 Simplify CLI and rename community commands
CLI improvements for better UX:
- Renamed 'tito community submit' to 'tito community share'
- Removed tito/commands/submit.py (moved to module workflow)
- Updated tito/main.py with cleaner command structure
- Removed module workflow commands (start/complete/resume)
- Updated __init__.py exports for CommunityCommand
- Updated _modidx.py with new module exports

Result: Cleaner CLI focused on essential daily workflows and
clear distinction between casual sharing vs formal competition.
2025-11-07 20:05:13 -05:00
Vijay Janapa Reddi
af8afdfb62 Remove tito module and tito notebooks commands from CLI
Removed commands:
- tito module (start/complete/resume) - students just open files
- tito notebooks - redundant with export

Students now have a simpler workflow
2025-11-07 00:36:58 -05:00
Vijay Janapa Reddi
9582f6ada2 Fix duplicate submit commands by renaming community submit to share
Issue: Had two conflicting submit commands:
- tito submit (competition submission - top level)
- tito community submit (social sharing - hierarchical)

Solution:
- Renamed 'tito community submit' to 'tito community share'
- Kept 'submit' as an alias for backward compatibility
- Updated all help text and documentation references
- Changed function name from _submit_results to _share_results

Clear separation now:
- tito community share = Social progress sharing (Modules 1-19)
- tito submit = Competition submission (Module 20)

No more confusion between the two workflows
2025-11-07 00:25:56 -05:00
Vijay Janapa Reddi
a1838f27c4 Add tito submit command and rename leaderboard to community
New submit command:
- Validates TinyMLPerf competition submissions from Module 20
- Performs sanity checks on speedup, compression, and accuracy
- Displays MLPerf-style scorecard with normalized metrics
- Collects GitHub repo for verification
- Confirms honor code agreement
- Generates submission_final.json ready for upload

Rename leaderboard to community:
- Renamed LeaderboardCommand to CommunityCommand
- Changed command name from 'leaderboard' to 'community'
- Updated all help text and documentation
- More inclusive naming that emphasizes collaboration over competition
- Maintains all existing functionality (join, submit, view, profile, etc.)

CLI registration:
- Added CommunityCommand and SubmitCommand to command registry
- Updated main.py help text and command list
- Updated __init__.py exports

Student workflow now complete:
1. Modules 1-19: Learn and build
2. Optional: tito community join/submit (share progress)
3. Module 20: Generate submission.json
4. tito submit submission.json (validate and finalize)
5. Upload to instructor/platform
2025-11-07 00:07:00 -05:00
Vijay Janapa Reddi
3215159726 Consolidate environment setup to ONE canonical path
Created unified setup-environment.sh script that:
- Detects Apple Silicon and creates arm64-optimized venv
- Handles all dependencies automatically
- Creates activation helper with architecture awareness
- Works across macOS (Intel/Apple Silicon), Linux, Windows

Updated all documentation to use ONE setup command:
- README.md: Updated Quick Start
- docs/STUDENT_QUICKSTART.md: Updated Getting Started
- book/quickstart-guide.md: Updated 2-Minute Setup

Enhanced tito setup command with:
- Apple Silicon detection (checks for Rosetta vs native)
- Automatic arm64 enforcement when on Apple Silicon
- Architecture verification after venv creation
- Changed venv path from tinytorch-env to standard .venv

Students now have ONE clear path: ./setup-environment.sh
2025-11-05 17:11:47 -05:00
Vijay Janapa Reddi
f15a4fabd8 Fix modules 10-13 tests and add CLAUDE.md
- Add CLAUDE.md entry point for Claude AI system
- Fix tito test command to set PYTHONPATH for module imports
- Fix embeddings export directive placement for nbdev
- Fix attention module to export imports properly
- Fix transformers embedding index casting to int
2025-10-25 17:04:00 -04:00
Vijay Janapa Reddi
191f6db7c7 Merge pull request #7 from Zappandy/feature/dynamic-venv-config
Feature/dynamic venv config
2025-10-22 09:07:00 -04:00
Vijay Janapa Reddi
da10115f91 fix: Look for module dev files in modules/source subdirectory
- NotebooksCommand now checks modules/source/ for dev files
- Fixes 'No *_dev.py files found' error in CI
- Maintains backwards compatibility with flat structure
2025-10-19 12:59:20 -04:00
Vijay Janapa Reddi
4ac2b736c5 fix: Register notebooks command in CLI
- Add NotebooksCommand to commands dictionary in main.py
- Command was imported but not registered
- Fixes 'invalid choice: notebooks' error in workflow
2025-10-19 12:55:15 -04:00
Vijay Janapa Reddi
d33c59fd91 fix: Remove mutually exclusive group from export command
- Positional arguments cannot be in mutually exclusive groups in argparse
- Keep modules as positional argument, --all as optional flag
- Fixes CLI initialization error in GitHub Actions
2025-10-19 12:50:59 -04:00