Skip to content

feat(buddy): 支持把会话作为引用 - #244

Open
QAyong wants to merge 1 commit into
useLexora:masterfrom
QAyong:codex/feature-session-references
Open

QAyong wants to merge 1 commit into
useLexora:masterfrom
QAyong:codex/feature-session-references

Conversation

@QAyong

@QAyong QAyong commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

背景与关联 / Context and related issue

  • 问题或目标 / Problem or goal: 当前聊天无法引用历史会话。想接着之前某次对话继续时,只能手动复制粘贴内容,或者把整份历史预先塞进上下文——既增加成本,也容易淹没当前问题。
  • 关联 Issue / Related issue: N/A(按需检索的思路参考 Pi 社区包 pi-session-ask,未复用其代码或存储适配器)

主要改动 / Changes

  • 变更 / Change:
    • 输入框支持显式附加一个或多个历史会话引用:侧栏会话"更多"菜单新增"复制会话引用",粘贴到输入框即可;行内引用位置不会因为自动保存而被重置。
    • 发送后由隔离的检索步骤在被引用会话中查找与当前问题相关的内容,只把相关结果交回主 agent,不把目标会话全文预先放进上下文。
    • 目标会话必须存在且未删除;渲染层仍通过受限 runtime RPC 访问会话,不直接读数据库或本地文件。
    • 新增内置 session_ask 工具,并按需披露(on_demand):只有存在引用会话时才出现在工具列表里。
    • 会话引用在输入框与消息里以引用卡片展示。

验证 / Verification

  • 自动检查 / Automated checks: buddy 相关单测(会话引用序列化、输入框边界、session_ask 工具、消息内容渲染)。
  • 手动验证 / Manual verification: 从会话菜单复制引用、粘贴发送,确认回答引用了目标会话内容;删除目标会话后引用失效。
  • 未执行 / Not run: 完整 pnpm lint 未执行;完整发布预检未做。

兼容与风险 / Compatibility and risks

  • user content 结构新增可选字段,旧会话数据不受影响;没有引用会话时不会暴露检索工具。
  • 引用目标失效(已删除)时按无效引用处理,不会读取到其他用户或空间的数据。

界面变更 / UI changes

  • 输入框与消息中新增会话引用卡片;侧栏会话"更多"菜单新增"复制会话引用"。

@QAyong
QAyong force-pushed the codex/feature-session-references branch from fe643be to 102079e Compare October 8, 2026 05:42
@QAyong

QAyong commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

这是之前 #222(同类改动)被关闭后的重新提交,说明一下与上一轮讨论的关系:

  1. 卡片样式:输入框使用会话引用条(ChatSessionReferenceStrip),消息里复用既有内容卡片样式。如果与其它卡片仍不一致,请指出具体位置,我再对齐。
  2. @ 选择:本次入口仍然是"复制会话引用 → 粘贴到输入框",没有实现 @ 选择。如果希望按上次说的做法(空间即目录、tab 切入展示任务会话列表)实现 @ 选择,我可以另开一个 PR 做。
  3. 复制入口:目前是会话"更多"菜单里的一项,没做成"复制 → 会话引用"二级弹窗;需要的话我按二级弹窗改。

另外:本 PR 只包含会话引用本体;文件 / Markdown / 浏览器 / 产物选区引用是后续 PR,分开提交便于评审。

This branch has not been deployed

No deployments
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.

1 participant