Skip to content

perf(search): preserve duplicate intersection lane behind #610/#622 - #594

Draft
seonghobae wants to merge 9 commits into
mainfrom
bolt-optimize-set-intersection-3534397711069344559
Draft

seonghobae wants to merge 9 commits into
mainfrom
bolt-optimize-set-intersection-3534397711069344559

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Preservation state

Protected base is main@47c6fd27de13b0da37a7db64697b869941909351. This branch carried the in-place postings-intersection candidate, a retrospective .jules/bolt.md rule, and an unrelated rewrite of pr_description.txt that replaced its existing security content with this performance PR narrative.

Current exact is ordinary descendant ad0da276bc9edcd7a8e50aabb36b293a08d56e17. It restores all three changed paths byte-for-byte from protected main while preserving the generated/intervening history in ancestry. Fresh compare is ahead 8 / behind 0 / changed files 0. The PR is Draft.

Canonical evaluation lanes

#610 and #622 both retain the valid intersection_update candidate in focused Draft performance lanes and explicitly require semantic equivalence plus enclosing TranscriptIndex.search() measurement before any performance claim. #610 additionally evaluates an explicit score-accumulator loop; #622 evaluates a list-comprehension score variant. Neither is currently accepted as superior without ablation evidence.

This branch has no unique executable contract or measurement that those evaluation lanes require, and its pr_description.txt overwrite is unrelated collateral churn. Do not close it merely because it is zero-diff; close only after a verified successor is protected-integrated with the valid intersection semantic delta/evidence, or after an explicit no-valid-delta decision.

No force update, destructive rebase, self-approval, source-neutral retry commit, scanner suppression, or gate weakening was used.

@google-labs-jules

Copy link
Copy Markdown

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: f701cf07-6a46-4b1a-bfa5-10360443281d

📥 Commits

Reviewing files that changed from the base of the PR and between 47c6fd2 and cf6e536.

📒 Files selected for processing (3)
  • .jules/bolt.md
  • pr_description.txt
  • transcript_search.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

TranscriptIndex.search가 후보 집합을 새로 생성하지 않고 제자리에서 교집합을 갱신하도록 변경되었습니다. 관련 학습 노트와 PR 설명도 새 동작과 테스트 명령을 반영하도록 갱신되었습니다.

Changes

검색 교집합 최적화

Layer / File(s) Summary
후보 집합의 제자리 교집합 처리
transcript_search.py, .jules/bolt.md, pr_description.txt
첫 검색어는 후보 집합을 초기화하고 이후 검색어는 intersection_update()로 갱신합니다. 기존 AND 검색 의미와 빈 결과 처리 방식은 유지됩니다. 학습 노트와 PR 설명은 이 변경 및 테스트 명령을 설명하도록 교체되었습니다.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Refactor

Merge Risk: ⚪ Minimal · up to 89364

The optimization preserves search results and reduces allocation overhead, so no actionable merge-blocking risk is established.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (2 skipped: 2 …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 검색 성능 개선과 교집합 처리를 언급하므로 변경 내용과 관련됩니다. 그러나 intersection_update()를 사용한 메모리 할당 감소를 명확히 설명하지 않고 표현이 다소 모호합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae added enhancement New feature or request priority: medium Normal-priority or P2 work labels Sep 19, 2026 — with ChatGPT Codex Connector

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0 single-writer / PR-0 finding on exact 770e585ba2abc5adbe6ce2622760d6ff93dc2b46.

This PR writes the same TranscriptIndex.search set-intersection boundary that is already under the active canonical search stack: #601 (e699ce0f…, based on security owner #570) and its experiment child #579 (22d9b298…). Keeping #594 as a protected-main sibling creates a second writer for the same semantic/performance boundary and bypasses the repaired #570→#601 ancestry.

The local change itself is plausible, but unittest pass is correctness smoke, not performance evidence. intersection_update() may reduce intermediate allocations, while total benefit depends on posting-set cardinality/order and the surrounding score loop. The PR body currently claims improvement without exact-head before/after CPU/allocation/RSS/GC and median/p95 evidence. It also replaces pr_description.txt wholesale from an unrelated security task with this task narrative; that generated task artifact is not a product contract and should not become semantic delivery scope.

Repair path: preserve this exact semantic candidate as evidence, then have the canonical #601/#579 owner adopt/adapt it ordinary-forward (or choose it after a controlled A/B) rather than independently landing #594. RED/GREEN acceptance should use the same rights-cleared transcript corpus and identical environment/warm-up: result/order parity for empty/punctuation/single/multi-term queries, high/low-overlap postings, repeated terms, then allocation/RSS/GC + CPU + median/p95 for #601's multi-set intersection versus this in-place loop versus #579's current alternative. One successor must carry the winning source, tests, benchmark fixture/procedure, CHANGELOG/evidence, and repaired #570 ancestry before any predecessor can be PR=0.

Until that consolidation is complete: Single-writer/PR-0 FAIL; performance evidence FAIL; source correctness direction PASS candidate only.

@seonghobae
seonghobae marked this pull request as draft September 24, 2026 15:33
@seonghobae seonghobae changed the title ⚡ Bolt: [set 교집합 연산 최적화] perf(search): preserve duplicate intersection lane behind #610/#622 Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium Normal-priority or P2 work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant