Skip to content
Guo-YixinPublic

About

本地 AI 编程任务指挥台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AgentDock · 智能体任务坞

本地 AI 编程任务指挥台:汇总 Codex、Claude Code、Cursor、Pi、DeepSeek Harness 和 WorkBuddy 的会话,按项目整理进展、日报与周报,并提供日历日程和带来源的分析助手。

0.8.2 活动、日程与费用体验

  • 活动时间线使用固定尺寸类型图标与内容卡片,区分用户请求、助手回复、工具操作和会话事件;显示完整时间、可读摘要,展开后查看 Markdown/原文与来源定位。每页 4 条,长列表与正文在指定阅读区滚动,避免标记拉伸和文字横向裁切。
  • 用量总览补充输入输出构成、缓存读取占比、主要模型和费用覆盖。宽窗口直接展示,短窗口及移动宽度可进入“分析摘要”,所有分区继续共用筛选。
  • 官方目录核查于 2026-10-08,覆盖本机已识别型号,新增 Google、SpaceXAI 与腾讯 TokenHub。已核验型号自动使用默认公开价,分别计算普通输入、输出、缓存读取、短缓存写入和长缓存写入;当前默认价仅用于 API 等值参考,不代表历史实际价格、IDE 订阅或 WorkBuddy 积分账单。“价格 → 合同单价”可从默认值编辑并按生效日期保存覆盖,删除后恢复适用旧规则或默认价。未知型号不猜价,不修改采集记录。
  • 热力图取消补录描边,采用同一套由浅到深的颜色,按非零日期用量分位数显示;悬停、聚焦与开关保留实测/补录拆分。历史补录新增确定性的弹性分摊,含少量周末并严格保持总量;旧补录保留原工作日分配,编辑选择新方式并保存后才改变估算分布。真实日期和用量不会随机改写。
  • 日历增加月份切换、当天安排和灰色推荐卡片。默认建议包括每日计划、午间休息、下班复盘、周五总结与周末整理;采纳进入编辑,保存后显示彩色实体日程并按设置提醒,推荐本身不保存、不提醒。可关闭建议,移动短窗口的月历可在日期区域内滚动。
  • 账号资料增加可选电话、邮箱、性别、生日和 300 字个人签名,联系方式仅用于个人资料,不用于登录或验证;复用现有文档存储,无新增数据库表。顶部头像固定为圆形,居中裁切;快捷操作改用闪电图标。

价格来源及默认规则见 0.8.2 价格依据,测试范围与安装包校验见 0.8.2 验收记录。

0.8.1 布局修复与统一阅读体验

  • 网页与桌面继续采用一屏框架和固定底栏。AI 来源在侧栏内展开占位,六个来源完整显示;空间不足时暂时收起导航组,关闭来源后恢复展开状态。
  • 历史详情改为居中矩形弹窗,最大宽度 1120px,窗口上下至少留出 24px;背景模糊并降低亮度,支持关闭按钮、Escape、焦点约束和未保存提示。
  • 任务目标、提取摘要、报告进展、下一步和 AI 版本使用单项手风琴,可再次点击关闭。正文按长度占位,最多使用可用阅读区的 45%,长文内部滚动;报告条目继续分页。标题、列表、强调和代码按 Markdown 显示,明确的系统上下文与图片附件标记默认隐藏,可切换原文查看。来源路径保留在会话“来源与关联”和导出中。
  • 记忆与工作流索引改为顶部排列的紧凑卡片,摘要单行省略并去掉 Markdown 符号,状态和复查时间独立显示;未选择对象时,详情提示居中。
  • 助手消息连续滚动,用户靠右、AI 靠左,输入框固定。首次读取最近 20 条,每次加载更早的 20 条,最多渲染 100 条;需要时可加载后续消息。流式回答仅在位于底部时自动跟随,向上阅读时提示“有新消息”,停止和回答完成后保持阅读位置;读取失败可重试,发送未成功时保留问题草稿。
  • 用量时间、工具、模型、项目与清除按钮固定在标题下方,各分区共用并在窄窗口换行。总览合并累计指标、当前范围指标和年度热力图,保留各自统计口径;每日分布独立展示,横轴采用月/日刻度,悬停或聚焦显示完整日期及数值,图例换行且说明独立占位。
  • 头像通过 FileReader Data URL 解码,继续支持最大 5 MiB 的 PNG、JPEG、WebP,在本地居中裁成 128 × 128 PNG 保存;损坏图片提示中文原因,可重新选择同一文件。桌面安全策略保持沙箱、上下文隔离和仅允许 self / data: 图片。
  • 新增只读 GET /api/assistant/chats/:id/messages?before=<位置>&limit=20:省略 before 从末尾读取,返回 messages、total、start、end 和 nextBefore(结束为 null),limit 支持 1–100。分页不返回预览快照,原完整聊天接口和数据库结构保持兼容;布局调整不改写原会话、用量或补录数据。

