Skip to content

Latest commit

 

History

History
157 lines (115 loc) · 17.5 KB

File metadata and controls

157 lines (115 loc) · 17.5 KB

智能体管理:会话数据

「会话数据」页直接读取各智能体自己的会话记录(Codex、Claude、CodeBuddy、WorkBuddy 中国版与国际版、Qoder 国际版与中国版、Kimi Code、MiMo Code、TRAE CLI、Antigravity,以及 Qoder 等桌面端自己保存的对话),列出你在客户端里实际看到的会话,按项目归类,并支持批量删除。Stacker 不再维护会话全量索引。下文的分类、删除和占用规则以 Codex、Claude 为例写得最细,其他智能体按各自的记录格式套用同样的边界。

数据来源

智能体 根目录 读取内容
Codex 「设置 → 高级:读取位置」中的自定义路径 → 用户环境变量 CODEX_HOME → ~/.codex 只读打开最新的 state_<n>.sqlite:threads、thread_spawn_edges、projects、project_roots;正文读取 rollout JSONL
Claude 自定义路径 → CLAUDE_CONFIG_DIR → ~/.claude projects/<项目>/<会话>.jsonl 的开头 256 行(1 MB)和末尾 256 KB;<会话>/subagents/、custom-title.json、file-history/<会话>、session-env/<会话> 只统计大小
Claude 桌面端索引 自定义路径 → %APPDATA%\Claude\claude-code-sessions <账号>/<组织>/local_*.json:侧栏标题、归档状态、最后活动时间
CodeBuddy 自定义路径 → ~/.codebuddy projects/<项目>/<会话>.jsonl(与 Claude 同构,summary 行为标题)
WorkBuddy 中国版 / 国际版 自定义路径 → ~/.workbuddy / ~/.workbuddy-ai 同 CodeBuddy 的会话文件;只读打开 workbuddy.db 取应用显示的标题、工作目录、自动化标记和「已在应用中删除」标记
Qoder 国际版 / 中国版 自定义路径 → ~/.qoder / ~/.qoder-cn CLI 的会话文件;桌面端的对话列表来自编辑器自己的 state.vscdb
Kimi Code 自定义路径 → ~/.kimi-code sessions/wd_<工作区>/session_<id>/:state.json 与 agents/<智能体>/wire.jsonl
MiMo Code 自定义路径 → ~/.local/share/mimocode 只读打开 SQLite:session、message、part 表
TRAE CLI 自定义路径 → %LOCALAPPDATA%\trae-cli\sessions 会话目录
Antigravity 自定义路径 → ~/.gemini/antigravity 只读展示,不支持删除

Claude 桌面端的 Code 页与 CLI 共用 ~/.claude/projects,Codex 桌面端、CLI 与 IDE 共用 ~/.codex,因此按智能体而不是按客户端区分来源。每条会话带一个客户端标签:桌面端、终端、IDE、自动化、SDK。

列表结果在内存中缓存 10 秒;点击「刷新」或修改读取位置后重新读取。

分类

  • 标题优先级:客户端标题(Claude 桌面端侧栏标题;Codex 重命名后的 name,否则首条消息)→ Claude custom-title → summary → 首条用户消息(80 字)。
  • Codex 子智能体与审查线程挂到最上层父会话的「子任务」下,不单独成行,也不参与批量选择。找不到父会话的子线程与审查线程归为自动化运行,并标注「父会话已不存在」。
  • 来源:桌面端、终端、IDE(Codex 的 VS Code 插件,Claude 的 VS Code / JetBrains 插件),以及自动化。
  • Codex codex exec 运行与 Claude SDK 会话属于自动化运行,默认隐藏,勾选「包含自动化运行」后显示。
  • 状态:
    • 已归档:Codex archived = 1,或 Claude 桌面端索引 isArchived。
    • 孤儿:Claude 桌面端创建、但已不在桌面端侧栏中的会话(在桌面端删除后文件残留);或项目目录已不存在。
    • 其余为未归档。终端会话没有归档概念,只要项目目录还在就一直是未归档,不代表正在运行。
  • 项目:按工作目录归类(忽略大小写和尾部分隔符)。Claude worktree 会话(<仓库>\.claude\worktrees\<名称>)归到主仓库。Codex 会话优先使用 Codex 桌面端的项目名。

删除

选中会话后点击「删除…」。确认框列出将删除的会话数、子任务数、涉及文件数、可释放空间和不会删除的会话及原因。删除方式:

