|
26796
|
16
|
5
|
16
|
89
|
0
|
0
|
refs/heads/feat/agent-connector-read-api
|
0
|
|
1788087354
|
Edit
Delete
|
|
26758
|
16
|
1
|
16
|
89
|
0
|
0
|
|
0
|
|
1788003143
|
Edit
Delete
|
|
26795
|
16
|
5
|
16
|
88
|
0
|
0
|
refs/heads/feat/juhai-agent-control-plane
|
0
|
{"Commits":[{"Sha1":"4749f3df3 {"Commits":[{"Sha1":"4749f3df37316e72da7314c4151971c91e233575","Message":"chore(reports): 绑定最终治理文档迁移证据\n\n实现内容:\n- 将 migrations.latest.json 的 provenance 更新到最终治理文档提交。\n- 不改变迁移检查指标和通过结果。\n\n验证:\n- node scripts/check-migrations.mjs 再次通过。\n- camelCase 标量与关系判定负向探针 2/2 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:44:47+08:00"},{"Sha1":"3299c68752ab4c04f4f171cb15b7dea897029818","Message":"docs(governance): 区分稳定包登记与下游验收\n\n实现内容:\n- 保留 contracts 1.13.0 与 tool-runtime 2.2.0 的当前登记事实。\n- 明确下游 tarball 候选验收仍停留在 contracts 1.12.0 与 tool-runtime 2.1.0。\n\n验证:\n- git diff --cached --check 通过。\n- staged diff 仅包含 CLAUDE.md 的证据口径更正。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:44:09+08:00"},{"Sha1":"a068ed932c183b9ced5320765872c33e7c453fa1","Message":"chore(reports): 刷新远程读取迁移检查报告\n\n实现内容:\n- 重新生成 migrations.latest.json,并绑定完成源码与文档提交后的本地提交 SHA。\n- 保留迁移危险语句、双后端目录和 Prisma 字段映射检查结果。\n\n验证:\n- node scripts/check-migrations.mjs 通过。\n- camelCase 标量与关系判定负向探针 2/2 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:43:17+08:00"},{"Sha1":"1c5d0e1885693aaa93630e3c73d79d7277583f1d","Message":"docs(agent): 记录报价只读工具与 GLM 执行语义\n\n实现内容:\n- 更新控制平面蓝图和 owner matrix,区分 Connector 发布审核与 REMOTE_READ 每次调用确认。\n- 记录 GLM Provider、SSE 聚合、reasoning_content 续执、任务思考深度和结构修复边界。\n- 将 DeepSeek 限定为历史事故记录,并同步稳定包版本真源。\n\n验证:\n- git diff --cached --check 通过。\n- 当前 Provider 文档漂移检索无未解释的 DeepSeek 或智谱兼容端点表述。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:42:31+08:00"},{"Sha1":"13bc0d17c7d9026aa17cbb2d5347620dd401119f","Message":"feat(api): 接入双后端报价远程读取与 GLM 执行链\n\n实现内容:\n- 在 NestJS 与 Fastify 执行前共同校验 Tool Activation、Assignment、Grant、CapabilityPack、ConnectorDefinition 和 ACTIVE Installation。\n- 对等实现 REMOTE_READ 调度、稳定错误映射、结果治理、推理续执和任务思考深度冻结。\n- 补充真实数据库 dispatcher 与 LLM acceptance 回归,并更新流式 smoke 传输。\n\n验证:\n- pnpm --filter api-nestjs typecheck 与 build 通过。\n- pnpm --filter api-fastify typecheck 与 build 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:41:33+08:00"}],"HeadCommit":{"Sha1":"4749f3df37316e72da7314c4151971c91e233575","Message":"chore(reports): 绑定最终治理文档迁移证据\n\n实现内容:\n- 将 migrations.latest.json 的 provenance 更新到最终治理文档提交。\n- 不改变迁移检查指标和通过结果。\n\n验证:\n- node scripts/check-migrations.mjs 再次通过。\n- camelCase 标量与关系判定负向探针 2/2 通过。\n","AuthorEmail":"ngotruc672498@gmail.com","AuthorName":"xp","CommitterEmail":"ngotruc672498@gmail.com","CommitterName":"xp","Timestamp":"2026-08-30T18:44:47+08:00"},"CompareURL":"pengzhiyu/digital-employee-os/compare/b6d0797b80846ca21150fbb900a59f495f6d2cd3...4749f3df37316e72da7314c4151971c91e233575","Len":10}...
|
1788087343
|
Edit
Delete
|
|
26794
|
16
|
5
|
16
|
88
|
0
|
0
|
refs/heads/feat/juhai-agent-control-plane
|
0
|
|
1788087343
|
Edit
Delete
|
|
26757
|
16
|
1
|
16
|
88
|
0
|
0
|
|
0
|
|
1788003082
|
Edit
Delete
|
|
26573
|
4
|
1
|
4
|
87
|
0
|
0
|
|
0
|
|
1787824245
|
Edit
Delete
|
|
31262
|
16
|
24
|
16
|
86
|
0
|
0
|
refs/tags/v0.2.0
|
0
|
Juhai OpsDesk v0.2.0 · 快速连接、设备分组与日志体验升级
|
1789830872
|
Edit
Delete
|
|
31261
|
16
|
9
|
16
|
86
|
0
|
0
|
refs/tags/v0.2.0
|
0
|
{"Commits":null,"HeadCommit":{" {"Commits":null,"HeadCommit":{"Sha1":"1eecf5d0083e203962f44259da0fc663ac35aafd","Message":"fix(devices): 修复手动屏幕方向跨目录优先级\n\n优先在全部约定目录中查找非空的是否竖屏_手动,缺失时再回退普通方向,避免外部平台默认值遮蔽私有目录的手动配置。\n\n实现内容:\n- 修复设备概览、截图和实时预览共用的方向解析\n- 补充跨目录覆盖、手动零值、空值回退和扫描脚本回归测试\n- 同步配置注释与设备知识库说明\n\n验证:\n- 6 个相关测试文件共 128 项测试通过\n- npm run typecheck\n- npm run check:knowledge\n- git diff --cached --check\n- 实机画面人工验收结果尚未记录\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T23:15:25+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/0000000000000000000000000000000000000000...1eecf5d0083e203962f44259da0fc663ac35aafd","Len":0}...
|
1789830872
|
Edit
Delete
|
|
31255
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"1eecf5d00 {"Commits":[{"Sha1":"1eecf5d0083e203962f44259da0fc663ac35aafd","Message":"fix(devices): 修复手动屏幕方向跨目录优先级\n\n优先在全部约定目录中查找非空的是否竖屏_手动,缺失时再回退普通方向,避免外部平台默认值遮蔽私有目录的手动配置。\n\n实现内容:\n- 修复设备概览、截图和实时预览共用的方向解析\n- 补充跨目录覆盖、手动零值、空值回退和扫描脚本回归测试\n- 同步配置注释与设备知识库说明\n\n验证:\n- 6 个相关测试文件共 128 项测试通过\n- npm run typecheck\n- npm run check:knowledge\n- git diff --cached --check\n- 实机画面人工验收结果尚未记录\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T23:15:25+08:00"},{"Sha1":"18cf5164777a2de8b80a3748719274deb164d62b","Message":"feat(renderer): 优先展示快速连接并恢复上次主页功能\n\n实现内容:\n- 将快速连接排在导航首位,个人设备入口紧随其后\n- 在本机保存最后使用的主页功能,启动时恢复该入口\n- 首次使用、过期入口或存储不可用时回退到快速连接,不恢复设备会话\n\n验证:\n- npm run typecheck 通过\n- 主页偏好与终端页面状态相关 11 项测试通过\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-19T22:38:22+08:00"},{"Sha1":"915907b7d1f55dc14ca910b96aab8340d107e41e","Message":"feat(renderer): 优化快速连接布局与连接状态反馈\n\n将快速入口和最近连接整理为可扫描的操作面板,并在同一目标连接期间防止重复操作。\n\n实现内容:\n- 重排连接输入、认证选项、最近记录和保存设备对话框,适配浅色、深色及窄窗口\n- 展示公网目标的门店与包厢信息,防抖查询并隔离迟到响应\n- 修复图标与输入框的重复边框,增加密码显隐及本机私钥选择\n- 连接、校验、打开操作台及指纹确认期间禁用同目标入口和回车提交,保留取消与其他目标连接\n- 使用提供的单色 SVG 替换最近记录设备图标,通过主题颜色着色并调整窄窗口对齐\n\n验证:\n- npm run typecheck 和 npm run build 通过\n- 快速连接及账号客户端相关 5 个测试文件、65 项测试通过\n- 用户已人工验证快速连接界面、设备自动命名与连接中按钮保护\n- 本次 SVG 替换已通过构建检查,未进行自动桌面交互测试\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-19T22:32:53+08:00"},{"Sha1":"641a614a33411567e47e69da2b24616bb882c07a","Message":"feat(devices): 实现公网设备门店查询与快速记录自动命名\n\n输入公网设备 ID 后复用服务端后台认证查询门店与包厢,减少快速连接记录的人工命名。\n\n实现内容:\n- 增加只读查询接口,严格取首条结果并校验会话与设备权限\n- 通过主页 IPC 暴露裁剪后的信息,合并并行请求并丢弃过期会话响应\n- 按“门店名称 - 包厢名称”命名快速记录,保留正式档案和用户自定义名称\n- 查询失败或无结果时保留原有连接流程,查询不申请设备锁或远程端口\n\n验证:\n- npm run typecheck 和 npm run build 通过\n- 快速连接存储、账号客户端和目标解析相关测试通过\n- 服务端 go test -race ./... 通过\n- 已完成服务端部署、健康检查及真实后台只读查询验收\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-19T22:32:15+08:00"},{"Sha1":"564dd95a6839b7659aabbc1377f22f03975010ff","Message":"feat(devices): 实现免建档快速连接与最近记录\n\n为减少连接前创建设备档案和重复填写认证的步骤,新增快速连接入口。\n\n实现内容:\n- 支持输入局域网 IP 或公网设备 ID,打开独立操作台或主页 SSH、SFTP 标签\n- 按账号隔离默认认证与最近成功记录,密码使用安全存储\n- 复用已有设备并支持原位保存为正式设备,保留会话和日志、INI 数据\n- 补充连接生命周期测试、功能说明和知识库导航覆盖\n\n验证:\n- npm run typecheck\n- npm test:166 个测试文件、1488 项测试通过\n- 最终调整后快速连接相关 20 项测试通过\n- npm run build(使用本地 Go 缓存并关闭依赖下载)\n- npm run check:knowledge\n- 用户反馈人工测试通过\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-09-19T20:39:58+08:00"}],"HeadCommit":{"Sha1":"1eecf5d0083e203962f44259da0fc663ac35aafd","Message":"fix(devices): 修复手动屏幕方向跨目录优先级\n\n优先在全部约定目录中查找非空的是否竖屏_手动,缺失时再回退普通方向,避免外部平台默认值遮蔽私有目录的手动配置。\n\n实现内容:\n- 修复设备概览、截图和实时预览共用的方向解析\n- 补充跨目录覆盖、手动零值、空值回退和扫描脚本回归测试\n- 同步配置注释与设备知识库说明\n\n验证:\n- 6 个相关测试文件共 128 项测试通过\n- npm run typecheck\n- npm run check:knowledge\n- git diff --cached --check\n- 实机画面人工验收结果尚未记录\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T23:15:25+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/4bb59f1faa6737e1d679f5715a0c213b46e020a8...1eecf5d0083e203962f44259da0fc663ac35aafd","Len":10}...
|
1789829267
|
Edit
Delete
|
|
30883
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"4bb59f1fa {"Commits":[{"Sha1":"4bb59f1faa6737e1d679f5715a0c213b46e020a8","Message":"fix(logs): 优化双击选中并稳定查找框布局\n\n- 参考 VS Code 的文本边界规则,支持连续中文和中英数字整段双击选中\n- 跨查找高亮节点建立原生选区,保留复制、选区查找和横向滚动定位\n- 按查找框宽度预留计数区域,避免加载提示及匹配数量切换挤动按钮\n- 补充选词对照测试、离屏交互与逐帧布局回归,并更新日志帮助文档\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/logs/logWordSelection.test.ts(5 项通过)\n- npm run check:knowledge\n- node scripts/test-log-viewer-browser.mjs --selection\n- node scripts/test-log-viewer-browser.mjs --find\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T14:59:03+08:00"},{"Sha1":"6ffe247b3198442b9a270c16b88e866f7560deb6","Message":"fix(logs): 支持查找框调宽并取消匹配总量截断\n\n- 移除查找栏左侧收缩图标,增加左右拖拽调宽、边界限制及双击复原\n- 自动续查到全文结束,支持同一行从原始列继续搜索,不丢失两万项之后的命中\n- 使用分块数字坐标保存结果,仅为可见行生成高亮,避免每页复制全部结果\n- 优先定位当前阅读位置附近的命中,支持文件底部查找与完整首尾循环\n- 同步帮助文档及回归夹具\n\n验证:\n- npm run build(包含 typecheck)\n- 77 项日志相关测试\n- 查找栏离屏测试:拖拽、24050 项全文计数、底部定位与首尾循环\n- 原有日志滚动离屏回归\n- npm run check:knowledge\n- git diff --check\n\n实际操作台视觉和拖拽手感保留人工验收。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T13:41:38+08:00"},{"Sha1":"931d1e3cd2263189b2c0eb592436c8b69ad455d0","Message":"feat(logs): 对齐 VS Code 查找栏并移除文件列表搜索\n\n- 删除日志文件列表搜索框及其过滤状态,保留快速打开和全局搜索\n- 按参考图实现正文右上角紧凑查找栏,支持大小写、全字、正则、选区与键盘导航\n- 自动续查并按具体出现次数计数和定位,限制缓存并明确展示未完整计数\n- 隔离正则线程并支持超时取消,限制长行摘要大小,同步使用说明\n\n验证:\n- npm run typecheck\n- npm run build\n- 73 项日志相关测试\n- 查找栏与原有日志滚动离屏夹具通过\n- npm run check:knowledge\n- git diff --check\n\n实际操作台视觉与交互保留人工验收。\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T13:27:49+08:00"},{"Sha1":"d94c0aa3b7d46e66054a2a7da708b46e7f69e597","Message":"perf(logs): 增加双向预读与视口缓存\n\n减少定位日志末尾后反向滚动时的短暂加载占位:\n- 围绕可见原行号提前读取上下缓冲,优先滚动方向和可见缺块\n- 按原行号合并重叠正文,按距离淘汰并限制缓存行数及正文大小\n- 后台预读独立于前台读取,不触发全局忙碌状态或修改滚动位置\n- 切换文件和前台跳转取消旧预读,忽略迟到响应\n- 补充长行小块、反向滚动和迟到响应隔离的回归测试与验收说明\n\n验证:\n- 20 项相关单元测试通过\n- 7 组 Electron 离屏合成场景通过,120 毫秒延迟下逐帧检查反向滚动无加载闪烁和位置跳动\n- npm run typecheck、npm run build 通过\n- 未启动正式操作台或连接设备,实际日志体验仍需人工复测\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T12:22:20+08:00"},{"Sha1":"dfa031600cf28cd8993766c88159a013c5bec41a","Message":"fix(logs): 修复正文布局并恢复连续滚动\n\n修复新增导航条抢占正文高度,以及后台读取块变成界面行数限制的问题:\n- 日志正文使用纵向弹性布局,警告和导航按内容占高,小文件贴顶显示\n- 普通查看按文件总行数连续虚拟滚动,缺失正文按需读取并缓存最近四块\n- 保留过滤结果分页和阅读位置,防止未加载范围被静默复制为残缺内容\n- 增加 24 MiB 样本、缓存边界及独立 Electron 离屏组件回归测试\n\n验证:\n- 14 项相关单元测试通过\n- 离屏测试覆盖三行文件、窄窗口、跨 2000 行、末尾、功能及文件切换、过滤切换\n- npm run typecheck、npm run build、npm run check:knowledge 通过\n- 使用合成数据验证,未连接设备或启动正式操作台\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T12:00:12+08:00"}],"HeadCommit":{"Sha1":"4bb59f1faa6737e1d679f5715a0c213b46e020a8","Message":"fix(logs): 优化双击选中并稳定查找框布局\n\n- 参考 VS Code 的文本边界规则,支持连续中文和中英数字整段双击选中\n- 跨查找高亮节点建立原生选区,保留复制、选区查找和横向滚动定位\n- 按查找框宽度预留计数区域,避免加载提示及匹配数量切换挤动按钮\n- 补充选词对照测试、离屏交互与逐帧布局回归,并更新日志帮助文档\n\n验证:\n- npm run typecheck\n- npx vitest run src/features/logs/logWordSelection.test.ts(5 项通过)\n- npm run check:knowledge\n- node scripts/test-log-viewer-browser.mjs --selection\n- node scripts/test-log-viewer-browser.mjs --find\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-18T14:59:03+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/c6fbf67a98ba850b052b6d6585e7354718024ebc...4bb59f1faa6737e1d679f5715a0c213b46e020a8","Len":8}...
|
1789716533
|
Edit
Delete
|
|
29884
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"c6fbf67a9 {"Commits":[{"Sha1":"c6fbf67a98ba850b052b6d6585e7354718024ebc","Message":"fix(devices): 修复遗漏平台配置导致预览方向错误\n\n- 在约定 INI 目录补读 platform.ini,保留目录和手动键优先级\n- 补充平台方向、手动覆盖及空值回退测试,更新设备说明\n\n验证:\n- 74 项相关测试及 npm run typecheck 通过\n- npm run check:knowledge 通过\n- 用户确认设备实时预览验收通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-15T11:06:26+08:00"}],"HeadCommit":{"Sha1":"c6fbf67a98ba850b052b6d6585e7354718024ebc","Message":"fix(devices): 修复遗漏平台配置导致预览方向错误\n\n- 在约定 INI 目录补读 platform.ini,保留目录和手动键优先级\n- 补充平台方向、手动覆盖及空值回退测试,更新设备说明\n\n验证:\n- 74 项相关测试及 npm run typecheck 通过\n- npm run check:knowledge 通过\n- 用户确认设备实时预览验收通过\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-09-15T11:06:26+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/5b78f9e3c5417f825e78550f5d2934295466f032...c6fbf67a98ba850b052b6d6585e7354718024ebc","Len":1}...
|
1789441667
|
Edit
Delete
|
|
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
|