Files
goodbuddy/docs/features/application-tool-navigation/progress.md
T
mesalogo e84d7bd185 feat: retain completed project activity until viewed
Keep successful background conversations in project activity until their chat is visible and loaded. Track completion in memory for the current client session; initial history, failures and cancellations do not create completion notices.

Include whole-file companion changes already present in App and shared UI: preserve the workspace beneath Settings, show inline reply-copy feedback, and keep project settings inside the project menu. Include their component tests and documentation; navigation demo source changes remain unstaged.

Validation: 77 focused activity tests, typecheck and lint passed; Electron component fixtures passed 112 checks. Full suite: 4365 passed, 3 failed, 67 skipped (offline inventory timeout and two heartbeat migration failures). Commit-time staged whitespace check passed; tests were not rerun.

Release note: 后台会话完成后保留已完成提示,进入对应聊天后自动清除,避免错过任务结果。
2026-09-16 12:51:58 +08:00

7.8 KiB
Raw Blame History

项目活动级联实施进度

2026-09-16:设置改为大 Modal

对应 US-A2。设置入口保留底层工作区,关闭后卸载 设置内容;布局、关闭与分类直达规则见 设置中心 UI 规范。

App.test.tsx、SettingsPanel.test.tsx、WorkspacePrimitives.test.tsx 和 browser-viewport-occlusion.test.ts 定向回归共 389 项通过。npm run lint 通过。 全量 npm test 完成时为 4,354 项通过、9 项失败、67 项跳过;失败涉及本地 Runtime 复用超时、 心跳旧库迁移、远程恢复及 ProjectSwitcher。共享工作区存在并行修改,最终 npm run typecheck 报错位于非本次修改的 use-unviewed-completions.test.tsx,未将全量检查记为通过。

Windows Electron 使用临时用户目录、当前 Renderer 源码和已有 Main/Preload 输出,验证窗口 尺寸 1440 × 960、1024 × 700、680 × 560(系统缩放使实际 CSS 高宽略有偏差)。 浅色与深色检查通过:整窗背景隔离、左右分栏、无内容横向溢出、遮罩点击不关闭、原生 Tab 与 Escape、关闭后保留原知识库组件。截图保存在本轮临时验证目录;没有运行打包构建,也未单独 驱动原生 WebContentsView,其遮挡规则通过共享检测测试验证。本次未修改 GoodBuddy Agent 或桌面到 Agent 的执行路径,未额外发起真实模型请求。

2026-09-16:已完成保留至查看

对应 FR-14、US-E3。 已核对当前工作区 use-unviewed-completions.ts、conversation-activity.ts 和 App.tsx 的 完成通知接入:Renderer 会话内集合、后台 Task 转换、本地及持久化活动运行成功标记、 三类计数,以及聊天、设置和文档可见性条件。行为定义见活动逻辑。

活动汇总、完成通知 Hook、项目活动组件、项目选择器及 App 活动集成定向回归共 77 项通过。 覆盖前台完成、后台完成、持久化完成补齐、失败和取消、普通会话入口及级联菜单进入、 设置覆盖聊天、窗口隐藏、历史完成不提醒、查看后刷新不重复提示和下一轮完成。 实际聊天详情加载完成后才清除提示。最终 npm run typecheck 与 npm run lint 通过。

全量 npm test 用 900 秒预算运行,762.20 秒结束:4,365 项通过、3 项失败、67 项跳过。 失败为 agent-package.test.ts 离线依赖清单安装内部 60 秒超时,以及 heartbeat-database.test.ts 两项迁移的 duplicate column name: pinned。 共享工作区存在并行修改,此项未改动这些文件,不将全量检查记为通过。

Windows Electron 43.2.0 / Chromium 150 的当前组件 fixture 验证浅深主题、1280×800 和 375×667、混合状态及仅完成状态,共 8 个场景、112 项检查通过,8 张 PNG 已审阅。 检查包含完成图标、三类计数、原生方向键与 Space、进入回调及移除后的空闲隐藏。 证据为临时目录 activity-completion-0916-results.json 和 activity-completion-0916-review.md。 此项使用受控活动数据,未验证完整 Main/Preload 真实模型端到端;模型及知识库请求为 0。 本次只修改 Renderer 展示与状态跟踪,本地和远程均消费已有事件/Task 更新,不改变 Agent 执行路径。

