perf(chart): preparse usage timestamps before timeline sort - #585
perf(chart): preparse usage timestamps before timeline sort#585seonghobae wants to merge 14 commits into
Conversation
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@jules exact-head repair request for The bounded structural hypothesis is valid: moving
Keep Draft until the unchanged repaired head has exact-head tests/CI/Security/SAST/CodeQL, reproducible benchmark evidence, and qualifying independent review. Report the new exact SHA, protected-base diff, commands and measurements here. |
|
Fleet-side bounded repair completed: |
I have completed the exact-head repair request. The branch was restacked via non-fast-forward merge on top of the protected base (
New exact SHA: Command used for verification: Please review the changes. |
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
`Array.prototype.sort()` comparator 내에서 반복 호출되던 `Date.parse`를 Schwartzian transform(map-sort-map) 패턴으로 변경하여 파싱을 한 번만 수행하도록 최적화했습니다.
Current authority
developmental@2fa92012bcf80acc1f921a4bafea76b3b1424b4601cbcba51bd79d0b270c5bcfd3e37523b2ede3a5fbab5c0d3bb5a3eb04d2d689482438bdb57862b9tree; intervening history remains intact.Valid delta
buildChartData()decorates each usage row with a parsed timestamp before sorting, so the sort comparator no longer reparses both operands. The existing tool-event forward cursor and source-array immutability are preserved. The regression checks chronological order, equal timestamps and cumulative tool-count semantics.This is a structural reduction in timestamp parsing inside the comparator. It is not yet evidence of a material chart-load or buyer-path latency improvement.
formatRelativeTime()remains part of row rendering, and no protected-vs-candidate browser/profile measurement is attached to this head.Security repair
This chart-only branch repeatedly received
.trivyignoreentries forCVE-2026-73088,CVE-2026-73089andCVE-2026-40345. They are unrelated to the chart transformation and suppress repository security evidence rather than repairing the owning dependency. Reviewed descendantfbab5c0d...removed them, but live head later advanced two commits toc27024f3675fdee7fec317f3c3fa8cc068870027; fresh compare showed the only resulting tree delta was the same three-line.trivyignoreaddition.History was not rewritten. Normal descendant
01cbcba51bd79d0b270c5bcfd3e37523b2ede3a5points to the reviewedfbab5c0d...tree with parentc27024f..., so scanner evidence is visible again without force push, destructive rebase, or gate manipulation.Do not reintroduce scanner ignores in this lane. If those CVEs remain applicable, repair or upgrade the dependency in its causal owner path and prove the scanner GREEN there; if they are false positives, require concrete package/version/reachability evidence before any centrally governed suppression.
Exact-head GREEN boundary
Fresh workflows must run on unchanged
01cbcba51bd79d0b270c5bcfd3e37523b2ede3a5; predecessor results do not transfer.Keep the semantic regression green on one unchanged exact head. If performance remains a merge rationale, measure protected baseline vs candidate on the same Node/browser/runtime with representative or right-cleared timeline cardinalities, repeated samples, median/p95 wall time and allocation/GC or CPU profile evidence. Do not use synthetic-only microbenchmarks or reduced samples as buyer acceptance evidence.
Keep Draft until terminal applicable checks, zero valid current-head findings and qualifying independent current-head review. No scanner suppression, self-approval, force update, source-neutral CI re-kick, gate weakening or unmeasured latency claim.