Skip to content

feat(search): mark superseded rows within same_entity by recency #267

Description

@liplus-lin-lay

purpose

検索で古い差分が上位に出たとき、それが「今も有効な内容」か「後で置き換わった内容」かを、読み手が本文を開く前に区別できるようにする。グラフ構造(判断記録の doc_edges)は変えず、結果に印を付けるだけで解く。

premise

  • 2026-10-03、Li+ の検索「subagent model effort selection criteria spawn」で 9/15 の差分(commit c6f16c3、skills/task-subagent-spawn/SKILL.md)が最上位に出た。その差分の内容(判定型評価役の強さ下限 = medium)は後の変更で low に置き換わっており、それを今の決まりとして読んだ誤りが 1 件発生した(Lay、部屋で訂正済み)。
  • 同じ結果の same_entity.others には、同じファイルのより新しい差分(430483b 2026-09-29 / dcb114c 2026-09-29 / 539e270 2026-09-23)と現行 doc 本文が updated_at 付きで既に並んでいた(src/mcp.ts:905-920 の型、:925-945 の組み立て)。
  • graph_expand は wiki 判断記録のページ間の線のみをたどる。差分はグラフの点ではない(同検索で graph_neighbors 0)。履歴全体をグラフ化するのは書き直しの手間が大きいため採らない(Master 判断、2026-10-03 部屋)。
  • 古い差分は「なぜそう決めたか」を探す検索では最良の当たりなので、順位は動かさない(Lay 指摘)。

constraints

  • 順位・score・rerank は変えない。追加は結果行のフィールドのみ(加算的、無視するクライアントは従来どおり)。
  • 代表行または same_entity.others の各行について、同じ実体の中でより新しい updated_at を持つ行があれば「この後に新しい変更あり」、最新の行には「最新」を示すフィールドを付ける。
  • 比較対象は候補プール内の same_entity の行に限る(プール外の新しい版の探索はしない)。プールに新しい版が無い場合は印を付けない(=最新と断定しない)。
  • graph / doc_edges には触れない。

target files

  • src/mcp.ts(結果組み立て、ツール説明文)
  • 対応テスト

completion condition (PR 単独では満たせない)

  • デプロイ後、本番の検索「subagent model effort selection criteria spawn」(repo=Liplus-Project/liplus-language)で、9/15 の差分(c6f16c3)に「この後に新しい変更あり」、同じ実体の最新行に「最新」の印が付くことを確認する。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions