用途与实际影响
这项功能怎样使用
为什么需要它
网络在线、设备可见、人工配对、插件启用和实际收到内容是不同条件。明确区分后,才能知道复制没到时该查哪一步。
举个实际例子
“把这份测试文件发到另一台电脑。”两端先亲自确认 KDE 配对;接收完成后分别比较文件内容是否一致。本轮没有重新做这次双机传输验收。
最后我会得到什么
两端配置和人工配对完成后可使用KDE的在线文字与文件通道;每次重要传输的结果需要真实接收证据。
正常时
两端已配对且在线,文字在另一台能粘贴,文件确实收到;重要文件再核对内容一致。
发现问题时
看到设备却无法传输时,分别检查配对、插件、对端在线和当前连接。
入口不可用或证据不足时
任一端未登录、离线或没配对时,不能按正常流程共享。
从哪里开始
先完成两端 Tailscale 与精确防火墙配置,再在两台 KDE Connect 界面核对设备并手工接受配对。
需要准备什么
- 要配对的两台电脑
- 两端分别确认配对
- 用于试传的非敏感文字或文件
从开始到拿到结果
- 1
发现并配对
两端配置准确对端后,在 KDE 界面核对身份并分别确认信任。
- 2
选择传输内容
关闭 Including passwords,用非敏感文字试剪贴板;文件单独发送。
- 3
核对接收
重要文件在两端比对哈希;中断的大文件须重新完整发送,不能称自动续传。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
本机KDE运行且配置存在;当前Known=1、Available=1,真实传输未重验关键规则与设计选择
脚本不静默同意配对,双方核对设备身份后确认。
Including passwords需人关闭;doctor无论实际值如何都会提醒,不能保证所有复制文本不含秘密。
纯文本在线尽力而为,不解决离线补发、同时复制排序和图像剪贴板。
1GB是文档测试目标,不能推出协议最大文件限制或本轮已测通过。
本模块用到的名词
- customDevices
- KDE Connect 的静态对端 IP 清单配置项,用于在无法使用 UDP 广播时主动探测目标。
- 在线尽力而为(Best-effort)
- 在两端均在线时以最优路径及时交付数据,但不保证离线持久化存储或严格时序编排。
专业定义
双向人工配对核验与尽力而为传输边界
解决什么
设备可ping通但未配对时仍不能正常传输;中断后要重新发送,不承诺断点续传。
当前怎样实现
- Write-MeshClipKdeConfigChange保留编码/注释,变更前备份,异常可回滚。
- Repair-MeshClipLegacyDuplicateGeneralLines只接受已知旧版重复形态,其余歧义拒绝。
- 文件发送属于KDE原生能力;Get-MeshClipFileHashSafe用于项目内部资源比对,传输验收依文档在两端人工运行Get-FileHash。
- acceptance.ps1生成100个非秘密标记及有界文件;RecordClipboard保存明确观察、方向和实际延迟,VerifyFile检查不同路径的接收副本SHA-256。配对、密码排除、回环和自然重启要真实观察后RecordCheck;本地哈希相等不证明传输路径,Summary不自动签发业务PASS。
执行流程
- 1
两端分别写customDevices并检查精确入站。
- 2
用户核对设备身份并确认KDE配对。
- 3
在插件中关闭Including passwords,先用非敏感测试文字。
- 4
重要文件接收后,两端另算SHA-256核对;本项目没有自动劫持发送路径。
边界
- 剪贴板纯文本流转不接管图像或格式化富文本(图像作为文件传输)。
- 大文件传输不包含断点续传能力,网络中断必须重新完整发送。
- 测试辅助只生成虚构内容,不读剪贴板历史;清理只删除本次生成且未变化的文件。当前页面没有实际运行这轮双机验收,不把指南存在写成完成。
失败与恢复
- 设备在线但配对待核对
- doctor保留人工确认提示,不自动替用户接受配对。
- 需要检查密码共享设置
- doctor始终给出人工检查Including passwords的WARN;不会读取、关闭或验证实际插件开关。
- 文件传输中断
- 重新发送,并在接收完成后比较哈希。
真实入口
scripts\MeshClip.Common.psm1customDevices 读写、配置备份与修复
docs\PRODUCT.md一致性定义与成功准则规范
tests\MeshClip.Common.Tests.ps1配置读写与多行 UTF-8 保持测试
如何验证
- 本轮66项源测试含配置保留、旧版修复和14项真实进程设备计数回归;本地化零设备摘要不再产生假设备。
- 9月14日只读设备汇总Known=1、Available=1;没有执行复制、发送文件或读取真实内容。9月8日一次--refresh后可用数为0保留为历史,不能作为当前无法传输的结论。
与其他模块的关系
这一层才是用户真正复制和发送的位置,结果不能由底层网络或脚本测试代替。
