The VS Code extension no longer implements any business logic — every
capability (module discovery, path resolution, system info, builds,
tests, clean) lives in Tito CLI commands. The extension is a pure UI
shell that delegates via `python3 -m tito.main`.
Tito CLI additions:
- `module list --json` for machine-readable module discovery
- `module path <num> --notebook|--source|--about` for file resolution
- `system info --json` for environment info
- `dev build html|serve|pdf|paper` wrapping make targets
- `dev clean [all|site]` wrapping make clean
- Banner suppression for --json and module path output
Extension hardening:
- Centralized CLI integration in utils/tito.ts (single TITO_CMD constant,
callTito, callTitoJson, titoTerminalCommand, isTitoAvailable, log/logError)
- Replaced all silent catch{} blocks with logged errors and user feedback
- Module tree shows error/empty states with actionable Setup/Health buttons
- Info tree shows "Tito CLI unavailable" when CLI is unreachable
- Removed all setTimeout refresh hacks — file watcher on .tito/progress.json
is the sole refresh mechanism
- Exit code tracking via onDidEndTerminalShellExecution
- Tito availability pre-flight check on activation
- BUILD_OUTPUTS constants for build artifact paths
- Zero execSync calls outside tito.ts, zero hardcoded command strings
The `tito src` command was never implemented. All documentation
references have been updated to use the correct commands:
- `tito src export` → `tito dev export`
- `tito src test` → `tito dev test`
Also removed 'src' from developer_commands list in main.py since
it doesn't exist as a registered command.
- Update pyproject.toml version to 0.1.4
- Set put_version_in_init = False in settings.ini to prevent nbdev overwrite
- Update tito/main.py to read version from pyproject.toml
- Update tito/__init__.py to read version from pyproject.toml
- Sync settings.ini version to 0.1.4
This ensures tito dev validate doesn't reset the version number.
- Move tito update → tito system update
- Move tito logo → tito system logo
- Remove tito grade (use tito nbgrader instead)
- Add first-run welcome message for new users
- Update demo scripts and docs for new command paths
Ensures virtual environment detection works correctly
when using direnv or similar PATH-based activation methods,
in addition to traditional activation via sys.prefix.
This prevents tito commands from failing when run in a virtual environment activated via direnv.
Setup now skips existing components silently instead of prompting.
Running tito setup multiple times is safe - it only sets up whats missing.
Changes:
- Skip existing venv/profile without prompting (use --force to recreate)
- Check which packages are already installed before installing
- Add spinners for long-running operations
- Show step numbers (Step 1/4, 2/4, etc.) for clarity
- Update help text to explain idempotent behavior
- Pass RawDescriptionHelpFormatter to subparsers for proper formatting
Remove the doctor/health alias duplication in favor of a single
'tito system health' command for environment validation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Add install.sh script using git sparse checkout for minimal downloads
- Add tito update command to check for and install updates
- Add install command box to homepage with copy button
- Unify ASCII logo between install script and tito CLI
- Add flame emoji to tagline and tighten letter spacing
- Remove unused fix-venv and rebuild-site scripts
- Extract shared export logic to export_utils.py to reduce duplication
between export.py and src.py commands
- Add virtual environment check to prevent running tito outside venv
(can be bypassed with TITO_ALLOW_SYSTEM=1 for advanced users)