fix(text): fail closed for unvalidated summary and retrieval selection - #515
Draft
seonghobae wants to merge 18 commits into
Draft
fix(text): fail closed for unvalidated summary and retrieval selection#515seonghobae wants to merge 18 commits into
seonghobae wants to merge 18 commits into
Conversation
|
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 |
This was referenced Sep 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Root cause
Protected
main@90717c6e9954bf3b7a351137995ebe89975e46c2기준으로 repository-owned text-selection policy 두 경로가 validated measurement/evaluation authority 없이 production decision을 만들고 있었습니다.summarize.py는 hand-curated English stopword, average term-frequency score, fixed five-sentence default, heuristic sentence split, earlier-position tie-break로 살아남는 transcript evidence를 선택했습니다.transcript_search.py는 local Unicode-regex token admission, Boolean-AND match, summed term-frequencyMatch.score, recording/timestamp tie-break로 검색 노출 순서를 결정했습니다.Repository code search에서 production caller는 각 module/test 밖에 없었고, 기존 transcript-search performance PR들은 같은 unvalidated relevance semantics를 보존하므로 causal owner가 아닙니다.
TDD / repair
RED:
dbac11ca0f7187dddd03acbc7425978e255a6762: non-empty automatic summarization은 validated policy 없이는 fail closed하고max_sentences에는 repository-authored default가 없어야 함.c042d1884625b8b371708d9d6d0aade917e2903c: non-empty transcript tokenization/search도 validated retrieval policy 없이는 fail closed해야 함.동일 non-force lineage에서 다음을 구현했습니다.
summarize_text/summarize_segments는SummarizationPolicyUnavailable, empty-input lossless behavior는 유지;tokenize/TranscriptIndex.search는SearchPolicyUnavailable;docs/product-technical-gap-baseline.md, architecture boundary, RCA doctoring, superseded token-fast-path evidence,CHANGELOG.md를 code-current하게 갱신;대체 BM25/vector/LLM ranker는 발명하지 않습니다. 재진입에는 명시적 algorithmic authority와 use-case-specific evaluation/calibration provenance가 필요합니다. 향후 RAG/model path라면 retrieval/response quality evaluation은
ContextualWisdomLab/fast-mlsirm, model execution/selection은 releasedContextualWisdomLab/contextual-orchestratorcontract 뒤에서 수행해야 합니다.Protected-main non-force adoption
이 branch는 기존
main@a8e4956...에서 갈라진 뒤 protected main이90717c6e...로 진행했습니다. intervening protected delta는.github/workflows/ci.yml과.github/workflows/fuzz.yml의 docs/Markdown trigger filtering뿐이며 text-selection source/docs/test와 겹치지 않습니다.a2415ec79c285d664a0d97d9de3dfc12983a23d9는 기존 headb0324a867f0ec57d666a40dd363a66c01c0daac7를 first parent, protectedmain@90717c6e...를 second parent로 둔 정상 two-parent descendant입니다. Result tree에는 protected main의 두 workflow blob을 그대로 채택했고 branch ref는force=false로 전진했습니다.Fresh compare 결과 merge base는 정확히
90717c6e...,behind_by=0입니다. Protected-main-relative effective delta는 text-selection repair의 13개 source/test/docs path뿐이며 workflow 변경을 복제하거나 되돌리지 않았습니다.Exact-head verification boundary
Exact current head:
a2415ec79c285d664a0d97d9de3dfc12983a23d9.이 head의 hosted workflows는 새로 시작됐고 현재 모두 non-terminal입니다: Scorecard
33790316358, OSV33790316781, Security Scan33790316172, CI33790316184, fuzz33790316206, SAST Semgrep33790316181. Predecessor-head evidence는 이전하지 않습니다.PR은 Draft를 유지합니다. Exact-head applicable checks의 실제 runner assignment/non-empty steps/terminal GREEN, current review/thread evidence, protected-path governance가 모두 충족된 뒤에만 Ready/normal merge를 검토합니다. Self-approval, bypass, no-op retrigger, force push, destructive rebase, gate weakening은 사용하지 않습니다.