验收范围与复现入口见 0.8.1 验收记录。

0.8.0 一屏工作空间

  • 页面固定在当前窗口内,顶部导航、底栏和操作入口保持可见。长正文、报告内容、聊天消息和文本框可在自己的阅读区域滚动;列表改为分页,复杂表单改为标签与分步填写。
  • 工作台保留今日指标、下一步、日程与工作资产入口,点击“查看跨工具任务流”进入近 30 天的独立会话列表。历史记录保留搜索、来源、状态与关注筛选;底部固定分页。
  • 项目在宽窗口按 4 列 × 2 行显示,每页 8 个;窗口较窄时按可容纳的完整行调整为 6、4、2 等数量。缩放保留原首项所在页,浏览后续页时新的采集排序提示“更新项目顺序”,不直接打断阅读。
  • 用量通过总览、活动图表、工具模型、明细、补录、价格与覆盖说明访问;筛选是独立入口,当前日期与工具模型显示在标题下。总览区分累计与当前范围;窄窗口热力图按日期分页,保留完整 365 天。历史余额、精确补录、费用、预算、目录与合同单价分别进入子页面,保存按钮保持可见。
  • 目标、记忆、报告和工作流在电脑窗口采用索引与详情布局,窄窗口点击进入详情,再返回列表。工作流默认只展示当前步骤,已保存步骤、依据与复盘操作分别访问。会话详情区分概览、待办活动、来源关联与备注确认。
  • 助手以聊天为主,选择上下文、日期范围、自动预览、历史与保存建议分别进入标签页;选择后自动预览,调用模型仍需明确点击发送。设置按数据库、模型、采集和桌面分区;账号按个人资料、安全和登录会话分区。日历点击日期进入当天日程、只读活动摘要或日报,日程编辑分步完成。
  • 标签、分页及主要筛选写入 URL,支持刷新和浏览器返回;密码、Key 和编辑正文不写入 URL 或浏览器存储。切换标签保留当前草稿,未保存的工作记录或配置仍提示离开确认。
  • 底栏固定显示“本地工作空间 · Asia/Shanghai”,各页面显示不同的原创工作短句。短窗口导航按组折叠,提醒合并为单个入口,避免占用主内容空间。

0.7.0 分页、资源控制与精确补录

  • 0.7.0 将会话、项目、模型对比、用量明细、报告、目标、记忆、工作流、来源设置及聊天等列表改为每页 5 条(0.8.0 按窗口高度调整,项目采用完整行),支持前后页与页码跳转;日历月视图仍保留完整月历,议程按页显示。会话、用量、目标和工作资产的主列表在数据库分页。
  • 助手选取对象后自动预览,快速选择会取消过时预览;生成仍需点击确认。不把 API Key、密码或头像发送给模型。列表只取报告/聊天索引,打开后才读取正文;超过预算的正文在查询前拒绝。过期的临时预览自动清理,已发送聊天仍保留上下文快照。
  • 所有浅色表单共用主题颜色。长会话用本地关键词命名与简约概述;原始标题、目标、回复及证据在详情中保留,不自动调用模型。
  • 点击头像进入账号中心,可上传 PNG/JPEG/WebP(最大 5 MiB),在本地裁成 128 × 128 PNG 后保存至 MySQL;网页版与桌面使用同一工作空间头像。可恢复默认头像。
  • 用量页面采用“手动补录”标识,精确补录支持输入、输出、Asia/Shanghai 日期时间、依据与修改版本。“细化历史余额”在余额足够时保持累计不变;“单独追加”用于未统计的记录。版本检查防止重复提交与并发覆盖,删除仍保留修订记录。请先核对是否已经由日志采集;未找到原始证据的补录不属于平台账单。旧比例补录仍保留规则日期分布,不自动拆分输入输出。
  • 精确补录进入明细、时间图表、工具模型汇总与紫色热力图;真实活跃天数、峰值及连续天数只统计采集记录。恢复原始日志仍抵扣旧比例补录余额;精确补录需人工核对,不能仅凭同一天/模型就自动认定重复。
  • 内置 OpenAI、Anthropic、DeepSeek、Google、SpaceXAI、Cursor 路由及腾讯云公开价格目录,区分输入、输出、缓存写入/读取、长缓存和等级,已核验型号自动使用默认参考价,也可搜索并填入自定义规则。未知型号、未公开报价与未经核实的历史别名保持未计价。按当前官方标准价展示等价预算,独立于合同估价和来源金额,不能相加。公开价不是订阅账单;未自动推断 Fast/Batch、地区、平台附加费或法定节假日,也不把当前价当作历史实际价格。
  • 来源“已接入”表示本地连接/读取成功;缺失正文独立提示覆盖程度。Cursor 的本机缺口是部分会话只有元数据,已保留缺失提示;Harness 原先被当作缺失正文的记录是只有会话配置的空会话,现已正确识别,并读取原生日志标题和合并片段时间。原始工具记录保持只读。

