| Commit message (Expand) | Author | Files | Lines |
2024-10-05 | iadocs: Update IA documentation | Runxi Yu | 1 | -0/+15 |
2024-10-05 | docs: max-width: 50rem; | Runxi Yu | 1 | -1/+1 |
2024-10-05 | docs/admin: Document database setup | Runxi Yu | 1 | -1/+10 |
2024-10-05 | docs/admin: Update protocol information | Runxi Yu | 1 | -3/+2 |
2024-10-05 | iadocs: Cover page update | Runxi Yu | 1 | -5/+5 |
2024-10-05 | {,u}sem.go, ws*.go: Restructure files | Runxi Yu | 5 | -235/+319 |
2024-10-05 | {config,main}.go: Enhance configuration file processing | Runxi Yu | 2 | -8/+124 |
2024-10-05 | bench.go: Reformat | Runxi Yu | 1 | -2/+2 |
2024-10-05 | bench.go: Separate connection stage from selection stagev0.1.3 | Runxi Yu | 1 | -2/+10 |
2024-10-05 | bench.go: More realistic benchmark for one course only | Runxi Yu | 1 | -9/+18 |
2024-10-05 | Makefile: BSD Make also supports wildcards in targets | Runxi Yu | 1 | -1/+1 |
2024-10-05 | Makefile: Add sem.go to source file list | Runxi Yu | 1 | -1/+1 |
2024-10-05 | {config,ws}.go, cca.scfg.example: Add perf.course_update_interval | Runxi Yu | 3 | -6/+14 |
2024-10-05 | {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQL | Runxi Yu | 2 | -26/+18 |
2024-10-05 | {config,ws}.go, cca.scfg.example: Remove chanPool/SendQ | Runxi Yu | 3 | -59/+0 |
2024-10-05 | ws.go: &usemT{} //exhaustruct:ignore | Runxi Yu | 1 | -1/+1 |
2024-10-05 | ws.go: Check error of populateUserCourseGroups | Runxi Yu | 1 | -1/+4 |
2024-10-05 | wsm.go: Omit comparison to bool constant | Runxi Yu | 1 | -1/+1 |
2024-10-05 | wsm.go: Report error when course doesn't exist | Runxi Yu | 1 | -0/+8 |
2024-10-05 | {courses,sem,ws,wsm}.go: Second step towards an efficient state propagator | Runxi Yu | 4 | -16/+24 |
2024-10-05 | {courses,sem,ws}.go: First step towards an efficient state propagator | Runxi Yu | 3 | -6/+110 |
2024-10-05 | go.sum: go mod tidy (removing old checksums) | Runxi Yu | 1 | -6/+0 |
2024-10-05 | ws.go: Index chanPool by userID, rather than session cookie | Runxi Yu | 1 | -5/+2 |
2024-10-05 | {main,utils,ws}.go: Initialize cancelPool directly too | Runxi Yu | 3 | -25/+1 |
2024-10-05 | Bump dependencies | Runxi Yu | 2 | -3/+9 |
2024-10-05 | {main,ws}.go: Initialize chanPool directly instead of setupChanPool() | Runxi Yu | 2 | -22/+1 |
2024-10-05 | courses.go: Reformat | Runxi Yu | 1 | -1/+1 |
2024-10-05 | {courses,wsm}.go: Add getCourseByID | Runxi Yu | 2 | -10/+8 |
2024-10-05 | {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagate | Runxi Yu | 2 | -24/+15 |
2024-10-05 | {courses,ws,wsm}.go: Update userCourseGroups during choose/unchoose | Runxi Yu | 3 | -12/+51 |
2024-10-05 | config.go: Emit warning when fake auth is enabled | Runxi Yu | 1 | -0/+2 |
2024-10-05 | bench.go: Don't close request body | Runxi Yu | 1 | -6/+0 |
2024-10-05 | {courses,ws}.go: Populate userCourseGroups in a separate function | Runxi Yu | 2 | -32/+35 |
2024-10-04 | {courses,ws}.go: Populate userCourseGroups for each connection | Runxi Yu | 2 | -5/+63 |
2024-10-04 | courses.go, schema.sql: Validate course{Type,Group} in server, not SQL | Runxi Yu | 4 | -30/+45 |
2024-10-04 | *.sql: New schema with ctypes and cgroups | Runxi Yu | 3 | -18/+39 |