Commit Graph
100 Commits
Author SHA1 Message Date
imacatandClaude Opus 4.6 68806aa29e Add early return guard for undefined uploadFile before accessing .size
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:05:53 +08:00
imacatandClaude Opus 4.6 d47d03c3be Fix timeLabel regex to match decimal values like "45.5 sec"
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:05:27 +08:00
imacatandClaude Opus 4.6 d0da9e875e Remove orphaned emitter.emit calls with no matching listener
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:54:10 +08:00
imacatandClaude Opus 4.6 f04da6e278 Fix memory leaks from Cytoscape instances not returned/destroyed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:53:25 +08:00
imacatandClaude Opus 4.6 9aa60414e7 Remove unnecessary async from 9 functions that have no await
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:44:37 +08:00
imacatandClaude Opus 4.6 a5e0e59e0b Add division by zero guards in setLoopData and setIssueData
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:43:52 +08:00
imacatandClaude Opus 4.6 ddec851276 Add consistent en-US locale to toLocaleString() calls
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:22:49 +08:00
imacatandClaude Opus 4.6 333685fb99 Initialize maxTotal/minTotal from props via watchers in DurationInput
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:22:02 +08:00
imacatandClaude Opus 4.6 a669c8e98e Return empty array instead of undefined in mapTimestampToAxisTicksByFormat
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 19:39:43 +08:00
imacatandClaude Opus 4.6 35d5b07b07 Remove unnecessary await on non-Promise values in FunnelFilter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 19:38:58 +08:00
imacatandClaude Opus 4.6 542b941efb Add missing padStart when clamping to min value in DurationInput
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:48:45 +08:00
imacatandClaude Opus 4.6 674afd769c Replace loose equality (==) with strict equality (===) for ID comparisons
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:48:28 +08:00
imacatandClaude Opus 4.6 e5e7b8b7b6 Add division by zero guards in TraceFilter traceList and caseTotalPercent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:47:47 +08:00
imacatandClaude Opus 4.6 1f603af1a9 Add division by zero guard in SidebarTraces traceList computed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:47:20 +08:00
imacatandClaude Opus 4.6 e52a53615f Remove unnecessary async from closeModal()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:41:46 +08:00
imacatandClaude Opus 4.6 0728c9b6b5 Remove unnecessary await on toast.success() and modalStore.closeModal()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:41:30 +08:00
imacatandClaude Opus 4.6 1c70c9b3af Return false instead of undefined in depthFirstSearchMatchTwoPaths bounds checks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:40:54 +08:00
imacatandClaude Opus 4.6 7a1b996877 Await fetchAllFiles() in FilesPage onMounted to fix premature loading reset
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:40:27 +08:00
imacatandClaude Opus 4.6 07dd30dc50 Add optional chaining for uploadDetail.value.columns in submit()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:33:34 +08:00
imacatandClaude Opus 4.6 ba360120de Return null instead of undefined on 404 in conformance trace detail methods
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:33:17 +08:00
imacatandClaude Opus 4.6 f69eb6ac15 Remove no-op circular watch on isSubmittedData in ConformanceSidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:32:56 +08:00
imacatandClaude Opus 4.6 9641fd1e0e Add null/bounds guards for curButton and curPath in mapPathStore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:25:49 +08:00
imacatandClaude Opus 4.6 52dab387dc Add missing return [] in filterAttrs getter when allFilterAttrs is null
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:25:21 +08:00
imacatandClaude Opus 4.6 e6651f27ba Add null guard for valueData in AttributesFilter computed properties
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:12:46 +08:00
imacatandClaude Opus 4.6 75b3a9c782 Remove unused myPiniaPlugin.ts with debug console.log calls
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:05:08 +08:00
imacatandClaude Opus 4.6 86e08b7146 Fix .toFixed() string-to-number comparison by wrapping with Number()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:05:01 +08:00
imacatandClaude Opus 4.6 b6499020c6 Add division by zero guards in traceList computed and conformance rate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:04:51 +08:00
imacatandClaude Opus 4.6 d3bba9d1a2 Add emitter.off cleanup in onBeforeUnmount for 10 components
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:04:43 +08:00
imacatandClaude Opus 4.6 b023d28b74 Add array bounds check in compareSubmit before accessing drag data
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:04:33 +08:00
imacatandClaude Opus 4.6 8747421901 Replace toLocaleLowerCase with toLowerCase for ASCII comparisons
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:51:46 +08:00
imacatandClaude Opus 4.6 7e09b21f2e Add fallback for undefined ratio in TraceFilter chart config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:51:45 +08:00
imacatandClaude Opus 4.6 2349554a26 Track and clear setTimeout in ConformanceSidebar watch on unmount
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:51:44 +08:00
imacatandClaude Opus 4.6 957f875377 Destroy Chart.js instance on unmount in TimeframesFilter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:51:43 +08:00
imacatandClaude Opus 4.6 0f09a723a2 Clean up emitter listeners and destroy Cytoscape instance on unmount
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:51:41 +08:00
imacatandClaude Opus 4.6 e5ddd8c0bd Remove unnecessary try-catch re-throw in refreshToken
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:23:34 +08:00
imacatandClaude Opus 4.6 904749d1fa Remove duplicate sidebarState assignments in sidebar watchers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:23:33 +08:00
imacatandClaude Opus 4.6 2e914aa853 Fix setTimeout losing this context by using arrow function
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:23:32 +08:00
imacatandClaude Opus 4.6 08d7402918 Add null guards for getElementById and uploadDetail in UploadPage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:23:31 +08:00
imacatandClaude Opus 4.6 3ad898aaab Add null coalescing for facets and attributes access in MoreModal
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:17 +08:00
imacatandClaude Opus 4.6 d546cc9619 Add optional chaining for i.loc array access in uploadFailedSecond
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:16 +08:00
imacatandClaude Opus 4.6 b10fcc057e Add null guard for querySelector and fix days using raw input value
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:15 +08:00
imacatandClaude Opus 4.6 b3e5554133 Add optional chaining for response.data.log.id access in getFilterDetail
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:13 +08:00
imacatandClaude Opus 4.6 91c6f5e54c Add optional chaining for response.data.roles access in getUserDetail
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:12 +08:00
imacatandClaude Opus 4.6 4c2a79a514 Add null guards for querySelector results and division by zero in AttributesFilter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:11 +08:00
imacatandClaude Opus 4.6 008339a23d Fix computed ref passed without .value to setCurrentGraphId
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:10:09 +08:00
imacatandClaude Opus 4.6 01385d798d Return null for unknown type in getStateData to prevent empty URL request
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:29 +08:00
imacatandClaude Opus 4.6 5bb89a631d Add early return in yTimeRange when yAmount <= 1 to prevent division by zero
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:29 +08:00
imacatandClaude Opus 4.6 14c112cec5 Add bounds checks in highlightClickedPath to prevent undefined access
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:27 +08:00
imacatandClaude Opus 4.6 a6d32672bc Add array length guard in TimeframesFilter timeFrameData computed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:26 +08:00
imacatandClaude Opus 4.6 89dc327044 Add empty data guard in MoreModal columnData computed property
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:25 +08:00
imacatandClaude Opus 4.6 f5ade65939 Fix 12-hour format (hh) to 24-hour format (HH) in PerformancePage charts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:23 +08:00
imacatandClaude Opus 4.6 07b28c628d Add bounds checks and fix 12-hour format in CompareDashboard chart functions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:31:22 +08:00
imacatandClaude Opus 4.6 9a3d19f53c Replace Math.trunc integer check with Number.isInteger
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:22 +08:00
imacatandClaude Opus 4.6 57214586a8 Return empty string instead of undefined from getFileName on not-found
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:21 +08:00
imacatandClaude Opus 4.6 a7e3a2cdce Remove dead v-show=false error block from MyAccount
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:20 +08:00
imacatandClaude Opus 4.6 b46ab4112a Fix falsy check on newUsername to use explicit null comparison
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:13 +08:00
imacatandClaude Opus 4.6 210364a255 Reset infiniteFinish flag on error in MoreModal fetchData
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:12 +08:00
imacatandClaude Opus 4.6 adbb90eeea Fix division by zero in timeRange when amount is 1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:05 +08:00
imacatandClaude Opus 4.6 8a4b6539b9 Add bounds check in highlightMostFrequentPath before array access
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:20:05 +08:00
imacatandClaude Opus 4.6 4f660ff08c Add optional chaining for file.parent access across 5 files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:19:50 +08:00
imacatandClaude Opus 4.6 a8984a5de5 Add optional chaining for file.parent access in ConformancePage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:39 +08:00
imacatandClaude Opus 4.6 7bf38b0d07 Add error handling to async calls in AcctMenu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:37 +08:00
imacatandClaude Opus 4.6 387993da92 Add response structure validation in auth token refresh
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:36 +08:00
imacatandClaude Opus 4.6 b5dfae9835 Fix unsafe property access and stale await in DurationInput, ModalAccountInfo, FilesPage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:35 +08:00
imacatandClaude Opus 4.6 5f597961c6 Fix cytoscapeStore: preserve positions, guard access, remove redundant write
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:27 +08:00
imacatandClaude Opus 4.6 8e6ba876e3 Fix null from match() on empty string in formatNumberWithCommas
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:26 +08:00
imacatandClaude Opus 4.6 36613d255b Guard setCurrentViewingUser against undefined from find()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:24 +08:00
imacatandClaude Opus 4.6 1ac3d7cd5b Fix sort() mutating state in getter by copying array first
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:18 +08:00
imacatandClaude Opus 4.6 63fa11c44e Wrap localStorage JSON.parse in try-catch in cytoscapeMap
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:17 +08:00
imacatandClaude Opus 4.6 2a2eeabac7 Fix XSS in uploadFailedSecond default case with escapeHtml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:16 +08:00
imacatandClaude Opus 4.6 b58659295b Fix null from match() crash in formatMaxTwo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:14 +08:00
imacatandClaude Opus 4.6 c6d073e119 Fix getYTicksByIndex truncating integers by using toFixed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:09 +08:00
imacatandClaude Opus 4.6 4dbed9fe56 Fix .trim() on null in conformance cases getter and add fallback returns
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:08 +08:00
imacatandClaude Opus 4.6 19a39bbbff Clean up dead code, typos, and minor style issues
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:00:31 +08:00
imacatandClaude Opus 4.6 932275e4d4 Remove abandoned confirm-password feature hidden with v-show=false
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:00:26 +08:00
imacatandClaude Opus 4.6 69d31c6c8b Remove dead refs and empty focus handlers from LoginPage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:00:24 +08:00
imacatandClaude Opus 4.6 2710910829 Remove dead imports and constants from mapCompareStore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:00:19 +08:00
imacatandClaude Opus 4.6 6141e70235 Fix missing bounds checks, unsafe JSON.parse, and cleanup issues
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:56:47 +08:00
imacatandClaude Opus 4.6 48784010ad Fix chart data issues: 24-hour format, Y-axis bounds, rounding modes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:55:45 +08:00
imacatandClaude Opus 4.6 881dccc1ab Fix memory leaks from Tippy.js instances and unremoved event listeners
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:54:38 +08:00
imacatandClaude Opus 4.6 9acd722929 Fix splice(-1,1) removing last user when logged-in user not found
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:52:08 +08:00
imacatandClaude Opus 4.6 3db725e52c Fix static destructuring from reactive source in MyAccount and ModalAccountInfo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:51:23 +08:00
imacatandClaude Opus 4.6 8f610f1244 Fix array destructuring bug in moveJustCreateUserToFirstRow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:50:18 +08:00
imacatandClaude Opus 4.6 ac4405068f Fix HTML injection risks in FilesPage and UploadPage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:48:23 +08:00
imacat ca75a06612 Update .gitignore 2026-03-09 13:19:16 +08:00
imacatandCodex 89fae2cda7 Update MainContainer module documentation to match current route-guard responsibilities
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:41:46 +08:00
imacatandCodex 6e3aaca3b1 Extract reusable auth guard decision logic and test router auth behavior against it
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:39:10 +08:00
imacatandCodex 28fd83242c Use UTF-8 safe return-to encoding and decoding across router and login
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:35:40 +08:00
imacatandCodex 28464214bc Remove refreshToken navigation side effects and let callers handle redirects
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:32:06 +08:00
imacatandCodex 1670054356 Clear all auth cookies when API token refresh fails before redirecting to login
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:29:04 +08:00
imacatandCodex b53f58cb0c Clear refresh token cookie during logout to enforce full session termination
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:25:53 +08:00
imacatandCodex cf45a43a37 Remove obsolete uncaught-exception policy helper and its unit test
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:16:50 +08:00
imacatandCodex 955e9ceda9 Move auth-entry checks to router guard and simplify MainContainer route logic
Co-Authored-By: Codex <codex@openai.com>
2026-03-08 19:14:20 +08:00
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