| Commit message (Expand) | Author | Age | Files | Lines |
* | wsm.go: Report error when course doesn't exist | Runxi Yu | 2024-10-05 | 1 | -0/+8 |
* | {courses,sem,ws,wsm}.go: Second step towards an efficient state propagator | Runxi Yu | 2024-10-05 | 1 | -1/+1 |
* | {courses,wsm}.go: Add getCourseByID | Runxi Yu | 2024-10-05 | 1 | -10/+2 |
* | {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagate | Runxi Yu | 2024-10-05 | 1 | -24/+4 |
* | {courses,ws,wsm}.go: Update userCourseGroups during choose/unchoose | Runxi Yu | 2024-10-05 | 1 | -2/+30 |
* | {ws,wsm}.go: Handle context cancellations | Runxi Yu | 2024-10-03 | 1 | -0/+20 |
* | {main,ws,wsm}.go: Attempt to cancel old sessions | Runxi Yu | 2024-10-03 | 1 | -15/+15 |
* | wsm.go, main.js: Use M for number, N for deselect | Runxi Yu | 2024-10-02 | 1 | -3/+3 |
* | {auth,db,wsm}.go: Make 23505 (uniqueness violation) a constant | Runxi Yu | 2024-10-01 | 1 | -1/+1 |
* | wsm.go, main.js: Display the user's selected courses on first runv0.1.0 | Runxi Yu | 2024-10-01 | 1 | -2/+18 |
* | {ws,wsm}.go: Split message handlers into their own functions | Runxi Yu | 2024-10-01 | 1 | -0/+177 |