模型价核查于 2026-10-07,来源:OpenAI、GPT-5.5、GPT-6 Sol、GPT-5.6 Luna、Anthropic、DeepSeek、Cursor、腾讯云。完整快照见 server/price-catalogue.mjs;后续价格变化需更新快照或配置自己的合同价。

0.6.1 整洁布局与统一标识

  • 左侧导航按“工作空间、记忆与协作、观察与计划、连接与设置”分组,可折叠分组;电脑窗口可收起为图标栏,移动端仍使用完整抽屉导航。当前页面所属分组在切换进入时展开。
  • 0.6.1 首页优先展示任务和下一步;记忆工作流入口、来源状态、小时活动图与详情时间线可按需展开。记忆编辑页的分类、确认和来源也可折叠,填写内容保持保留。
  • 展开状态保存在当前浏览器或桌面渲染器的本地偏好中。网页和桌面端分别记住布局;不写入任务数据或助手上下文。
  • 新标识采用“节点 + 任务坞”的简约几何图形,统一导航、首次配置页、favicon、桌面安装图标和托盘。矢量源为 public/brand.svg;开发者安装 Chromium 后运行 npm run build:icons,可重新生成 desktop/icon.png 和 favicon。

0.6 记忆、工作流与交互

新增 记忆库 与 工作流,让工作记录能帮助下一次行动。视觉参考 TechSpar 的分层表面和功能卡片,独立实现中性底色、琥珀色操作强调、青绿状态与柔和局部光晕,统一网页和桌面端的浅色 / 深色表单与导航。

  • 记忆库:从会话摘要、报告或助手回答生成本地草稿,保留来源;支持决策、经验、避坑、偏好分类、标签、项目、搜索分页、人工确认、归档与 Markdown 导出。已确认记忆默认 7 天复查,可设置 1 / 7 / 30 天后的下次复查,记忆库可筛选待复查项。
  • 引导式工作流:跨工具交付、阻塞诊断、每周复盘三个模板,关联会话、目标、报告和记忆;每步记录结论后手动确认,支持中断后继续。工作流完成不自动确认关联任务,不执行 IDE 命令。
  • 上下文闭环:将当前工作流与记忆带入助手,预览后才发送 DeepSeek;复盘结论可生成记忆草稿,或转成待编辑的跟进日程。草稿与 AI 建议均需用户核实,归档对象不加入模型上下文。
  • 持久化与冲突:复用 MySQL ad_documents、Worker 和 SSE,版本校验避免多窗口静默覆盖;真实采集不会覆盖记忆编辑或步骤结论。演示在前端内存运行,不连接数据库与模型,刷新后重置。

操作路径与边界见 记忆与工作流设计。当前不提供自动记忆注入、向量检索、后台执行或多用户隔离。

0.4 登录、主题与用量审计

