From ef1ff7797798099e59f44e44cd43977fc2fd115c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:49:52 +0000 Subject: [PATCH] feat: optimize server selection with latency caching, background probing, and 404-aware rotation Agent-Logs-Url: https://github.com/Moonrend/Classworks/sessions/d254def7-bda7-413a-83b1-c553c1571523 Co-authored-by: Sunwuyuan <88357633+Sunwuyuan@users.noreply.github.com> --- eslint.config.js | 2 + src/App.vue | 20 +- src/components/AppHeader.vue | 4 +- src/components/CacheManager.vue | 69 ++- src/components/ExamConfigEditor.vue | 433 ++++++++++----- src/components/FloatingToolbar.vue | 19 +- src/components/GlobalMessage.vue | 22 +- src/components/HelloWorld.vue | 19 +- src/components/HitokotoSettings.vue | 244 +++++++-- src/components/HomeworkEditDialog.vue | 64 ++- src/components/MessageLog.vue | 37 +- src/components/NoiseMonitorCard.vue | 25 +- src/components/PwaInstallCard.vue | 49 +- src/components/RandomPicker.vue | 87 ++- src/components/RateLimitModal.vue | 42 +- src/components/ReadOnlyTokenWarning.vue | 2 +- src/components/SettingsCard.vue | 18 +- src/components/SettingsLinkGenerator.vue | 227 +++++--- src/components/StudentNameManager.vue | 2 - src/components/TimeCard.vue | 5 +- src/components/UrgentNotification.vue | 29 +- src/components/UrgentTestDialog.vue | 120 ++-- .../attendance/AttendanceManagementDialog.vue | 61 ++- .../attendance/AttendanceSidebar.vue | 15 +- src/components/auth/AlternativeCodeDialog.vue | 2 +- src/components/auth/DeviceAuthDialog.vue | 10 +- src/components/auth/FirstTimeGuide.vue | 4 +- .../auth/ProgressiveRegisterPage.vue | 14 +- src/components/auth/TokenInputDialog.vue | 2 +- .../common/AsyncLoadingPlaceholder.vue | 12 +- src/components/common/HomeSkeleton.vue | 5 +- src/components/error/404.vue | 33 +- src/components/home/ConciseExamCard.vue | 30 +- src/components/home/ExamScheduleCard.vue | 88 ++- src/components/home/HomeActions.vue | 16 +- src/components/home/HomeworkGrid.vue | 158 ++++-- src/components/settings/AboutCard.vue | 155 ++++-- .../settings/CloudMigrationDialog.vue | 80 ++- .../settings/NotificationSoundSettings.vue | 31 +- src/components/settings/SettingGroup.vue | 18 +- src/components/settings/SettingItem.vue | 52 +- src/components/settings/SettingsExplorer.vue | 40 +- src/components/settings/StudentListCard.vue | 51 +- src/components/settings/TeacherListCard.vue | 71 ++- .../settings/cards/BackgroundSettingsCard.vue | 131 ++++- .../settings/cards/CloudNamespaceInfoCard.vue | 16 +- .../cards/DataProviderSettingsCard.vue | 82 ++- .../settings/cards/DisplaySettingsCard.vue | 70 ++- .../settings/cards/EchoChamberCard.vue | 25 +- .../settings/cards/EditSettingsCard.vue | 28 +- .../settings/cards/HomeworkTemplateCard.vue | 120 +++- .../settings/cards/KvDatabaseCard.vue | 254 +++++++-- .../settings/cards/RandomPickerCard.vue | 29 +- .../settings/cards/RefreshSettingsCard.vue | 18 +- .../settings/cards/SubjectManagementCard.vue | 14 +- .../settings/cards/ThemeSettingsCard.vue | 30 +- src/pages/404.vue | 2 +- src/pages/CacheManagement.vue | 69 ++- src/pages/authorize.vue | 27 +- src/pages/cses2wakeup.vue | 515 +++++++++++++----- src/pages/debug-init.vue | 2 +- src/pages/debug-socket.vue | 18 +- src/pages/debug.vue | 10 +- src/pages/exam-editor/[id].vue | 2 +- src/pages/examschedule.vue | 206 +++++-- src/pages/index.vue | 223 ++++++-- src/pages/list/[id].vue | 154 ++++-- src/pages/list/index.vue | 80 ++- src/pages/settings.vue | 158 ++++-- src/pages/socket-debugger.vue | 131 ++++- src/utils/serverRotation.js | 186 +++++-- 71 files changed, 3792 insertions(+), 1295 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 2e02a43..b70755a 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -62,6 +62,8 @@ export default [ // Web Workers Worker: 'readonly', SharedWorker: 'readonly', + // Fetch API + AbortController: 'readonly', }, }, } diff --git a/src/App.vue b/src/App.vue index 56d4c98..af2408a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,14 +2,26 @@ - - + + diff --git a/src/components/AppHeader.vue b/src/components/AppHeader.vue index 6a62425..7e625f6 100644 --- a/src/components/AppHeader.vue +++ b/src/components/AppHeader.vue @@ -1,7 +1,7 @@