[PR #1616] [MERGED] fix(tinytorch): tito module status milestone tracking (#1612, #1615) #9222

Closed
opened 2026-05-03 01:29:18 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/harvard-edge/cs249r_book/pull/1616
Author: @profvjreddi
Created: 4/30/2026
Status: Merged
Merged: 4/30/2026
Merged by: @profvjreddi

Base: devHead: fix/tito-status-m3


📝 Commits (2)

  • 1fd623f fix(tinytorch): align tito module status milestone requirements with canonical list (#1612)
  • 881aa0a fix(tinytorch): show all milestones in tito module status, not just first 3 (#1615)

📊 Changes

1 file changed (+18 additions, -7 deletions)

View changed files

📝 tinytorch/tito/commands/module/workflow.py (+18 -7)

📄 Description

Summary

Two related bugs in tito module status reported by andre against TinyTorch v0.1.10. Both live in tinytorch/tito/commands/module/workflow.py.

Issue #1612 — Milestone 03 advertised as ready after module 6

_check_milestone_readiness carried its own copy of the milestone-to-modules mapping that had drifted from the canonical MILESTONE_SCRIPTS definition in tito/commands/milestone.py (and from _get_milestone_for_module higher up in the same file).

The drifted list said milestone 03 (MLP Revival, 1986) needed only modules [1, 2, 3, 4, 5, 6], so the dashboard told students it was ready to unlock as soon as module 6 was done. The milestone actually requires the full training stack through module 8. Milestones 04–06 had similar gaps that omitted modules 7 and/or 8.

Fix: updated the list to match the canonical requirements, and added a docstring noting that this list mirrors MILESTONE_SCRIPTS and must stay in sync.

Milestone Before After
03 MLP Revival [1..6] [1..8]
04 CNN Revolution [1..6, 8, 9] [1..9]
05 Transformer Era [1..6, 11..13] [1..8, 11..13]
06 MLPerf [1..6, 14..19] [1..8, 14..19]

Issue #1615 — Milestones after 03 disappear from status

The status display sliced the milestone list with [:3], so once any three milestones appeared (unlocked or ready), every milestone after that vanished from the output. Once milestones 01, 02, 03 were unlocked, the student would no longer see that milestones 04, 05, 06 were ready to unlock — they appeared to drop off the dashboard entirely.

Fix: iterate over the full readiness list. The list has at most six entries, so output stays compact and "ready" milestones beyond the third unlocked one are now visible.

Verification

Reproduced the readiness logic in isolation and confirmed:

  • After completing modules 01–06, milestone 03 is not listed as ready (only 01 and 02 are).
  • After completing module 08, milestone 03 becomes ready.
  • With milestones 01/02/03 unlocked and module 09 done, milestone 04 now appears as ready (the old [:3] slice would have hidden it).

No existing pytest coverage exists for _check_milestone_readiness or show_status. python3 -m py_compile on the modified file passes.

Test plan

  • Manual: in a working TinyTorch checkout, complete modules 1–6 only and run tito module status; confirm milestone 03 is not listed as ready.
  • Manual: complete modules 1–8 and confirm milestone 03 now shows as ready to unlock.
  • Manual: unlock milestones 01–03 (tito milestone run 01/02/03) with all required modules done, then run tito module status; confirm milestone 04 is still visible as ready (and 01–03 still listed as unlocked).

Relates to #1612
Relates to #1615


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/harvard-edge/cs249r_book/pull/1616 **Author:** [@profvjreddi](https://github.com/profvjreddi) **Created:** 4/30/2026 **Status:** ✅ Merged **Merged:** 4/30/2026 **Merged by:** [@profvjreddi](https://github.com/profvjreddi) **Base:** `dev` ← **Head:** `fix/tito-status-m3` --- ### 📝 Commits (2) - [`1fd623f`](https://github.com/harvard-edge/cs249r_book/commit/1fd623fe70b6dbfc77f52cba94a7b59fd4235154) fix(tinytorch): align tito module status milestone requirements with canonical list (#1612) - [`881aa0a`](https://github.com/harvard-edge/cs249r_book/commit/881aa0a8ed153a5693cf61ba8c4ae0ce51ab36f4) fix(tinytorch): show all milestones in tito module status, not just first 3 (#1615) ### 📊 Changes **1 file changed** (+18 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `tinytorch/tito/commands/module/workflow.py` (+18 -7) </details> ### 📄 Description ## Summary Two related bugs in `tito module status` reported by `andre` against TinyTorch v0.1.10. Both live in `tinytorch/tito/commands/module/workflow.py`. ### Issue #1612 — Milestone 03 advertised as ready after module 6 `_check_milestone_readiness` carried its own copy of the milestone-to-modules mapping that had drifted from the canonical `MILESTONE_SCRIPTS` definition in `tito/commands/milestone.py` (and from `_get_milestone_for_module` higher up in the same file). The drifted list said milestone 03 (MLP Revival, 1986) needed only modules `[1, 2, 3, 4, 5, 6]`, so the dashboard told students it was ready to unlock as soon as module 6 was done. The milestone actually requires the full training stack through module 8. Milestones 04–06 had similar gaps that omitted modules 7 and/or 8. **Fix:** updated the list to match the canonical requirements, and added a docstring noting that this list mirrors `MILESTONE_SCRIPTS` and must stay in sync. | Milestone | Before | After | |---|---|---| | 03 MLP Revival | `[1..6]` | `[1..8]` | | 04 CNN Revolution | `[1..6, 8, 9]` | `[1..9]` | | 05 Transformer Era | `[1..6, 11..13]` | `[1..8, 11..13]` | | 06 MLPerf | `[1..6, 14..19]` | `[1..8, 14..19]` | ### Issue #1615 — Milestones after 03 disappear from status The status display sliced the milestone list with `[:3]`, so once any three milestones appeared (unlocked or ready), every milestone after that vanished from the output. Once milestones 01, 02, 03 were unlocked, the student would no longer see that milestones 04, 05, 06 were ready to unlock — they appeared to drop off the dashboard entirely. **Fix:** iterate over the full readiness list. The list has at most six entries, so output stays compact and "ready" milestones beyond the third unlocked one are now visible. ## Verification Reproduced the readiness logic in isolation and confirmed: - After completing modules 01–06, milestone 03 is **not** listed as ready (only 01 and 02 are). - After completing module 08, milestone 03 becomes ready. - With milestones 01/02/03 unlocked and module 09 done, milestone 04 now appears as ready (the old `[:3]` slice would have hidden it). No existing pytest coverage exists for `_check_milestone_readiness` or `show_status`. `python3 -m py_compile` on the modified file passes. ## Test plan - [ ] Manual: in a working TinyTorch checkout, complete modules 1–6 only and run `tito module status`; confirm milestone 03 is not listed as ready. - [ ] Manual: complete modules 1–8 and confirm milestone 03 now shows as ready to unlock. - [ ] Manual: unlock milestones 01–03 (`tito milestone run 01/02/03`) with all required modules done, then run `tito module status`; confirm milestone 04 is still visible as ready (and 01–03 still listed as unlocked). Relates to #1612 Relates to #1615 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-03 01:29:18 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/cs249r_book#9222