网页版与桌面端共享冰蓝浅色、午夜深蓝和青绿状态光。修复浅色筛选器及本机提示卡的黑底/低对比度问题,补充轨道线、渐变卡片、纵向待处理条目、快捷操作(Ctrl / ⌘ + Shift + P)和“只看关注”筛选。登录输入框及自动填充使用当前主题的底色与文字颜色。主题支持跟随系统与减少动态效果。

  • 登录与账号中心:连接 MySQL 后首次创建自己的所有者账号;登录后才能读取任务、来源目录、报告、配置、助手与用量。可编辑显示名称、修改密码、退出登录和吊销其他会话。密码以随机盐 scrypt 哈希保存,登录令牌在数据库中只存 SHA-256,前端不保存密码或令牌;Cookie 为 HttpOnly / SameSite=Strict。默认登录 8 小时,可选择 7 天。修改密码使所有登录会话失效。当前为单所有者工作空间,不提供公共注册或多租户数据隔离。
  • 用量审计:提供累计用量、单日峰值、活跃/连续记录天数、年度热力图、输入/缓存读取/缓存写入/输出堆叠图、每日估算费用与工具/模型对比;支持时间、工具、模型和项目筛选、分页证据与 CSV 汇总导出。顶部历史统计与热力图使用全部保留历史,明细和费用使用所选日期范围。
  • 统计口径:输入包含缓存,输出包含推理,不重复相加。Codex 累计快照取正增量并排除双记录;Claude/Pi 的缓存输入单独合并,同请求分段更新去重。Pi 所有保留分支的已发生用量均计入。Cursor 仅解析可读正文中的明确用量,无字段时显示覆盖缺口;不会依据文本长度估算。内置助手的官方 usage 单独归类。来源不返回 usage 的中断不虚构用量。
  • 计价:按工具、模型、币种、生效日期配置每百万 token 单价,CNY/USD 分开汇总,无价格或输入/输出不完整则标记未计价。SDK 估算独立展示,不与自定义估算相加。未报告缓存的输入暂按普通输入计价并提示可能高估。订阅额度、平台余额、优惠、税费和实际账单未接入;费用为估算,不能当作平台实际消费。小时峰谷价格未支持。

已有版本 3/4 表结构在连接时自动新增账号与用量表,升级到版本 5;原会话、备注和确认时间保留。首次升级需创建账号,仓库没有通用默认账号或开发者密码。日志解析版本升级后分批补充历史用量,近 30 天优先。未配置数据库可进入设置与独立演示;完整环境变量指向尚未初始化的数据库时,先点击“初始化表结构”,再创建账号;已有数据库断连时显示恢复连接提示,私人记录仍需登录。退出登录后采集可继续运行;通知与托盘采集操作需要登录。

详见 用量设计、口径、计价与验收。

0.3 工作台优化

本地接口新增独立工作目标:同项目会话可手动关联,一个会话可参与多个目标;目标状态、备注和用户确认时间单独保存,目标与会话完成数量分别统计。初始化表结构时,旧关联文本按项目迁移为待整理目标,原备注和确认时间保留,可重复执行。

0.3 引入版本 3 表结构;0.4 会在连接版本 3/4 时自动升级,早期结构可在尚未创建账号的初始化页升级,只操作 AgentDock 表。服务新增完整活动游标分页、来源记录验证与脱敏诊断;Cursor 根据数据库和 WAL 变化增量检查,每 60 秒兜底复查。今日进展按当日实际活动计数,不将所有未确认会话视为需处理。

界面提供浅色、深色和跟随系统主题,工作目标可在独立页面管理,并加入助手上下文。首页汇总需处理目标、会话及近期日程,首次配置提供引导。完整活动分页、目标与会话详情、筛选状态支持 URL 恢复;未保存的目标、备注、报告或日程修改会提示确认。报告、日历、设置和助手按需加载。今日摘要导出基于当天报告事实,而非全部历史。

Windows 桌面测试版

安装包 AgentDock-0.8.2-windows-x64.exe 由 GitHub 自动检查 构建,进入成功运行的 Artifacts 下载 AgentDock-windows-x64(需登录 GitHub,保留 14 天)。公开正式版本在 Releases;没有更新时不会自动下载或安装。

  • 当前用户安装,无需管理员权限。捆绑 SHA-256 校验的官方 Node.js 24.21.0,无需另装 Node.js;仍需自行准备并配置 MySQL。
  • 关闭窗口隐藏到托盘;托盘可打开窗口、暂停/恢复采集或退出。退出仅停止本应用启动的后端。服务异常会尝试恢复,也可手动重试。
  • 自动登录启动与桌面通知默认关闭,可在设置中开启。日程提醒要求桌面应用运行;通知与浏览器通过数据库租约协调,领取后未成功处理的提醒会在租约过期后恢复。
  • 配置保存在 %APPDATA%\AgentDock,密码和 Key 使用当前 Windows 用户 DPAPI 加密。首次使用必须填写自己的配置并创建账号;未配置数据库时可进入演示和设置。
  • 从设置选择旧 settings.local.json 可显式导入同一用户的加密配置,已有配置不覆盖,原文件保留。若旁边有旧 AgentDock SQLite 索引,可确认复制后在数据库设置中手动迁移。IDE 原始 SQLite 数据库不导入为应用配置。
  • 安装包未签名,Windows 可能显示未知发布者提示。升级和卸载保留用户配置与 MySQL 数据;卸载前请从托盘退出。此版不提供自动更新,也不捆绑数据库。

