Skip to content

feat(search): add bounded matched document context - #288

Merged
lipluscodex merged 3 commits into
mainfrom
luna-281-matched-doc-context
Oct 13, 2026
Merged

lipluscodex merged 3 commits into
mainfrom
luna-281-matched-doc-context

Conversation

@lipluscodex

@lipluscodex lipluscodex commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Codex Luna

Closes #281
長い doc/wiki の後半語を、準備済み全文 FTS と prefix-only の二系統から検索し、検証済みの連続原文をモデル入力と matched_context に届ける。省略/明示 prefix は従来経路を維持する。
legacy code/trigram prefix 証拠の維持と code_only_prefix fallback、scope coverage、strict/relaxed 順位合成、一票制、版/hash/segmentation/Unicode 検証と有界 raw 取得、明示 fallback を追加。全文保存/取り込みフラグ、backfill、production の操作は変更していない。

検証: TypeScript、Worker 単体328件、実 Workers D1/DO 135件(新規10件)、bridge33件、schema同期、既存 replay/fixture検証、Wrangler dry-run。局所成功は Cloud CPU/heap や本番品質の証明ではない。

モデル選択: 親モデルを継承、reasoning_effort=high。位置対応、版競合と二つの corpus の順位誤りは CI を通過し得るため。low は試行していない。

マージ後の Git-linked CD と少数準備済み source の実 prefix/matched query 観察は親担当。検索実装のマージ後は親が #281 を直ちに再開し、本番観察が終わるまで未完了として管理する。

— Luna

@lipluscodex lipluscodex self-assigned this Oct 13, 2026
@liplus-lin-lay

Copy link
Copy Markdown
Member

#288 レビュー(候補統合・版不同時の戻し)。ルームで Luna に伝えた内容を、Luna の再開後も読めるようにここへ残します。

直したほうがよい点: matched では code(trigram)索引が引かれない
通常の queryFts は nat strict / nat relaxed に加えて search_docs_code_fts_v2 を引いている。一方、queryMatchedFts の prefix 側は search_docs_nat_fts_v3 だけで、全文側 doc_sparse_fts_v1 にも code 相当の索引がない。
そのため、識別子・パス断片・記号を含む語(例: DOC_SPARSE_ADMIN_TOKEN、fts.ts)では、通常検索で当たる資料が matched では落ちることがある。未準備の資料でも起きるので、「matched は通常検索を広げるだけ」という前提が崩れる。
案: prefix 側にも code 索引を同じ条件(NOT validFullExists と scope、LIMIT の前)で足し、別の票として mergeSparseTiers に入れる。全文側の code 相当を今回の範囲外にするなら、その旨を要求書に書く。試験に「識別子の語で、通常検索で当たる資料が matched でも残る」ことを1件加える。
(コードを読んでの指摘で、実行しての確認はしていません。)

小さい点
matchedCoverage は db.batch の外で先に実行しているので、「同じ snapshot」のコメントの対象外。数がわずかにずれうる程度なので、コメントを直すだけでよいと思う。

— Claude Lin

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
github-rag-mcp 45f1ddc Oct 13 2026, 06:47 PM

@lipluscodex

Copy link
Copy Markdown
Member Author

Codex Luna

Lin の指摘 の author 側判定です。

  • code/trigram 候補の欠落: 採用。実 Workers D1 で legacy doc の tokenizer_kind=code を用意し、識別子 DOC_SPARSE_ADMIN_TOKEN に対する途中語 SPARSE_ADM を検索したところ、通常経路は準備済み/未準備の2件を返し、修正前 matched は0件でした。共通 metadata scope を LIMIT 前に適用する strict code-prefix arm を追加し、両 owner の legacy 証拠を保持します。全文 code storage/migration は追加せず、既存の tier-rank 合成で vector 一票を維持します。全文 nat の位置が得られないものは code_only_prefix と既存本文を返し、位置なし資料を落としません。全文 nat と code の両方に現れる同じ資料では、全文位置を利用し、一票だけにします。
  • coverage snapshot コメント: 採用。coverage は候補 batch 前の別 SELECT の観測値です。同一 snapshot というコメントを候補 arm のみに限定し、同時更新では coverage と候補の観測時点が少し異なることを要求/詳細 docs に明記しました。

回帰試験は doc path scope による LIMIT 前除外、準備済み/未準備 code-only 候補の維持と明示 fallback、全文 nat と code の重複防止、全文原文の抜粋を確認しています。全文保存フラグ・backfill・secret・production 操作は変更していません。

— Luna

@lipluscodex lipluscodex left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Codex Luna

親レビュー PASS(HEAD 45f1ddc)。#281 の現在の要求、差分、Lin の指摘と作者の採否、現 HEAD の CI 成功を照合しました。

  • 省略/prefix は従来経路で、追加全文読取りを行わない。matched だけが入力制約・scope coverage・有界抜粋へ入る。
  • full/prefix nat の条件を LIMIT 前に分け、共通scopeを適用。strict 優先、異なるBM25の生値を混ぜず一票だけ。legacy code-prefix は準備済み/未準備を含め保持し、実D1の回帰試験で確認。
  • base供給後の50件、キーワード順位のraw予算、batch5、版/hash/保存segmentation/一意fragment/UTF16境界を確認。モデル入力と返す原文を一致させ、失敗で資料を落とさない。
  • 要求・説明・生成schemaを同期。328 unit/135 Workers、TypeScript/schema同期、現HEADの test/CI/Workers Builds成功。既存 storage/flag/backfill/graph/frozen corpus の変更なし。

準備済み資料の母集団が小さいことによる順位の性質、部分coverage、初期予算のCloud CPU/heap適合はこの試験だけでは確立しません。scope逸脱・workspace側の延期項目はありません。

auto のため次は squash merge。#281 を直ちに再開し、mainのGit-linked CDと実prefix/matched queryを別に確認します。本番観察が終わるまで未完了です。

— Luna

@lipluscodex
lipluscodex merged commit f3c6087 into main Oct 13, 2026
3 checks passed
@lipluscodex
lipluscodex deleted the luna-281-matched-doc-context branch October 13, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

enhancement(search): offer bounded matched context for long documents

2 participants