10 Commits

Author SHA1 Message Date
jettythek
8ba2fec9fd test(community): add CLI tests for progress syncing
Adds unit tests for the community submission flow: payload schema
(assemble_payload), the 200 success path, and the 401 token-refresh path,
plus an opt-in live end-to-end test that self-skips without credentials.

Corrects two assertions to match the current handler: sync_progress returns
a SyncResult (check .ok, not identity against True), and the success message
is "Sync successful!" (lowercase). The three unit tests pass locally.

From #1886, test files only; the bundled guard.js/auth.js auth change is left
for a separate, reviewable PR.
2026-06-21 22:26:57 -04:00
Vijay Janapa Reddi
f0de9f970e fix(tito): reliably sync CLI progress to the community dashboard (#1849)
The dashboard did not reflect CLI progress for users across Windows and
Ubuntu. Three independent client defects, now fixed:

1. Automatic sync was silently skipped on any non-TTY shell. _trigger_submission
   gated on `not sys.stdin.isatty()`, which is False on Windows Git Bash/MinTTY
   and many IDE terminals even when interactive, so `tito module complete`
   updated local progress.json but never uploaded, with no message. Decouple
   "should we sync" (logged-in and not CI) from "should we prompt" (needs a
   TTY): non-interactive real users now sync without a prompt instead of being
   skipped.

2. A 2xx response with synced_modules null/0 was reported as success using the
   local count, hiding backend failures. sync_progress now returns a SyncResult
   and reports an honest accepted-but-unconfirmed warning when the server does
   not confirm persistence.

3. No standalone resync path and login did not sync, so modules completed before
   logging in never reached the dashboard. Add `tito community sync` and an
   offer to sync existing progress after login.

The sync trigger decision now lives in one shared helper
(auto_sync_after_completion) used by the module, milestone, and login paths,
plus a small core/runtime.py that owns is_ci()/is_interactive(). Adds
tests/cli/test_progress_sync.py (15 tests) covering the non-TTY regression, the
CI/not-logged-in branches, honest 2xx interpretation, and the new command.
2026-06-15 13:57:06 -04:00
Vijay Janapa Reddi
5be9f3671a fix(tito): add hidden nbgrader release tiers 2026-06-02 14:45:35 -04:00
Vijay Janapa Reddi
28931b087d fix(tito): harden nbgrader release staging 2026-06-02 14:00:02 -04:00
Vijay Janapa Reddi
ccbc069426 fix(tito): restore nbgrader workflow 2026-06-02 13:40:42 -04:00
Vijay Janapa Reddi
fd9fea0e90 fix(tinytorch): repair release regressions 2026-06-02 13:40:09 -04:00
Vijay Janapa Reddi
eeddabb12d fix(tests): update CLI tests for current command structure
- Update command list: remove non-existent (src, export, test, grade, logo)
- Add actual commands: dev, milestone (singular), olympics
- Fix 'milestones' → 'milestone' throughout all CLI tests
- Update expected command files for orphan detection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:40:15 -05:00
Vijay Janapa Reddi
853eb03ee8 style: apply consistent whitespace and formatting across codebase 2025-12-13 14:05:34 -05:00
Vijay Janapa Reddi
ddf651970f refactor(tito): remove doctor alias, use health as single command
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)
2025-12-11 12:34:28 -08:00
Vijay Janapa Reddi
c602f97364 feat: integrate TinyTorch into MLSysBook repository
TinyTorch educational deep learning framework now lives at tinytorch/

Structure:
- tinytorch/src/         - Source modules (single source of truth)
- tinytorch/tito/        - CLI tool
- tinytorch/tests/       - Test suite
- tinytorch/site/        - Jupyter Book website
- tinytorch/milestones/  - Historical ML implementations
- tinytorch/datasets/    - Educational datasets (tinydigits, tinytalks)
- tinytorch/assignments/ - NBGrader assignments
- tinytorch/instructor/  - Teaching materials

Workflows (with tinytorch- prefix):
- tinytorch-ci.yml           - CI/CD pipeline
- tinytorch-publish-dev.yml  - Dev site deployment
- tinytorch-publish-live.yml - Live site deployment
- tinytorch-build-pdf.yml    - PDF generation
- tinytorch-release-check.yml - Release validation

Repository Variables added:
- TINYTORCH_ROOT  = tinytorch
- TINYTORCH_SRC   = tinytorch/src
- TINYTORCH_SITE  = tinytorch/site
- TINYTORCH_TESTS = tinytorch/tests

All workflows use \${{ vars.TINYTORCH_* }} for path configuration.

Note: tinytorch/site/_static/favicon.svg kept as SVG (valid for favicons)
2025-12-05 19:23:18 -08:00