开发者构建与验收(Windows x64):

npm.cmd ci
node node_modules/electron/install.js
npm.cmd run desktop:build
npm.cmd run test:desktop
# 打包后启动测试,使用独立合成配置,不连接真实数据库或 IDE
$env:AGENTDOCK_DESKTOP_EXE = (Resolve-Path release/win-unpacked/AgentDock.exe).Path
npm.cmd run test:desktop

真实头像验收可在已有本地 MySQL 测试配置时运行:设置 AGENTDOCK_DESKTOP_ACCOUNT_TEST=1,并将 AGENTDOCK_AVATAR_FILE 指向自己的 JPEG,再运行 npm.cmd run test:desktop(可同时指定上面的 AGENTDOCK_DESKTOP_EXE 验证打包程序)。测试只使用 agentdock_e2e_desktop 隔离数据库和 artifacts/desktop-test 配置目录,不连接原始 IDE;验证损坏图片重复选择、128 × 128 PNG 保存与刷新恢复。未设置该开关时,桌面冒烟测试不需要数据库。

桌面渲染器启用沙箱、上下文隔离并关闭 Node 集成;窄接口只提供文件选择、桌面偏好及版本检查。独立后端使用随机本机端口和每次启动的会话认证,令牌不写入 URL、前端、模型或日志。源代码运行的网页保持默认 4317 端口。启动认证与账号登录分别校验,桌面渲染器不能绕过账号保护。

启动与首次配置

需要 Node.js 24 或 26,以及已创建的 MySQL 8.0 / 8.4 数据库。Windows 是主要验证平台。

git clone https://github.com/Guo-Yixin/AgentDock.git
cd AgentDock
npm.cmd ci
npm.cmd run build
npm.cmd start

打开 本地页面,在首次配置页面填写你自己的主机、端口、账号、密码、数据库名和 TLS 配置。先“测试连接”,再“保存并初始化”。连接并初始化后,创建你自己的登录账号;仓库不内置开发者账号。测试只执行版本查询;初始化只创建 ad_ 前缀的 AgentDock 表,不自动建库,不操作其他业务表。

数据库尚不存在时,请在自己的 MySQL 管理工具中执行下面的示例,并按实际情况替换名称、配置访问账号和权限:

