Repository navigation
Linux Adaptation - #148
Closed
H3CoF6 wants to merge 731 commits into
Closed
Linux Adaptation#148H3CoF6 wants to merge 731 commits into
H3CoF6 wants to merge 731 commits into
Conversation
直接挂载已内置的 Certificate provider,不再从无 Profile 的子进程重复导入安全模块,修复托管 runner 的 FormatXmlUpdateException。 同步轮换打包验证策略哈希。
托管 Runner 中由 Node 启动的 Windows PowerShell 子进程可能没有 Certificate Provider,导致临时 Python 测试宿主无法签名。 改用 .NET X509Store 完成叶证书读取、issuer 临时缓存和信任存储检查,继续保留根证书 pin、非导出 CNG 私钥、RFC3161 与不安装信任根的约束,并更新策略哈希与回归断言。
移除托管 Runner 上临时签名 Python 和全量 pytest,改为 39 项 native 生命周期、设备凭据及实时强制策略测试。 生产 native artifact 仍在下载后校验签名、provenance 与 checksum,并由签名后的 unpacked runtime 校验和 packaged Electron smoke 覆盖真实 broker 链路。
将不稳定的通配符全量测试改为 67 项显式发布关键测试,覆盖生产制品 staging、manifest、Windows package smoke、私有 PKI 与 updater。 完整业务回归不再占用 Release Runner;真实生产链仍由安装包构建、签名校验和 packaged Electron/native smoke 阻断。
- 将经 native manifest 固定的公开根证书随 macOS 包发布,并在后端启动前完成用户域 codeSign 信任 - 区分不受信链与签名损坏,复核关键原生签名并将 macOS broker 首次冷启动预算延长到 60 秒 - 增加独立干净 Runner 消费端 smoke,避免构建机预置信任掩盖发布问题
- 无本地设置或设置文件损坏时保持自动获取原图关闭 - 前端开关初始状态与后端默认策略保持一致 - 保留用户主动开启或关闭后的持久选择并补充回归测试
- 将 Python 包、Electron 桌面端与锁文件版本统一更新为 2.0.1 - 以合法 SemVer 2.0.1 发布用户要求的 2.0.01 补丁版
消费新版 helper 的细分退出码,分别提示进程退出、系统拒绝附加、微信版本不支持、运行时不可用和会话中断。 仅在 helper 确认目标 PID 已退出时等待替代进程,避免将仍存活的微信误报为退出,并以日志中的复用 PID 场景增加回归测试。
接受 XKey schema v2 的本地进程策略,移除 AUTHORIZATION_UNAVAILABLE 在线错误以及 source-runtime 发布前的 SSH promotion 和 enrollment 探测。 保留精确 Producer 制品、签名、校验和、来源证明与 45 天构建期校验,使源码版和打包版在断网时均可进入本地密钥捕获。
将 Python 与 Electron 版本统一更新为 2.0.2。 固定新生成的离线 macOS 源码运行时及其精确摘要和失效时间。
- 从公开固定 Release 下载并校验 Windows native-core - 接通 Electron 缓存目录与 Python 后端入口 - 隔离源码版和打包版原生制品策略 - 增加 Windows 制品提升流水线、回归测试和源码运行说明
- 将提升任务绑定到输入对应的精确 Release 标签 - 保持生产环境仅允许受控标签而不开放 main - 发布前验证标签已经存在并补充流水线契约
- 解析 provenance 前移除 PowerShell 写入的 UTF-8 BOM - 使用带 BOM 的生产夹具覆盖公开提升流程
- 暂时降低预期 release not found 的 PowerShell 错误级别 - 保留已存在 Release 的不可变失败保护 - 增加 Windows PowerShell 行为回归契约
- 固定公开 Release 标签、归档摘要和运行时 manifest 摘要 - 绑定 Producer run 31239379177 的 45 天 source-public 制品 - 增加跟踪 pin 与公开下载地址回归测试
- Windows 源码入口拒绝打包版 production native-core - 验证拒绝发生在 Broker 启动之前
- 同步 Python 包、桌面应用和锁文件版本 - 为 v2.0.3 双平台发布固定一致版本号
- 移除检测流程中的中文标准输出,避免系统代码页中断业务逻辑 - 强制桌面后端管道使用 UTF-8,并记录完整异常堆栈 - 增加 cp950 当前账号与完整检测路由回归测试
同步 Python、Desktop 与锁文件版本,准备 Windows 和 macOS ARM64 发布。
- 恢复被上游历史重写冲掉的 theme-scope 深色层与 --setup-* 令牌, 引导链路/联系人/朋友圈/撤回/服务号等页重新支持深色 - SettingsDialog 新增「数据库与密钥」区,可查看并复制数据库/图片密钥 - MCP 接入文案去掉「手机」专属描述,改为通用设备/客户端 - 修复聊天「从第一条消息开始阅读」上下文横幅的深色对比 - README 移除 Windows/macOS 兼容性与迁移两节 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
取消 Python 原生客户端签封与验签的固定大小判断。 隐私导出检查沿用通用归档预算,不再单独限制为 8 MiB。 补充大清单签封、验签与 Windows 隐私导出回归。
固定 Windows 与 macOS 公共源码运行时的 Release 标签、归档摘要和 manifest 摘要。 绑定本次原生 Producer 产物,并更新公开下载回归。
同步 Python、Desktop 与锁文件版本,准备 Windows 和 macOS ARM64 发布。
_attach_original_messages 改用与聊天界面同源的查询:LEFT JOIN Name2Id 解析发送者,并携带 __my_rowid 子查询,让共享转换器能正确判定消息方向; 移除会把判定短路成 false 的 computed_is_send=0 哨兵。JOIN 查询失败时回退 到裸 SELECT * 以保证消息附着不回退。附带修复群聊收藏的发送者归属。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
打包(冻结)态不再产生 .env 写入路径——PyInstaller 后端本就不读它,写入 已签名的 .app 包会破坏 codesign 校验并让应用无法启动;打包脚本不再把 pyproject.toml 复制进后端产物(该文件曾被用来打穿"项目根"护栏),并清理 增量构建残留。签名封印被破坏时,启动失败提示会点名多出的文件并提示删除后 重开即可恢复。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
同步 Python、Desktop 与锁文件版本,准备 Windows 和 macOS ARM64 发布。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- 兼容 helper 新增的 attach 不支持与运行时失败错误码 - 避免已开启开发者工具时反复给出无效开关指引 - 补充错误码、失败输出及用户提示回归
- 同步 Python 与桌面应用版本号为 2.0.7 - 更新锁文件中的项目版本元数据
* fix(ai): 阻止本地检索进度事件无限增长 本地检索每次进度变化都会向 events 表追加一份约 216 KB 的完整任务快照, 且没有 unique_key、没有保留策略,任务运行期间以约 3 行/秒持续写入, 使 output/local_search/ai.sqlite3 增长到 144 GB。 - 进度事件改用 replace=True 原地替换,每个任务只保留最新一行;自增 id 仍 递增,依赖 Last-Event-ID 重连的 SSE 依然能收到最新进度。 - 提醒类通知保留 INSERT OR IGNORE 去重语义,重复 key 不会重置 delivered, 避免已确认的提醒被重新投递。 - 进度事件剔除可从 records 重建的大字段(config/coverage/segments/ read_starts),完整快照仍以 records 表为准;前端改为合并增量字段, 不再整体替换任务对象。 - 新增启动维护:折叠旧版遗留的重复快照、按 24 小时 TTL 回收事件、空闲页 超过 64 MB 时执行 VACUUM,并在后台线程对 summary 与 search 两个 AI 库 执行,避免大型遗留库拖慢启动;初始化不再同步建 events 索引,杜绝阻塞启动。 - 新增 tests/test_ai_storage_retention.py 覆盖原地替换、非 replace 去重、 遗留快照折叠、TTL 与 VACUUM;tests/test_ai_message_pages.py 同步更新断言。 * fix(ai): 自动重建已膨胀的 AI 事件库 升级前已膨胀的库只靠 TTL 回收会残留很久,直接删除重建又会丢失本地检索配置 (records 中的 active 索引指针),导致需要重新整理/重新向量化。 - 库超过 512 MB 时改为重建:把 records 与未投递提醒复制到新库, 丢弃可再生的 events;耗时与库体积无关。 - 先原子替换主库、成功后再清理旧 WAL/SHM;替换失败自动重试, 仍失败则保留原库并告警,应用照常运行,下次启动再试。 - 保留 sqlite_sequence,重建后事件 id 继续递增,SSE 不断档、前端无感。 - maintain() 在超大库上走重建分支,不再原地删除/VACUUM。 - tests/test_ai_storage_retention.py 增加超大库重建用例。
…ons (LifeArchiveProject#163) * fix(ai): maintain event stores during long-running sessions * ci: expand AI test globs on every runner * test: inspect emitted search progress payloads
…veProject#167) * fix(ai): avoid quadratic coverage counting during analysis * test(ai): keep SSE notification check ahead of heartbeat race Windows CI intermittently failed test_stream_waits_for_notification_ instead_of_polling...: the next frame after the event write was the ': heartbeat' comment, so parsing 'data: ' raised IndexError. A slow synchronous SQLite write can let the 30ms test heartbeat win the race; a heartbeat comment before an event frame is protocol-valid SSE, so keep production behavior and instead raise the heartbeat above the 0.5s assertion deadline for the notification check. A broken notification now fails with TimeoutError instead of passing on a heartbeat frame.
…ex/macos-source-runtime-auto-pin Refresh macOS source runtime automatically after releases
…ex/macos-source-runtime-auto-pin Use the WCDB integrity producer in macOS source promotion
…ex/macos-source-runtime-auto-pin Verify macOS source artifact in read-only mode
…-issue-166-offline-decryption fix: 离线解密恢复 WAL 并区分密钥认证与索引损坏
保留 main 新增的 refresh-macos-source-runtime,继续移除本分支删除的 qq-notify。
Linux 与 Windows / macOS 改走同一条原生组件路线:release 里 build-linux-x64 先跑 tools/rebuild_wcdb_release.py --component linux-native 现产一份 source-public 原生核心(不可变 Release + 资产摘要 + 45 天窗口核对), 再打包。因此 WCDA 侧不再需要任何 WCE_LINUX_* 仓库变量,也不再需要额外的 WCE_LINUX_PRODUCER_READ_TOKEN:复用发版已有的 WCE_NATIVE_CORE_PRODUCER_TOKEN。
Member
Author
|
洗历史了😋😋 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.