refactor(ignore): evaluate cached sensitive-extension array - #634
refactor(ignore): evaluate cached sensitive-extension array#634seonghobae wants to merge 7 commits into
Conversation
|
👋 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 |
Current exact authority
master@728f0f33323e43573d6664209891099502827d5d35b010472b02be70f94d6244d99c160e87ee41demastersrc/main/kotlin/html4tree/main.ktonly.jules/bolt.md,util.kt, andUtilTest.ktare restored byte-for-byte to protected authorityReview → repair
The original branch bundled two independent changes under an asserted GC/performance improvement: caching
defaultSensitiveExtensions.toTypedArray()and replacing the custom publicLinkedList/Entryimplementation withArrayDeque. It also removed tests for publicEntry,first, andlastsurfaces while presenting the change as a performance-only optimization. No compatibility/version decision established that those public Kotlin symbols could be removed, and no representative allocation/profile evidence established that the queue replacement was required for buyer-visible performance.Normal descendants preserve history but narrow the effective change.
15090883b222c8de8afe254d2f046104b79be18erestores generated Bolt doctrine to protected authority.35b010472b02be70f94d6244d99c160e87ee41derestoresutil.ktand its tests byte-for-byte, so the performance experiment no longer silently removes a public source surface. No force-push, destructive rebase, no-op retrigger, or gate weakening was used.Remaining candidate
The only remaining source delta precomputes
Constants.defaultSensitiveExtensionsArrayonce and usesArray.anyinprocess_ignore_file. That preserves the existing sensitive-extension values and predicate shape, but it is still a candidate micro-refactor rather than a measured optimization. Do not claim a material GC, throughput, or buyer-path p95 improvement from source inspection or test coverage alone.If performance remains the rationale, compare protected and candidate implementations under the same JVM/Kotlin/runtime with realistic/right-cleared directory cardinalities and names. Record warm-up, repeated distribution/tail latency, allocation/GC/profile evidence, and whole crawl impact. If no material gain is demonstrated, restore the protected
List.anyimplementation rather than retain speculative representation complexity.Exact-head evidence
Fresh workflows on
35b010472b02be70f94d6244d99c160e87ee41deare non-terminal: CI33992784793, Security Scan33992784787, SAST Semgrep33992784719, and CodeQL PR33992784783are queued/pending. Predecessor results do not transfer.Keep Draft until one unchanged exact head has terminal required/security/SAST/CodeQL evidence, qualifying current review, and controlled performance evidence if performance is used as the merge rationale. No self-approval, bypass, force update, destructive rebase, generated-doctrine promotion, or unmeasured performance claim.