Repository navigation
Releases
LinkSend 0.7.0
LinkSend v0.7.0
本版集中改善跨网络连接、连接恢复与诊断,并提供一次性临时分享。文件仍由两端经认证 QUIC 直接传输,文件协议保持 V1,relay=false。
主要变化
- 跨网默认增加备用 STUN;内置公开 STUN 主机在系统 DNS 返回不可用地址时可使用有界 HTTPS 安全解析。修正服务端候选地址误拒绝,保留身份验证和危险地址限制。
- 改善健康会话复用、恢复和剪贴板续租;修复晚到的同策略 lease 吞掉刚发生的文字、链接或图片复制的问题。
- 任务显示实际失败阶段、简短原因和可执行下一步;支持由用户选择位置导出脱敏诊断,不自动上传。
- 一次性分享通过短期分享码领取,发送方确认接收身份,接收方确认内容与保存位置;仅授权原接收方的一份清单和一个任务,不加入永久设备组或开启剪贴板权限。
- 剪贴板文件缓存增加持久所有权、受保护对象判定、确定未发布对象的自动回收,以及普通发送、重发、Open/Reveal 和预览的私有缓存访问保护。Windows 同包 helper 增加准确构建摘要与进程寿命保护。
- 同步 Windows 安装器、应用资源、macOS bundle 和前端的产品版本;保留手动更新与已有退出偏好。
缓存由程序自动管理,没有手动清理按钮、容量或保留期限设置;本版不增加常用发送方案。
使用临时分享
两端升级后,在传输页创建或领取临时分享,依次完成双方确认。自托管服务需要支持 share_grants_v1 且声明文件传输就绪;管理员须明确启用 experimental_share_control=true。旧服务会明确提示不支持。公网服务已从准确 5ee9a40 升级并开启该功能,继续保留 schema5 兼容回退程序。
控制库启用分享时会从 schema4 备份迁移到 schema5。升级后的库不能直接交给旧 schema4-only 服务;回退须使用兼容 schema5 的程序并关闭分享,保留当前数据。生产事务与回退。
已有验证与适用范围
- 准确
36cfce3核心完成 Windows↔公网 Linux 普通双向传输及原 Task/TransferID 暂停恢复,核对落盘文件、hash 和双方完成;准确 Windows Wails 候选从 Linux 实收临时分享并正常退出。普通传输 · 原生接收。 - 生产准确
5ee9a40经一致性备份、副本迁移/兼容回退及现场后验后上线;同源核心随后通过正常公网 TLS 控制面完成 Windows→Linux 一次 1KiB 临时分享,核对双方任务、清单、hash 和无永久授权残留。公网分享。 - 本版发行包来源、CI、版本与 SHA256 以发行页附带的
RELEASE-MANIFEST.json和SHA256SUMS.txt为准;上述真实旅程保留各自准确候选来源,不冒充最终包实机复验。
保留的限制
- 设备在线表示控制面可达;跨网仍需网络允许 UDP 直连。没有 TURN 或文件中继,不能保证所有公共网络互通。原用户两台 Windows 现场、受限双 NAT、最终候选双向 LAN 与睡眠/网络变化尚未完成验证。
- Windows Explorer / macOS Finder 的实际键盘文件粘贴、已发布缓存读取结束证明和完整自动回收仍未完成。新 Shell publisher 与分页元数据原语未激活;可能已发布对象继续保护,Native 删除保持关闭。不能把本版称为 R2 全部完成。
- 最终包的覆盖安装、完整退出再启动旅程与 Mac 原生运行未实测。Windows 未签名;Mac 为 ad-hoc 签名、未公证。
- 生产原永久数据迁移前后摘要一致,但使用当前默认本机身份的只读普通鉴权探针失败,尚未确认该身份原本的成员状态;不能宣称现有普通用户正向鉴权已实测成功。
R0–R6 整体 Goal 保持未完成,准确状态见唯一 TODO。
准确构建来源
- main 源码:
7d09e59f0dd5ec6fd20300fb83ad428f94dd034c - 三平台构建
- 产品版本0.7.0,文件协议V1,relay=false
- 四个程序包,另附SHA256SUMS.txt与RELEASE-MANIFEST.json;全部上传摘要核验后公开。
LinkSend 0.6.2
LinkSend v0.6.2
发布日期:2026-10-19。产品版本0.6.2,文件协议V1、relay=false。本次准确源码、CI、四个程序包版本与摘要已核验,来源见随包RELEASE-MANIFEST.json和SHA256SUMS.txt。
本次更新
- 自动剪贴板:修复同一局域网内纯剪贴板连接未启动通道、连接被额外10秒期限截断及旧“连接失败”状态残留。
- 复制文件:新增“同步复制的文件”独立开关;在两端开启后,支持Windows文件条目与Mac文件URL互传,校验完成后可在另一端粘贴。文件正文继续走认证QUIC与既有V1文件引擎。
- 大文件进度:大于等于32MiB时居中显示“正在复制”、准备状态或实际校验进度,可取消;少量文字、图片和小文件不弹窗。新复制、暂停或撤权会淘汰旧文件复制,取消后删除未完成缓存。
- 软件更新:设置新增手动检查GitHub正式版、下载进度/取消、SHA256校验及原生安装包入口;更新检查不依赖信令连接。关于页显示实际后端版本。
升级与使用
0.6.1及更早版本首次升级请从本次Release下载Windows安装器或Mac DMG,退出含托盘/菜单栏的旧程序后安装。0.6.2开始可在“设置 → 软件更新”使用检查和下载入口,安装仍由系统向导或DMG完成。
两端需分别开启自动剪贴板总开关及对应设备权限。复制文件还需单独开启“同步复制的文件”;原有文字/图片权限不自动授予文件权限,旧端需同时升级。暂停、离线和应用重启不会补发旧复制。源文件不会删除,也不会传播剪切操作。
任务库schema11→12迁移前创建并验证备份,保留旧授权行,不自动新增启用files授权。旧程序拒绝新schema;需要回退时使用迁移前备份。已完成的剪贴板文件暂存于profile/clipboard-files,供后续粘贴,目前不会自动清理。
验证与边界
候选通过两Go模块workspace/off测试、vet、build、相关race、前端125项/typecheck/lint/build及440像素布局检查。实际Windows↔Mac同一LAN系统剪贴板的文字、不同像素图片和文件条目双向验证通过;64MiB文件超过原lease期限后仍完成并校验哈希,两端出现真实进度,取消测试确认未完成缓存删除且剪贴板原文件路径保持。
上述物理结果属于记录中的本地候选,不移记为后续GitHub发行包已运行。其后文件完成状态与同时LAN拨号的会话冲突修复由确定性自动回归/race覆盖,未重新运行物理测试。Windows包未代码签名;Mac为ad-hoc签名、未公证,macOS13及Intel原生验收、Explorer/Finder键盘粘贴与双NAT缺项保留。未部署生产信令,也未改防火墙、路由、代理或宿主权限。
实现、命令、准确候选hash及测试校验器的颜色空间误判纠正见剪贴板验证记录、软件更新验证、ADR0015。
准确构建来源
- 主分支源码:
63c86c2c5ce183e1400d27ca0571610d50a42bdc - 三平台构建工作流
- 程序包版本:0.6.2;文件协议:V1;relay=false
- 四个程序包,另附SHA256SUMS.txt与RELEASE-MANIFEST.json。
LinkSend 0.6.1
LinkSend v0.6.1
发布日期:2026-10-18。产品版本0.6.1,文件协议V1、relay=false。
本次修复
- 传输记录:点击查看文件后展开并定位清单,支持直接打开文件/文件夹或打开所在文件夹;发送记录也能定位原始来源。缺失、未完成接收或发生变化的文件会明确报错。
- 自动剪贴板:修复原生窗口未就绪时注册监听、Windows PNG格式识别和复制时短暂占用导致漏同步;暂停/锁屏恢复后立即续期授权,避免7秒续期晚于3秒空闲关闭。设置页可逐台开启文字、链接、图片双向同步,两端都需保存总开关并开启对应设备权限。
- 设备管理:删除立即忘记本地配对及偏好,可重新请求配对;黑名单独立拒绝连接,不再保留“已删除设备”目录。局域网发现列表在跨网络配对下,手动IP放在“附近没有设备出现,或没有想要的设备?”折叠入口。
- 统一传输队列:发送和接收在同一页显示速度、进度、取消与批次控制,支持清除已完成记录或取消并清空全部任务。默认退出清空本页并取消未完成任务,可在通用设置关闭;文件与历史保留。受信设备新增接收显示导航红点计数,进入传输页后清零。
升级与使用
关闭旧程序后升级,保留原profile和接收文件;首次启动将按默认设置清空旧传输页待办,历史仍在“记录”。升级前请先完成当前未结束任务;如希望后续退出时保留待办,请在新版本通用设置中关闭自动清空。普通删除不删除对方的服务端组成员;重新连接仍须明确配对,旧授权与免确认不会恢复。
自动剪贴板不会补发离线、暂停或锁屏期间的旧内容。每台设备的总开关与对应设备权限均默认关闭。文件关联仅在明确点击“打开文件”后调用,不会自动执行收到的文件。
验证与限制
修复已通过119项前端测试、两Go模块workspace/off测试与构建、相关race检查,以及Windows生产构建和Mac arm64定向测试/编译;剪贴板暂停恢复故障有真实认证QUIC回归的失败→通过证据。准确发布源码与三平台新包的CI、版本、架构和SHA256已记录在随包发布的RELEASE-MANIFEST.json与SHA256SUMS.txt中;此前本地可用收尾不自动当作新发行包的物理验证。
Windows包未代码签名,macOS为ad-hoc签名、未公证;最低macOS13和Intel原生范围仍有限。当前Win↔Mac物理系统剪贴板双向闭环、系统文件关联点击、Windows托盘/系统分享及完整双NAT未新增验收,不宣称这些缺项通过。本次不部署生产信令或改动宿主防火墙、路由、代理与权限;不提供中继或TURN allocation。
详细实现与命令见工作流修复记录、ADR0013和唯一TODO。
准确构建来源
- 主分支源码:
72161e3f806d742d1d401564031ab4844fe88b2d - 三平台构建工作流
- 程序包内版本:
0.6.1;协议:V1 - 资产数:4个程序包,另附
SHA256SUMS.txt和RELEASE-MANIFEST.json。
LinkSend 0.6.0
LinkSend v0.6.0
发布日期:2026-10-18。产品版本 0.6.0,文件协议仍为 V1,relay=false。
新功能
- 目录预设:默认完整发送;可选源码目录预设,排除依赖与构建目录,也可保存有限的相对路径排除规则。包含/排除预览与实际发送共用 Go 筛选逻辑,规则随草稿、队列和恢复保存。
- 多设备分发:一个草稿选择 2–16 台已配对设备,原子创建批次与独立目标队列,顺序发送。可明确等待离线设备、单独取消或确认源变化,也可取消批次的未完成目标。
- 文件正文限速:设置 → 文件发送中选择不限速或 KiB/MiB 每秒上限;保存后作用于当前与后续文件发送,暂停和取消保持响应。协议开销另计,自动剪贴板使用独立预算。
- 托盘快速发送:托盘或 macOS 菜单栏 → 快速发送文件,使用独立草稿选择目标和来源,经既有认证队列发送,保留主窗口选择。
修复与改进
- LAN 发现固定端口不可用时可降级并恢复;保护 socket generation,合并重复刷新、记忆已认证地址,显示发现 provider 的降级状态。
- 已验证的 Pion host 路径可及时结束候选收集;身份校验、QUIC 加密与文件完整性边界保持。
- 新增“设备 → 服务重建后重新连接”,支持显式建立新组或加入新组,保留本地身份、文件、历史、偏好和有效 LAN 关系,隔离旧组任务及旧授权。
- 修复 Windows picker 取消错误、Mac 设备读取被系统共享存储阻塞,以及快速发送把本机列为可发送目标的问题。
- Mac Finder Services 入口复用主草稿;后台唤回、去重与原生菜单操作的证据分别记录。
下载与升级
从 v0.6.0 Release 下载 Windows x64 便携 ZIP/安装程序,或 macOS Apple Silicon/Intel DMG;最低 macOS 13。关闭旧应用后升级,保留原 profile 和接收文件。
Release 提供 SHA256SUMS.txt 和 RELEASE-MANIFEST.json。程序包由同一主分支提交的 Actions 干净构建,准确提交、平台、版本和摘要以发布清单为准;不重命名或重新标记旧 0.5.0 包。
原信令数据已丢失时,请使用显式恢复入口重新建立设备关系;新组的免确认和剪贴板权限需重新开启。普通连接失败不会自动重置身份或信任。此次发布不部署或替换生产信令服务。
已知限制与验证边界
- Windows 包未代码签名;macOS 包为 ad-hoc 签名,未公证。Intel 与最低 macOS 版本的实机范围仍有限。
- 本轮只做版本一致性、构建和产物来源/哈希检查;复用已有功能证据,不扩展重复原生矩阵。Mac 四项功能的原生实际传输证据仍绑定
6ec3cc4,旧 Windows 分项绑定6edddad,不转写为 0.6.0 包已完成物理验收。 - 当前准确包的 Windows ↔ Mac 物理双向传输、系统剪贴板、Windows 托盘/系统入口和完整双 NAT 闭环仍保留未验项。Windows 原生执行条件未解除,用户已明确要求保留未验范围;A–E Goal 仍为 blocked。
- 当前没有文件中继或 TURN allocation;UDP 或 NAT 条件不允许直连时,传输可能失败。新日本 STUN 的 UDP3478 补充授权仍待处理,未修改宿主防火墙、路由或代理。
详细证据见原生检查点、目录预设、多设备分发、限速、快速发送和唯一 TODO。
准确构建来源
- 主分支源码:
8bad9323ece46b2e32054ddb321340dfdd1e3ec8 - 三平台构建工作流
- 程序包内版本:
0.6.0;协议:V1 - 资产数:4个程序包,另附
SHA256SUMS.txt和RELEASE-MANIFEST.json。
LinkSend 0.5.0 桌面体验预览版 2
本预览版更新桌面交互、传输恢复和诊断,供测试使用。U1–U7 的完整原生及网络验收仍未完成。
本次改进
- 设备支持按名称、别名或身份查找;已配对、附近和已删除目录均分页显示。
- 设备设置改为单一详情抽屉,关闭、保存和删除确认固定可见,支持键盘焦点循环及返回。
- 草稿、待发送队列和进行中任务分页;发送仍包含完整文件集合,跨页操作仍按完整队列和稳定身份执行。
- 接收状态收敛到顶栏,可直接打开文件接收设置;全部跳过的任务不再留在进行中。
- 修正设备设置保存与旧快照竞态、剪贴板会话与收件监听的信令连接交接;提供有限的握手失败阶段与错误分类,便于诊断。
- 修复恢复回归测试的时序前提,保留严格的字节数及完整性校验。
下载与来源
- Windows x64:便携 ZIP 和安装器;macOS:Apple Silicon arm64 与 Intel amd64 DMG。
- 源码:0229cbf3e8373c544431102ed904c4a19ed02dc4,分支 codex/desktop-experience-upgrade。
- 程序内版本保持 0.5.0,本次预览由 tag v0.5.0-desktop-preview.2 和完整提交号区分。
- 产物来自 packages run 35488500579;SHA256SUMS.txt 校验四个程序包,RELEASE-MANIFEST.json 记录构建来源与摘要。
- 文件与剪贴板正文使用认证 QUIC,relay=false;不经信令、JavaScript IPC 或第三方中继。
验证范围与已知缺项
- 本次界面源码通过 76 项前端测试及 typecheck、lint、build;Chromium 的 960×640、1100×720 与中文长名称布局/键盘检查通过。这不是原生 DPI 或安装激活验收。
- 较早 4889cbe 候选的 Windows→Mac 1 GiB 接收端重启续传、15 个小文件和 1,000 文件批次已通过完整性验证;这些证据不等于本 tag 新包已完成实机矩阵。
- Mac→Windows 的 QUIC write EHOSTUNREACH 根因尚未闭环;自动剪贴板实机矩阵、离线删除同步、网络/睡眠恢复、原生键盘及缩放/深色矩阵仍有缺项。自动剪贴板默认关闭。
- 签名与相应系统激活按用户决定暂缓。Windows 未签名,macOS 为 ad-hoc 签名且未公证;正式 Share Target / Share Extension / App Group 安装与激活未验收。
- 控制面需要 membership_version=2;升级前保留配置和数据库备份,不用旧数据库覆盖新增成员或授权记录。
按用户要求,本次发布及文档同步完成后停止实施,等待下一次明确启动指令;不合并 main,不把阶段交付标为整轮完成。
LinkSend 0.5.0 桌面体验预览版 1
本预览版汇集本轮桌面体验改进,供测试使用;七项要求的完整实机联合验收仍未完成。
本轮改进
- 一次点击接收,自动持久化接收计划,默认同名文件保留两份。
- 配对码、局域网添加同意、关系撤销及设备状态处理;改进多接口发现与连接恢复。
- 分类设置、按设备继承与覆盖,以及传输、记录、设备、设置四个视图。
- 自动剪贴板同步默认关闭,按设备分别授权发送、接收和文字、链接、图片类型;托盘可临时暂停。
- 原生共享适配器/扩展与持久交接实现、认证 QUIC 会话复用和有界调度。
- 修复新版连接旧 M5 服务时被误报为认证失败的问题,现明确提示升级信令服务端。
下载
- Windows x64:便携 ZIP 或 NSIS 安装器。
- macOS Apple Silicon:arm64 DMG。
- macOS Intel:amd64 DMG。
SHA256SUMS.txt用于校验四个程序包;RELEASE-MANIFEST.json记录构建来源与摘要。
版本与验证范围
- 源码:
0c59ae255d631b496a3e483e9c558f2998ee314c,工作分支codex/desktop-experience-upgrade。 - 程序内版本为
0.5.0;本次预发布通过上述 tag 和提交区分。 - 核心、桌面及三平台打包 CI 均通过;发布包取自 packages run 34803743360。
- 文件和剪贴板正文走认证 QUIC,
relay=false。
已知限制与升级说明
- 当前发布包尚未完成完整的 Windows↔Mac 物理双向文件、自动剪贴板、文件并存及网络/睡眠恢复矩阵;150% 缩放、深色模式和原生键盘矩阵也未全部完成;Intel Mac 与 macOS 13 实机尚未运行。
- 既有物理启动、125% 窗口及固定映射双 NAT 证据来自较早候选
387b57c,不能视为本次包的实机验收。双 NAT 正例不代表所有 NAT 类型均可穿透。 - 签名与依赖签名的系统安装/激活验收已暂缓。Windows Share Target、macOS Share Extension/App Group 的正式系统入口仍未完成安装激活验收;macOS 包为 ad-hoc 签名且未公证,不提供受信任发行签名。便携 ZIP 不承诺系统共享入口可用。
- 配对控制面要求
membership_version=2,旧 M5 服务需升级。升级前备份应用配置与数据库;迁移后的数据库不能直接交由不兼容旧二进制运行,勿用旧数据库覆盖新的成员或授权记录。 - 开启自动剪贴板会读取新复制内容,并可能直接改写对端剪贴板;总开关及双方对应权限均需显式开启。
LinkSend 0.5.0 M5 桌面测试预发布
LinkSend 0.5.0 M5 测试预发布
完成本轮截至M5的桌面能力整合:设备偏好与本地拒绝、持久草稿/队列、系统发送入口与单实例、后台生命周期、接收清单/子集/冲突决策,以及显式文字、链接和原生剪贴板图片快照。收到内容后可手动预览/复制文字、打开链接或另存PNG。文件和图片正文始终只经认证QUIC,不经过JavaScript IPC、HTTP/WSS或第三方中继。
源提交:d0c4a4b13ddc5bd7cd42c8f977d7aa6f7897ae06。产品0.5.0,协议V1,Go1.27.1,Wails3 beta.18;最低macOS13。发布包来自同一源码提交的GitHub Actions,请对照SHA256SUMS及RELEASE-MANIFEST。
本机双Go模块普通/race/vet/build、前端58项测试和production构建通过;真实Windows窗口完成三类型收发、原生动作、选择接收、冲突保留两份与持久化验证。实际命令、失败与来源范围见docs/evidence/DESKTOP-M5-EXECUTION.md。
这是测试预发布,不设为Latest。Windows未代码签名;macOS仅ad-hoc签名,未公证。物理Windows→Mac内容协议通过,反向返回no route to host;Mac原生部分菜单/通知点击缺少现场权限。MASQUERADE-only双NAT CHECK_TIMEOUT、公共IPv6、睡眠/网络切换及完整安装矩阵仍未全部解决。M6已合入部分收件箱功能,按用户本轮指令不继续完整M6验收。relay=false。
LinkSend 0.5.0 M0/M1 测试预发布
本次是桌面六项改进的 M0/M1 合并测试预发布,产品版本 0.5.0,协议保持 V1。
- 我的设备:本机别名、固定顺序和专属接收目录;标签不授予信任或免确认。
- 持久在线草稿和发送队列:重复提交幂等、离线设备旁路、源内容变化需确认、重启后确认继续。
- 本机屏蔽、trust 迁移、单 profile 所有权与保存后退出;迁移后的授权数据损坏时拒绝连接。
- 最低 macOS 13,取消 macOS 12 支持,工具链 Go 1.27.1 / Wails 3 beta.18。
来源:2f2656d940c96e142d5639b2bc3012ab0ce5fb6e;打包工作流 34676198796。附件只使用该精确提交的 CI 原始包,SHA256SUMS 和 RELEASE-MANIFEST 包含包哈希、Windows 内部文件哈希与各平台构建元数据。香港测试主站已备份后部署同一提交,并独立核对运行哈希、schema、health 和 WSS 拒绝/重连。
Windows 原生 CI 包已验证三页切换、文件选择、取消保留草稿、设备别名/专属目录保存及正常退出。macOS 两种 DMG 的架构、签名和最低系统声明通过,精确 ARM CI payload 在实体 Mac 上启动并正常退出。物理测试机是 macOS 26.5;不宣称已经在 macOS 13 实机上运行。
Windows 包未代码签名;Mac 包仅 ad-hoc 签名、未公证。这不是正式稳定版,不设为 Latest。M2–M6 与六项完整原生工作流仍在开发验收中;既有 MASQUERADE-only 双 NAT CHECK_TIMEOUT 失败、IPv6/网络切换等未验收项保持原记录,relay=false。
升级前保留 profile 备份;新版任务库 schema3、trust schema1 不应由旧版直接打开。回滚应使用隔离备份,不回退部署后的新业务数据。
已知问题(发布后的 M2/M3 原生验收发现):M1 Windows 在活动任务退出确认中,自定义中文按钮受 Wails beta.18 的 Yes/No 实现限制,回调可能不生效;请等待任务结束再退出。后续阶段已改为原生 TaskDialog 并继续验证。保存退出的核心检查点仍通过独立 QUIC 测试,窗口按钮的原生结果单独记录。
LinkSend v0.4.0 (Test Prerelease)
LinkSend v0.4.0 test prerelease
v0.4.0 是协议 V1 上的测试预发布,不是稳定版或生产可用声明。相对 v0.3.0,本次发布重点改善首次配对、局域网发现、连续发送及时性和传输终态可靠性。
Changes
- 配对码改为可读的
ABCD-EFGH形式,10 分钟有效、单次使用;相同 Ed25519 身份可幂等重试,其他身份复用会被拒绝。 - 新增无效、过期、已使用和身份冲突错误码,以及基于服务端相对 TTL 的客户端倒计时。
- 新增签名 UDP 组播、每接口定向广播、受限单播和已知地址探测;不会扫描整个子网。
- LAN 控制通道强制 TLS 1.3 双向身份验证,并复用现有签名 ICE envelope、Pion ICE 和 QUIC 数据面。
- 附近陌生设备只有在发送方主动选择、接收方确认且传输完成后才会保存设备 pin。
- 认证 WSS 使用单后台读泵和连接复用;ICE 候选改为 trickle 交换,响应端提前注册 QUIC listener。
- 完成流程加入
confirmed_ack,并把 QUIC draining 移出用户可见完成路径,减少接收确认延迟。 - 修复纯 IP/DHCP 旧绑定、Windows EFS 原子替换、LAN envelope 未签名及连接终态过早关闭等问题。
- 接收端已验证字节统计改为 O(1),恢复位图按 8 块或 500ms checkpoint;恢复时仍重新哈希 staging。
- 桌面端显示附近设备、LAN/信令可用性、配对码倒计时和单地址发现兜底,并防止重复操作。
Security and data path
文件正文不会经过 HTTPS/WSS 信令、JavaScript IPC、对象存储或第三方中继。服务器只处理身份、配对、在线状态、会话和 ICE 候选。数据面使用固定设备身份的 TLS 1.3 QUIC,文件块和完整文件使用 BLAKE3 校验,接收内容在验证前保留于隔离 staging。
Known limitations
v0.4.0 仍为测试预发布。当前没有文件中继,UDP 被阻断或 NAT 映射/过滤不允许打洞时会失败;macOS 包仅 ad-hoc 签名且未公证,Windows 包未代码签名。公共 IPv6、物理网络切换/睡眠唤醒、更多 NAT 类型、完整安装卸载和全量原生交互仍未完成。发布不得把这些项目改写为 PASS。
Validation
- Windows 根模块普通测试、race、vet、
GOWORK=off和真实 loopback ICE/TLS 1.3/QUIC 摘要校验通过。 - Wails 桌面独立模块 verify/test/vet/build、前端 typecheck/lint/11 tests/build 和 Windows Wails/NSIS production package 通过;本地产物 FileVersion/ProductVersion 均为
0.4.0。 - 物理 Windows→Mac 的受限单播发现、mTLS 控制通道和停止后台接收后的并行准备/ICE/QUIC 精确诊断路径通过;新版原生确认弹窗完整人工点击仍未标记 PASS。
- 香港测试主站已部署
0.4.0,公网 health、schema 2、数据库完整性、短码 TTL、同身份幂等与其他身份复用拒绝通过。rendezvous 已迁移为独立 systemd service,Origin 证书真实续期、定时器和 443 复核通过。
Release assets
GitHub Actions 从发布 tag 的干净 checkout 生成并上传:
- Windows amd64 便携 ZIP(包含
LinkSend.exe和测试说明); - Windows amd64 NSIS 安装程序;
- macOS arm64 DMG;
- macOS amd64 DMG;
- 每个平台的
BUILD-INFO.txt和SHA256SUMS.txt。
Release 页面中的资产、哈希和 workflow 运行记录是分发证据;本地 .artifacts 中的 dirty snapshot 不得作为正式 Release 资产。
LinkSend v0.2.0 (Test Prerelease)
LinkSend v0.2.0 测试预发布
v0.2.0 是协议 V1 上的测试预发布版本,不代表生产可用或跨平台完整验收。源码和 tag 目标为 426d58b6ab62ab7213475007305c0a403955c00f;构建来自 main workflow run 34600609161。
本版变化
- 修复连接/session/generation 生命周期,完成、拒绝、失败或取消后可立即创建新连接。
- 修复接收端正常 QUIC code-0 关闭早于 stream FIN 时,发送端把已确认终态误报为失败的问题;非零关闭、reset 和 timeout 仍失败。
- 引入 schema 2 的任务快照、单调 revision、旧 attempt 防覆盖、损坏记录隔离及迁移前 v1 备份。
- 实现显式暂停、使用新 attempt/session/ICE 凭据的恢复、重启恢复和经过块哈希验证的缺块续传。
- 分开报告
history_persisted、restart_recovery_supported、byte_resume_supported,并区分实际发送、重传、验证、提交和双方确认字节。 - 增加多网卡优先级/排除、地址族与 base socket 诊断、ICE 时间线、STUN/信令计数;证据不足时继续报告
direct_unknown。 - 桌面端统一到 Wails 3
v3.0.0-beta.18,生成 1 service / 27 methods / 14 models,加入 revision 门控、暂停/恢复能力门控和正确的原生退出保护语义。
验证
- main core run 34600609146:PASS。
- main desktop run 34600609047:PASS。
- main Windows/macOS 双架构 packaging run 34600609161:PASS。
- Windows ZIP 内 EXE FileVersion/ProductVersion
0.2.0;原生窗口句柄、idleWM_CLOSE与 10 秒内 exit 0:PASS。 - macOS runner 的 DMG 挂载、bundle ID/版本、目标架构和 strict ad-hoc codesign:PASS;本 release 资产的物理 Mac 启动未运行。
- 香港测试主站运行产品
0.2.0/ 协议 V1,完成→立即完成与拒绝→立即完成:PASS。
恢复计数
- 12 MiB 无损坏恢复:实际发送/接收 12,582,912 bytes,重传 0,唯一验证/提交 12,582,912。
- 首个 4 MiB staging 块损坏:实际发送/接收 16,777,216 bytes,重传 4,194,304,唯一验证/提交仍为 12,582,912。
- 完整重启两个 Service 后恢复:8,388,608 bytes,重传 0,使用新的 attempt/session。
已知限制
- MASQUERADE-only 独立双 NAT 仍返回
CHECK_TIMEOUT,这是当前产品 FAIL;Relay/TURN 文件中继未实现,relay=false。 - 未完成物理网络切换/睡眠/全局 IPv6、committed macOS 原生启动、Intel Mac、完整 Windows/macOS 原生交互和物理双机恢复矩阵。
- Windows 安装器未执行安装/卸载冒烟。
- Windows 资产未签名;macOS 仅 ad-hoc 签名,无 Developer ID,未公证。
数据与回滚
任务数据库升级为 SQLite user_version=2。迁移前会创建 task-history.sqlite.schema-v1-<UTC>.bak;旧版本不能直接打开 schema 2。需要回滚时先退出所有 LinkSend 进程,再恢复 v1 备份。香港测试主站的备份和精确回滚步骤见仓库 docs/DEPLOY-HK.md。
请使用随 Release 提供的 SHA256SUMS-v0.2.0.txt 核对下载文件;BUILD-MANIFEST-v0.2.0.json 记录真实源码、workflow、工具、签名和原生验证边界。