CREATE DATABASE `your_database_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

账号、用量、采集与日程功能需要数据库账号具备该库的 SELECT、INSERT、UPDATE、DELETE 权限;初始化或升级表结构还需要 CREATE 权限。推荐专用账号。远程数据库默认开启 TLS 并验证证书及主机名,可填入 CA 证书 PEM;本机连接可关闭 TLS。

未配置时可打开首次设置与演示;已配置数据库断连时提示恢复连接,演示仍可使用,私人设置需要登录。采集暂停,不回退到 SQLite。 修改数据库目标时先暂停采集,验证、初始化新目标成功后切换,失败保留原配置。连接恢复后从已提交断点继续。

开发模式:npm.cmd run dev,打开 开发页面。演示模式:左下角“查看演示体验”,或 独立演示。演示任务和模块使用前端示例,模型回答为模拟,不连接真实数据库或模型 API。

配置与凭据保存

Windows 页面保存的数据库密码、DeepSeek Key 使用 DPAPI 当前用户范围加密,保存在项目默认 data/settings.local.json;该文件独立于 MySQL,首次连接无需访问数据库。换 Windows 用户或迁移到另一台电脑后需重新填写凭据。保存后输入框清空,读取配置接口不回传密码或 Key。

仓库仅提供 .env.example 空配置;可复制为 .env 并填入自己的值。数据库的 HOST、PORT、USER、PASSWORD、DATABASE 五项须完整填写,完整环境变量配置优先于页面设置。环境变量中的密码由运行环境管理,不经过 DPAPI;非 Windows 平台请使用环境变量配置凭据。不要把 .env 加入版本控制。

变量 用途
AGENTDOCK_MYSQL_HOST / PORT / USER / PASSWORD / DATABASE 完整 MySQL 连接配置
AGENTDOCK_MYSQL_TLS true 验证 TLS;false 关闭;不设时远程默认开启
AGENTDOCK_MYSQL_CA CA 证书 PEM 文本,可选
AGENTDOCK_DEEPSEEK_API_KEY DeepSeek Key;也兼容 DEEPSEEK_API_KEY
AGENTDOCK_DATA 本地加密配置与旧索引所在目录,默认 data
AGENTDOCK_HOME 替代当前用户主目录,用于独立环境与合成测试
AGENTDOCK_PORT 服务端口,默认 4317;开发代理默认指向 4317

.env、本地配置、加密凭据、真实记录、备份、截图和测试产物均排除 Git。GitHub 不包含开发者数据库配置或真实模型 Key。服务仅绑定 127.0.0.1,校验 Host、Origin 与跨站请求。数据库本身位于用户配置的 MySQL,选择远程 MySQL 时数据会存入该服务器。

从旧 SQLite 迁移

设置页检测 AGENTDOCK_DATA 目录中的 agentdock.sqlite,数据库连接后可点击“迁移旧 SQLite 数据”。迁移只读打开原文件,保留原始会话 ID、用户备注、确认时间与采集断点;可中断后重复执行,不重复插入,不覆盖目标库已有的用户编辑。原 SQLite 文件不删除。

活动历史会由新版解析器重新读取原始工具日志回填;因此完整时间索引需要采集完成。迁移完成后,自有新数据仅写 MySQL。IDE 本身的 SQLite 数据库仍按原格式只读采集。

新用户如何接入自己的 IDE

只安装 Codex 也可以使用。 六类来源独立发现,没有记录的来源显示“未找到记录”,不阻止其他来源导入。未找到记录不等于工具未安装。软件安装盘符、Windows 用户名和 AgentDock 所在位置都可与开发者不同。

“工具接入”展示实际数据目录、程序入口(可从 PATH 发现时)、发现依据、目录是否存在、记录数量、同步时间和覆盖程度。可修改路径、验证并保存、扫描或停用。读取的是会话数据目录,不是可执行程序目录。

例如 Cursor 安装在 C:\Program Files\cursor 时,通常仍从 %APPDATA%\Cursor\User 读取历史,不应把安装目录填入“数据目录”。新版独立消息按原始会话 ID 去重,支持嵌套工作区 URI;消息缺失继续标为部分接入,重复或仅有会话头的副本不会覆盖已导入的完整正文。

路径优先级:AGENTDOCK_*_ROOT → 页面保存路径 → 工具原生环境变量 → 当前用户默认目录。只扫描已知或用户指定的会话目录,不扫描整个磁盘,不读取工具认证文件。

来源 默认根目录 / 原生环境变量 AgentDock 覆盖变量与实际覆盖
Codex / CLI ~/.codex / CODEX_HOME AGENTDOCK_CODEX_ROOT;state_*.sqlite 会话索引、sessions 与 archived_sessions JSONL,区分桌面/CLI入口
Claude Code / CLI ~/.claude / CLAUDE_CONFIG_DIR AGENTDOCK_CLAUDE_ROOT;projects JSONL、结构化待办、子代理独立会话
Cursor 当前用户 AppData/Roaming/Cursor/User AGENTDOCK_CURSOR_ROOT;globalStorage / workspaceStorage SQLite 的 composerHeaders、composerData 与独立 bubbleId:* 消息,按会话头顺序还原正文
Pi CLI ~/.pi/agent / PI_CODING_AGENT_DIR AGENTDOCK_PI_ROOT;sessions JSONL 的消息树与分支,默认最近日志分支明确为推断,详情可选择分支
DeepSeek Harness ~/.dsh / DSH_HOME AGENTDOCK_HARNESS_ROOT;sessions 普通 JSONL 与 .jsonl.zstd 拼接帧、压缩文本片段,定位解压行、序号和帧偏移
WorkBuddy ~/.workbuddy AGENTDOCK_WORKBUDDY_ROOT;workbuddy.db 元数据、projects 会话 JSONL 与 tasks 待办

例如在启动前设置 $env:AGENTDOCK_CODEX_ROOT = "D:\AI\codex-data",填写包含 sessions、archived_sessions 或会话数据库的根目录。也可在页面保存该目录。CLI 程序未在 PATH 中找到时仍可通过已发现的记录接入。

全部历史指本机仍保留且能解析的记录。近期记录优先导入,其余历史后台分批处理,导入期间可以浏览、搜索和打开已入库会话。日志增量采集处理半行、文件轮换与未完成压缩尾帧,监听变化并每 3 秒检查。Cursor 私有结构、未知版本或正文缺失会标记部分接入,不补造内容;单行上限 32 MiB、压缩文件当前上限 128 MiB,超限来源标为不可读。

任务、报告与日程

  • 首页、项目空间、历史搜索、来源/状态筛选与分页;保留独立会话,同一工具桌面和 CLI 共享原始 ID 时去重。
  • 目标、摘要、待办、近期活动和原始证据;详情保留最近 200 条事件并展示最近 40 条,MySQL 完整活动索引用于报告、日历和今日统计,不受此限制。
  • 备注、摘要补充、关注、分支选择、人工确认与跨工具“关联工作目标”单独持久化,同步不覆盖。
  • 日报按 Asia/Shanghai 自然日,周报按周一至周日;支持项目、来源和历史日期筛选。本地事实只使用当期活动,启动和同步后更新当前报告,近 30 天分批生成,更早日期按需生成。
  • 报告区分用户确认完成、来源报告完成与当前阻塞,保留依据;待办标明为当前快照。事实、用户补充和 AI 分析版本分别存储,可导出 Markdown。单次报告当前最多 10 万条活动,超限明确提示缩小范围。
  • 月历、周视图、议程列表展示只读工作活动与日报入口;单次日程支持备注、起止、全天、项目/会话关联、完成和提前提醒。
  • 页面到期提醒、主动启用的浏览器通知;通知处理状态入库,重启补充仍在有效时间内的未处理提醒。服务与页面必须运行,不承诺关闭后提醒;首版不连接外部日历。

Harness 的结构化本轮结束原因会区分完成、阻塞与中断;同一聊天并发生成会被拒绝,避免覆盖历史。回复结束只表示本轮结束;来源待办全部完成只产生“已报告完成”,整体任务由用户确认。不根据聊天数量生成完成百分比,不推断工作时长。来源声称的实现与测试结果不是 AgentDock 独立验证结果。

DeepSeek 与内置助手

在“设置”输入 Key、选择模型(默认 deepseek-flash),可替换、删除、测试连接。使用 DeepSeek 官方 API,连接测试仅查询模型列表,不发送工作记录。没有 Key 时本地采集、报告事实和日程照常使用。

助手可多选会话、项目、日报、周报、日程作为上下文。默认摘要、待办、备注;会话正文需主动勾选,并只包含用户/助手可展示文本,不自动带入内部推理、系统指令或工具输出。项目默认近 30 天,可调整日期。后端按对象 ID 组装数据,不接受任意文件路径。

先“预览实际发送内容”,查看真实内容、来源和长度估计,再“确认内容并发送”。上下文预算 48000 字符,超限需缩小范围;预览 15 分钟有效。每次聊天保留脱敏上下文快照、引用、模型和 token 用量。Key 仅由后端放入认证头,不进入模型消息。回答按脱敏后的安全片段流式显示,可停止、查看/删除聊天,引用可返回对应对象。认证、额度、限流、超时与中断均显式提示,不自动重试可能重复计费的生成。

分析完成后可选择报告,确认保存为独立 AI 版本;也可创建日程草稿,编辑后点击保存才写入。选中的分析内容会发送至 DeepSeek API。助手只分析,不执行 IDE 任务或终端命令。

检查与 CI

npm.cmd test
npm.cmd run build
npm.cmd run test:integration
npx.cmd playwright install chromium
npm.cmd run test:e2e

单元测试无需 MySQL。集成与浏览器测试需要独立测试账号配置(集成权限测试还需要 CREATE USER 与 GRANT 权限,日常应用账号无需这些权限);测试辅助程序只允许 agentdock_test* / agentdock_e2e* / agentdock_ci* 库名,并清理其中的 AgentDock 测试表,请勿在这些名称的数据库中存放业务数据。测试使用独立合成 IDE 日志、模拟 DeepSeek、4318/4319 端口与 artifacts/e2e 配置目录,不调用真实模型 API,不修改原工具记录。截图位于 artifacts/screenshots。

GitHub 自动检查 在 main 推送、PR 和手动触发时运行:Windows Node.js 24/26 检查解析、DPAPI、类型与构建;Ubuntu Node.js 24/26 使用临时 MySQL 8.4 服务容器验证事务、迁移与 Chromium 界面。独立 Windows 桌面任务构建 NSIS 安装包,并验证沙箱、认证、托盘隐藏和单实例、故障恢复和后端退出。CI 只使用合成测试凭据,不连接开发者或用户数据库。浏览器报告、截图与失败跟踪保留 7 天。阻止失败检查的合并需另行设置分支保护。

结构与边界

  • src:React / TypeScript 界面、独立演示模式。
  • server:Fastify API、Worker、只读来源适配器、MySQL 存储、报告与模型分析。
  • docs/api.md:接口说明;docs/design.md:imagegen 提示词和视觉约定。
  • docs/concepts 与 public/assets:概念图、深空背景和透明轨道装饰。
  • desktop:Electron 主进程、沙箱 preload、Windows 安装配置与校验运行时清单。
  • AGENTS.md:AI 提交前检查规则,提交说明使用中文并审查 README。

网页适配 1440px、1920px 和窄窗口,支持减少动态效果。文字、按钮、图表均为真实组件。任务执行控制、外部日历和编辑器扩展仍在后续范围。

历史用量补录与估算热力图

用量审计 → 管理历史补录支持两种方式:校准累计基准(保存时扣除已采集用量),或替换历史补录余额。后续新增实测继续累加,不会把累计数字锁定为基准。补录为工作空间所有者保存在 MySQL 的独立文档,不写入 IDE 日志或真实请求表;新用户没有预设历史数字、账号或模型比例。网页与桌面连接同一 MySQL 时共享这份补录,分别保留登录会话。

  • 累计 = 全部已保留实测 + 有效历史补录余额,不受日期筛选影响。工具与模型筛选同时应用于两部分;补录没有项目归属,选择具体项目时不计入补录。
  • 模型对比与 CSV可选择全部历史或当前日期范围。实测与补录分别汇总,CSV 分行标明数据性质;未知的输入、输出和请求次数留空。
  • 历史区间最长五年,结束于今天以前。可选择原工作日规则或含少量周末的确定性弹性分摊;旧补录默认保留原规则;模型可指定区间内的最早估算日期。整数分配保证日历总量与模型分配总量完全一致,重复保存替换原补录,不重复追加。
  • 热力图与每日趋势加入历史估算,热力图不额外描边,柱状图保留紫色估算段;悬停或键盘聚焦显示实测/估算明细。热力图可关闭估算层,仅展示近 365 天;区间外补录仍计入累计。活跃天数、连续天数和实测峰值仅使用日志。
  • 恢复基准时点以前的日志后,增加的旧实测优先扣减补录余额,避免重复累计;超过补录余额时如实展示。保存保留最近 20 个修订版本;可停用。日期、比例与模型标签是个人回忆与估算,不构成真实请求证据、计费依据或平台账单,不参与输入输出拆分与费用计算。

模型标签允许保留个人回忆或工具别名。官方资料可以验证模型与发布日期,不能验证个人用量:GPT-5.5 官方模型说明、Claude Sonnet 5.5、Claude Opus 5.5。gpt-5.5-sol、claude-sonnet-4.8 等未经核实的回忆标签不能视为已确认的官方型号;应用不会擅自替换成其他模型或套用价格。

Codex 接入健康与历史覆盖

Codex 桌面与 CLI 按原始会话 ID 去重。扩展路径前缀 \\?\ 与普通 Windows 路径规范化后关联同一日志;分叉日志以第一条会话元数据确定子会话,嵌入父会话元数据不覆盖身份。升级后旧断点重新解析,修正归属并保留用户备注与确认时间。

已接入表示当前发现的索引和日志可正常读取;缺失旧正文的索引会话单独显示“历史缺失”数量与来源依据,不再直接使健康连接显示为部分接入。当前日志损坏、不可读或索引读取失败仍会显示部分接入/异常;原始文件确实缺失时不会补造会话正文或完成状态。

采集与性能控制

在「设置 → 采集与资源控制」设置每轮时长(默认 60 分钟,可选 1–240 分钟)和检查间隔(默认 60 秒,15–300 秒)。到期自动暂停、关闭日志监听并释放采集缓存,重启后保持暂停;点击恢复开启新一轮。修改时长用于下一轮,不会悄悄延长正在运行的截止时间。

普通日志每批最多读取 1,000 条或约 4 MiB(在完整行边界停止;单行上限 32 MiB),压缩日志按完整帧分批,每轮每文件最多一帧,压缩缓冲和解压帧分别限制 32 MiB;未完成尾帧留待下次。断点与数据同事务提交。暂停后可恢复,不删除原始记录。无变化时不触发页面或报告刷新;用量明细只查询所需的会话标题与项目,不重复加载整段会话。Cursor 按会话逐个读取正文,避免把所有独立消息同时载入内存。同一 MySQL 数据库只允许一个 AgentDock 实例采集,网页与桌面同时打开时其他实例只浏览,不自动接力采集;原实例停止后需在另一个实例手动恢复。采集设置保存在各实例的本地配置,MySQL 中的账号、头像、任务与用量共享。暂停不会关闭数据库、报告浏览或日程提醒;内存用量仍受浏览器、桌面窗口与记录大小影响。

About

本地 AI 编程任务指挥台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages