docs: ADR-0010 MiniSearch 採用見送りを記録 (#203)#223
Merged
Conversation
Issue #203 (全文検索エンジンに MiniSearch 採用を検討) の評価結果として、 MiniSearch を採用しない判断を ADR に記録する。 判断の核: - MiniSearch には char offset / line number を返す API がなく、 SearchPanel の grep UX (matchStart/matchEnd 付き位置 highlight) を 直接実現できない - 既存 e2e (e2e/search.spec.ts:182-230) で emoji・サロゲートペアでの 位置精度がピン留めされており、UX 変更は機能 regression リスク - 数百〜数千ファイル想定 (migration-plan.md Stage 3) で brute-force walk は十分高速、ranking-based UX への変更は scripta の grep 用途と方向違い - index 永続化 / worker thread 等の運用コストが得られる改善に見合わない 代替案 3 件 (完全置換 / hybrid / 維持) を Pros/Cons 比較し、 「自前 line-level scan 維持」を採用。 将来 workspace が万単位に育ったユーザーが現れた場合の再評価候補 (MiniSearch tokenize 拡張 / Orama / FlexSearch / ripgrep sidecar / napi-rs) は将来検討枠として記載。
branch protection で必須化している "Analyze (javascript-typescript)" は codeql.yml の paths-ignore (**/*.md, docs/**, .github/ISSUE_TEMPLATE/**) で skip される PR (本 PR #223 のような docs-only) では永遠に pending → BLOCKED になる (GitHub 仕様: paths-ignore で skip された必須 check は "neutral" でも "skipped pass" でもなく、check 自体が未生成扱い)。 GitHub 公式推奨パターンの「逆 paths filter で stub workflow を作り、 同名の check を success として生成する」を codeql-skip.yml として追加。 codeql.yml の paths-ignore と完全に補完する paths filter で trigger され、 同名 check Analyze (javascript-typescript) を即 success にする。 code + docs 混在 PR では codeql.yml と本 workflow の両方 trigger される (paths-ignore は「全ファイルが該当」のみ skip、paths は「1 つでも該当」で trigger のため) が、stub は数秒で完了するため実害なし。 参考: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/troubleshooting-required-status-checks#handling-skipped-but-required-checks
ymnao
added a commit
that referenced
this pull request
Jun 24, 2026
- `CHANGELOG.md` に v0.5.0 セクションを追加 - Added: #202 → #221 (バックリンクパネル) - Fixed: #220 → #222 (タブ切替 undo 履歴消失) - Security: #204 → #210 (Electron Tier 1 補完), #205 → #218 (CI スキャン 3 件), #223 (codeql-skip stub), #201 (undici 9 件) - Internal: #203 → #223 (ADR-0010 MiniSearch Rejected) - Dependencies: #199 + #211-#217 → #219 (Dependabot 8 件集約) - `package.json` の `version` を `0.4.0` → `0.5.0` - HANDOFF の規約通り、本 commit では `pnpm <script>` を呼ばない (lockfile / node_modules には触れない)
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.
概要
Issue #203 (全文検索エンジンに MiniSearch 採用を検討) の評価結果として、MiniSearch を採用しない判断を ADR-0010 に記録する。docs のみの追加で、コード変更なし。
関連 Issue
Closes #203
移行 Stage
変更内容
docs/adr/0010-minisearch-rejection.mdを新規作成SearchResultはid/score/terms/queryTerms/match(term × field)のみ)e2e/search.spec.ts:182-230) で emoji / サロゲートペア位置精度がピン留めされ、UX 変更は機能 regression リスク動作確認
docs/adr/template.mdおよび既存 ADR-0005 / 0009 と整合biome checkでThese paths were provided but ignoredを確認)スクリーンショット
なし(docs のみ)