feat(session): 会话检索族——FTS5 派生索引 + 关系追踪 + 工作区授权检索工具 + 导出(借 DSH session-query)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
調査の方向性
Start by comparing the existing JSONL transcript and sessions list/rewind flow with the referenced DSH files: session-query-sqlite/src/schema.ts, session-query/src/observation.ts, tracing.ts, and tool-session-query/src/index.ts. Read session-log-export/README.md for the export behavior. Done means the derived index can be rebuilt with consistent results, cross-session search enforces cwd boundaries, and exports include child sessions and attachments with only one simultaneous download per session.
索引モデルが issue の本文から書いたものです。
説明
场景 gap 单(okguitar 提报)· 优先级 P2 · 依赖:无 · 来源:DSH session-query 包借鉴(jeffkit 拍板跟进)
基线 HEAD = 4e1aee98。
Summary
recursive 的会话面只有 JSONL transcript + sessions list/rewind:模型无跨会话检索、无关系追踪、无导出。相关但不重合:#93(向量记忆未接线)/ #80(知识检索域拆层)/ #122(OTel span 覆盖)。
参照 DSH packages/session-query/:
- 可丢弃派生索引 + 就地重置:SQLite FTS5 只当派生读模型——
application_id+user_version识别自有库,版本不符原地重建;持久表存已落盘会话、TEMP 表存活跃会话;库 0600/目录 0700(session-query-sqlite/src/schema.ts:8-11,46-101)。 - 冷读缓存键 = 实例身份 + stat 修订号:修订未变不重读日志;活跃租约条目不被 LRU 驱逐(
session-query/src/observation.ts:56-78,98-150)。 - 关系追踪语义:replacementChain(事件被后续替换的链)/ source→derived——"为什么历史变成现在这样"的可解释查询(
tracing.ts:64-111)。 - 模型面工具 + 工作区授权:session_search / session_event_search / session_trace / session_event_trace / session_event_read;跨会话搜索要求调用方会话有 cwd(工作区边界),结果上限 100(
tool-session-query/src/index.ts:21-25,56-120)。 - 导出:认证路由流式 ZIP 整棵会话树(含子会话+附件),单会话单下载(
session-log-export/README.md)。
建议
- 派生索引层(可随时丢弃重建,与主 transcript 解耦);
- 关系追踪(替换链/来源链)——审计与可解释性的基础;
- 模型检索工具集 + cwd 工作区边界授权;
- 流式导出(含子会话与附件)。
验收
- 删库重建后检索结果与重建前一致(索引纯派生);
- 模型可跨会话检索但受 cwd 边界限制(越界被拒有测试);
- 导出产物含子会话与附件、单会话同时仅一个下载。
- 主要言語
- Rust
- スター
- 4
- フォーク
- 0
- 平均マージ
- 5時間 32分
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jeffkit/recursive のほかの issue
-
難易度 3/5 半日 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
jeffkit/recursive#141 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 66/100
jeffkit/recursive#138 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
jeffkit/recursive#134 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
メンテナーはふだん 1 日以内に返信
jeffkit/recursive の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 5 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
tauri-apps/tauri#16219 ·
メンテナーはふだん 2 日以内に返信
-
state:triage-needed
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
ktuner keeps a stale ledger path and can never restore that entry対応中かも @Frun1na が今日担当しました。 オープンcomponent:ktuner
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
agentic-os-org/ANOLISA#6483 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信