|
29528
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"5b78f9e3c {"Commits":[{"Sha1":"5b78f9e3c5417f825e78550f5d2934295466f032","Message":"fix(electron): 修复 TV 截图编号解析对异常缩进的兼容\n\n- 兼容显示设备属性行缺少缩进,避免提前结束解析\n- 保留区段边界检查,防止误用后续区段的显示屏编号\n- 补充异常缩进及区段隔离回归测试\n\n验证:\n- 85 项相关测试通过\n- npm run typecheck 通过\n- 设备原始输出解析通过,用户确认 TV 截图测试通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-14T16:05:32+08:00"}],"HeadCommit":{"Sha1":"5b78f9e3c5417f825e78550f5d2934295466f032","Message":"fix(electron): 修复 TV 截图编号解析对异常缩进的兼容\n\n- 兼容显示设备属性行缺少缩进,避免提前结束解析\n- 保留区段边界检查,防止误用后续区段的显示屏编号\n- 补充异常缩进及区段隔离回归测试\n\n验证:\n- 85 项相关测试通过\n- npm run typecheck 通过\n- 设备原始输出解析通过,用户确认 TV 截图测试通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-14T16:05:32+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/924047d2d278a6e3d3088febe2edf7c733788d3b...5b78f9e3c5417f825e78550f5d2934295466f032","Len":1}...
|
1789373228
|
Edit
Delete
|
|
29497
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"924047d2d {"Commits":[{"Sha1":"924047d2d278a6e3d3088febe2edf7c733788d3b","Message":"feat(server): 将业务主库迁移至 PostgreSQL\n\n为设备、账号与团队数据增长建立独立业务数据库,保留现有客户端协议和知识库部署。\n\n实现内容:\n- 接入 PostgreSQL 连接池、版本化结构、事务并发控制和单实例保护\n- 增加 SQLite 原子导入与逐表核对,保留 ID、审计序号、同步版本及资产主密钥\n- 更新部署配置、隔离测试、备份恢复和 Navicat 连接说明\n\n验证:\n- PostgreSQL 环境下 67 项顶层测试通过,包含旧库兼容、导入回滚和序号恢复\n- go test -race ./...、go vet ./... 通过\n- npm run typecheck、npm run build:server、npm run build 通过\n- 生产迁移前后 29 张业务表、384 条记录指纹一致,服务健康检查通过\n\nBREAKING CHANGE: 业务服务启动必须通过 OPSDESK_DATABASE_URL_FILE 配置 PostgreSQL;现有 SQLite 部署须先完成停服备份和数据迁移,不再自动使用 SQLite\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-14T00:24:26+08:00"}],"HeadCommit":{"Sha1":"924047d2d278a6e3d3088febe2edf7c733788d3b","Message":"feat(server): 将业务主库迁移至 PostgreSQL\n\n为设备、账号与团队数据增长建立独立业务数据库,保留现有客户端协议和知识库部署。\n\n实现内容:\n- 接入 PostgreSQL 连接池、版本化结构、事务并发控制和单实例保护\n- 增加 SQLite 原子导入与逐表核对,保留 ID、审计序号、同步版本及资产主密钥\n- 更新部署配置、隔离测试、备份恢复和 Navicat 连接说明\n\n验证:\n- PostgreSQL 环境下 67 项顶层测试通过,包含旧库兼容、导入回滚和序号恢复\n- go test -race ./...、go vet ./... 通过\n- npm run typecheck、npm run build:server、npm run build 通过\n- 生产迁移前后 29 张业务表、384 条记录指纹一致,服务健康检查通过\n\nBREAKING CHANGE: 业务服务启动必须通过 OPSDESK_DATABASE_URL_FILE 配置 PostgreSQL;现有 SQLite 部署须先完成停服备份和数据迁移,不再自动使用 SQLite\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-14T00:24:26+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/29ffde871be14c6230d5547ca84cdb1c66667dbd...924047d2d278a6e3d3088febe2edf7c733788d3b","Len":1}...
|
1789366247
|
Edit
Delete
|
|
29366
|
16
|
24
|
16
|
86
|
0
|
0
|
refs/tags/v0.1.0
|
0
|
巨嗨运维助手首发版本
|
1789301586
|
Edit
Delete
|
|
29365
|
16
|
9
|
16
|
86
|
0
|
0
|
refs/tags/v0.1.0
|
0
|
{"Commits":null,"HeadCommit":{" {"Commits":null,"HeadCommit":{"Sha1":"29ffde871be14c6230d5547ca84cdb1c66667dbd","Message":"docs(docs): 重整 README 功能概览与开发指南\n\nREADME 未完整覆盖新增能力,启动说明也缺少 Go 构建依赖。\n\n实现内容:\n- 补齐团队分组、设备问题历史、远程预览与控制及传输加速说明\n- 更新开发环境、启动和打包命令、项目结构与文档导航\n- 明确同步范围与功能边界,将操作细节链接到已有文档\n- 仅修改 README.md,刷新最后更新日期\n\n验证:\n- 对照当前源码、package.json 和 Go 模块配置核实描述\n- 30 个本地链接与 16 个 npm 脚本校验通过\n- git diff --check 与 staged diff 检查通过\n- 纯文档变更,未运行应用测试、类型检查或构建\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T20:00:02+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/0000000000000000000000000000000000000000...29ffde871be14c6230d5547ca84cdb1c66667dbd","Len":0}...
|
1789301586
|
Edit
Delete
|
|
29364
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"29ffde871 {"Commits":[{"Sha1":"29ffde871be14c6230d5547ca84cdb1c66667dbd","Message":"docs(docs): 重整 README 功能概览与开发指南\n\nREADME 未完整覆盖新增能力,启动说明也缺少 Go 构建依赖。\n\n实现内容:\n- 补齐团队分组、设备问题历史、远程预览与控制及传输加速说明\n- 更新开发环境、启动和打包命令、项目结构与文档导航\n- 明确同步范围与功能边界,将操作细节链接到已有文档\n- 仅修改 README.md,刷新最后更新日期\n\n验证:\n- 对照当前源码、package.json 和 Go 模块配置核实描述\n- 30 个本地链接与 16 个 npm 脚本校验通过\n- git diff --check 与 staged diff 检查通过\n- 纯文档变更,未运行应用测试、类型检查或构建\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T20:00:02+08:00"},{"Sha1":"839eec2343ac478b542abb53ae134e643ef42858","Message":"feat(devices): 显示歌曲盘与资源目录的剩余容量\n\n设备概览原先只显示存储路径,用户无法直接判断所在磁盘还有多少空间。\n\n实现内容:\n- 概览存储探针按目录读取 df,兼容 Android 别名挂载及 512 字节块输出\n- 通过概览类型和 MCP 返回容量,无法读取时保留未知状态\n- 优先显示剩余空间、总容量和占用条,复用主题状态色并适配窄屏布局\n- 补充目录容量优先级、别名路径和容量不可用场景的回归测试\n\n验证:\n- npm run typecheck 通过\n- 存储采集、设备概览、MCP 及概览展示相关 5 个测试文件共 47 项测试通过\n- 真机执行本次生成的只读存储探针成功,核对资源目录和两个歌曲盘入口的容量\n- git diff --check 与暂存区检查通过;界面人工交互验证待用户确认\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T19:47:30+08:00"},{"Sha1":"b8813aa1b86c855725c5b0279bf8d51bbd2056a2","Message":"fix(ini): 防止并发保存串用临时文件并覆盖他人修改\n\n同一设备的 INI 保存原先共用固定临时文件,可能报告成功却写入另一客户端的内容。\n\n实现内容:\n- 为每次上传创建独立临时文件,提交时通过远端目录锁串行校验和替换\n- 提交前重新校验设备文件摘要,拒绝覆盖已变化的内容\n- 失败或取消只清理本次资源,哈希不可用时停止保存并提供恢复提示\n- 增加真实 Shell 回归,覆盖并发竞争、文件变更、完整性校验、失败清理和终止信号\n\n验证:\n- npm run typecheck 通过\n- INI 上传、草稿来源、多根目录及保存协调相关的 4 个测试文件、29 项测试通过\n- git diff --cached --check 通过\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T19:37:26+08:00"},{"Sha1":"c80636088ae7f3d9a0f5f297a45caf8a43015726","Message":"fix(electron): 修复残留管理注释阻塞 Codex MCP 配置\n\n残留或不成对的管理标记会让有效 TOML 配置被拒绝更新。\n\n实现内容:\n- 按 MCP 表定位并更新配置,不再生成或依赖成对管理注释\n- 在解析值不变的前提下清理旧标记,写入前校验其他配置保持一致\n- 补充残留标记、旧表迁移、多行字符串和其他服务配置保护测试\n\n验证:\n- npm test -- electron/agent/codexMcpConfigService.test.ts electron/agent/agentMcpManager.test.ts(22 项通过)\n- npm run typecheck(通过)\n- 用户确认配置到 Codex 的人工测试成功\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T19:23:41+08:00"},{"Sha1":"23a09d692b55b3f258482affbad47391a1233d0d","Message":"feat(help): 补充团队分组知识与设备问题历史说明\n\n团队分组已上线,但正式知识索引缺少门店管理内容,需要同步公开知识与开发者说明。\n\n实现内容:\n- 新增六篇团队分组文章及 SFTP 关闭连接、错误详情两篇说明\n- 补充设备问题历史用途、近似名称、共享身份和私密记录边界\n- 更新概览、共享归类和 TV 截图说明,完善检索别名与关键事实校验\n- 增加分组、原句追问与模糊对象回归,记录分轮验证、发布和回退结果\n- 知识更新为 2026-09-13-v3,共 98 篇,保留已有文章 ID\n\n验证:\n- npm run check:knowledge:98 篇、18 个模块、21 个导航入口、129 个评估定义\n- git diff --check\n- 分轮执行真实模型评估并人工审阅,原始失败及针对性复验结果已留存\n- 云端原文、元数据、嵌入哈希及 1024 维向量核验通过\n- 正式服务健康检查及服务账号问答验证通过\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T18:05:09+08:00"}],"HeadCommit":{"Sha1":"29ffde871be14c6230d5547ca84cdb1c66667dbd","Message":"docs(docs): 重整 README 功能概览与开发指南\n\nREADME 未完整覆盖新增能力,启动说明也缺少 Go 构建依赖。\n\n实现内容:\n- 补齐团队分组、设备问题历史、远程预览与控制及传输加速说明\n- 更新开发环境、启动和打包命令、项目结构与文档导航\n- 明确同步范围与功能边界,将操作细节链接到已有文档\n- 仅修改 README.md,刷新最后更新日期\n\n验证:\n- 对照当前源码、package.json 和 Go 模块配置核实描述\n- 30 个本地链接与 16 个 npm 脚本校验通过\n- git diff --check 与 staged diff 检查通过\n- 纯文档变更,未运行应用测试、类型检查或构建\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-13T20:00:02+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/8db0836905be2adf4130e624581f095dde92c17e...29ffde871be14c6230d5547ca84cdb1c66667dbd","Len":31}...
|
1789301143
|
Edit
Delete
|
|
29156
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8db083690 {"Commits":[{"Sha1":"8db0836905be2adf4130e624581f095dde92c17e","Message":"fix(remote-preview): 修复 TV 屏幕选择与关闭窗口误报\n\n- 动态解析外接逻辑屏幕编号,支持 TV 屏编号变化并保留失败恢复\n- 保存正常结束预览时的 TV 采集失败日志\n- 关闭窗口时同步释放本地预览资源,核对主进程状态后再触发回退\n- 补充屏幕枚举和关闭竞态回归测试及说明文档\n\n验证:\n- Go 全量 race 测试通过\n- 110 项预览相关测试、TypeScript 检查和构建通过\n- 两台设备 TV 预览及关闭窗口提示均经人工验收通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T16:35:07+08:00"},{"Sha1":"d57fb9b3afccd4644dd9632c58d65199bc3f5a68","Message":"fix(devices): 明确问题编辑与解决入口\n\n- 在问题详情提供编辑、更新处理记录和标记已解决入口\n- 拆分编辑表单并明确展示状态选项,按操作定位编辑字段\n- 保留问题版本与发生时间精度,补充回归测试和使用说明\n\n验证:\n- npm run typecheck 与 npm run build 通过\n- 33 项相关 Vitest 测试通过\n- 用户确认修改验证通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T16:01:39+08:00"}],"HeadCommit":{"Sha1":"8db0836905be2adf4130e624581f095dde92c17e","Message":"fix(remote-preview): 修复 TV 屏幕选择与关闭窗口误报\n\n- 动态解析外接逻辑屏幕编号,支持 TV 屏编号变化并保留失败恢复\n- 保存正常结束预览时的 TV 采集失败日志\n- 关闭窗口时同步释放本地预览资源,核对主进程状态后再触发回退\n- 补充屏幕枚举和关闭竞态回归测试及说明文档\n\n验证:\n- Go 全量 race 测试通过\n- 110 项预览相关测试、TypeScript 检查和构建通过\n- 两台设备 TV 预览及关闭窗口提示均经人工验收通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T16:35:07+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/981e8e6f8a6f7db76a9f4fe272ddb7034cdfb9a3...8db0836905be2adf4130e624581f095dde92c17e","Len":2}...
|
1789115780
|
Edit
Delete
|
|
29132
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"981e8e6f8 {"Commits":[{"Sha1":"981e8e6f8a6f7db76a9f4fe272ddb7034cdfb9a3","Message":"feat(renderer): 优化设备问题记录界面布局\n\n- 重整问题摘要、列表、详情和修改历史布局\n- 使用状态胶囊与分段筛选,完善窄窗口适配\n- 支持选择问题正文,更新对应使用说明\n\n验证:\n- npm run typecheck 通过\n- 28 项相关 Vitest 测试通过\n- 桌面布局与交互仍待人工验证\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T15:48:27+08:00"},{"Sha1":"2ca5fee384ffb687ed3df86df7fdf29a107e4f8a","Message":"feat(devices): 增加团队共享的设备问题记录\n\n- 在设备详情和卡片右键菜单提供问题查看与创建入口\n- 支持问题状态、处理结论、搜索分页及完整修改历史\n- 增加服务端持久化、团队权限、幂等保存和版本冲突保护\n- 补充身份隔离测试、Nginx 请求体限制及部署验证说明\n\n验证:\n- npm run typecheck 与 npm run build 通过\n- 46 项相关 Vitest 测试及 Go 全量竞态测试通过\n- 云端隔离演练、正式部署和公网接口检查通过\n- 桌面交互仍待人工验证\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T15:27:44+08:00"}],"HeadCommit":{"Sha1":"981e8e6f8a6f7db76a9f4fe272ddb7034cdfb9a3","Message":"feat(renderer): 优化设备问题记录界面布局\n\n- 重整问题摘要、列表、详情和修改历史布局\n- 使用状态胶囊与分段筛选,完善窄窗口适配\n- 支持选择问题正文,更新对应使用说明\n\n验证:\n- npm run typecheck 通过\n- 28 项相关 Vitest 测试通过\n- 桌面布局与交互仍待人工验证\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T15:48:27+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/e10b7f36982c697470109fd38b073f1bb9d8e5d9...981e8e6f8a6f7db76a9f4fe272ddb7034cdfb9a3","Len":2}...
|
1789112959
|
Edit
Delete
|
|
29053
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"e10b7f369 {"Commits":[{"Sha1":"e10b7f36982c697470109fd38b073f1bb9d8e5d9","Message":"fix(devices): 统一公网设备身份并修复团队档案聚合\n\n- 按物理设备 ID 聚合主页设备,保留团队完整列表与排序数据\n- 修复公网 ID 复制和搜索,保持卡片无额外归属标签\n- 限制团队公网身份变更,保存可追溯的审计身份快照\n- 补充回归测试、迁移说明和部署验证记录\n\n验证:\n- TypeScript 类型检查、桌面构建及相关回归测试通过\n- Go 全量竞态测试及最终团队迁移回归通过\n- 云端副本演练、正式迁移和部署后检查通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T14:10:51+08:00"},{"Sha1":"3b9bc7bb495e46c2e27544a17149ddc1d0d8871a","Message":"feat(devices): 展示公网 SSH 转发端口\n\n新增公网 SSH 地址只读查询接口,支持个人和 Team 设备详情展示实际转发端口。\n客户端按连接、已分配、未分配和不可用状态展示地址,并处理账号切换、设备切换及迟到响应。\n移除端口、地址和 SSH 命令复制按钮,仅保留地址文本和刷新入口。\n\n验证:\n- npm run typecheck\n- 相关 Vitest 测试\n- npm run build\n- go test -race ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T10:39:19+08:00"}],"HeadCommit":{"Sha1":"e10b7f36982c697470109fd38b073f1bb9d8e5d9","Message":"fix(devices): 统一公网设备身份并修复团队档案聚合\n\n- 按物理设备 ID 聚合主页设备,保留团队完整列表与排序数据\n- 修复公网 ID 复制和搜索,保持卡片无额外归属标签\n- 限制团队公网身份变更,保存可追溯的审计身份快照\n- 补充回归测试、迁移说明和部署验证记录\n\n验证:\n- TypeScript 类型检查、桌面构建及相关回归测试通过\n- Go 全量竞态测试及最终团队迁移回归通过\n- 云端副本演练、正式迁移和部署后检查通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-11T14:10:51+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/c43e8452abe292b34eac408ea4faaf3b262371c2...e10b7f36982c697470109fd38b073f1bb9d8e5d9","Len":2}...
|
1789107140
|
Edit
Delete
|
|
28936
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"c43e8452a {"Commits":[{"Sha1":"c43e8452abe292b34eac408ea4faaf3b262371c2","Message":"feat(renderer): 优化实时预览工具栏、空状态和侧栏布局\n\n实时预览页控件挤在一行、侧栏指标平铺、开始按钮不够突出,影响日常查看和操作。\n\n实现内容:\n- 重组顶部工具栏分组,开始/停止改成胶囊主按钮\n- 空状态改用中央圆形开始/重连按钮\n- 侧栏改为状态卡、画面指标网格和会话信息\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/remotePreview/RemotePreviewWorkspace.test.ts\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T16:19:33+08:00"},{"Sha1":"1ee8e5591e97ac55af5fd89964b1fd638d71cc8f","Message":"feat(renderer): 统一搜索框并去掉文件树常驻筛选\n\n操作台搜索框原先焦点叠边框和 outline 成双环,Chromium 自带灰色清除钮\n与主题冲突。文件列表上方再放常驻筛选框,也和 VS Code 资源管理器不一致。\n\n实现内容:\n- 新增 SearchField:隐藏系统清除钮,改为主题化圆形 X,焦点改用半透明\n 描边加淡蓝光晕;Aa/ab 选项改为胶囊选中态\n- 日志/INI 侧栏文件树去掉常驻筛选,对齐 VS Code 资源管理器;找文件走\n 全局搜索或顶栏快速打开\n- 保留 INI 解码 Key 筛选和采集配置弹窗的文件搜索\n- 主页设备/密钥/快捷指令、内容查找和 JSON 查找接入同一组件\n\n未覆盖范围:\n- SFTP、UDP、终端抽屉、帮助和团队页搜索尚未改用 SearchField\n\n验证:\n- npm run typecheck\n- 人工确认日志/INI 文件树无筛选框,解码 Key 与采集配置仍可搜索,\n 焦点光晕和清除按钮在 Light、Dark 下可用\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T15:54:48+08:00"},{"Sha1":"a7f6740524c0c48ad85fdac3ecb9ce9780b80e29","Message":"feat(styles): 主页遗漏与弹窗按钮改用胶囊圆角\n\n主页工具栏和设置弹窗已改成胶囊圆角后,同画面上的空状态、团队切换、\n连接中操作和从主页打开的弹窗仍是 6–10px 小圆角。本次把这些按钮收齐,\n不改全局 toolbar-button 基元,避免操作台路径栏和工具条一起变。\n\n实现内容:\n- 主页空状态主按钮、团队切换器、操作结果 Toast 关闭、截图通知动作钮、\n SSH 连接中画面与新标签刷新改为胶囊\n- 按 .dialog-shell 覆盖弹窗内 toolbar-button / icon-button / row-icon-button,\n 覆盖确认框、改密、设备档案、密钥、指令、团队、同步、重启等 portal 弹窗\n- 设备档案表单的显示密码、选择私钥、添加/删除路径等自定义按钮同步胶囊\n- 操作记录窗口的刷新、关闭与筛选分段改为胶囊;页脚中等高度按钮组默认\n 圆角改为胶囊,操作台空状态仍保留中等圆角\n\n未覆盖范围:\n- 全局 toolbar-button、icon-button、row-icon-button 基元未改\n- 操作台路径栏、活动栏、终端工具抽屉、登录页按钮未改\n\n验证:\n- 人工确认主页遗漏按钮、从主页打开的弹窗,以及共用 dialog-shell 的\n 操作台弹窗在 Light、Dark、Auto 三套主题下的圆角表现\n- 对照操作台路径栏保存/拉取仍为小圆角矩形\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T15:10:06+08:00"},{"Sha1":"60dd681be72d939c2dcb88e85c71cead90e8d851","Message":"feat(renderer): 重做设置页存储与缓存面板布局\n\n设置页「存储与缓存」面板原有三张并排指标卡平铺数字,看不出包含关系;分类\n列表层级扁平、间距局促、缺少图标。本次做结构与视觉重做,清理语义与安全\n约束保持不变。\n\n实现内容:\n- 概览由三张指标卡改为大号总量 + 三段互斥堆叠条 + 同色图例,三个数字直接\n 对应堆叠段,不再需要读者自行推断\n- 分段按主进程口径精确划分:reclaimableBytes 只统计 selectedByDefault 且未\n 阻塞的分类,用户勾选的用户数据分类不在其中,故「可回收未选」必须扣掉已\n 选中且属于可回收范围的部分,三段合计恒等于本机占用\n- storageCategoryMeta 增加 icon 字段,列表行新增 26px 图标槽;用户数据行的\n 图标跟随标题转为风险色,且不被选中态覆盖\n- 分组标题改为「组名 | 说明 | 小计」三列,StorageUsageGroup 增加 sizeBytes\n- 列表间距、行内边距、组间距与底部清理条分隔留白整体放宽\n- 清理结果反馈改为固定占位槽,出现或消失不再推动上方列表\n- 窄屏由视口媒体查询改为 @container settings-storage:设置弹窗嵌在导航\n 布局里,导航折成顶栏时内容区反而变宽,同一面板宽度会有两个来源\n\n配色说明:\n- 中性段与轨道取 --code-bg 而非 --device-status-track-bg:后者在深色下是\n #3e4257,与面板所在的 --dialog-bg(#32364a)几乎同色,轨道和第三段会看\n 不见,该问题仅在深色主题暴露;--code-bg 深色为 #141729,明显下沉\n- 中性图例色块加内描边,保证在浅色弹窗面上可辨认\n- 未复用 getUsageTone:其口径是「占用越高越糟」,而这里展示的是可回收\n 占比,方向相反;且该函数在 DeviceOverviewVisuals 与 DeviceOverviewPanel\n 各有一份模块私有实现、均未导出,StorageUsageResult 也没有容量分母\n\n未覆盖范围:\n- settings-storage__empty 仍自建空状态,未收敛到 primitives.css 的\n .empty-state 家族,收敛会改动现有空状态外观\n- 清理流程与确认框未改动\n\n验证:\n- npm run typecheck\n- npm run build\n- 人工确认三套主题、勾选联动与窄屏降级\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T14:24:10+08:00"},{"Sha1":"29cc4048e10036d54c7a3500ec175f3f6e7a1e97","Message":"feat(styles): 设置弹窗按钮改用胶囊圆角\n\n设置弹窗的按钮圆角此前在 6px 到 14px 之间取值不一,与主页已统一的胶囊\n圆角语言不一致。本次把设置弹窗内的按钮统一为胶囊圆角。\n\n实现内容:\n- 分段控件容器与分段按钮(含主题选项)改为胶囊,容器高 44、内按钮高\n 36、padding 4px,两者保持同心圆\n- MCP 配置主操作按钮、截图清理按钮由 6px 改为胶囊\n- 新增 .settings-dialog 作用域规则,覆盖各分类面板与弹窗页脚的\n toolbar-button 和 row-icon-button\n\n未覆盖范围:\n- 开关轨道本就是 999px 胶囊,无需改动\n- settings-storage__text-action 是纯文字按钮,无可见圆角,未改动\n- “清理本机数据”确认框是 DialogShell 的兄弟节点,属于 .confirm-dialog\n 全局确认框体系;“修改密码”弹窗经 createPortal 挂到 body,二者均在\n .settings-dialog 作用域外,保持原有圆角\n\n验证:\n- npm run typecheck\n- 人工确认设置弹窗各分类面板按钮与分段控件在 Light、Dark、Auto 三套\n 主题下的圆角表现\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T14:04:38+08:00"}],"HeadCommit":{"Sha1":"c43e8452abe292b34eac408ea4faaf3b262371c2","Message":"feat(renderer): 优化实时预览工具栏、空状态和侧栏布局\n\n实时预览页控件挤在一行、侧栏指标平铺、开始按钮不够突出,影响日常查看和操作。\n\n实现内容:\n- 重组顶部工具栏分组,开始/停止改成胶囊主按钮\n- 空状态改用中央圆形开始/重连按钮\n- 侧栏改为状态卡、画面指标网格和会话信息\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/remotePreview/RemotePreviewWorkspace.test.ts\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T16:19:33+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/cedc6363530b6951aebb9ca57e4a888bdb5ca876...c43e8452abe292b34eac408ea4faaf3b262371c2","Len":6}...
|
1789030822
|
Edit
Delete
|
|
28913
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"cedc63635 {"Commits":[{"Sha1":"cedc6363530b6951aebb9ca57e4a888bdb5ca876","Message":"feat(styles): 为设备卡片操作按钮增加悬停选中投影\n\n主页设备卡片的操作按钮原先只有背景色变化,指向感较弱。悬停或键盘聚焦时在\n按钮底部叠加一层柔和投影,强化“当前选中”的按压感,并补充 120ms 的\nbox-shadow 过渡,与卡片自身的过渡节奏保持一致。\n\n实现内容:\n- 新增语义变量 --device-card-action-hover-shadow,补齐 Light、Dark 和 Auto\n 深色分支三套取值\n- home.css 为 .device-card .row-icon-button 增加 hover/focus-visible 投影,\n 并补充 box-shadow 过渡\n- 投影仅作用于按钮自身,卡片本体不变;禁用态(截图或连接进行中)不生效\n- 主操作按钮保留原有强调色背景,仅叠加投影,不覆盖其配色\n\n验证:\n- npm run typecheck\n- 人工确认操作按钮的悬停与聚焦效果,并在 Light、Dark、Auto 三套主题下\n 检查阴影表现\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T13:37:04+08:00"}],"HeadCommit":{"Sha1":"cedc6363530b6951aebb9ca57e4a888bdb5ca876","Message":"feat(styles): 为设备卡片操作按钮增加悬停选中投影\n\n主页设备卡片的操作按钮原先只有背景色变化,指向感较弱。悬停或键盘聚焦时在\n按钮底部叠加一层柔和投影,强化“当前选中”的按压感,并补充 120ms 的\nbox-shadow 过渡,与卡片自身的过渡节奏保持一致。\n\n实现内容:\n- 新增语义变量 --device-card-action-hover-shadow,补齐 Light、Dark 和 Auto\n 深色分支三套取值\n- home.css 为 .device-card .row-icon-button 增加 hover/focus-visible 投影,\n 并补充 box-shadow 过渡\n- 投影仅作用于按钮自身,卡片本体不变;禁用态(截图或连接进行中)不生效\n- 主操作按钮保留原有强调色背景,仅叠加投影,不覆盖其配色\n\n验证:\n- npm run typecheck\n- 人工确认操作按钮的悬停与聚焦效果,并在 Light、Dark、Auto 三套主题下\n 检查阴影表现\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-10T13:37:04+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/9ca9435481f5afbff2040e41fdf0d5bca7e6b7ec...cedc6363530b6951aebb9ca57e4a888bdb5ca876","Len":1}...
|
1789018953
|
Edit
Delete
|
|
28911
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"9ca943548 {"Commits":[{"Sha1":"9ca9435481f5afbff2040e41fdf0d5bca7e6b7ec","Message":"feat(renderer): 重做团队操作记录弹窗布局\n\n团队操作记录改用与账号同步相同的工作台窗口:\n- 抽出共用 AuditStageDialog,个人同步与团队记录共用表面\n- 按成员、设备和远端操作分栏,并保留结果筛选\n- 记录图标按具体动作选择,重启不再误用文件图标\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/audit/auditPresentation.test.ts\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-10T00:06:05+08:00"},{"Sha1":"7398bb86327a181138fd73ccd4f1456f5242c2b3","Message":"feat(devices): 重做服务器操作记录弹窗布局\n\n账号同步的操作记录不再使用 FormDialog 三明治骨架,改为迷你工作台窗口:\n- 深色顶栏承载标题、条数、刷新和关闭\n- 左侧按日分组记录,支持搜索和档案/密钥/指令筛选\n- 右侧展示选中记录的操作者、对象、时间和变更字段\n- 团队操作记录弹窗保持原模板,作为后续改造对照\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/audit/auditPresentation.test.ts\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-09T23:50:41+08:00"},{"Sha1":"23a571761dad8c6e0b9a1bb8ec475e61af06fc90","Message":"fix(app): 修复团队同步边界并补齐远端操作审计\n\n- 隔离团队认证缓存和审计补报故障,优先应用成员撤权与连接回收\n- 统一团队档案 ID 为小写并迁移历史引用,拒绝缺少 profile 的隐式删除\n- 隔离单台设备上传错误,保留未确认请求、本机编辑与云端冲突\n- 为个人副本、终端和 SFTP 操作登记服务端审计,按物理设备关联团队记录\n- 校验操作身份、版本和客户授权,补报失败不重复执行设备命令\n- 补充回归测试、协议边界及部署记录,保留现有 INI 并发保存规则\n\n验证:\n- 客户端相关 301 项测试分批通过\n- npm run typecheck\n- npm run build\n- npm run build:admin\n- 服务端 go test -race ./...\n- 云端部署后数据库完整性、访问限制及二进制校验通过\n\nBREAKING CHANGE: 新版客户端远端审计需要配套更新服务端;个人设备的受审计操作也要求登录且账号服务可达\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T23:47:16+08:00"},{"Sha1":"7e25631be36c242edaf43954a0d2d507054310ea","Message":"feat(devices): 实现公网设备互斥连接与租约回收\n\n- 按物理设备 ID 申请、续约和释放公网操作锁,局域网保持多人连接\n- 同团队展示锁图标及操作者,跨团队连接仅返回通用占用提示\n- 为 SSH、终端和备用传输增加锁校验,处理取消、断网、休眠与迟到响应\n- 保持公网端口归属稳定,补充竞态测试、部署记录和双电脑验收步骤\n\n验证:\n- npm run typecheck\n- 完整桌面构建与 Linux 服务端交叉编译通过\n- 297 项相关客户端测试与服务端全量竞态测试通过\n- 云端健康、访问边界和数据库完整性检查通过\n\nBREAKING CHANGE: 公网转发接口要求 lockHolderId,客户端与服务端需配套升级;局域网不受影响\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T22:40:46+08:00"}],"HeadCommit":{"Sha1":"9ca9435481f5afbff2040e41fdf0d5bca7e6b7ec","Message":"feat(renderer): 重做团队操作记录弹窗布局\n\n团队操作记录改用与账号同步相同的工作台窗口:\n- 抽出共用 AuditStageDialog,个人同步与团队记录共用表面\n- 按成员、设备和远端操作分栏,并保留结果筛选\n- 记录图标按具体动作选择,重启不再误用文件图标\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/audit/auditPresentation.test.ts\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-10T00:06:05+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/9a10c0b59597968e9d3e49c4adba9dc7eb056c5a...9ca9435481f5afbff2040e41fdf0d5bca7e6b7ec","Len":4}...
|
1789016658
|
Edit
Delete
|
|
28814
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"9a10c0b59 {"Commits":[{"Sha1":"9a10c0b59597968e9d3e49c4adba9dc7eb056c5a","Message":"refactor(renderer): 优化成员、操作记录与账号同步弹窗\n\n将团队成员、操作记录和账号同步从挤在面板里的表格改为工作台式弹窗:\n- 成员名单支持搜索、邀请栏和底部危险操作\n- 操作记录改为按日分组列表,支持搜索和结果筛选\n- 账号同步改为独立弹窗,设置页改为状态入口卡片\n- 叠加弹窗时 Escape 只关闭最上层\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/audit/auditPresentation.test.ts src/features/devices/deviceSyncPresentation.test.ts\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T21:39:13+08:00"}],"HeadCommit":{"Sha1":"9a10c0b59597968e9d3e49c4adba9dc7eb056c5a","Message":"refactor(renderer): 优化成员、操作记录与账号同步弹窗\n\n将团队成员、操作记录和账号同步从挤在面板里的表格改为工作台式弹窗:\n- 成员名单支持搜索、邀请栏和底部危险操作\n- 操作记录改为按日分组列表,支持搜索和结果筛选\n- 账号同步改为独立弹窗,设置页改为状态入口卡片\n- 叠加弹窗时 Escape 只关闭最上层\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/audit/auditPresentation.test.ts src/features/devices/deviceSyncPresentation.test.ts\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T21:39:13+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/2cc9e07589a514a5aec5b2a01d2ae2b4e43a0623...9a10c0b59597968e9d3e49c4adba9dc7eb056c5a","Len":1}...
|
1788961213
|
Edit
Delete
|
|
28797
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"2cc9e0758 {"Commits":[{"Sha1":"2cc9e07589a514a5aec5b2a01d2ae2b4e43a0623","Message":"fix(renderer): 修复团队页面切换与分栏布局记忆\n\n- 修复无团队时禁用下拉框的文字和箭头重叠\n- 分别保存主页与团队的分栏宽度,取消恢复时的固定上限\n- 窗口尺寸变化仅调整显示,不覆盖用户布局偏好\n- 区分设备加载与空列表,消除进入团队时暂无设备的闪烁\n\n验证:\n- npm run typecheck 通过\n- 设备界面相关 3 个测试文件共 27 项测试通过\n- npx electron-vite build 通过\n- git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T18:45:52+08:00"},{"Sha1":"1eeb4f918d00e3afda0afb5bfa5c3523c5bf7438","Message":"feat(renderer): 优化团队设备列表与单行操作工具栏\n\n- 团队页复用主页设备库,统一卡片、列表、搜索和设备操作入口\n- 将创建、加入、成员管理、共享设备及操作记录收进独立弹窗\n- 合并顶部操作为单行,团队切换器采用按钮尺寸并适配窄窗口\n- 将界面文案统一为团队,更新使用说明与人工验证步骤\n\n验证:\n- npm run typecheck 通过\n- 设备界面相关 3 个测试文件共 22 项测试通过\n- npx electron-vite build 通过\n- git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T18:28:02+08:00"},{"Sha1":"936eb7e59051c1bb0d7a604075de0cac9bd202cd","Message":"docs(docs): 补充 Team 协作与端口共用说明\n\n- 更新设备同步边界、Team 使用流程和人工验证步骤\n- 说明密钥内容同步、个人凭据绑定与高危操作审计范围\n- 记录多人共用远程端口的心跳机制及客户端更新要求\n\n验证:git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T17:54:07+08:00"},{"Sha1":"ccadc18c7e1f3a24d3bf3d41e2a99a168836e5fa","Message":"fix(ssh): 保持多人连接同一设备时的远程端口稳定\n\n- 按物理设备复用已有端口租约,活跃连接期间禁止重新派发或回收\n- 使用独立连接占用标识和定时心跳,单个用户断开不影响其他连接\n- 持久化连接占用并为过期回收保留空闲时间与连续拒绝探测保护\n- 覆盖双账号共用端口、独立释放、心跳过期和服务重启场景\n\n验证:客户端完整测试、类型检查、构建和服务端竞态测试通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T17:53:51+08:00"},{"Sha1":"44e4c2f482dd4fec2ea1b93f7b2cf19c5878fcc2","Message":"feat(app): 实现 Team 设备共享与高危操作审计\n\n- 增加团队创建、邀请、成员管理和每个用户最多加入三个团队的限制\n- 支持共享设备、版本冲突保护和个人连接凭据绑定\n- 在服务端验证成员权限并记录配置修改、重启等高危操作及结果\n- 接入主页团队入口、设备管理与安全 IPC,支持撤权清理和审计结果重试\n\n验证:120 个客户端测试文件共 1054 项测试通过,类型检查、客户端与管理后台构建、服务端竞态测试通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T17:53:19+08:00"}],"HeadCommit":{"Sha1":"2cc9e07589a514a5aec5b2a01d2ae2b4e43a0623","Message":"fix(renderer): 修复团队页面切换与分栏布局记忆\n\n- 修复无团队时禁用下拉框的文字和箭头重叠\n- 分别保存主页与团队的分栏宽度,取消恢复时的固定上限\n- 窗口尺寸变化仅调整显示,不覆盖用户布局偏好\n- 区分设备加载与空列表,消除进入团队时暂无设备的闪烁\n\n验证:\n- npm run typecheck 通过\n- 设备界面相关 3 个测试文件共 27 项测试通过\n- npx electron-vite build 通过\n- git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T18:45:52+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/fb9902b0e1fff1574df58fb999b99814ea3ad794...2cc9e07589a514a5aec5b2a01d2ae2b4e43a0623","Len":7}...
|
1788950806
|
Edit
Delete
|
|
28748
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"fb9902b0e {"Commits":[{"Sha1":"fb9902b0e1fff1574df58fb999b99814ea3ad794","Message":"fix(devices): 修复关闭探测后右键离线设备仍触发查询\n\n右键选中设备会加载详情,原详情采集未遵循自动探测开关,后台连接状态又导致卡片与菜单持续锁定。\n- 关闭探测时仅复用已连接设备采集详情,避免选中离线设备建立 SSH\n- 忽略关闭探测后的后台连接进度,保留用户主动连接的状态提示\n- 增加离线、错误、后台建连与重连状态的回归测试\n\n验证:\n- 35 项相关回归测试通过\n- npm run typecheck 通过\n- npm run build 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T16:37:44+08:00"}],"HeadCommit":{"Sha1":"fb9902b0e1fff1574df58fb999b99814ea3ad794","Message":"fix(devices): 修复关闭探测后右键离线设备仍触发查询\n\n右键选中设备会加载详情,原详情采集未遵循自动探测开关,后台连接状态又导致卡片与菜单持续锁定。\n- 关闭探测时仅复用已连接设备采集详情,避免选中离线设备建立 SSH\n- 忽略关闭探测后的后台连接进度,保留用户主动连接的状态提示\n- 增加离线、错误、后台建连与重连状态的回归测试\n\n验证:\n- 35 项相关回归测试通过\n- npm run typecheck 通过\n- npm run build 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T16:37:44+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/5a688e77940e0b44ceb617be3be3db0a408e0b72...fb9902b0e1fff1574df58fb999b99814ea3ad794","Len":1}...
|
1788943140
|
Edit
Delete
|
|
28731
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"5a688e779 {"Commits":[{"Sha1":"5a688e77940e0b44ceb617be3be3db0a408e0b72","Message":"docs(sync): 补充账号同步使用说明与 Team 后续边界\n\n- 说明设备、应用密钥内容、快捷指令与外部密钥文件的同步范围\n- 补充旧资产迁移、冲突处理、人工验证及加密主密钥备份要求\n- 记录服务端部署结果,并明确 Team 共享与远端高危操作审计尚待实现\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T16:17:31+08:00"},{"Sha1":"38e20f5d294711e6fc7b7481ba5679a518b9142d","Message":"feat(app): 实现设备密钥库与快捷指令跨电脑同步\n\n按个人账号同步设备档案、应用密钥内容和快捷指令,保留各电脑独立的外部密钥文件配置。\n- 隔离账号缓存并加密保存资产、同步基线、待重试请求和冲突\n- 实现旧资产导入、离线重试、逐条冲突处理及活动设备变更延后\n- 接入主进程、preload 和账号同步界面,展示脱敏状态与操作记录\n- 保留密钥库条目引用及未变化密钥文件的修改时间,避免重复连接\n\n验证:\n- npm run typecheck 与 npm run build 通过\n- 客户端全量 118 个测试文件、1037 项测试通过\n- 最终密钥文件时间稳定性修正的资产回归测试通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T16:17:01+08:00"},{"Sha1":"970e8e0b0db0f3da3e5cc1e324e813c41fa96b8b","Message":"feat(server): 增加个人设备与账号资产同步接口\n\n为跨电脑同步提供按账号隔离的设备、密钥库和快捷指令接口。\n- 增加版本校验、删除标记、增量分页及幂等操作记录\n- 使用独立主密钥加密资产正文和幂等结果,拒绝文件路径和伪造归属\n- 同步设备的账号密钥库引用,并配置各接口的请求大小限制\n\n验证:\n- Go 全量竞态测试及设备、资产同步回归测试通过\n- 管理后台、服务端及 Linux AMD64 构建通过\n- 已部署验证健康检查、访问限制及既有账号数据保持一致\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T16:16:23+08:00"},{"Sha1":"526036797feee84c696a8ff2e5bcb95e85e6561f","Message":"feat(auth): 增加用户管理后台并完善五角色设备授权\n\n提供独立 Web 管理后台,统一创建和维护运维账号,继续关闭外部注册。\n\n实现内容:\n- 新增账号搜索、密码重置、启停、角色分配、设备授权和操作记录\n- 隔离管理员资格与业务角色,后台使用独立会话和同源请求校验\n- 新增售后客服、技术人员,只有客户受物理设备授权名单限制\n- 原子迁移旧数据库角色约束,保留账号、密码、授权关系及管理资格\n- 桌面端同步识别五种角色,后台静态资源随 Go 服务一起构建部署\n- 补充迁移、鉴权、账号生命周期测试和部署及人工验证文档\n\n验证:\n- npm run typecheck 通过\n- npm run build 与 npm run build:server 通过\n- npm run test -- electron/opsAccountClient.test.ts:14 项测试通过\n- npm run test:server:全量服务端竞态检测测试通过\n- Linux AMD64 构建、线上健康检查和后台鉴权验证通过\n- 线上数据库与部署前备份比对一致,外键检查通过\n- git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T14:59:00+08:00"}],"HeadCommit":{"Sha1":"5a688e77940e0b44ceb617be3be3db0a408e0b72","Message":"docs(sync): 补充账号同步使用说明与 Team 后续边界\n\n- 说明设备、应用密钥内容、快捷指令与外部密钥文件的同步范围\n- 补充旧资产迁移、冲突处理、人工验证及加密主密钥备份要求\n- 记录服务端部署结果,并明确 Team 共享与远端高危操作审计尚待实现\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T16:17:31+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/8eaf62a03a62514c1ff45ef03541bf842177d215...5a688e77940e0b44ceb617be3be3db0a408e0b72","Len":4}...
|
1788941897
|
Edit
Delete
|
|
28590
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8eaf62a03 {"Commits":[{"Sha1":"8eaf62a03a62514c1ff45ef03541bf842177d215","Message":"fix(app): 调整主页与操作台等配置默认值\n\n更新首次使用和配置缺失时的默认行为,保留已保存的用户设置:\n- 默认开启设备探测,探测间隔调整为 300 秒\n- 默认关闭操作台 SSH、SFTP 和底部状态栏\n- 默认开启截图朝向自动修正和 WebRTC 优先远程画面\n- 同步配置回退逻辑、帮助文案和现有测试\n- 确认设备详情默认开启、文件传输加速默认关闭\n\n验证:\n- npm run typecheck 通过\n- 6 个相关测试文件、81 项测试通过\n- git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T14:17:23+08:00"}],"HeadCommit":{"Sha1":"8eaf62a03a62514c1ff45ef03541bf842177d215","Message":"fix(app): 调整主页与操作台等配置默认值\n\n更新首次使用和配置缺失时的默认行为,保留已保存的用户设置:\n- 默认开启设备探测,探测间隔调整为 300 秒\n- 默认关闭操作台 SSH、SFTP 和底部状态栏\n- 默认开启截图朝向自动修正和 WebRTC 优先远程画面\n- 同步配置回退逻辑、帮助文案和现有测试\n- 确认设备详情默认开启、文件传输加速默认关闭\n\n验证:\n- npm run typecheck 通过\n- 6 个相关测试文件、81 项测试通过\n- git diff --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T14:17:23+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/2321519fa0e530b64106611c1495778e137768c3...8eaf62a03a62514c1ff45ef03541bf842177d215","Len":1}...
|
1788934719
|
Edit
Delete
|
|
28535
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"2321519fa {"Commits":[{"Sha1":"2321519fa0e530b64106611c1495778e137768c3","Message":"feat(auth): 支持记住登录并修改运维账号密码\n\n登录页可选择在本机加密保存账号密码,下次打开后无需再输入密码即可登录。\n设置页同步提供修改密码,并更新或清除本机记住的凭据。\n\n实现内容:\n- 主进程用系统密钥加密存储记住的唯一账号\n- 登录页优化记住选项勾选样式,提示语与标题同一行\n- 账号设置增加修改密码对话框,服务端校验当前密码后更新\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/auth/AccountGate.test.tsx electron/opsAccountClient.test.ts electron/opsLoginCredentialStore.test.ts electron/opsAccountIpcPolicy.test.ts\n- cd server \u0026\u0026 go test ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T10:32:03+08:00"},{"Sha1":"22884d77537ea2b293bc99736d1e6f086beb0448","Message":"fix(devices): 修复旧 Android 预览兼容性并缩短资源校验耗时\n\n- 为旧 Realtek 固件保留 scrcpy 调用方已有的 root 身份,修复显示访问失败\n- 恢复截图和预览所需的 Android 环境,移除预览启动对 awk 的依赖\n- 内置官方 ISRG 根证书并保留系统 CA,继续严格验证 TLS 证书链、域名和有效期\n- 实测探测 gzip 与 SHA-256 能力,支持 BusyBox,避免重复回读整个 Agent 校验\n- 展示预览失败的内层异常及 TLS、DNS 根因,补充构建维护说明和回归测试\n\n验证:\n- npm run build(包含 npm run typecheck)通过\n- 资源发布与启动器相关 70 项测试通过,截图、预览会话及 MCP 相关测试通过\n- Go Agent 测试通过,覆盖 TLS 信任、域名和有效期校验\n- 目标设备只读验证:新版完整性命令约 0.68 秒完成校验\n\n备用截图通道的剩余传输耗时尚未解决,更新后的整条链路仍需人工复测。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T10:04:37+08:00"},{"Sha1":"f2e53a048e85e1a3d61cd7c93f77298c76b1297e","Message":"fix(renderer): 修复主页 SFTP 入口受操作台开关影响\n\n主页顶部 SFTP 标签和设备快捷入口始终保留,操作台功能开关仅控制操作台入口,并同步更新设置说明与注释。\n\n验证:\n- npm run typecheck\n- 设备列表、主页 SFTP 和操作台偏好相关测试共 15 项通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T17:34:16+08:00"},{"Sha1":"212fed0608ed0af5c7935637ee211a2f7133cde8","Message":"feat(electron): 扩充 MCP 截图与 UDP 抓包能力并同步帮助指南\n\n将内置 MCP 工具从 18 个扩展到 26 个,补齐常用设备诊断与采集流程。\n- 增加设备概览、日志快照搜索和快捷指令查询,支持设备筛选和有界分页\n- 复用截图采集与方向校正,直接返回有尺寸限制的 PNG 图片内容\n- 增加 UDP 抓包开始、读取和停止接口,支持自动停止、会话隔离及资源回收\n- 补充工具结果文本数据、调用指引和图像解压限制\n- 同步使用指南、能力评估和应用内帮助清单\n\n验证:\n- MCP、截图和 UDP 相关测试 152 项通过\n- 帮助内容测试 5 项通过,清单与全部 26 个注册工具一致\n- npm run typecheck\n- npm run build\n- 未访问真实设备或操控桌面应用\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T17:33:07+08:00"},{"Sha1":"572bad0699cd256618e5465c87f2e18cbbd09b60","Message":"fix(devices): 区分后台在线查询与主动连接提示\n\n为共享连接快照补充后台探测来源,设备卡片显示正在查询在线状态和等待在线查询结果。前台操作加入同一连接时恢复主动连接语义,后续后台请求不覆盖该状态。\n\n验证:npm run typecheck;SSH 连接管理器、设备卡片和进度文案相关测试共 41 项通过;git diff --cached --check。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T16:36:09+08:00"}],"HeadCommit":{"Sha1":"2321519fa0e530b64106611c1495778e137768c3","Message":"feat(auth): 支持记住登录并修改运维账号密码\n\n登录页可选择在本机加密保存账号密码,下次打开后无需再输入密码即可登录。\n设置页同步提供修改密码,并更新或清除本机记住的凭据。\n\n实现内容:\n- 主进程用系统密钥加密存储记住的唯一账号\n- 登录页优化记住选项勾选样式,提示语与标题同一行\n- 账号设置增加修改密码对话框,服务端校验当前密码后更新\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/auth/AccountGate.test.tsx electron/opsAccountClient.test.ts electron/opsLoginCredentialStore.test.ts electron/opsAccountIpcPolicy.test.ts\n- cd server \u0026\u0026 go test ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-09T10:32:03+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/401976aba2a03ff7b818751f72b8a6db378538d3...2321519fa0e530b64106611c1495778e137768c3","Len":7}...
|
1788921161
|
Edit
Delete
|
|
28304
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"401976aba {"Commits":[{"Sha1":"401976aba2a03ff7b818751f72b8a6db378538d3","Message":"feat(settings): 优化设置账号页文案与身份布局\n\n设置中的账号页原先信息挤在一行,分类名称也与页面内容不符。\n\n实现内容:\n- 侧栏分类改为「账号」,摘要改为「登录身份」\n- 用身份卡片展示用户名、角色和会话有效期\n- 刷新会话改为带文字按钮,退出登录使用危险样式\n\n验证:\n- npm run typecheck\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:54:57+08:00"},{"Sha1":"d4dab6f1eca60d3f22f09177f4fd1f2c7f46e804","Message":"feat(sftp): 重做主页 SFTP 设备选择列表\n\n主页 SFTP 标签未选定设备时不再复用 SSH 新标签页样式。\n\n实现内容:\n- 按局域网和公网转发分组展示候选设备\n- 搜索框改用主页搜索表面,避免常驻高亮边框\n- 行内提供打开入口,并补充选择列表测试\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/sftp/HomeSftpWorkspace.test.tsx\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:54:57+08:00"},{"Sha1":"644f3f74c2146341997a36cec89bdba4ec27eae9","Message":"feat(styles): 按应用主题切换 SFTP 文件夹图标\n\nLight 使用原黄色 SVG,Dark 保留蓝色 SVG,Auto 跟随系统外观;统一切换列表与路径导航图标并保持现有显示尺寸,补充资源来源说明。\n\n验证:npm run typecheck、5 项 SFTP 导航与图标测试、SVG 格式校验和 git diff --cached --check 均通过。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:34:44+08:00"}],"HeadCommit":{"Sha1":"401976aba2a03ff7b818751f72b8a6db378538d3","Message":"feat(settings): 优化设置账号页文案与身份布局\n\n设置中的账号页原先信息挤在一行,分类名称也与页面内容不符。\n\n实现内容:\n- 侧栏分类改为「账号」,摘要改为「登录身份」\n- 用身份卡片展示用户名、角色和会话有效期\n- 刷新会话改为带文字按钮,退出登录使用危险样式\n\n验证:\n- npm run typecheck\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:54:57+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/915d652ee28392e7771ed745cfc36facc17e8078...401976aba2a03ff7b818751f72b8a6db378538d3","Len":3}...
|
1788836199
|
Edit
Delete
|
|
28272
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"915d652ee {"Commits":[{"Sha1":"915d652ee28392e7771ed745cfc36facc17e8078","Message":"feat(devices): 增加卡片截图与复制设备ID快捷操作\n\n卡片悬浮操作区增加截图范围选择和复制设备 ID,复用现有业务流程与连接期间的按钮锁定。\n\n保持卡片高度与名称空间,操作按钮显示时直接隐藏副行连接信息,移开后恢复。阻止按钮双击冒泡打开操作台。\n\n验证:npm run typecheck;DeviceHomeView 卡片测试 7 项通过;git diff --cached --check。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:20:50+08:00"},{"Sha1":"b8d1b9843b6bb47a8040ee67ccc0156bb0c71b61","Message":"feat(devices): 支持自定义设备状态探测间隔\n\n在设置主页中提供 10-3600 秒探测间隔,默认 60 秒并持久化保存。更新提示文案,明确与详情采样的区别。\n\n调整间隔时重新计时,保留进行中的探测与型号快照;主进程统一校验范围,并兼容旧调用。\n\n验证:npm run typecheck;设备监控、主页偏好与卡片相关测试共 26 项通过。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:20:37+08:00"},{"Sha1":"15a397d9db1b3758cfa6d79ca13b0567987e6017","Message":"feat(renderer): 重做登录页深色舞台与品牌字标\n\n登录页改为固定深色入口,不再跟随工作区浅色,避免左右分栏配色冲突。\n\n实现内容:\n- 居中玻璃卡片,精简为 JU HAI 字标和账号密码表单\n- 增加光斑、光环、扫描线和粒子等环境动效\n- 补充登录页专用语义色,登录完成后的工作区仍使用原主题\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/auth/AccountGate.test.tsx\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:19:52+08:00"}],"HeadCommit":{"Sha1":"915d652ee28392e7771ed745cfc36facc17e8078","Message":"feat(devices): 增加卡片截图与复制设备ID快捷操作\n\n卡片悬浮操作区增加截图范围选择和复制设备 ID,复用现有业务流程与连接期间的按钮锁定。\n\n保持卡片高度与名称空间,操作按钮显示时直接隐藏副行连接信息,移开后恢复。阻止按钮双击冒泡打开操作台。\n\n验证:npm run typecheck;DeviceHomeView 卡片测试 7 项通过;git diff --cached --check。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-08T10:20:50+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/a0d4f00e60661f8ec92107ce83a870cdad0d40f8...915d652ee28392e7771ed745cfc36facc17e8078","Len":3}...
|
1788834097
|
Edit
Delete
|
|
28259
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"a0d4f00e6 {"Commits":[{"Sha1":"a0d4f00e60661f8ec92107ce83a870cdad0d40f8","Message":"fix(devices): 修复隐藏操作按钮挤压卡片文字\n\n- 保持网格卡片 72px 高度,释放隐藏操作列占用的空间\n- 操作按钮仅在悬停或键盘聚焦时显示,不因选中状态常驻\n- 设备名称始终使用完整内容列,显示按钮时仅为地址副行预留空间\n- 同步列表模式的按钮显隐行为并保留键盘访问能力\n\n验证:\n- npm run build(包含 npm run typecheck)\n- git diff --check\n- 用户确认调整后的显示效果\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T16:56:32+08:00"},{"Sha1":"68f5f7d01038998cfb59477bc2fec601aeb374f7","Message":"docs(ops): 补充公网按需连接与空闲回收说明\n\n- 说明用户操作触发转发,启动、列表刷新和设备选择不下发\n- 记录后台仅复用连接、卡片等待锁定及本地 SSH 空闲五分钟关闭的行为\n- 明确客户端取消无法撤回已到达上游的下发,断开连接不直接回收服务端端口\n\n验证:\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T16:43:34+08:00"},{"Sha1":"03170fa4fee8d5f7d90c43d8b7341ae6d90fe1a3","Message":"feat(devices): 实现公网按需连接并优化设备卡片反馈\n\n启动和后台探测不再开启公网 SSH 转发,用户操作时才建立连接,各设备可独立等待和取消。\n\n- 公网后台命令仅复用现有连接,未连接显示未知状态,空闲五分钟后关闭本地 SSH\n- 增加建连阶段快照和取消保护,避免迟到结果继续下发或建立连接\n- 连接期间锁定设备卡片,使用无文字动画并保留指纹确认与失败反馈\n- 将状态图标移至卡片角落,公网副行显示物理 ID,修复窄布局下 SSH 和 SFTP 图标被压缩\n- 增加连接与卡片回归测试,并配置 renderer 测试路径别名\n\n验证:\n- npm run typecheck\n- npm run build\n- 完整回归及本机端口集成测试补跑通过,后续 UI 调整的七项组件测试通过\n- git diff --check\n\n桌面布局与交互效果由用户手动验证。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T16:43:18+08:00"},{"Sha1":"0cc767fc4622fb3156ea2511501c3d44082b5c6a","Message":"docs(ops): 补充公网转发与账号服务说明\n\n- 更新首次登录、设备创建和账号退出的使用步骤\n- 说明端口租约、后台自动登录、服务部署与证书维护方式\n- 记录接口协议、超时预算、多窗口锁定和人工验证步骤\n- 明确设备档案云同步与细分角色权限仍属于后续工作\n\n验证:\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T15:51:29+08:00"},{"Sha1":"11c596d81af5afa176a88630d9d841d0d669845a","Message":"feat(app): 接入公网设备管理与启动登录\n\n应用启动先验证运维账号,登录成功后进入主页;公网设备通过自有服务申请 SSH 转发。\n\n- 默认创建公网设备,固定 Host 并使用出厂物理 ID,兼容历史 UUID 档案\n- 通过主进程和 preload 提供固定服务地址的账号与转发接口\n- 增加独立登录页、账号入口、退出登录及多窗口锁定\n- 未登录时限制业务 IPC,会话失效时关闭设备连接并保留同账号工作台编辑状态\n- 按物理设备绑定 SSH 指纹,统一公网端点文案及转发等待时限\n\n验证:\n- npm test\n- npm run build(包含 TypeScript 类型检查)\n\nBREAKING CHANGE: 客户端启动和设备操作需要先登录运维账号,公网设备必须提供出厂物理 ID\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T15:51:05+08:00"}],"HeadCommit":{"Sha1":"a0d4f00e60661f8ec92107ce83a870cdad0d40f8","Message":"fix(devices): 修复隐藏操作按钮挤压卡片文字\n\n- 保持网格卡片 72px 高度,释放隐藏操作列占用的空间\n- 操作按钮仅在悬停或键盘聚焦时显示,不因选中状态常驻\n- 设备名称始终使用完整内容列,显示按钮时仅为地址副行预留空间\n- 同步列表模式的按钮显隐行为并保留键盘访问能力\n\n验证:\n- npm run build(包含 npm run typecheck)\n- git diff --check\n- 用户确认调整后的显示效果\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T16:56:32+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/ce505ce5a247c42b98fd6d66459476971651c1ac...a0d4f00e60661f8ec92107ce83a870cdad0d40f8","Len":6}...
|
1788771725
|
Edit
Delete
|
|
28213
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"ce505ce5a {"Commits":[{"Sha1":"ce505ce5a247c42b98fd6d66459476971651c1ac","Message":"fix(renderer): 替换 SFTP 文件夹图标并对齐视觉尺寸\n\n使用 Icons8 蓝色文件夹 SVG,收紧画布留白以匹配旧图标可见宽度,保持列表和路径导航的布局尺寸,并更新资源来源说明。\n\n验证:npm run typecheck、SVG 格式和尺寸计算校验、git diff --check 均通过。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T13:47:06+08:00"},{"Sha1":"aa78d0d82b46e9734d5ee9be8eb985d19f22d4cd","Message":"perf(logs): 优化日志采集传输与通道准备流程\n\n完整文件通过 SFTP 并发读取固定快照范围,时间窗口复用句柄读取不重叠区间;不支持 SFTP 时在同一线路回退到 exec。\n\n元数据查询与数据通道初始化并行,只查询所选文件,减少正文复制和无关键词时的逐行处理。补充协议、初始化和剩余等待耗时指标,以及配置页文件列表查询的回归测试。\n\n验证:\n- 日志采集、SFTP 和文件路由相关 93 项测试通过,补充配置页回归后日志相关 34 项测试通过\n- npm run typecheck、npm run build 通过\n- 用户经服务器 B 采集约 27 MB 完整文件由约 11.3 秒降至 5.8 秒,并确认配置页验证通过\n- git diff --cached --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T13:43:58+08:00"},{"Sha1":"7ffacb030579515113cd7bffb430ec0fa715daa8","Message":"feat(app): 增加备用中继文件与日志传输加速\n\n为经反向 SSH 中转的设备提供独立文件数据线路,缓解原中转服务器带宽限制。\n\n实现内容:\n- 在设置中增加独立传输加速开关,复用公网远程服务地址和认证配置\n- 识别反向 SSH 接入,仅将对应文件传输和日志数据路由到备用中继\n- 局域网及公网直连保持原路径,切换开关不打断已开始的传输\n- 增加设备端临时隧道和服务端双向转发,保留 SSH 认证与主机指纹校验\n- 增加短期凭据、角色隔离、会话回收、回归测试及支持失败回滚的升级脚本\n\n验证:\n- npm test:101 个测试文件、880 项测试通过\n- go test -race ./...:remote-access 全模块通过\n- npm run build:类型检查、设备端与服务端构建、Electron 和 renderer 构建通过\n- 备用服务部署后通过 HTTPS 入口双向传输各 1 MiB 随机数据,SHA-256 一致\n- 错误凭据拒绝、角色隔离及双端释放检查通过\n- 用户已实际验证并确认传输加速效果符合预期\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-07T00:13:14+08:00"}],"HeadCommit":{"Sha1":"ce505ce5a247c42b98fd6d66459476971651c1ac","Message":"fix(renderer): 替换 SFTP 文件夹图标并对齐视觉尺寸\n\n使用 Icons8 蓝色文件夹 SVG,收紧画布留白以匹配旧图标可见宽度,保持列表和路径导航的布局尺寸,并更新资源来源说明。\n\n验证:npm run typecheck、SVG 格式和尺寸计算校验、git diff --check 均通过。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-07T13:47:06+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/3a2f2fffa7d64a5bdc4165eab087a9aa4539049a...ce505ce5a247c42b98fd6d66459476971651c1ac","Len":3}...
|
1788762395
|
Edit
Delete
|
|
28181
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"3a2f2fffa {"Commits":[{"Sha1":"3a2f2fffa7d64a5bdc4165eab087a9aa4539049a","Message":"perf(electron): 优化 SFTP 并发下载与传输进度广播\n\n将单文件下载改为 32 KiB 分块、最多 32 个并发请求,按偏移顺序输出并限制预读内存。保留取消、空闲超时、短读取补齐、句柄关闭确认及临时文件提交机制。\n\n传输进度广播限制为每 150 ms 一次,终态即时发送,减少 IPC 和主页活动摘要读取。共享 SSH 连接启用 TCP_NODELAY。\n\n验证:\n- SFTP、复制队列和 SSH 连接相关测试共 70 项通过\n- npm run build 通过,包含 npm run typecheck\n- 用户实测同一 23.62 MB 文件下载由约 20 秒降至 2 秒多\n- git diff --cached --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-06T23:04:02+08:00"},{"Sha1":"c19696ec92ab2d1dd9635352eabd0603b29361c2","Message":"feat(devices): 实现设备列表在线探测与首次型号识别\n\n设备列表需要在未打开详情时展示在线状态并识别型号,避免依赖详情面板触发采集。\n\n实现内容:\n- 在设置主页增加默认关闭的自动探测开关,开启后立即探测全部设备\n- 主进程每分钟仅检查 SSH 在线状态,限制四台并发并隔离迟到结果\n- 仅启动、开启功能和档案新增或变更时读取 INI 型号,读取失败回退未知\n- 在卡片和列表展示在线、离线、待验证与检测失败标志,并适配紧凑布局\n- 关闭开关、页面重新导航或主页销毁时清理监控任务\n\n验证:\n- 5 个相关测试文件共 56 项测试通过\n- npm run build 通过,包含 npm run typecheck\n- git diff --cached --check 通过\n- 尚未进行真机交互验证\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-06T22:32:38+08:00"},{"Sha1":"53c68aef197279dd7cb1c701e96e210a93d78bd5","Message":"feat(devices): 随主题切换设备图标配色\n\n新增 P960、P970、P975、P980 和未知型号的黑色机身图标。Light 使用黑色机身与白色型号,Dark 保留白色机身,并复用已解析的外观状态支持 Auto 跟随系统及拖拽预览。\n\n验证:暂存内容的隔离副本通过 npm run typecheck,两个相关测试文件共 9 项测试通过;五款黑白 SVG 的尺寸、透明区域与轮廓一致;git diff --cached --check 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-06T22:23:17+08:00"},{"Sha1":"97cc8919987e0ea6683033a29b44dd9f05e4dea4","Message":"fix(devices): 提升设备图标型号文字清晰度\n\n将 P960、P970、P975、P980 的型号文字调整为右倾样式,并适度加宽、加粗和加深颜色。保持机身材质、外形和无型号图标不变。\n\n验证:SVG 渲染及文字区域像素差异检查通过;git diff --cached --check 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-06T22:08:56+08:00"},{"Sha1":"4600031e7278ff5be5d87b58de02b54df9284dbb","Message":"feat(devices): 根据 INI 型号匹配设备图标\n\n设备卡片原先统一使用通用图标,现复用设备详情的 INI 探测按实际型号显示机身。\n\n实现内容:\n- 从 room.ini 的备用mac前缀识别 P960、P970、P975、P980,缺失或未知时使用无型号图标\n- 补充 data/media 下的 INI 目录,兼容大小写、UTF-8 和 GBK,不向渲染端传输完整设备标识\n- 按设备和 SSH 目标隔离探测结果,接入五款 SVG 并调整卡片和列表中的图标尺寸与居中\n\n验证:\n- 6 个相关测试文件共 41 项测试通过\n- npm run build 通过,包含 npm run typecheck\n- git diff --cached --check 通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-06T22:02:39+08:00"}],"HeadCommit":{"Sha1":"3a2f2fffa7d64a5bdc4165eab087a9aa4539049a","Message":"perf(electron): 优化 SFTP 并发下载与传输进度广播\n\n将单文件下载改为 32 KiB 分块、最多 32 个并发请求,按偏移顺序输出并限制预读内存。保留取消、空闲超时、短读取补齐、句柄关闭确认及临时文件提交机制。\n\n传输进度广播限制为每 150 ms 一次,终态即时发送,减少 IPC 和主页活动摘要读取。共享 SSH 连接启用 TCP_NODELAY。\n\n验证:\n- SFTP、复制队列和 SSH 连接相关测试共 70 项通过\n- npm run build 通过,包含 npm run typecheck\n- 用户实测同一 23.62 MB 文件下载由约 20 秒降至 2 秒多\n- git diff --cached --check 通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-06T23:04:02+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/05a7a8d4ec04ef2784973cf6825268ca2f310d9e...3a2f2fffa7d64a5bdc4165eab087a9aa4539049a","Len":17}...
|
1788708031
|
Edit
Delete
|
|
28161
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"05a7a8d4e {"Commits":[{"Sha1":"05a7a8d4ec04ef2784973cf6825268ca2f310d9e","Message":"refactor(remote-preview): 优化操作台预览布局和侧栏信息展示\n\n原实时预览工具栏控件挤在一行,侧栏把协议参数全部平铺,文案也偏 WebRTC / TURN 术语,不利于日常查看和操作设备。\n\n实现内容:\n- 重组预览工具栏:屏幕切换、画质、连接、远程操作和查看方式分组展示\n- 全屏时保留工具栏,并优化空状态、实时角标和用户可见提示\n- 侧栏默认只展示画质、分辨率、连接和操作四张常用卡片\n- 将码率、丢包、组件版本等诊断参数收入可展开的详细信息\n- 将连接方式、错误和状态栏文案改成更贴近使用场景的说法\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/remotePreview/RemotePreviewWorkspace.test.ts\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-04T21:34:51+08:00"}],"HeadCommit":{"Sha1":"05a7a8d4ec04ef2784973cf6825268ca2f310d9e","Message":"refactor(remote-preview): 优化操作台预览布局和侧栏信息展示\n\n原实时预览工具栏控件挤在一行,侧栏把协议参数全部平铺,文案也偏 WebRTC / TURN 术语,不利于日常查看和操作设备。\n\n实现内容:\n- 重组预览工具栏:屏幕切换、画质、连接、远程操作和查看方式分组展示\n- 全屏时保留工具栏,并优化空状态、实时角标和用户可见提示\n- 侧栏默认只展示画质、分辨率、连接和操作四张常用卡片\n- 将码率、丢包、组件版本等诊断参数收入可展开的详细信息\n- 将连接方式、错误和状态栏文案改成更贴近使用场景的说法\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/remotePreview/RemotePreviewWorkspace.test.ts\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-04T21:34:51+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/812f6947d082b5e293f4584ad575afe67df5b08f...05a7a8d4ec04ef2784973cf6825268ca2f310d9e","Len":1}...
|
1788529572
|
Edit
Delete
|
|
28152
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"812f6947d {"Commits":[{"Sha1":"812f6947d082b5e293f4584ad575afe67df5b08f","Message":"perf(remote-preview): 缩短首次远程首帧等待\n\n实现内容:\n- 在操作台建立 SSH 连接后后台预部署 Agent 和 scrcpy 固定资源\n- 使用 gzip 压缩大型 Agent,并在设备端校验解压后的大小和 SHA-256 后原子替换\n- 在设备或本机不支持压缩时自动回退原始上传\n- 增加预热、压缩、上传和启动阶段耗时诊断\n- 复用并发预热与启动任务,避免重复部署\n\n验证:\n- npm test(82 个测试文件、633 个测试)\n- npm run typecheck\n- npm run build\n- 首次远程预热后首帧从 20.90 秒缩短至 4.44 秒\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T18:39:19+08:00"}],"HeadCommit":{"Sha1":"812f6947d082b5e293f4584ad575afe67df5b08f","Message":"perf(remote-preview): 缩短首次远程首帧等待\n\n实现内容:\n- 在操作台建立 SSH 连接后后台预部署 Agent 和 scrcpy 固定资源\n- 使用 gzip 压缩大型 Agent,并在设备端校验解压后的大小和 SHA-256 后原子替换\n- 在设备或本机不支持压缩时自动回退原始上传\n- 增加预热、压缩、上传和启动阶段耗时诊断\n- 复用并发预热与启动任务,避免重复部署\n\n验证:\n- npm test(82 个测试文件、633 个测试)\n- npm run typecheck\n- npm run build\n- 首次远程预热后首帧从 20.90 秒缩短至 4.44 秒\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T18:39:19+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/2cb4bc7bf7e8116d5f40acd12a3f2de52e6a7338...812f6947d082b5e293f4584ad575afe67df5b08f","Len":1}...
|
1788519156
|
Edit
Delete
|
|
28139
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"2cb4bc7bf {"Commits":[{"Sha1":"2cb4bc7bf7e8116d5f40acd12a3f2de52e6a7338","Message":"feat(remote-preview): 增强切屏恢复与分段诊断\n\n实现内容:\n- TV 采集失败时自动恢复触摸屏并保持 WebRTC 会话\n- 过滤旧切屏代次,以连续两帧实际呈现作为切换完成点\n- 使用 remote-state-v4 上报停止、socket 建立和首个关键帧分段耗时\n- 按 P2P 与 TURN 路线记录切屏总耗时和 Agent 阶段指标\n- 避免画质重启复用旧切屏时间,并补充 SSH 回退异常诊断\n\n验证:\n- npm test(82 个测试文件、625 个测试)\n- npm run typecheck\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- GOCACHE=/private/tmp/juhai-go-test-cache go test ./...\n- GOCACHE=/private/tmp/juhai-go-race-cache go test -race ./...\n- GOCACHE=/private/tmp/juhai-go-vet-cache go vet ./...\n- android-box-3.208 局域网 P2P 与强制 TURN 各 20 次切屏测试\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T17:31:49+08:00"},{"Sha1":"56275acce88349d4b466d98eb4cc8f0d2ca3c144","Message":"fix(remote-preview): 兼容缺少 SHA-256 工具的设备部署\n\n实现内容:\n- 在远端缺少 sha256sum 时回读资源并在本机校验哈希\n- 上传到受控临时文件,校验通过后再原子替换正式资源\n- 为复用、更新和回滚路径补充完整性回退诊断\n- 增加旧设备部署成功与回读损坏保护测试\n\n验证:\n- npm test(82 个测试文件、625 个测试)\n- npm run typecheck\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- GOCACHE=/private/tmp/juhai-go-test-cache go test ./...\n- GOCACHE=/private/tmp/juhai-go-race-cache go test -race ./...\n- GOCACHE=/private/tmp/juhai-go-vet-cache go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T17:31:10+08:00"}],"HeadCommit":{"Sha1":"2cb4bc7bf7e8116d5f40acd12a3f2de52e6a7338","Message":"feat(remote-preview): 增强切屏恢复与分段诊断\n\n实现内容:\n- TV 采集失败时自动恢复触摸屏并保持 WebRTC 会话\n- 过滤旧切屏代次,以连续两帧实际呈现作为切换完成点\n- 使用 remote-state-v4 上报停止、socket 建立和首个关键帧分段耗时\n- 按 P2P 与 TURN 路线记录切屏总耗时和 Agent 阶段指标\n- 避免画质重启复用旧切屏时间,并补充 SSH 回退异常诊断\n\n验证:\n- npm test(82 个测试文件、625 个测试)\n- npm run typecheck\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- GOCACHE=/private/tmp/juhai-go-test-cache go test ./...\n- GOCACHE=/private/tmp/juhai-go-race-cache go test -race ./...\n- GOCACHE=/private/tmp/juhai-go-vet-cache go vet ./...\n- android-box-3.208 局域网 P2P 与强制 TURN 各 20 次切屏测试\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T17:31:49+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/78697e65f7521cd126fc4138c92cbc3c9a168f81...2cb4bc7bf7e8116d5f40acd12a3f2de52e6a7338","Len":2}...
|
1788514340
|
Edit
Delete
|
|
28001
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"78697e65f {"Commits":[{"Sha1":"78697e65f7521cd126fc4138c92cbc3c9a168f81","Message":"feat(remote-preview): 支持触摸屏与 TV 屏切换\n\n实现内容:\n- 复用单条 WebRTC 视频轨道与 scrcpy 进程切换触摸屏和 TV 屏\n- 缓存各屏最后一帧,并在目标屏新帧确认前提供冻结画面过渡\n- 增加显示目标代次与旧信令兼容状态,避免旧屏残留帧提前结束切换\n- 切屏时释放活动触点,TV 屏保持只读且 SSH 回退固定触摸屏\n\n验证:\n- npm test -- --run(82 个测试文件、615 个测试)\n- npm run typecheck\n- GOCACHE=/private/tmp/juhai-go-build npm run build\n- GOCACHE=/private/tmp/juhai-go-build go test ./...\n- GOCACHE=/private/tmp/juhai-go-build go test -race ./internal/agent ./internal/control ./internal/server\n- GOCACHE=/private/tmp/juhai-go-build go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T15:28:38+08:00"}],"HeadCommit":{"Sha1":"78697e65f7521cd126fc4138c92cbc3c9a168f81","Message":"feat(remote-preview): 支持触摸屏与 TV 屏切换\n\n实现内容:\n- 复用单条 WebRTC 视频轨道与 scrcpy 进程切换触摸屏和 TV 屏\n- 缓存各屏最后一帧,并在目标屏新帧确认前提供冻结画面过渡\n- 增加显示目标代次与旧信令兼容状态,避免旧屏残留帧提前结束切换\n- 切屏时释放活动触点,TV 屏保持只读且 SSH 回退固定触摸屏\n\n验证:\n- npm test -- --run(82 个测试文件、615 个测试)\n- npm run typecheck\n- GOCACHE=/private/tmp/juhai-go-build npm run build\n- GOCACHE=/private/tmp/juhai-go-build go test ./...\n- GOCACHE=/private/tmp/juhai-go-build go test -race ./internal/agent ./internal/control ./internal/server\n- GOCACHE=/private/tmp/juhai-go-build go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T15:28:38+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/c79acc2b40569f37dce63b2a5a8c6c98a89811ca...78697e65f7521cd126fc4138c92cbc3c9a168f81","Len":1}...
|
1788506950
|
Edit
Delete
|
|
27983
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"c79acc2b4 {"Commits":[{"Sha1":"c79acc2b40569f37dce63b2a5a8c6c98a89811ca","Message":"feat(remote-preview): 支持会话计时和运行中画质切换\n\n实现内容:\n- 实时显示本次远程会话时长并在停止后固定结果\n- 允许用户在网络安全上限内手动升降画质\n- 分离用户目标、实际档位和网络可选上限\n- 兼容旧版信令服务透传画质确认状态\n\n验证:\n- npm test -- --run\n- npm run typecheck\n- npm run build\n- go test ./...\n- go test -race ./internal/agent ./internal/control ./internal/server\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T14:57:33+08:00"}],"HeadCommit":{"Sha1":"c79acc2b40569f37dce63b2a5a8c6c98a89811ca","Message":"feat(remote-preview): 支持会话计时和运行中画质切换\n\n实现内容:\n- 实时显示本次远程会话时长并在停止后固定结果\n- 允许用户在网络安全上限内手动升降画质\n- 分离用户目标、实际档位和网络可选上限\n- 兼容旧版信令服务透传画质确认状态\n\n验证:\n- npm test -- --run\n- npm run typecheck\n- npm run build\n- go test ./...\n- go test -race ./internal/agent ./internal/control ./internal/server\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T14:57:33+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/f4c066bad5372ac955a6ea4a5b6be1d5269bc12d...c79acc2b40569f37dce63b2a5a8c6c98a89811ca","Len":1}...
|
1788505088
|
Edit
Delete
|
|
27950
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"f4c066bad {"Commits":[{"Sha1":"f4c066bad5372ac955a6ea4a5b6be1d5269bc12d","Message":"perf(remote-preview): 优化触控移动链路延迟\n\n实现内容:\n- 将 move 拆分到无序零重传 DataChannel,边界与按键操作继续使用可靠有序通道\n- 在 renderer 和 Agent 双端丢弃、合并过时 move,避免丢包时队头阻塞\n- 增加控制通道积压、队列等待和 scrcpy 注入耗时统计\n- 将 control 包纳入 Agent build ID,确保协议改动触发设备端更新\n\n验证:\n- npm test -- --run\n- go test ./...\n- go test -race ./internal/agent ./internal/control\n- go vet ./...\n- npm run typecheck\n- npm run build\n- npx vitest run scripts/remote-access-release.test.mjs\n- 192.168.3.208 局域网 P2P 原画质人工测试约 10 分钟\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T14:11:30+08:00"}],"HeadCommit":{"Sha1":"f4c066bad5372ac955a6ea4a5b6be1d5269bc12d","Message":"perf(remote-preview): 优化触控移动链路延迟\n\n实现内容:\n- 将 move 拆分到无序零重传 DataChannel,边界与按键操作继续使用可靠有序通道\n- 在 renderer 和 Agent 双端丢弃、合并过时 move,避免丢包时队头阻塞\n- 增加控制通道积压、队列等待和 scrcpy 注入耗时统计\n- 将 control 包纳入 Agent build ID,确保协议改动触发设备端更新\n\n验证:\n- npm test -- --run\n- go test ./...\n- go test -race ./internal/agent ./internal/control\n- go vet ./...\n- npm run typecheck\n- npm run build\n- npx vitest run scripts/remote-access-release.test.mjs\n- 192.168.3.208 局域网 P2P 原画质人工测试约 10 分钟\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-04T14:11:30+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/519c56add73ca280a345ae5cac1b6a68c68fc292...f4c066bad5372ac955a6ea4a5b6be1d5269bc12d","Len":1}...
|
1788502334
|
Edit
Delete
|
|
27795
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"519c56add {"Commits":[{"Sha1":"519c56add73ca280a345ae5cac1b6a68c68fc292","Message":"perf(remote-preview): 抑制原画关键帧突发冻结\n\n针对原画档周期性大关键帧导致的发送阻塞:\n- 将原画目标码率从 8 Mbps 调整为 6 Mbps\n- 将视频队列扩展为 18 帧并增加 500 ms 媒体时长上限\n- 避免等待关键帧期间重复触发溢出恢复\n- 记录关键帧体积、队列溢出和慢 RTP 帧写入信息\n\n验证:\n- npm run typecheck\n- npm test -- --run\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T23:23:23+08:00"},{"Sha1":"86b8e7f744307892c4ffdecd67f4c2f06d57c9a2","Message":"perf(remote-preview): 降低视频冻结与恢复振荡\n\n优化 WebRTC 视频发送和诊断链路:\n- 使用 scrcpy PTS 生成显式 RTP 时间戳\n- 避免 PLI 和本地解码压力直接触发重启式恢复\n- 扩大短突发队列并限制 scrcpy 重启频率\n- 增加抖动缓冲、解码耗时和冻结统计\n\n验证:\n- npm run typecheck\n- npm test -- --run\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T22:34:06+08:00"}],"HeadCommit":{"Sha1":"519c56add73ca280a345ae5cac1b6a68c68fc292","Message":"perf(remote-preview): 抑制原画关键帧突发冻结\n\n针对原画档周期性大关键帧导致的发送阻塞:\n- 将原画目标码率从 8 Mbps 调整为 6 Mbps\n- 将视频队列扩展为 18 帧并增加 500 ms 媒体时长上限\n- 避免等待关键帧期间重复触发溢出恢复\n- 记录关键帧体积、队列溢出和慢 RTP 帧写入信息\n\n验证:\n- npm run typecheck\n- npm test -- --run\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T23:23:23+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/dec97acac475d4140ef0905872e8f84933c6a921...519c56add73ca280a345ae5cac1b6a68c68fc292","Len":2}...
|
1788451575
|
Edit
Delete
|
|
27794
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"dec97acac {"Commits":[{"Sha1":"dec97acac475d4140ef0905872e8f84933c6a921","Message":"perf(remote-preview): 优化 WebRTC 预览与触控流畅度\n\n优化远程预览关键链路:\n- 并行启动准备并准确记录首帧呈现时间\n- 修正入站流选择、解码压力和静止画面自适应判断\n- 缩短视频发送队列并采用渐进关键帧恢复\n- 对控制通道积压丢弃过时移动事件\n\n验证:\n- npm run typecheck\n- npm test\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T21:54:53+08:00"}],"HeadCommit":{"Sha1":"dec97acac475d4140ef0905872e8f84933c6a921","Message":"perf(remote-preview): 优化 WebRTC 预览与触控流畅度\n\n优化远程预览关键链路:\n- 并行启动准备并准确记录首帧呈现时间\n- 修正入站流选择、解码压力和静止画面自适应判断\n- 缩短视频发送队列并采用渐进关键帧恢复\n- 对控制通道积压丢弃过时移动事件\n\n验证:\n- npm run typecheck\n- npm test\n- GOCACHE=/private/tmp/juhai-go-build-cache npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T21:54:53+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/8bccd9517663cfc13d2b5cdf83b0b7ba69dc0055...dec97acac475d4140ef0905872e8f84933c6a921","Len":1}...
|
1788443951
|
Edit
Delete
|
|
27793
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8bccd9517 {"Commits":[{"Sha1":"8bccd9517663cfc13d2b5cdf83b0b7ba69dc0055","Message":"fix(remote-preview): 修复适应窗口画面裁剪\n\n适应窗口模式将媒体固定在播放器视口内,并使用 contain 按比例完整缩小,避免媒体固有尺寸溢出后被裁剪。\n\n同时补充模式切换提示,原始尺寸模式继续保留滚动查看。\n\n验证:\n- npm run typecheck\n- npm test -- src/features/remotePreview/RemotePreviewWorkspace.test.ts src/features/remotePreview/remoteControlProtocol.test.ts\n- npm run build\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T19:25:14+08:00"}],"HeadCommit":{"Sha1":"8bccd9517663cfc13d2b5cdf83b0b7ba69dc0055","Message":"fix(remote-preview): 修复适应窗口画面裁剪\n\n适应窗口模式将媒体固定在播放器视口内,并使用 contain 按比例完整缩小,避免媒体固有尺寸溢出后被裁剪。\n\n同时补充模式切换提示,原始尺寸模式继续保留滚动查看。\n\n验证:\n- npm run typecheck\n- npm test -- src/features/remotePreview/RemotePreviewWorkspace.test.ts src/features/remotePreview/remoteControlProtocol.test.ts\n- npm run build\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T19:25:14+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/95b0fd5bf5c728cdce74ad170f5f230b630a0b23...8bccd9517663cfc13d2b5cdf83b0b7ba69dc0055","Len":1}...
|
1788434727
|
Edit
Delete
|
|
27784
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"95b0fd5bf {"Commits":[{"Sha1":"95b0fd5bf5c728cdce74ad170f5f230b630a0b23","Message":"feat(remote-access): 实现 WebRTC 远程触控\n\n实现内容:\n- 增加可靠有序的远程控制 DataChannel 和版本化控制协议\n- 接入 scrcpy 视频与控制双通道,支持单触点和最近任务\n- 修复竖屏坐标、滑出画面触点残留及断线释放\n- 更新 Agent 发布能力、兼容校验和自动测试\n\n验证:\n- npm run typecheck\n- npm test\n- npm run build\n- cd remote-access \u0026\u0026 go test ./...\n- cd remote-access \u0026\u0026 go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T19:12:47+08:00"}],"HeadCommit":{"Sha1":"95b0fd5bf5c728cdce74ad170f5f230b630a0b23","Message":"feat(remote-access): 实现 WebRTC 远程触控\n\n实现内容:\n- 增加可靠有序的远程控制 DataChannel 和版本化控制协议\n- 接入 scrcpy 视频与控制双通道,支持单触点和最近任务\n- 修复竖屏坐标、滑出画面触点残留及断线释放\n- 更新 Agent 发布能力、兼容校验和自动测试\n\n验证:\n- npm run typecheck\n- npm test\n- npm run build\n- cd remote-access \u0026\u0026 go test ./...\n- cd remote-access \u0026\u0026 go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T19:12:47+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/86a99cbf334287c059f8f655d15e8e9566ba694b...95b0fd5bf5c728cdce74ad170f5f230b630a0b23","Len":1}...
|
1788433986
|
Edit
Delete
|
|
27783
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"86a99cbf3 {"Commits":[{"Sha1":"86a99cbf334287c059f8f655d15e8e9566ba694b","Message":"feat(remote-access): 加固 Agent 发布与部署生命周期\n\n实现内容:\n- 增加可复现 Agent 构建身份和 ARMv7、ARM64 发布清单\n- 在创建云端会话前完成远端 SHA-256、版本、架构和能力校验\n- 增加同设备部署互斥、受控回滚、历史资源清理和非敏感 UI 诊断\n- 加强远程访问错误中的密钥引用、本机路径和 Token 脱敏\n\n验证:\n- npm run typecheck\n- npm test\n- npm run build\n- cd remote-access \u0026\u0026 go test ./...\n- cd remote-access \u0026\u0026 go vet ./...\n- git diff --check\n- 人工验证远程预览更新、复用、并行部署和会话释放\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T17:57:10+08:00"}],"HeadCommit":{"Sha1":"86a99cbf334287c059f8f655d15e8e9566ba694b","Message":"feat(remote-access): 加固 Agent 发布与部署生命周期\n\n实现内容:\n- 增加可复现 Agent 构建身份和 ARMv7、ARM64 发布清单\n- 在创建云端会话前完成远端 SHA-256、版本、架构和能力校验\n- 增加同设备部署互斥、受控回滚、历史资源清理和非敏感 UI 诊断\n- 加强远程访问错误中的密钥引用、本机路径和 Token 脱敏\n\n验证:\n- npm run typecheck\n- npm test\n- npm run build\n- cd remote-access \u0026\u0026 go test ./...\n- cd remote-access \u0026\u0026 go vet ./...\n- git diff --check\n- 人工验证远程预览更新、复用、并行部署和会话释放\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T17:57:10+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/40a27c05d0dc0263bb2dd24746ba07dc2075aa88...86a99cbf334287c059f8f655d15e8e9566ba694b","Len":1}...
|
1788430074
|
Edit
Delete
|
|
27702
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"40a27c05d {"Commits":[{"Sha1":"40a27c05d0dc0263bb2dd24746ba07dc2075aa88","Message":"fix(remote-access): 优先复用已有 SSH 密钥配置\n\n移除公网远程设置的新用户固定私钥默认值:\n- 首次使用时优先复用设备档案中的可用密钥,再使用应用密钥库条目\n- 支持密钥库 ID 与本机私钥路径两种互斥引用,从未配置时保持为空\n- 迁移旧 v2 固定默认路径,同时保留用户自定义路径和 v3 显式空值\n- 设置页增加密钥来源选择与本机文件选择入口,私钥解析仍限制在主进程\n\n验证:\n- npm run typecheck\n- npm test(567 项)\n- npm run build\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T17:02:51+08:00"}],"HeadCommit":{"Sha1":"40a27c05d0dc0263bb2dd24746ba07dc2075aa88","Message":"fix(remote-access): 优先复用已有 SSH 密钥配置\n\n移除公网远程设置的新用户固定私钥默认值:\n- 首次使用时优先复用设备档案中的可用密钥,再使用应用密钥库条目\n- 支持密钥库 ID 与本机私钥路径两种互斥引用,从未配置时保持为空\n- 迁移旧 v2 固定默认路径,同时保留用户自定义路径和 v3 显式空值\n- 设置页增加密钥来源选择与本机文件选择入口,私钥解析仍限制在主进程\n\n验证:\n- npm run typecheck\n- npm test(567 项)\n- npm run build\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T17:02:51+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/dc76bdf38e10321f0610a2e84be507131e207365...40a27c05d0dc0263bb2dd24746ba07dc2075aa88","Len":1}...
|
1788426259
|
Edit
Delete
|
|
27683
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"dc76bdf38 {"Commits":[{"Sha1":"dc76bdf38e10321f0610a2e84be507131e207365","Message":"test(terminal): 稳定 SSH 自动重连时序断言\n\n将固定 5 毫秒等待改为带上限的条件等待,避免全量并行测试负载下偶发失败。\n\n验证:\n- npm test\n- npm run typecheck\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T16:23:09+08:00"},{"Sha1":"6b89c495f606c787fc74c49051113c4b6f25f5a9","Message":"fix(remote-preview): 按窗口计算浏览器解码压力\n\n修复累计 WebRTC 帧计数长期污染自适应判断的问题:\n- 以相邻反馈点增量计算当前窗口解码压力\n- 明确累计丢帧展示,并在坏窗口出现时退出恢复观察状态\n- 补充历史缺口、窗口压力和状态切换测试\n\n验证:\n- npm run typecheck\n- npm test\n- npm run build\n- cd remote-access \u0026\u0026 go test ./...\n- cd remote-access \u0026\u0026 go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T16:22:50+08:00"},{"Sha1":"f98d14fa5de8f13ffaf38490771729c1b30b77c0","Message":"feat(remote-preview): 增加弱网自适应与关键帧恢复\n\n实现内容:\n- 增加版本化网络反馈和窗口增量丢包统计\n- 使用迟滞与冷却控制真实 scrcpy 编码档位重启\n- 处理 PLI、FIR、持续 NACK 和有界视频发送队列\n- 区分用户画质上限与当前有效编码参数\n\n验证:\n- npm run typecheck\n- npm test(557 项)\n- npm run build\n- cd remote-access \u0026\u0026 go test ./...\n- cd remote-access \u0026\u0026 go vet ./...\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T15:48:56+08:00"},{"Sha1":"c3f3a11d956b69ed393e1c321a3e8f1d54d80140","Message":"fix(electron): 阻止关闭操作台后启动预览回退\n\n修复操作台确认关闭期间,云端会话释放事件触发 renderer 启动 SSH 回退,并被立即重开的窗口复用的问题。\n\n实现内容:\n- 关闭阶段拒绝创建新的远程预览资源\n- 同一设备复用唯一资源清理任务\n- 重新打开操作台前等待旧窗口最终清理完成\n- 同步覆盖设备删除和应用退出期间的预览启动请求\n\n验证:\n- npm run typecheck\n- npm test(552 项)\n- npm run build\n- git diff --cached --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T15:25:16+08:00"},{"Sha1":"ceb4dcf5431d382dc044c37f9cf71a98cb219ab8","Message":"fix(remote-preview): 忽略主动停止的视频播放中断\n\n修复首帧出现后立即停止时 video.play() 与 pause() 竞争产生的误报。\n\n实现内容:\n- 仅忽略旧会话、已替换媒体流和标准 AbortError\n- 保留自动播放限制与不支持格式等真实播放错误\n- 增加 Chromium pause 和新加载中断文案测试\n\n验证:\n- npm run typecheck\n- npm test(550 项)\n- npm run build\n- git diff --cached --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T15:17:59+08:00"}],"HeadCommit":{"Sha1":"dc76bdf38e10321f0610a2e84be507131e207365","Message":"test(terminal): 稳定 SSH 自动重连时序断言\n\n将固定 5 毫秒等待改为带上限的条件等待,避免全量并行测试负载下偶发失败。\n\n验证:\n- npm test\n- npm run typecheck\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T16:23:09+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/c089081d281339010876430a95c40118f69b2ce9...dc76bdf38e10321f0610a2e84be507131e207365","Len":6}...
|
1788425164
|
Edit
Delete
|
|
27636
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"c089081d2 {"Commits":[{"Sha1":"c089081d281339010876430a95c40118f69b2ce9","Message":"feat(remote-access): 统一派生公网操作员 Token\n\n实现内容:\n- 从所有设备共用的 SSH 私钥确定性派生操作员 Token\n- 设置与 renderer 只保存和展示私钥路径,不持久化 Token\n- 部署脚本要求首次安装显式提供派生 Token 并保留既有秘密\n\n验证:\n- npm run typecheck\n- npm test(542 项)\n- npm run build\n- bash -n deploy/remote-access/install-server.sh\n- git diff --cached --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T14:51:30+08:00"},{"Sha1":"708253bd9b956e67945c9da7057fba717ec9de2b","Message":"fix(build): 避免开发模式复用旧版 Agent\n\n修复内容:\n- 在 npm run dev 前增量校验远程访问构建产物\n- 根据 Go 源码与构建脚本指纹按需重新编译\n- 使用临时文件成功构建后再原子替换现有产物\n- 更新 README 中的开发启动说明\n\n验证:\n- npm run predev 首次重建并在第二次正确跳过\n- npm test\n- npm run build\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T14:40:45+08:00"}],"HeadCommit":{"Sha1":"c089081d281339010876430a95c40118f69b2ce9","Message":"feat(remote-access): 统一派生公网操作员 Token\n\n实现内容:\n- 从所有设备共用的 SSH 私钥确定性派生操作员 Token\n- 设置与 renderer 只保存和展示私钥路径,不持久化 Token\n- 部署脚本要求首次安装显式提供派生 Token 并保留既有秘密\n\n验证:\n- npm run typecheck\n- npm test(542 项)\n- npm run build\n- bash -n deploy/remote-access/install-server.sh\n- git diff --cached --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T14:51:30+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/b495009b33c967294de2d9540af33e04dfb7fce8...c089081d281339010876430a95c40118f69b2ce9","Len":2}...
|
1788418409
|
Edit
Delete
|
|
27590
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"b495009b3 {"Commits":[{"Sha1":"b495009b33c967294de2d9540af33e04dfb7fce8","Message":"feat(remote-preview): 增加选路诊断与断线恢复\n\n实现内容:\n- 增加自动与强制 TURN 选路,并保持画质档位独立\n- 展示局域网 P2P、公网 P2P、候选对和 WebRTC 性能指标\n- 增加 ICE restart 协商与十二秒断线恢复窗口\n- 补充 Electron、renderer、Agent 和信令服务测试\n\n验证:\n- npm test\n- npm run typecheck\n- npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T13:28:13+08:00"},{"Sha1":"f4c464548b0cc9f06b062a295482211f0fde1d83","Message":"fix(remote-preview): 修复 WebRTC 设备建链与采集启动\n\n实现内容:\n- 修复 Agent 后台启动命令、设备 DNS 解析和 Android 系统 CA 加载\n- 使用绝对 app_process 路径启动 scrcpy,兼容 32 位与 64 位设备\n- 完善 P2P、TURN 与 SSH 回退展示,并保留完整回退原因\n- 增加 ICE 候选、连接状态和 Agent 退出日志诊断\n- 补充启动阶段、选路识别和设备网络兼容测试\n\n验证:\n- npm run typecheck\n- npm test(77 个测试文件,533 项测试)\n- go test ./...\n- go vet ./...\n- npm run build\n- 同网、手机热点和首次部署设备实测均建立 WebRTC P2P,首帧约 5 至 7 秒\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T11:59:15+08:00"}],"HeadCommit":{"Sha1":"b495009b33c967294de2d9540af33e04dfb7fce8","Message":"feat(remote-preview): 增加选路诊断与断线恢复\n\n实现内容:\n- 增加自动与强制 TURN 选路,并保持画质档位独立\n- 展示局域网 P2P、公网 P2P、候选对和 WebRTC 性能指标\n- 增加 ICE restart 协商与十二秒断线恢复窗口\n- 补充 Electron、renderer、Agent 和信令服务测试\n\n验证:\n- npm test\n- npm run typecheck\n- npm run build\n- go test ./...\n- go vet ./...\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-03T13:28:13+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/b637c340912deca3578f1992bea76defd8d015cb...b495009b33c967294de2d9540af33e04dfb7fce8","Len":2}...
|
1788413350
|
Edit
Delete
|
|
27543
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"b637c3409 {"Commits":[{"Sha1":"b637c340912deca3578f1992bea76defd8d015cb","Message":"docs(remote-access): 记录 WebRTC 与 SSH 混合架构\n\n实现内容:\n- 说明 P2P 优先、TURN 回退和 SSH 运维兜底的架构边界\n- 记录同仓库存放与独立部署的迁移策略\n- 补充服务器容量、四档画质、安全要求和阶段验收状态\n\n验证:\n- 文档参数已与当前代码、云端部署和测试设备验证结果核对\n- git diff --cached --check\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-03T00:09:31+08:00"},{"Sha1":"b49deb9b2f8f6827ab2c837957739189a9a68df2","Message":"feat(remote-preview): 集成 WebRTC 预览与 SSH 回退\n\n实现内容:\n- 在 Electron main 中安全保存操作员 Token并创建短期远程会话\n- 通过 SSH 探测设备 ABI、部署临时 Agent,并优先建立 WebRTC P2P/TURN 视频链路\n- WebRTC 失败时自动回退现有 SSH 预览并完整清理设备资源\n- 增加连接路径展示和流畅、标准、高清、原画四档画质\n\n验证:\n- npm run typecheck\n- npm test(77 个测试文件,519 个测试)\n- npm run build\n- android-box-online ARMv7 Agent 校验与可执行探测通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-03T00:08:33+08:00"},{"Sha1":"e8f390ce3bea89d9580616a9818540f17ea01f84","Message":"feat(remote-access): 实现 WebRTC 信令服务与设备 Agent\n\n实现内容:\n- 新增短期会话、WSS 信令和 coturn REST 临时凭据服务\n- 新增 ARMv7/ARM64 H.264 WebRTC Agent 与跨平台构建脚本\n- 新增可迁移的 Nginx、coturn 和 systemd 部署资产\n\n验证:\n- go test ./...\n- go vet ./...\n- npm run build\n- 云端会话 API、TURN UDP 与 TURN TLS 分配验证通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-03T00:07:50+08:00"}],"HeadCommit":{"Sha1":"b637c340912deca3578f1992bea76defd8d015cb","Message":"docs(remote-access): 记录 WebRTC 与 SSH 混合架构\n\n实现内容:\n- 说明 P2P 优先、TURN 回退和 SSH 运维兜底的架构边界\n- 记录同仓库存放与独立部署的迁移策略\n- 补充服务器容量、四档画质、安全要求和阶段验收状态\n\n验证:\n- 文档参数已与当前代码、云端部署和测试设备验证结果核对\n- git diff --cached --check\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-09-03T00:09:31+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/e993301f4b18f33623e788ea69c1ba5388b94031...b637c340912deca3578f1992bea76defd8d015cb","Len":3}...
|
1788400422
|
Edit
Delete
|
|
27534
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"e993301f4 {"Commits":[{"Sha1":"e993301f4b18f33623e788ea69c1ba5388b94031","Message":"feat(app): 实现触摸屏只读实时预览\n\n在设备操作台中增加基于 SSH 的实时预览第一期能力。\n\n实现内容:\n- 动态部署并清理 scrcpy 服务端,通过安全 IPC 转发 H.264 视频流\n- 使用 WebCodecs 和 Canvas 渲染画面,支持原始尺寸与全屏查看\n- 提供高清、标准和流畅三档画质,并按设备档案保存默认选择\n- 复用截图朝向规则,补齐 Android 11 Runtime 环境兼容\n- 将预览会话纳入窗口关闭、设备修改和应用退出清理流程\n\n验证:\n- npm run typecheck\n- npm test -- --run(74 个测试文件、510 项测试)\n- npm run build\n- 局域网与公网链路实机预览通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T18:48:34+08:00"},{"Sha1":"3182b804c67cfe47bfcf5a8d948c424acc43b0c5","Message":"feat(devices): 重做应用重启弹窗并改为只校验进程\n\n通用确认框和进度日志列表无法表达“只重启业务应用、设备保持在线”,\n也把日志扫描结果和进程校验混在一起。\n\n实现内容:\n- 新增独立确认/进度弹窗:工作区色机箱叠标题板、主面板和操作台\n- 进度按发送命令、等待拉起、校验进程三阶段展示,并保留可折叠过程记录\n- 重启后只检查目标进程数量,不再扫描最近日志;日志字段保留兼容\n- 同步 MCP 工具说明、帮助文案和校验结果类型注释\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/devices/appRestartPresentation.test.ts src/features/help/helpContent.test.ts electron/agent/mcpServer.test.ts\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T17:29:27+08:00"}],"HeadCommit":{"Sha1":"e993301f4b18f33623e788ea69c1ba5388b94031","Message":"feat(app): 实现触摸屏只读实时预览\n\n在设备操作台中增加基于 SSH 的实时预览第一期能力。\n\n实现内容:\n- 动态部署并清理 scrcpy 服务端,通过安全 IPC 转发 H.264 视频流\n- 使用 WebCodecs 和 Canvas 渲染画面,支持原始尺寸与全屏查看\n- 提供高清、标准和流畅三档画质,并按设备档案保存默认选择\n- 复用截图朝向规则,补齐 Android 11 Runtime 环境兼容\n- 将预览会话纳入窗口关闭、设备修改和应用退出清理流程\n\n验证:\n- npm run typecheck\n- npm test -- --run(74 个测试文件、510 项测试)\n- npm run build\n- 局域网与公网链路实机预览通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T18:48:34+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/7216f8387f24304288cc07ab9070d3c91bd6c3da...e993301f4b18f33623e788ea69c1ba5388b94031","Len":2}...
|
1788346149
|
Edit
Delete
|
|
27528
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"7216f8387 {"Commits":[{"Sha1":"7216f8387f24304288cc07ab9070d3c91bd6c3da","Message":"feat(devices): 增强双屏截图与朝向修正\n\n实现内容:\n- 为全屏截图增加触摸屏、TV 屏及双屏选择\n- 增加可选的触摸屏截图朝向自动修正,并仅处理 90 与 -90 配置\n- 优化截图加载反馈、结果提示和二级菜单鼠标移动体验\n\n验证:\n- npm run typecheck\n- npm test(70 个测试文件,496 项测试)\n- npm run build\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T16:49:30+08:00"}],"HeadCommit":{"Sha1":"7216f8387f24304288cc07ab9070d3c91bd6c3da","Message":"feat(devices): 增强双屏截图与朝向修正\n\n实现内容:\n- 为全屏截图增加触摸屏、TV 屏及双屏选择\n- 增加可选的触摸屏截图朝向自动修正,并仅处理 90 与 -90 配置\n- 优化截图加载反馈、结果提示和二级菜单鼠标移动体验\n\n验证:\n- npm run typecheck\n- npm test(70 个测试文件,496 项测试)\n- npm run build\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T16:49:30+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/4580f2b6058140461e21b226a276bd2451c6848c...7216f8387f24304288cc07ab9070d3c91bd6c3da","Len":1}...
|
1788339007
|
Edit
Delete
|
|
27483
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"4580f2b60 {"Commits":[{"Sha1":"4580f2b6058140461e21b226a276bd2451c6848c","Message":"feat(devices): 实现设备全屏截图与加载反馈\n\n新增设备端全屏截图、可选本地保存目录和首次使用设置引导。\n\n实现内容:\n- 通过 Electron 主进程和 preload bridge 执行截图与文件下载\n- 增加 SSH 端口快速探测,缩短离线设备失败等待时间\n- 为截图中的设备卡片增加蒙版、加载动画和重复操作保护\n- 增加截图服务单元测试与响应式设置样式\n\n验证:\n- npm run typecheck\n- npm test(67 个文件,477 项测试)\n- npm run build\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T15:42:04+08:00"}],"HeadCommit":{"Sha1":"4580f2b6058140461e21b226a276bd2451c6848c","Message":"feat(devices): 实现设备全屏截图与加载反馈\n\n新增设备端全屏截图、可选本地保存目录和首次使用设置引导。\n\n实现内容:\n- 通过 Electron 主进程和 preload bridge 执行截图与文件下载\n- 增加 SSH 端口快速探测,缩短离线设备失败等待时间\n- 为截图中的设备卡片增加蒙版、加载动画和重复操作保护\n- 增加截图服务单元测试与响应式设置样式\n\n验证:\n- npm run typecheck\n- npm test(67 个文件,477 项测试)\n- npm run build\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-02T15:42:04+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/8bb55651291d9621d16bfdb9bf3eb8ead642219d...4580f2b6058140461e21b226a276bd2451c6848c","Len":1}...
|
1788335682
|
Edit
Delete
|
|
26862
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"8bb556512 {"Commits":[{"Sha1":"8bb55651291d9621d16bfdb9bf3eb8ead642219d","Message":"fix(logs): 修复 JSON 弹窗拉伸后误关闭\n\n操作台日志页的 JSON 查看弹窗允许右下角拉伸。放大时鼠标会离开弹窗落到遮罩上,原先用 click 关闭会把这次松手当成点遮罩,导致弹窗被误关。\n\n实现内容:\n- 调整 React 弹窗遮罩 ModalBackdrop 的关闭判定\n- 将 click 改为 pointerdown,仅在遮罩空白处按下主键时关闭\n- 点遮罩、Escape 和关闭按钮仍可关闭弹窗\n\n验证:\n- npm run typecheck\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-31T14:37:44+08:00"}],"HeadCommit":{"Sha1":"8bb55651291d9621d16bfdb9bf3eb8ead642219d","Message":"fix(logs): 修复 JSON 弹窗拉伸后误关闭\n\n操作台日志页的 JSON 查看弹窗允许右下角拉伸。放大时鼠标会离开弹窗落到遮罩上,原先用 click 关闭会把这次松手当成点遮罩,导致弹窗被误关。\n\n实现内容:\n- 调整 React 弹窗遮罩 ModalBackdrop 的关闭判定\n- 将 click 改为 pointerdown,仅在遮罩空白处按下主键时关闭\n- 点遮罩、Escape 和关闭按钮仍可关闭弹窗\n\n验证:\n- npm run typecheck\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-31T14:37:44+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/0dd229392358882382dd6ea0d83488e868d8ca27...8bb55651291d9621d16bfdb9bf3eb8ead642219d","Len":1}...
|
1788158429
|
Edit
Delete
|
|
26803
|
16
|
5
|
16
|
92
|
0
|
0
|
refs/heads/feat/control-plane-integration
|
1
|
{"Commits":[{"Sha1":"0b971bcd4 {"Commits":[{"Sha1":"0b971bcd460dce801591f038077501d28c6d8d11","Message":"feat(desktop): 优化会话列表折叠与侧栏拖动\n\n实现内容:\n- 将项目外会话归入最近列表,并支持独立展开收起\n- 项目会话列表与最近列表使用同一套折叠交互,并加入展开收起动画\n- 会话列表支持拖动调宽,限制在 200px 至 480px\n- 右侧工作详情改为过渡出现,避免直接弹出\n- 仅会话保留选中态,项目行不再同时高亮\n\n验证:\n- npm run typecheck\n- git diff --check\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T23:08:44+08:00"}],"HeadCommit":{"Sha1":"0b971bcd460dce801591f038077501d28c6d8d11","Message":"feat(desktop): 优化会话列表折叠与侧栏拖动\n\n实现内容:\n- 将项目外会话归入最近列表,并支持独立展开收起\n- 项目会话列表与最近列表使用同一套折叠交互,并加入展开收起动画\n- 会话列表支持拖动调宽,限制在 200px 至 480px\n- 右侧工作详情改为过渡出现,避免直接弹出\n- 仅会话保留选中态,项目行不再同时高亮\n\n验证:\n- npm run typecheck\n- git diff --check\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T23:08:44+08:00"},"CompareURL":"pengzhiyu/juhai-agent-desktop/compare/f96b235c8d1be7df3ed967725acdfc622031eb81...0b971bcd460dce801591f038077501d28c6d8d11","Len":1}...
|
1788102662
|
Edit
Delete
|
|
26802
|
16
|
5
|
16
|
92
|
0
|
0
|
refs/heads/feat/control-plane-integration
|
1
|
{"Commits":[{"Sha1":"f96b235c8 {"Commits":[{"Sha1":"f96b235c8d1be7df3ed967725acdfc622031eb81","Message":"feat(desktop): 接入 GPT 模型与 Codex 会话\n\n实现内容:\n- 将普通聊天切换为 Codex App Server\n- 为本地会话持久化 Codex Thread ID\n- 接入 GPT-5.6 Sol、Terra、Luna 和动态思考深度选择\n- 更新 JUHAI 模型设置与运行状态展示\n\n验证:\n- npm run typecheck\n- npm run build\n- macOS Electron 界面检查\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T22:29:50+08:00"},{"Sha1":"b0e051a64b1f6ca428d0342afb4715f089d18313","Message":"feat(runtime): 接入 Codex App Server 对话主链路\n\n实现内容:\n- 使用固定 Codex 版本生成并引入 App Server TypeScript 协议类型\n- 接入 thread start/resume、turn start/interrupt 和流式事件处理\n- 增加命令与文件修改审批,并保留显式 GLM 回退链路\n- 将项目目录、GPT 模型和思考深度传入 Codex turn\n\n验证:\n- npm run typecheck\n- npm run build\n- GPT-5.6 Sol App Server V2 真实对话\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T22:29:08+08:00"},{"Sha1":"c80256d577efe53349daf44e55fff0c3b81f1dac","Message":"docs(plan): 记录三仓联调与验收进展\n\n实现内容:\n- 更新三仓试点分支、联调端口与阶段状态\n- 记录 GLM 对话、控制平面 Tool Calling 和报价链路验收结果\n- 补充后续批次与未完成事项\n\n验证:\n- 检查 Markdown 差异和提交边界\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T22:28:12+08:00"},{"Sha1":"7e506063c1f6e504a4e6621fe4c4bdd9c9f66e16","Message":"chore(git): 忽略本地临时目录\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T22:26:39+08:00"}],"HeadCommit":{"Sha1":"f96b235c8d1be7df3ed967725acdfc622031eb81","Message":"feat(desktop): 接入 GPT 模型与 Codex 会话\n\n实现内容:\n- 将普通聊天切换为 Codex App Server\n- 为本地会话持久化 Codex Thread ID\n- 接入 GPT-5.6 Sol、Terra、Luna 和动态思考深度选择\n- 更新 JUHAI 模型设置与运行状态展示\n\n验证:\n- npm run typecheck\n- npm run build\n- macOS Electron 界面检查\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T22:29:50+08:00"},"CompareURL":"pengzhiyu/juhai-agent-desktop/compare/0067cfab73f714ab76cf495f2900a0041a15dd8c...f96b235c8d1be7df3ed967725acdfc622031eb81","Len":4}...
|
1788100254
|
Edit
Delete
|
|
26801
|
16
|
5
|
16
|
92
|
0
|
0
|
refs/heads/feat/control-plane-integration
|
1
|
{"Commits":[{"Sha1":"0067cfab7 {"Commits":[{"Sha1":"0067cfab73f714ab76cf495f2900a0041a15dd8c","Message":"feat(desktop): 按 Codex Desktop 重做工作区界面\n\n实现内容:\n- 建立项目对话与普通对话并存的侧栏导航,仅会话保留选中态\n- 重做聊天画布、欢迎页和底部输入器,并提供模型、权限与技能入口\n- 将右侧工作详情改为占用布局的浮动检查器,支持左右栏独立收起\n- 当前聊天仍使用 GLM 5.3 Flash,Codex 模型仅只读展示\n\n验证:\n- 执行 npm run typecheck,类型检查通过\n- 执行 npm run build,桌面应用构建通过\n- 执行 git diff --cached --check,检查通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T21:23:49+08:00"},{"Sha1":"92082b3f30d821cb4de716c14986fd4e4e2b3362","Message":"chore(desktop): 忽略桌面 UI 参考截图\n\n实现内容:\n\n- 将 `docs/images/` 加入 Git 忽略规则,避免 Codex 桌面参考截图进入仓库。\n\n验证:\n\n- 核对 `.gitignore` 包含 `docs/images/`。\n- `git diff --cached --check`\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T21:23:37+08:00"},{"Sha1":"af725a29d76fca02a7aae3aa43bb76817a3db687","Message":"feat(desktop): 接入 Codex 项目工作区与 App Server 基础\n\n实现内容:\n\n- 新增 Codex App Server 侧车进程、JSON-RPC 生命周期与安全 IPC 接口。\n- 建立项目工作区、项目内会话、模型技能目录和 Agent 运行时界面。\n- 记录 Juhai 与 Codex 的架构边界及后续实施顺序。\n- 保留现有 GLM 聊天链路作为迁移期间的回退。\n\n验证:\n\n- `npm run typecheck`\n- `npm run build`\n- `git diff --check`\n- 实机连接 `codex-cli` 0.146.0,读取 5 个模型和 19 个技能。\n- 验证旧版缺少 `project/list` 时降级使用 Juhai 工作区。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T20:00:38+08:00"}],"HeadCommit":{"Sha1":"0067cfab73f714ab76cf495f2900a0041a15dd8c","Message":"feat(desktop): 按 Codex Desktop 重做工作区界面\n\n实现内容:\n- 建立项目对话与普通对话并存的侧栏导航,仅会话保留选中态\n- 重做聊天画布、欢迎页和底部输入器,并提供模型、权限与技能入口\n- 将右侧工作详情改为占用布局的浮动检查器,支持左右栏独立收起\n- 当前聊天仍使用 GLM 5.3 Flash,Codex 模型仅只读展示\n\n验证:\n- 执行 npm run typecheck,类型检查通过\n- 执行 npm run build,桌面应用构建通过\n- 执行 git diff --cached --check,检查通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T21:23:49+08:00"},"CompareURL":"pengzhiyu/juhai-agent-desktop/compare/7d6ff2bc19598ac1f04a78e5dd3fe2b1600bc358...0067cfab73f714ab76cf495f2900a0041a15dd8c","Len":3}...
|
1788096511
|
Edit
Delete
|
|
26800
|
16
|
5
|
16
|
92
|
0
|
0
|
refs/heads/feat/control-plane-integration
|
1
|
{"Commits":[{"Sha1":"7d6ff2bc1 {"Commits":[{"Sha1":"7d6ff2bc19598ac1f04a78e5dd3fe2b1600bc358","Message":"feat(desktop): 恢复控制平面任务结果\n\n实现内容:\n\n- 新增受限的任务 Runtime 结果 IPC,并校验任务标识。\n- 已完成任务在桌面端恢复结果,运行中任务定时刷新任务状态和事件。\n- 补充开源 Codex 架构与许可证适配分析文档。\n\n验证:\n\n- `npm run typecheck`\n- `npm run build`\n- `git diff --cached --check`\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T19:03:49+08:00"},{"Sha1":"daf1fbb473a8aa37c85254c8e6f7f9f271a712a0","Message":"docs(desktop): 补充 GLM 与本地联调说明\n\n实现内容:\n\n- 记录 GLM 流式配置、思考深度选项与本地安全存储约定\n- 记录控制平面、数字员工前端和报价系统前后端的本地联调地址\n- 明确当前报价能力为只读查询,报价草稿写入仍未实现\n\n验证:\n\n- 执行 `git diff --cached --check`,暂存差异检查通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:28:25+08:00"},{"Sha1":"e7f2e44358a1bf62b52fef160748366db1e18c4e","Message":"feat(desktop): 接入 GLM 流式对话与控制平面任务执行\n\n实现内容:\n\n- 接入 GLM 5.3 Flash 配置、思考深度选择与 SSE 流式会话\n- 接入控制平面远程只读任务,并支持安全取消本地模型请求\n- 归一化任务结果并将报价信息整理为普通员工可读的中文摘要\n\n验证:\n\n- 执行 `npm run typecheck`,类型检查通过\n- 执行 `npm run build`,桌面应用构建通过\n- 执行 `git diff --check`,检查通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:27:36+08:00"},{"Sha1":"63a02249246072d314e5f0ff8d93f66affaecdb9","Message":"feat(desktop): 接入控制平面任务只读界面\n\n实现内容:\n\n- 增加固定 Actor、Task 和 Task Event 路由的受限控制平面客户端\n- 支持本地租户与 Bearer 开发会话,并通过 Electron `safeStorage` 保存访问令牌\n- 增加控制平面连接状态、Actor 切换、任务摘要和持久事件时间线界面\n- 限制远程地址协议、响应体大小和列表数量,避免 Renderer 发起任意远程请求\n\n验证:\n\n- 执行 `npm run typecheck`,类型检查通过\n- 执行 `npm run build`,桌面应用构建通过\n- 执行 `git diff --check`,检查通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T11:51:10+08:00"},{"Sha1":"e8f764ed19b3dfcfafb751df109fd44772dfaa0d","Message":"docs(plan): 固化首期本地试点执行口径\n\n实现内容:\n\n- 记录两个企业内部 Fork 的固定基线、检出状态和本地联调入口\n- 明确本地测试账号、Docker 依赖、最少测试数据和报价草稿人工确认要求\n- 补充首批报价知识来源、跨仓任务交付流程和桌面端批次进展\n\n验证:\n\n- 核对两份方案文档的启动条件与用户确认内容一致\n- 执行 `git diff --cached --check`,检查通过\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T11:50:38+08:00"}],"HeadCommit":{"Sha1":"7d6ff2bc19598ac1f04a78e5dd3fe2b1600bc358","Message":"feat(desktop): 恢复控制平面任务结果\n\n实现内容:\n\n- 新增受限的任务 Runtime 结果 IPC,并校验任务标识。\n- 已完成任务在桌面端恢复结果,运行中任务定时刷新任务状态和事件。\n- 补充开源 Codex 架构与许可证适配分析文档。\n\n验证:\n\n- `npm run typecheck`\n- `npm run build`\n- `git diff --cached --check`\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T19:03:49+08:00"},"CompareURL":"","Len":10}...
|
1788088191
|
Edit
Delete
|
|
26799
|
16
|
5
|
16
|
92
|
0
|
0
|
refs/heads/feat/control-plane-integration
|
1
|
|
1788088191
|
Edit
Delete
|
|
26798
|
16
|
1
|
16
|
92
|
0
|
0
|
|
1
|
|
1788088113
|
Edit
Delete
|
|
26797
|
16
|
5
|
16
|
89
|
0
|
0
|
refs/heads/feat/agent-connector-read-api
|
0
|
{"Commits":[{"Sha1":"39edae8a9 {"Commits":[{"Sha1":"39edae8a93e2802b09b2b9c1815c0c6b8cc37e48","Message":"chore(git): 忽略 IDE 项目文件\n\n实现内容:\n\n- 在 `.gitignore` 增加 `.idea` 目录规则,排除 JetBrains 本地项目元数据。\n- 保持其余忽略规则和功能提交边界不变。\n\n验证:\n\n- `git check-ignore -v --stdin` 确认 `.idea/workspace.xml` 与 `.idea/modules.xml` 均命中新增规则。\n- 历史改写前执行 `git diff --check` 通过,工作区与暂存区均为空。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T12:01:47+08:00"},{"Sha1":"44a5ffe52d9f6eb259d0860604a3104aa21f1ab4","Message":"chore(reports): 刷新 Agent Connector 验收报告\n\n实现内容:\n\n- 刷新 22 份 `reports/*.latest.json`,记录本地 runtime、迁移与治理检查结果。\n- 保留既有 `approvalPayloadContractViolations=1`,并将报告限定为绑定 dirty worktree 的本地证据。\n\n验证:\n\n- `runtime-acceptance.latest.json` 记录 573/573,contracts 445、NestJS 62、Fastify 66,迁移 deploy/status 无失败。\n- 22 份 latest 报告均通过 `jq -e` JSON 解析检查,governance 中既有 violation 已复核为 1。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T11:56:53+08:00"},{"Sha1":"20ebc407598e39469546c9af5eb0861937542bf8","Message":"docs(agent-connector): 记录资源服务器领域边界\n\n实现内容:\n\n- 新增 Agent Connector 蓝图,记录只读 API、信任边界、窄投影、限流和非目标。\n- 在 owner matrix 登记无表窄读模型,明确 Connector 直接执行 tenant-scoped Prisma 查询且不虚构源域读服务。\n\n验证:\n\n- 文档事实复核确认 Quotation 投影来自 Connector 窄读模型,不经过写服务或不存在的读服务。\n- 最终文档工作区执行 `git diff --check` 与 `pnpm check:runtime` 均通过,运行态用例为 573/573。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T11:55:54+08:00"},{"Sha1":"d177c958eecde9b63edf166b483941e7bdfcc15e","Message":"test(agent-connector): 增加双后端运行与对等验收\n\n实现内容:\n\n- 为双后端真实 HTTP acceptance 增加五端点成功、400、401、403、404、429、受控 500、跨租户和 requestId 边界场景。\n- 增加黑盒 parity harness 与 `check:agent-parity` 脚本,归一化动态字段后比较两端状态码、错误结构和业务投影。\n\n验证:\n\n- 隔离 PostgreSQL、Redis 与 MinIO 环境执行 `pnpm check:runtime` 通过 573/573。\n- 黑盒 parity 实际通过五端点 200 及 400、401、403、404、429;受控 500 由双后端 acceptance 覆盖,409 由翻译层测试覆盖。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T11:55:12+08:00"},{"Sha1":"c091df374f28b8d3d246be8a164307a36f424d23","Message":"feat(web): 复用报价工作台 Hash 深链接规则\n\n实现内容:\n\n- 将 Web 根页面的工作台跳转改为消费 contracts 提供的 `buildWorkspaceHash`。\n- 统一报价深链接与 `quote-inbox` 工作台的 `focus` 定位规则,移除页面内重复拼接实现。\n\n验证:\n\n- Agent Connector contracts 定向测试 9/9 通过,并覆盖工作台 Hash 生成规则。\n- 最终提交前工作区执行 `git diff --check` 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T11:54:28+08:00"}],"HeadCommit":{"Sha1":"39edae8a93e2802b09b2b9c1815c0c6b8cc37e48","Message":"chore(git): 忽略 IDE 项目文件\n\n实现内容:\n\n- 在 `.gitignore` 增加 `.idea` 目录规则,排除 JetBrains 本地项目元数据。\n- 保持其余忽略规则和功能提交边界不变。\n\n验证:\n\n- `git check-ignore -v --stdin` 确认 `.idea/workspace.xml` 与 `.idea/modules.xml` 均命中新增规则。\n- 历史改写前执行 `git diff --check` 通过,工作区与暂存区均为空。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T12:01:47+08:00"},"CompareURL":"pengzhiyu/juhai-quotation-system/compare/125c54d328d3da221b5d91c0a2dd0475712c6e96...39edae8a93e2802b09b2b9c1815c0c6b8cc37e48","Len":7}...
|
1788087354
|
Edit
Delete
|
|
26796
|
16
|
5
|
16
|
89
|
0
|
0
|
refs/heads/feat/agent-connector-read-api
|
0
|
|
1788087354
|
Edit
Delete
|