Commit Graph
100 Commits
Author SHA1 Message Date
imacatandCodex f3d11ebbcb Refactor MainContainer child routes to consistent relative-path nesting
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:10:52 +08:00
imacatandCodex b3f4ace13f Enforce requiresAuth routes in global router guard with login return-to redirects
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:07:56 +08:00
imacatandCodex 90cc6689c8 Guard Vite API proxy setup behind VUE_APP_API_URL and reuse it in preview
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:04:13 +08:00
imacatandCodex a8cd590a11 Require access token presence in MainContainer auth gate before route entry
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:01:03 +08:00
imacatandCodex 0948a82eb5 Align compare navbar state mapping with MAP and PERFORMANCE tabs
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 18:58:01 +08:00
imacatandCodex f567e86898 Remove global Cypress uncaught-exception handler to keep default fail-fast behavior
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 18:46:09 +08:00
imacatandCodex 7d368bf0c3 Remove per-spec uncaught-exception swallowing in Cypress E2E tests
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 18:32:48 +08:00
imacatandCodex 7309c97502 Remove redundant self-assignment watcher in navbar state
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 14:14:11 +08:00
imacatandCodex 2927037bbe Separate lint check and auto-fix scripts to avoid side effects
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 13:55:33 +08:00
imacatandCodex 2721aed928 Handle invalid return-to payloads without misclassifying login as failed
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 13:52:47 +08:00
imacatandCodex d5464ebc2d Restrict Cypress uncaught exception suppression to known benign errors
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 13:49:51 +08:00
imacatandCodex fc43ca67ca Rename single-word Vue files to multi-word names and update references
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 13:26:12 +08:00
imacatandCodex ae03b9cedd Enable multi-word Vue component names with explicit naming
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 13:01:16 +08:00
imacatandCodex d03041c2e3 Enable vue/no-side-effects-in-computed-properties and refactor computed state sync
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 12:45:39 +08:00
imacatandCodex c88646eba3 Enable vue/return-in-computed-property and add explicit fallback returns
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 12:39:11 +08:00
imacatandCodex 1bf8355092 Enable vue/no-unused-vars and fix template loop variable
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 12:34:27 +08:00
imacatandCodex 2a2948fd24 Re-enable key Vue lint rules and fix resulting violations
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 12:30:17 +08:00
imacatandCodex 52a36e3a7c Resolve remaining lint violations and stabilize ESLint config
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 12:24:45 +08:00
imacatandCodex 847904c49b Apply repository-wide ESLint auto-fix formatting pass
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 12:11:57 +08:00
imacatandCodex 7c48faaa3d Translate Cypress support comments and add command JSDoc
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 11:57:58 +08:00
imacatandCodex ef9cf2de8c Migrate router type augmentation to Vue 3 runtime core
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 11:55:06 +08:00
imacatandCodex 28c861ab0e Align Cypress base URL and redirect test port
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 11:52:34 +08:00
imacatandCodex 08c1adba37 Fix unit test script to run repository test suite
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 11:50:00 +08:00
imacatandCodex 1ad94358e4 Remove unsupported ignore-path option from lint script
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 11:47:28 +08:00
imacatandCodex d7caf08d1f Fix design file metadata mapping in files store
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 10:47:49 +08:00
imacatandCodex 8acb1b50de Persist relative return-to path for post-login redirect
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 10:44:53 +08:00
imacatandCodex e275e79a63 Sanitize Cytoscape tooltip labels to prevent XSS
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 10:41:48 +08:00
imacatandClaude Opus 4.6 1d621bf304 Translate all Chinese comments and strings to English
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:03:19 +08:00
imacatandClaude Opus 4.6 7d5918837b Add try-catch to async IIFEs to prevent unhandled rejections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 18:11:27 +08:00
imacatandClaude Opus 4.6 ede7becb3a Remove await on non-promise values
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 18:06:29 +08:00
imacatandClaude Opus 4.6 1b5f97dc9a Remove unnecessary persist:true from acctMgmt store
The store only holds transient data (user list refetched from API,
hover/menu UI states) that should not survive page reload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:58:39 +08:00
imacatandClaude Opus 4.6 07a2518e76 Remove unused $moment and $emitter from globalProperties
These were set for Options API (this.$moment, this.$emitter) but all
components now use <script setup> with direct imports.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:53:00 +08:00
imacatandClaude Opus 4.6 5b3130ea9c Compute refresh token expiry fresh on each sign-in
The expiry date was computed once at store init time and went stale
in long-running SPA sessions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:49:14 +08:00
imacatandClaude Opus 4.6 ba7c1c7cd0 Rename allUserAccoutList to allUserAccountList (fix typo)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:43:12 +08:00
imacatandClaude Opus 4.6 fe4738b04c Add encodeURIComponent for username in API URL paths
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 16:58:30 +08:00
imacatandClaude Opus 4.6 984eaa96b7 Remove duplicate getUserData call in moveCurrentLoginUserToFirstRow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 09:25:10 +08:00
imacatandClaude Opus 4.6 9a8b45b151 Deduplicate refreshToken by delegating to auth.js refreshTokenAndGetNew
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 09:21:25 +08:00
imacatandClaude Opus 4.6 cd71815c97 Remove artificial delay from apiError, show toast immediately
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:59:52 +08:00
imacatandClaude Opus 4.6 589783d481 Fix typos in error messages, constants, and UI labels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:55:33 +08:00
imacatandClaude Opus 4.6 3693446d1b Add event listener cleanup to prevent memory leaks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:50:19 +08:00
imacatandClaude Opus 4.6 b2b00c4542 Add optional chaining for querySelector result in Files.vue
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:45:27 +08:00
imacatandClaude Opus 4.6 564ead23bf Add null guard for performanceData before accessing time properties
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:45:06 +08:00
imacatandClaude Opus 4.6 ac00183096 Initialize nodePositions structure before nested access
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:44:54 +08:00
imacatandClaude Opus 4.6 c602848ad7 Add null check before tip.hide() on mouseout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:44:42 +08:00
imacatandClaude Opus 4.6 5058400d72 Fix filterTaskData computed property referencing itself
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:39:14 +08:00
imacatandClaude Opus 4.6 ac9f958bef Remove meaningless return statements inside forEach callbacks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:27:12 +08:00
imacatandClaude Opus 4.6 d7df6a2615 Fix setTimeChartData called with yMax twice instead of yMax and yMin
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:26:58 +08:00
imacatandClaude Opus 4.6 eea79c852b Fix open redirect vulnerability in return-to URL after login
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 08:13:12 +08:00
imacatandClaude Opus 4.6 ddab7b3fe9 Add missing path=/ to setCookieWithoutExpiration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:59:40 +08:00
imacatandClaude Opus 4.6 2a4aa9db00 Add optional chaining to error.response.status in catch blocks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:55:49 +08:00
imacatandClaude Opus 4.6 eeea16be38 Fix getters mutating state on repeated access
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:31:59 +08:00
imacatandClaude Opus 4.6 ef8ce0d778 Fix showCancelButton using string instead of boolean in renameModal
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:23:45 +08:00
imacatandClaude Opus 4.6 4b7c08e2f9 Fix moment format using month token MM instead of minute mm
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:17:09 +08:00
imacatandClaude Opus 4.6 3f1f8fb680 Fix BaseInfiniteFirstCases getter using wrong case for state property
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:10:26 +08:00
imacatandClaude Opus 4.6 702d508d37 Fix incorrect hour/minute calculation in simpleTimeLabel()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 07:05:41 +08:00
imacatandClaude Opus 4.6 f4fbae8a5c Extract duplicate API path logic into helper function in allMapData store
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:22:19 +08:00
imacatandClaude Opus 4.6 ec0035a182 Extract duplicate API path logic into helper functions in conformance and files stores
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:16:26 +08:00
imacatandClaude Opus 4.6 c3d0add548 Rename createAccont.cy.js to createAccount.cy.js to fix typo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:09:18 +08:00
imacatandClaude Opus 4.6 d7db387edf Clean up i18n: translate 404 page Chinese text and remove placeholder German locale
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:02:33 +08:00
imacatandClaude Opus 4.6 8d358516b8 Translate remaining Chinese JSDoc and CSS comments to English
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 20:53:00 +08:00
imacat d16cc46604 Delete yarn.lock 2026-03-06 20:09:02 +08:00
imacatandClaude Opus 4.6 c782a3b079 Add file header and VITE_CACHE_DIR to .env
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 19:47:47 +08:00
imacatandClaude Opus 4.6 9c6a51029b Support VITE_CACHE_DIR environment variable for custom cache directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 19:40:18 +08:00
imacatandClaude Opus 4.6 7fec6cb63f Add JSDoc documentation and file headers to all source files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 18:57:58 +08:00
imacatandClaude Opus 4.6 3b7b6ae859 Migrate all Vue components from Options API to <script setup>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 18:57:58 +08:00
imacatandClaude Opus 4.6 a619be7881 Convert all store files from JavaScript to TypeScript
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:47:57 +08:00
imacatandClaude Opus 4.6 90048d0505 Standardize store exports to named useXxxStore convention
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:25:00 +08:00
imacatandClaude Opus 4.6 147b16ca34 Add centralized API client with axios interceptors, remove vue-axios
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:44:33 +08:00
imacatandClaude Opus 4.6 6af7253d08 Upgrade vue-router from 4 to 5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:17:06 +08:00
imacatandClaude Opus 4.6 1f5673040f Upgrade ESLint from 9 to 10 and add @eslint/js as explicit dependency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:12:00 +08:00
imacatandClaude Opus 4.6 ab8bbb086b Upgrade @types/node from 20 to 25 and chartjs-plugin-dragdata from 1 to 2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:01:39 +08:00
imacatandClaude Opus 4.6 ec61bcd701 Fix E2E tests for PrimeVue 4 CSS class rename (p-dropdown to p-select)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:47:25 +08:00
imacatandClaude Opus 4.6 8e480ed669 Upgrade Vitest from 3 to 4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:39:17 +08:00
imacatandClaude Opus 4.6 a950f254ad Upgrade Vite from 6 to 7 and @vitejs/plugin-vue from 5 to 6
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:35:01 +08:00
imacatandClaude Opus 4.6 4e22643999 Upgrade Tailwind CSS from 3 to 4 with CSS-first config migration
Migrate tailwind.config.js to @theme in CSS, replace PostCSS plugins
with @tailwindcss/postcss, add @reference to 12 Vue scoped styles using
@apply, and remove autoprefixer (now built into Tailwind 4).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:29:03 +08:00
imacatandClaude Opus 4.6 08688793ac Upgrade Pinia from 2 to 3 and pinia-plugin-persistedstate from 3 to 4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:17:13 +08:00
imacatandClaude Opus 4.6 941f1e1dbe Upgrade ESLint from 8 to 9 with flat config migration
Replace .eslintrc.cjs with eslint.config.mjs, upgrade eslint-plugin-vue
to 10, eslint-plugin-cypress to 6, @vue/eslint-config-prettier to 10,
and remove @rushstack/eslint-patch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:12:17 +08:00
imacatandClaude Opus 4.6 de92a723a2 Upgrade Cypress from 13 to 15
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:03:23 +08:00
imacatandClaude Opus 4.6 f958efb38b Upgrade i18next from 23 to 25 and cytoscape-popper from 2 to 4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:53:09 +08:00
imacatandClaude Opus 4.6 c182b297c9 Upgrade Prettier from 2 to 3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:41:27 +08:00
imacatandClaude Opus 4.6 e656b3ce99 Upgrade vue-router, vue-toast-notification, @types/node, and eslint-plugin-cypress
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:36:42 +08:00
imacatandClaude Opus 4.6 b988037968 Remove incorrect @types/vue and @types/vue-router Vue 2 type packages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:36:01 +08:00
imacatandClaude Opus 4.6 bcb318b8f6 Upgrade jsdom from 20 to 28 and eslint-plugin-vue to 9.33
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:35:27 +08:00
imacatandClaude Opus 4.6 85225c1e30 Upgrade PrimeVue from 3 to 4 with Aura theme preset
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:32:34 +08:00
imacatandClaude Opus 4.6 1d047786af Upgrade Tailwind CSS from 3.2 to 3.4 (4.x deferred due to breaking config changes)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:16:41 +08:00
imacatandClaude Opus 4.6 d30b31091f Upgrade Vitest from 0.25 to 3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:13:32 +08:00
imacatandClaude Opus 4.6 eaf2a1d2e7 Upgrade Vite from 4 to 6 and @vitejs/plugin-vue from 4 to 5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:12:53 +08:00
imacatandClaude Opus 4.6 9ea9752440 Upgrade Cypress from 12 to 13
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:11:46 +08:00
imacatandClaude Opus 4.6 735df448a2 Upgrade minor and patch dependencies (axios, chart.js, cytoscape, typescript, sass, etc.)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:09:12 +08:00
imacatandClaude Opus 4.6 aa86d4a3f9 Upgrade Pinia from 2.0 to 2.3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:06:09 +08:00
imacatandClaude Opus 4.6 3521593f41 Upgrade Vue from 3.2 to 3.5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:05:39 +08:00
imacatandClaude Opus 4.6 5d6d6310be Remove unused PrimeVue PickList and Button global registrations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:58:46 +08:00
imacatandClaude Opus 4.6 b259f23799 Replace date-fns with chartjs-adapter-moment to eliminate duplicate date libraries
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:51:13 +08:00
imacatandClaude Opus 4.6 1d0d938193 Replace let with const where variable is never reassigned in Vue files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:38:40 +08:00
imacatandClaude Opus 4.6 64372c7043 Replace loose equality (== null, != null) with strict equality
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:22:36 +08:00
imacatandClaude Opus 4.6 3eec131ae0 Fix typos: createfilterId, sidevarFilterRef, selecteName, namber
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:15:35 +08:00
imacatandClaude Opus 4.6 802a5e51fd Replace let with const where variable is never reassigned
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 08:57:36 +08:00
imacatandClaude Opus 4.6 04841d84f2 Remove dead code and incorrect unused comments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 08:54:51 +08:00
imacatandClaude Opus 4.6 523515459b Remove .ts extension from import paths
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 08:50:01 +08:00
imacatandClaude Opus 4.6 dfd5706bcf Replace .map() with .forEach() where return value is unused
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 08:46:01 +08:00