2026-09-14:菜单独立高度修正

生产菜单移除共用双栏表面,会话层独立定位到选中项目行。打开较长会话列表时,项目层的位置、 宽度与高度保持不变;会话层独立限制窗口边界和滚动。两侧均无法容纳子菜单时使用同层返回交互。

npx vitest run src/renderer/src/ProjectActivity.test.tsx 通过 13 项,类型检查与 Lint 通过。 npm test 运行 60 秒后超时,未取得完整结果。

最终源码的 Electron 43.2.0 / Chromium 150 组件 fixture 使用生产样式与中文 i18n、模拟活动数据, 深浅主题共 14 个场景、108 条检查通过,覆盖短/60 条会话、两层独立滚动、底部避让、向左展开、 375px 窄屏及 640px 两侧空间不足。桌面项目层打开前后矩形一致,短窗口会话层底部保留 16px。 此项验证实际组件排版和交互,不代表完整 Main/Preload 端到端验证;未修改远程执行路径。

2026-09-13:生产活动入口

对应 FR-14、US-E1 / US-E2。 本页只记录项目活动入口,不表示应用中心计划已交付。

App 已接入 ProjectActivity 常驻摘要和锚定级联菜单。会话和项目计数继续使用现有 deriveConversationActivity 结果,点击会话继续调用 openActivityConversation。未增加 持久化字段、IPC 或 Runtime 状态。项目选择器分组及计数保持原有行为。

组件与 App 定向回归通过 32 项,覆盖空闲入口、稳定项目及 SSH Host 顺序、待处理优先、 跨项目精确跳转、设置离开检查、实时状态清理、键盘返回、外部关闭和窄侧栏焦点。

Windows Electron 视觉 fixture 使用当前 ProjectActivity、生产样式和 i18n,活动数据为 受控样例。浅深主题分别验证 1280×800、960×720、720×640、640×420、375×600; 原生键盘验证 Enter、上下及右方向键、End、两级 Escape、Tab 退出,另测左侧回退和空闲入口。 此项证明组件的实际 Chromium 排版与交互,不代表完整生产 Main/Preload 的端到端验证。

浏览器遮挡复用共享菜单相交机制,组件测试检查相交和非相交结果;本轮未单独驱动原生 WebContentsView 可见性。远程 Agent 执行路径未改动,未发出模型或知识库请求。

提交前复核:npm run typecheck、npm run lint 通过;单独运行 npx vitest run src/renderer/src/ProjectActivity.test.tsx,11 项通过。 npm test 在 240 秒后超时,超时前 tests/agent-package.test.ts 的 verifies and installs offline dependency inventories larger than one MiB 用例失败,未取得完整结果。

Demo 已按最新讨论隐藏空闲摘要并移除会话行箭头;生产空闲摘要在下述非驻留修正中对齐。 后续界面修正已移除生产会话行箭头,并为活动摘要与下方新建会话增加 8px 间距。

2026-09-14:摘要非驻留修正

生产 ProjectActivity 在无活动时返回空内容,活动归零时关闭级联菜单;新活动只恢复摘要。 组件回归 11 项通过,覆盖初始空闲、活动归零关闭菜单及活动恢复后不自动展开。 App 的 project activity integration 定向回归 18 项通过,类型检查与 Lint 通过。 本轮 npm test 在 60 秒后超时,未取得全量结果;未重新执行 Electron 视觉验证。

2026-09-14:0.13.2 候选验证

正式发布准备时再次复现 App 问答用例的时序失败。活动摘要改为常驻后,等待该入口出现 不再意味着会话初始化和 Runtime 状态读取已经完成;测试有时点击仍被禁用的发送按钮, 留下未消费的一次性问答 mock,继而影响后续用例。

测试现等待已加载的会话和可用发送按钮,并在每个用例前重置问答及审批响应 mock。 答案重载用例等待提交后的界面状态,而不只等待 API 被调用。未修改生产交互、 未增加固定延时,也未跳过失败用例。相关 20 项连续三轮通过,完整 App 与 Agent 发布说明检查共 227 项通过。

最终候选 npm test 通过 4,155 项、跳过 66 项、失败 0 项;npm run typecheck、 npm run lint 和 npm run release:notes:verify 均通过。发布准备未执行本地生产构建、 打包或安装包启动探针,原生包验收由主分支与标签 CI 完成。