|
27282
|
4
|
11
|
4
|
85
|
0
|
0
|
|
1
|
7|[Skill] build-complete 新增接口文档归档步骤
|
1788247941
|
Edit
Delete
|
|
27283
|
4
|
5
|
4
|
85
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"c7a0b457b {"Commits":[{"Sha1":"c7a0b457b0dee360d3562f06a54794a28ba75fb8","Message":"Merge pull request '[Skill] build-complete 新增接口文档归档步骤' (#7) from skill/build-complete-interface-docs into main\n\nReviewed-on: https://gitea.g-hi.com/laiqiaojie/jh-project/pulls/7\n","AuthorEmail":"584481098@qq.com","AuthorName":"laiqiaojie","CommitterEmail":"584481098@qq.com","CommitterName":"laiqiaojie","Timestamp":"2026-09-01T15:32:20+08:00"},{"Sha1":"ae109b2577a59ebd7073a0b5af4c8b38f04cbc5c","Message":"feat: add interface doc archival step (Apifox + frontend-specs) to build-complete skill\n","AuthorEmail":"qiaojielai@gmail.com","AuthorName":"laiqiaojie","CommitterEmail":"qiaojielai@gmail.com","CommitterName":"laiqiaojie","Timestamp":"2026-09-01T15:22:14+08:00"}],"HeadCommit":{"Sha1":"c7a0b457b0dee360d3562f06a54794a28ba75fb8","Message":"Merge pull request '[Skill] build-complete 新增接口文档归档步骤' (#7) from skill/build-complete-interface-docs into main\n\nReviewed-on: https://gitea.g-hi.com/laiqiaojie/jh-project/pulls/7\n","AuthorEmail":"584481098@qq.com","AuthorName":"laiqiaojie","CommitterEmail":"584481098@qq.com","CommitterName":"laiqiaojie","Timestamp":"2026-09-01T15:32:20+08:00"},"CompareURL":"laiqiaojie/jh-project/compare/08692de7f0c50c7787b7668a900b06987f477a25...c7a0b457b0dee360d3562f06a54794a28ba75fb8","Len":2}...
|
1788247942
|
Edit
Delete
|
|
29556
|
4
|
10
|
4
|
85
|
437
|
0
|
|
1
|
5|代码 PR 已提交:[PR #2 - [Web前端] 按省市统计设备月度新增上线数量报表](ht 5|代码 PR 已提交:[PR #2 - [Web前端] 按省市统计设备月度新增上线数量报表](https://gitea.g-hi.com/laiqiaojie/admin/pulls/2),等待 Tech Lead 审核。
本次 PR 包含:
- 报表页面组件实现
- 菜单路由双斜杠…...
|
1789377160
|
Edit
Delete
|
|
29558
|
4
|
12
|
4
|
85
|
440
|
0
|
|
1
|
5|
|
1789377273
|
Edit
Delete
|
|
29562
|
4
|
13
|
4
|
85
|
441
|
0
|
|
1
|
5|
|
1789379023
|
Edit
Delete
|
|
29563
|
4
|
6
|
4
|
85
|
0
|
0
|
|
1
|
8|按省市统计设备月度新增上线数量报表
|
1789379887
|
Edit
Delete
|
|
29564
|
4
|
10
|
4
|
85
|
463
|
0
|
|
1
|
4|已合并至主 Issue #8,测试工作统一在 #8 跟踪。
|
1789380193
|
Edit
Delete
|
|
29565
|
4
|
12
|
4
|
85
|
465
|
0
|
|
1
|
4|
|
1789380193
|
Edit
Delete
|
|
29566
|
4
|
10
|
4
|
85
|
466
|
0
|
|
1
|
5|已合并至主 Issue #8,测试工作统一在 #8 跟踪。
|
1789380193
|
Edit
Delete
|
|
29567
|
4
|
12
|
4
|
85
|
468
|
0
|
|
1
|
5|
|
1789380193
|
Edit
Delete
|
|
26542
|
16
|
1
|
16
|
86
|
0
|
0
|
|
1
|
|
1787819406
|
Edit
Delete
|
|
26543
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
1
|
|
1787819461
|
Edit
Delete
|
|
26544
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"53205a566 {"Commits":[{"Sha1":"53205a5662eec60a462328aa30ff9bd05bd40431","Message":"docs(docs): 重写 README 为中文功能介绍\n\n原 README 仍是英文 POC 摘要,已落后于当前主页、操作台和 MCP 能力。\n\n本次改为中文说明:\n- 补充主页与设备操作台窗口模型\n- 按界面入口列出设备、密钥、快捷指令、终端、日志、INI、SFTP、UDP 和设置\n- 增加 MCP 工具对照、远端默认路径、启动方式和目录结构\n\n验证:\n- 仅文档改动,未涉及 TypeScript、React 或构建配置\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T16:25:57+08:00"},{"Sha1":"ab470d838e708fa8bba1042b4018a6ed8a05541d","Message":"feat(devices): 重构设备详情并改为读取 INI 配置\n\n主页设备详情不再依赖点歌应用诊断快照,改为展示运行状态和点歌应用基础信息。\n\n实现内容:\n- 系统资源继续监控 CPU、内存和温度\n- 皮肤、屏幕方向、播放器模式和串口从约定 INI 目录的 room.ini 读取\n- 串口对照系统发现结果,歌曲盘扫描候选目录并展示资源根\n- 重做详情布局,屏幕方向用显示屏示意正反向\n- 重启应用或设备成功后等待 30 秒再刷新 INI\n- 健康采集和 MCP 不再读取或返回诊断快照\n\n验证:\n- npm run typecheck\n- npx vitest run\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T16:21:20+08:00"},{"Sha1":"f5de56e3812b0d8bb01abff0867cd978b6199df7","Message":"feat(app): 增加操作台功能入口和状态栏设置\n\n用户需要按工作习惯隐藏不常用的操作台功能和底部状态栏。\n在主页设置新增「操作台」分类,默认全部开启:\n- 可分别关闭 SSH 终端、UDP、SFTP、INI 和日志入口\n- 关闭后操作台不再显示对应功能,并同步隐藏主页 SFTP 快捷入口\n- 可隐藏各功能底部状态栏,把高度让给内容区\n- 至少保留一个功能;日志和 INI 仍受设备路径约束\n\n验证:\n- npm run typecheck\n- 用户手工确认设置开关、操作台入口隐藏和跨窗口同步\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T14:42:15+08:00"},{"Sha1":"7299d2479afa08a6797efe79d75eab6eaa06c20b","Message":"fix(electron): 修复 UDP 远端端口进程误归属\n\nUDP socket 快照只描述当前设备,原实现按端口直接关联进程,导致进入设备的远端广播报文被误标为本机进程。\n\n实现内容:\n- 按报文方向只为当前设备的本地端点关联进程\n- 保留回环报文双端进程归属并补充方向回归测试\n- 更新 UDP 消息监视器的进程归属说明\n\n验证:\n- npm run typecheck\n- npm test(61 个测试文件,448 项测试通过)\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T11:32:14+08:00"},{"Sha1":"4d5a78c068818a7d7e8e8e97813df54689855d03","Message":"feat(renderer): 为 UDP 已观察端点展示端口中文含义\n\n把设备详情里的端口用途抽成共用清单,并让 UDP 侧栏直接显示:\n- 已知端口优先展示中文用途,右侧用徽章显示报文条数\n- 补充 Windows Youtube 解析、触摸屏 Youtube、跳舞机和广播 iPad 端口\n- 未收录端口只显示端口号和进程,不编造名称\n\n验证:\n- npm run typecheck\n- npx vitest run src/shared/juhaiPortCatalog.test.ts src/features/devices/juhaiHealthPresentation.test.ts electron/juhaiHealthEvaluator.test.ts electron/juhaiDeviceHealthService.test.ts\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T11:09:38+08:00"}],"HeadCommit":{"Sha1":"53205a5662eec60a462328aa30ff9bd05bd40431","Message":"docs(docs): 重写 README 为中文功能介绍\n\n原 README 仍是英文 POC 摘要,已落后于当前主页、操作台和 MCP 能力。\n\n本次改为中文说明:\n- 补充主页与设备操作台窗口模型\n- 按界面入口列出设备、密钥、快捷指令、终端、日志、INI、SFTP、UDP 和设置\n- 增加 MCP 工具对照、远端默认路径、启动方式和目录结构\n\n验证:\n- 仅文档改动,未涉及 TypeScript、React 或构建配置\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T16:25:57+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/75d35938ce8adec0f028271fa64b39f1a57a3934...53205a5662eec60a462328aa30ff9bd05bd40431","Len":10}...
|
1787819461
|
Edit
Delete
|
|
26561
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"557c3fe29 {"Commits":[{"Sha1":"557c3fe29f14dcd7697c14d3710a81d1886036ef","Message":"fix(styles): 对齐密钥和快捷指令卡片网格自适应列\n\n密钥和快捷指令原先用容器断点锁死最多三列,并限制最大卡宽,宽屏下右侧留白且第四张卡落到下一行。\n\n实现内容:\n- 移除密钥和快捷指令的两列、三列及最大卡宽容器断点\n- 与设备列表共用 auto-fill + 1fr,按实际宽度自动填列并拉满整行\n- 统一最小卡宽为 280px,窄于一张卡时允许单列收缩\n\n验证:\n- npm run typecheck\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T17:24:36+08:00"}],"HeadCommit":{"Sha1":"557c3fe29f14dcd7697c14d3710a81d1886036ef","Message":"fix(styles): 对齐密钥和快捷指令卡片网格自适应列\n\n密钥和快捷指令原先用容器断点锁死最多三列,并限制最大卡宽,宽屏下右侧留白且第四张卡落到下一行。\n\n实现内容:\n- 移除密钥和快捷指令的两列、三列及最大卡宽容器断点\n- 与设备列表共用 auto-fill + 1fr,按实际宽度自动填列并拉满整行\n- 统一最小卡宽为 280px,窄于一张卡时允许单列收缩\n\n验证:\n- npm run typecheck\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T17:24:36+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/53205a5662eec60a462328aa30ff9bd05bd40431...557c3fe29f14dcd7697c14d3710a81d1886036ef","Len":1}...
|
1787822862
|
Edit
Delete
|
|
26575
|
16
|
5
|
16
|
86
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"0dd229392 {"Commits":[{"Sha1":"0dd229392358882382dd6ea0d83488e868d8ca27","Message":"fix(terminal): 修复 SSH 指令历史解密失败\n\n应用名变更后,已持久化的终端历史密文无法用当前 safeStorage 密钥解密。\n原先 fail-closed,提交指令后再打开历史会稳定报错,且无法继续写入。\n\n实现内容:\n- 识别 safeStorage 密文解密失败并隔离无法读取的历史文件\n- 隔离后从空历史继续记录新指令,避免直接展示 Chromium 英文错误\n- 补充密文无法解密时允许继续写入的回归测试\n\n验证:\n- npm run typecheck\n- npx vitest run electron/terminalHistoryStore.test.ts\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T17:57:29+08:00"}],"HeadCommit":{"Sha1":"0dd229392358882382dd6ea0d83488e868d8ca27","Message":"fix(terminal): 修复 SSH 指令历史解密失败\n\n应用名变更后,已持久化的终端历史密文无法用当前 safeStorage 密钥解密。\n原先 fail-closed,提交指令后再打开历史会稳定报错,且无法继续写入。\n\n实现内容:\n- 识别 safeStorage 密文解密失败并隔离无法读取的历史文件\n- 隔离后从空历史继续记录新指令,避免直接展示 Chromium 英文错误\n- 补充密文无法解密时允许继续写入的回归测试\n\n验证:\n- npm run typecheck\n- npx vitest run electron/terminalHistoryStore.test.ts\n- git diff --check\n","AuthorEmail":"228834386@qq.com","AuthorName":"starry","CommitterEmail":"228834386@qq.com","CommitterName":"starry","Timestamp":"2026-08-27T17:57:29+08:00"},"CompareURL":"pengzhiyu/JuhaiOpsDesk/compare/557c3fe29f14dcd7697c14d3710a81d1886036ef...0dd229392358882382dd6ea0d83488e868d8ca27","Len":1}...
|
1787824759
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|