方式 行为
精简导出后删除(默认) 把用户、助手正文和工具调用(每条最多 2000 字)写成 Markdown,存到 `%LOCALAPPDATA%\Stacker<dev
直接删除 不留副本
完整备份后删除 把全部关联文件复制到同目录下 backups\<任务 ID>\ 后删除,不释放空间

安全规则:

  • 预览 10 分钟内有效,只能执行一次。执行前重新读取会话并核对文件指纹,有变化即停止。
  • 单次最多 500 条。
  • Claude:只删除不在桌面端侧栏中的会话。仍在侧栏中的会话会被阻止,请先在 Claude 桌面端删除。最近 2 分钟内有写入的会话视为正在使用并阻止。删除范围为 projects/<项目>/<会话>.jsonl、projects/<项目>/<会话>/、file-history/<会话>/、session-env/<会话>。
  • Codex:要求 Codex 桌面端与 CLI 已完全退出,并确认本机 Codex 支持安全删除接口;通过 Codex App Server 的 thread/delete 先删除子线程再删除父会话,完成后核对记录文件已不存在。
  • 其他智能体:CodeBuddy、WorkBuddy、Qoder、Kimi Code、TRAE CLI 删除各自根目录内的会话文件;MiMo Code 删除数据库中的该会话;Antigravity 只读,会被阻止。
  • 不跟随符号链接或目录联接;所有路径必须位于对应智能体根目录内。
  • 删除只影响智能体的会话记录,不删除项目源码、工作树或构建缓存。

占用

「占用」标签统计每个已安装智能体在磁盘上的全部数据(同一文件经硬链接或重定向出现多次时只计一次)。下表以 Codex 与 Claude 为例,每一项归入四类:

类别 内容 操作
会话记录 Codex sessions、archived_sessions;Claude projects 跳到「会话」标签按占用排序后删除
可安全清理 旧版命令执行器、旧版 Claude Code、临时文件与缓存、7 天前的日志与终端快照、无对应会话的环境快照与编辑检查点 默认勾选
需你判断 Codex tmp 下的工作目录、target、生成的图片、附件、可视化产物、运行日志数据库 默认不勾选,逐项确认
保留 状态数据库、插件、技能、配置、当前 Claude Code、桌面端组件与运行时 只显示大小

统计的根目录:Codex 数据目录、%LOCALAPPDATA%\OpenAI\Codex、Claude 数据目录、%APPDATA%\Claude、%LOCALAPPDATA%\Claude、%LOCALAPPDATA%\Claude-3p 以及 MSIX 包目录。同一目录经 MSIX 重定向出现两次时只计一次。

清理规则:

  • 清理前重新统计,所选项目不存在、被阻止或大小变化超过 1% 时停止。
  • 对应程序在运行时,其临时文件、缓存和日志数据库被阻止,提示先退出;Stacker 不会关闭任何程序。
  • 旧版 Claude Code 只在没有进程使用该版本时列为可清理;版本号最大的始终保留。
  • 不跟随链接或目录联接,删除路径必须位于其根目录内且不能是根目录本身。

摘要与交接

摘要与交接资料由本机已登录的 Codex / Claude 命令行生成,不需要 API Key。

  • 入口:会话详情「生成摘要 / 重新生成」;选中多个会话后操作条「生成摘要」;「项目」标签每行「交接」。
  • 确认框显示会话数、将发送的字数和执行者,可只对本次修改执行者、模型与推理强度。会话正文会发送给所选智能体的模型服务,消耗该账号的额度。
  • 默认值在「设置 → 摘要」:执行者(同源 / 固定 Codex / 固定 Claude)、每个智能体的模型与推理强度。默认 Codex 用命令行默认模型、推理 low;Claude 用 sonnet、推理 low。Codex 的模型列表读取 ~/.codex/models_cache.json。
  • 运行方式:每次在新建的临时空目录中运行,结束后删除。
    • Codex:codex exec --ephemeral --ignore-user-config --ignore-rules -s read-only,并关闭 shell、代码执行、插件、浏览器、电脑操控等全部工具功能(按 codex features list 取当前版本存在的名称)。
    • Claude:claude -p --no-session-persistence --tools "" --strict-mcp-config;运行后删除 Claude 为临时目录留下的空项目文件夹。
    • 两者都不会在智能体中留下新会话,也无法读写文件或执行命令。
  • 长会话:可读正文超过 12 万字时分段生成笔记再合并;超过 12 段只读首尾各 6 段并在摘要中注明。
  • 批量任务同时处理 2 个会话,可取消;已有且未过期的摘要默认跳过。
  • 摘要保存在 session_notes,记录执行者、模型、推理强度和时间;原会话变化后标记「已过期」。摘要可被搜索,并写入精简导出的开头。
  • 交接资料:取项目最近的普通会话(默认 10 个,可选 5 / 20 / 全部),先补齐缺失或过期的摘要,再整理成一份文档,保存到导出目录下的 handoff\<项目>-<时间>.md。

网页对话

「网页对话」标签显示从「Stacker 网页对话」浏览器插件同步来的 ChatGPT、Claude 等网站对话(连接方法见下一节)。

  • 列表按最后更新时间排序,每页 100 条;可按站点、账号筛选,搜索标题、备注、标签和摘要;勾选「搜索正文」时同时搜索已同步的正文(需要逐条解压,较慢)。
  • 标注:「网站上已删除」(插件刷新时发现网站上已没有这条对话,或在插件里删除了)、「未存正文」(插件还没读取过正文)、「正文不是最新」(读取正文后网站上又有更新)、「有摘要」。
  • 单条消息超过 25 万字时,插件同步到 Stacker 前会截断该条消息(浏览器里保存的原文不受影响,仍是完整的)。
  • 详情显示正文、文件夹、标签、备注和摘要。「生成摘要」先确认将发送的字数和执行者,由本机智能体生成(与会话摘要同一套运行方式和「设置 → 摘要」中的模型与推理强度;执行者设为「同源」时网页对话用 Claude)。正文更新后摘要标记「已过期」。同一时间只生成一个网页对话摘要,可取消。
  • Stacker 不会修改或删除网站上的对话;清理在插件里完成。

浏览器插件

「设置 → 浏览器插件」:

  • 插件文件夹:安装版与免安装版在 stacker.exe 所在目录下的 extension;开发时为仓库的 extension\dist(先运行 npm run ext:build)。「打开文件夹」在资源管理器中打开它。
  • 安装步骤:在 chrome://extensions 或 edge://extensions 打开「开发者模式」,「加载已解压的扩展程序」选择插件文件夹,再点下方的「连接」并重新加载插件。
  • 「连接」(先确认)在当前用户注册表写入 HKCU\Software\Google\Chrome\NativeMessagingHosts\com.stacker.webchat 或 HKCU\Software\Microsoft\Edge\NativeMessagingHosts\com.stacker.webchat,值为登记文件 %LOCALAPPDATA%\Stacker\<dev|stable>\conversations\native-messaging\com.stacker.webchat.json 的路径;登记文件指向当前的 stacker.exe,只允许固定 ID 的插件连接。「断开」删除注册表项,两个浏览器都断开后删除登记文件。
  • 状态:已连接 / 未连接 / 「登记指向其他位置」(例如换了安装位置,或开发版与正式版互相覆盖),后者点「连接」即可更新。
  • 最近连接时间、最近同步时间,以及已同步的账号、对话、正文、文件夹、摘录数量。

浏览器以 stacker.exe chrome-extension://<插件 ID>/ 启动 Stacker 时进入桥接模式:只通过标准输入输出与插件交换数据,不打开窗口,也不会唤起已运行的 Stacker;来源不是固定插件 ID 时立即退出。插件导出的文件存到导出目录下的 web\<站点>\,路径最多 4 级、只允许 .md 与 .json,不能写到导出目录之外。

提炼

「提炼」标签把网页对话、本机会话和摘录里可复用的东西提炼出来,存成一个结果库。

  • 入口:「提炼」标签的「新建提炼…」;会话列表选中若干会话后操作条的「提炼…」;网页对话详情里的「提炼…」。开始对话框里可以再搜索添加来源(网页对话需要已同步正文)。
  • 产出类型可多选:经验问答、领域要求、提示词、skill 草稿。默认选中前两项。
  • 执行者:与网页对话摘要同一套 —— 「设置 → 摘要」里的执行者、模型与推理强度,可在对话框里只对本次覆盖;执行者设为「同源」时用 Claude。运行方式也一样:临时空目录、无工具、不在智能体里留下新会话。
  • 开始前的确认框会写明将发送多少份材料、多少字、发给哪个智能体和模型,确认后才会发送。
  • 长材料按 12 万字分段,逐段提炼,再用一次调用指出重复条目并合并 —— 合并只去重,不重写正文,每条结果保留全部来源。一次最多保留 200 条。
  • 每条结果记录类型、标题、正文、来源(对话或会话的标题与链接)、执行者和时间,默认是「草稿」。可以改标题和正文、标为「已采用」或退回草稿、删除。
  • 筛选:按类型、状态和关键词(标题、正文、来源标题)。「导出」把当前筛选下的结果写成一个 Markdown 文件,存到 %LOCALAPPDATA%\Stacker\<dev|stable>\conversations\exports\distill\。
  • skill 草稿另外写成文件夹 %LOCALAPPDATA%\Stacker\<dev|stable>\conversations\distill\skills\<名称>\,含 SKILL.md 与 excerpts.md(依据原文摘录,每个来源最多 4000 字)。Stacker 只写文件,不会把 skill 安装到任何智能体;要用就自己复制到智能体的 skill 目录并完善。同名时自动加「 (2)」。「skill 草稿」按钮打开这个文件夹。
  • 同一时间只跑一个提炼任务(再点会提示「已有提炼任务正在执行」),可以随时取消,已完成的条目保留。
  • 插件里打开一条对话,详情下方会列出它的提炼结果(只读,需要已连接 Stacker)。

迁移到其他盘

「设置」标签最上方的「数据目录迁移」,以及「占用」标签中每个智能体的标题下,显示数据位置;普通目录提供「迁移到其他盘…」。迁移会移动全部数据(历史会话、配置、缓存),原位置留下目录联接,智能体无需任何设置。

迁移完成后,原数据先改名为备份保留在原位置,C 盘空间此时尚未释放;确认智能体在新位置运行正常后点「删除原位置的备份」才会释放。

「设置 → 高级:读取位置」只改变 Stacker 从哪里读取,不移动任何数据。

  • 迁移前检查:智能体已退出(Codex 命令行与桌面端;Claude 命令行与桌面端,桌面端的 Code 页也使用 ~/.claude)、原位置是普通目录且没有设置 CODEX_HOME / CLAUDE_CONFIG_DIR、目标为本机 NTFS 分区上的空目录或不存在的路径、剩余空间不少于数据大小的 1.1 倍。默认目标为剩余空间最多的非系统分区下 AgentData\codex 或 AgentData\claude。
  • 步骤:复制并保留修改时间(目录内部的目录联接在新位置重建,指向内部的改为指向新位置)→ 核对文件数、字节数与联接数 → 原目录改名为 <原名>.stacker-backup → 在原路径创建目录联接指向新位置。每一步都记录在 sessions.sqlite3,任何一步失败都会撤销到迁移前;应用中途退出后,「设置」与「占用」标签提示「上次迁移未完成」并可恢复原状。
  • 完成后原目录保留为备份。确认智能体在新位置正常后,点击「删除原位置的备份」才会释放空间。
  • 迁回原位置:备份还在时只删除联接并改回原名;备份已删时把数据复制回原位置。新位置上的副本都会保留。
  • 删除联接只删除联接本身,不进入目标目录。C1 会话删除与 C2 清理的越界检查基于解析后的真实路径,迁移后仍然有效。

Stacker 保存的数据

%LOCALAPPDATA%\Stacker\<dev|stable>\conversations\sessions.sqlite3:

  • session_notes:收藏、旧版本生成的摘要及其对应的文件指纹(原文变化后摘要标记为已过期)。
  • settings:数据来源自定义路径。

首次打开时,旧会话索引 index.sqlite3 中的收藏与摘要按会话 ID 迁移一次;旧的隐藏、分组标注和 Claude Desktop (local)、导入来源不再使用。

%LOCALAPPDATA%\Stacker\<dev|stable>\conversations\webchat.sqlite3(与 sessions.sqlite3 分开):

  • web_accounts、web_conversations、web_folders、web_excerpts:插件同步来的账号、对话索引与整理字段、文件夹、摘录,以及网页对话的摘要。
  • 合并规则:标题、时间、归档、删除标记以最新一次列表刷新为准;文件夹、标签、收藏、备注、账号备注名以最后修改的一方为准。文件夹与摘录删除后不会被旧数据恢复。
  • 正文:conversations\webchat\bodies\<站点>\<账号>\<对话>.json.gz;导出:conversations\exports\web\;登记文件:conversations\native-messaging\。
  • distill_results、distill_sources:提炼结果与「来源 → 结果」反查索引;本机会话与网页对话共用这一个结果库。skill 草稿的文件在 conversations\distill\skills\,删除结果不会删除已写出的文件夹。