Commit Graph

2 Commits

Author SHA1 Message Date
yu
0f3f1cf7f7 feat(agent): 抽出 agent-core 并新增 Linux 被控端(X11 + XTest)
- 新增 agent-core:平台无关会话层(QUIC/TLS 握手、验证码认证、H.264 编码下行、
  latest-wins 丢帧、输入分发),平台差异经 ScreenCapturer / InputInjector 两个
  trait 注入;Windows agent 一并改接过来,避免两端各写一份握手/认证造成协议漂移
- 新增 linux-agent:X11 GetImage 采集 + 整帧变更检测;XTest 注入 + 扫描码→X11
  keycode 映射(主键区 = scancode+8,E0 扩展键必须查表,含单元测试)
- 协议零改动:复用 Set-1 扫描码与虚拟桌面归一化坐标,viewer 无需任何修改
- 修复:静止桌面下关键帧请求无人响应——解码端一旦出错将永远无法恢复。
  现在保留最近一帧裸像素,收到 KeyFrameReq 时重编一个真关键帧
- 修复:错误验证码时 AuthFail 送不达——进程退出会带走 QUIC 缓冲区内尚未发出的
  数据,客户端只能看到 connection lost;现等对端挂断再退出
- 新增端到端冒烟测试 tests/smoke.rs 与 scripts/linux-smoke.sh(自建 Xvfb,无需
  图形桌面):覆盖采集→编码→QUIC 解帧、认证(含错误码拒绝)、Ping/Pong、
  静止桌面关键帧恢复,以及输入注入实证(注入后从另一条 X11 连接读回指针坐标)
- 该关键帧用例已做变异测试:退回修复会红,恢复后转绿,确认断言有效
- 手册:修正已失效的工具链路径,补充 cargo 镜像说明与 Linux 章节

验证:
- Windows: cargo build --release 通过,产物 agent.exe 9.32MB / viewer.exe 8.73MB
- Linux(容器): cargo test -p linux-agent 通过,2 passed
2026-10-23 12:46:25 +08:00
dev-team
61e8a75cdd init: MVP remote desktop (agent/viewer/common) with H.264 pipeline 2026-10-23 09:17:55 +08:00