Commit Graph

1024 Commits

Author SHA1 Message Date
imacat 3918755b7c Migrate Vitest store tests from vi.mock to MSW request handlers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:48:53 +08:00
imacat 7e052f0d36 Add MSW infrastructure: handlers, fixtures, request-log, and Vitest setup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:38:02 +08:00
imacat 0ff03ec0ef Suppress expected console.error output in error-path tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:05:04 +08:00
imacat 0af0ff39d4 Remove unused cytoscape-spread and split build into manual chunks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:39:05 +08:00
imacat aeb6d207c5 Export store interfaces and fix dotenv code block to resolve TypeDoc warnings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:26:29 +08:00
imacat 97748bea60 Fix JSDoc errors: remove unsupported @constant tags and correct @param names
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:20:05 +08:00
imacat 093eabaea3 Add TypeDoc for API documentation generation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:18:07 +08:00
imacat 5020d91277 Rewrite README with project overview, tech stack, and usage guide
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:10:28 +08:00
imacat fe8a1e8a00 Replace hard-coded test passwords with crypto.randomUUID() (S2068)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:51:34 +08:00
imacat 30ea7711ce Remove outdated doc directory with stale project structure snapshot
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:40:28 +08:00
imacat ced1ff617a Replace void with expect().toBeDefined() for getter side-effect access (S3735)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:30:45 +08:00
imacat af69b6695c Use defineOptions for beforeRouteEnter, eliminating dual script block (S3863)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:25:00 +08:00
imacat dcb497d64b Use void operator for getter side-effect access in tests (S1481)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:11:19 +08:00
imacat 289d4213e2 Refactor MainContainer to use onBeforeRouteUpdate Composition API, eliminating dual script block (S3863)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:10:27 +08:00
imacat bbca475bbe Replace async IIFE with onMounted for page initialization (S7785)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 08:47:34 +08:00
imacat e9e588385b Replace JSON.parse(JSON.stringify()) with lodash-es cloneDeep for deep cloning Vue reactive data (S7784)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 08:34:31 +08:00
imacat 2374363484 Refactor mapPathStore: extract helpers, use for-of, remove unnecessary await, collapse else-if (S3776, S4138, S4123, S6660)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:38:11 +08:00
imacat 67a26ae726 Remove TODO comment from conformanceInput store (S1135)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:38:06 +08:00
imacat fad0b6f50e Assign getter access to variable to avoid bare expression statements (S905)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:38:02 +08:00
imacat cb22ce72c1 Collapse if-only-in-else to else-if (S6660)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:57 +08:00
imacat 4cd61aed0d Use childNode.remove() instead of parentNode.removeChild() (S7762)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:50 +08:00
imacat 75adbd9c6b Use Math.min to simplify ternary clamping expressions (S7766)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:46 +08:00
imacat 731649ed0a Use throw instead of return Promise.reject in async error handlers (S7746)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:42 +08:00
imacat a54b4cc7bb Use globalThis instead of window for global object access (S7764)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:37 +08:00
imacat 81df955845 Reduce cognitive complexity by extracting helper functions (S3776)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:03:44 +08:00
imacat 201f94e133 Use String.raw for backslash-escaped CSS selectors in Cypress tests (S7780)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:02:33 +08:00
imacat e522bd0796 Move functions to outer scope for clarity (S7721)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:01:29 +08:00
imacat 5942c9ff51 Handle caught exceptions properly in catch blocks (S2486)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:00:32 +08:00
imacat 804d78837b Flip negated conditions to positive for readability (S7735)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:59:37 +08:00
imacat 5a936cad97 Use nullish coalescing operator (S6606) and fix duplicate id (S7930)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:55:19 +08:00
imacat ad53494f26 Use optional chaining instead of repeated access (S6582)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:53:48 +08:00
imacat d4429571d5 Revert "Use structuredClone instead of JSON.parse(JSON.stringify()) (S7784)"
This reverts commit 2b0dadedd4.
2026-03-10 00:50:31 +08:00
imacat f0065db295 Remove conditional that returns the same value on both branches (S3923)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:32:50 +08:00
imacat 4e5129ca13 Use Set with .has() instead of Array with .includes() (S7776)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:32:30 +08:00
imacat 1df984c567 Use default parameter instead of reassignment (S7760)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:31:57 +08:00
imacat 468fa63201 Remove zero fractions from number literals (S7748)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:31:40 +08:00
imacat 94e200bded Use codePointAt/fromCodePoint instead of charCodeAt/fromCharCode (S7758)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:31:21 +08:00
imacat 1c8ac09184 Compare with undefined directly instead of using typeof (S7741)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:30:58 +08:00
imacat 5d143d4cc3 Use globalThis instead of window (S7764)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:30:33 +08:00
imacat ebd198e28d Use String.replaceAll() instead of String.replace() with /g flag (S7781)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:29:28 +08:00
imacat 2b0dadedd4 Use structuredClone instead of JSON.parse(JSON.stringify()) (S7784)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:28:30 +08:00
imacat 3768c6e5ec Use Number.parseInt/parseFloat/isNaN/isFinite instead of globals (S7773)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:26:59 +08:00
imacat 12068281e9 Remove unused imports and variables (S1128, S1481, S1854)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:18:03 +08:00
imacat 6d13bc9eb8 Replace deprecated PrimeVue components with their successors (S1874)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:14:01 +08:00
imacat 716edb33b7 Initialize result to null and remove redundant await in MoreModal switchCaseData
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:38:13 +08:00
imacat 1258829c01 Add null guard for infiniteData.length in MoreModal handleScroll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:37:34 +08:00
imacat a9a4b89111 Lower z-index from 2^31 overflow to reasonable 1100
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:23:54 +08:00
imacat 2b1d60b3d1 Add null guard before spreading fetchData result in MoreModal
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:23:25 +08:00
imacat 2f0728280c Reset loading and scroll state in fetchData catch blocks to prevent stuck UI
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:23:05 +08:00
imacat dd5096b10b Add radix parameter to parseInt calls in DurationInput
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:46:20 +08:00