v1.1.0: Add cancelled course, duplicate prevention, and credit bar ticks

- Mark "Managing Growing Companies" as cancelled with visual indicator and solver exclusion
- Prevent selecting duplicate courses across elective sets (e.g., same course in Spring and Summer)
- Add 2.5-credit interval tick marks to specialization progress bars
- Bump version to 1.1.0 with date display in UI header
This commit is contained in:
2026-03-13 16:11:56 -04:00
parent 5c598d1fc6
commit 8b887f7750
14 changed files with 156 additions and 39 deletions

View File

@@ -7,6 +7,7 @@ export interface WorkerRequest {
openSetIds: string[];
ranking: string[];
mode: OptimizationMode;
excludedCourseIds?: string[];
}
export interface WorkerResponse {
@@ -16,7 +17,10 @@ export interface WorkerResponse {
}
self.onmessage = (e: MessageEvent<WorkerRequest>) => {
const { pinnedCourseIds, openSetIds, ranking, mode } = e.data;
const { pinnedCourseIds, openSetIds, ranking, mode, excludedCourseIds } = e.data;
const excludedSet = excludedCourseIds && excludedCourseIds.length > 0
? new Set(excludedCourseIds)
: undefined;
const analyses = analyzeDecisionTree(
pinnedCourseIds,
@@ -28,6 +32,7 @@ self.onmessage = (e: MessageEvent<WorkerRequest>) => {
const response: WorkerResponse = { type: 'setComplete', analysis };
self.postMessage(response);
},
excludedSet,
);
// Final result with sorted analyses