为 macOS 伴侣适配完整导出档案,保留原件与档案隔离 - #4
Conversation
|
@LiuHangyuWE is attempting to deploy a commit to the wanggchn-9639's projects Team on Vercel. A member of the Team first needs to authorize it. |
合并 PR #4 时 build.py 的 VIEWER_SHA256 仍钉在 v6.0 发布点 cf82967a, 而 main 的 claude_viewer.html 已是 ec909e33(16e7450 修了上传页文案换行)。 不升锁则 build.py 会在校验处直接抛 ValueError,合并当天就构建不出 App。 v6.0 → main 之间 claude_viewer.html 只改了 4 行,全部是 CSS 与上传页文案, 无任何 JS 改动;适配器覆盖的 18 个上游标识符与引用的 DOM id 全部仍然存在。 已按新锁重跑验证,全部通过: - macos/tests/run.py ArchiveStore 全项 + 构建边界 - macos/tests/adapter.test.cjs 10/10 - macos/tests/run_webview.py 42 断言 / 25 次 scheme 读取 / 35 次原生调用 - build.py --arch arm64 3.4 MB,codesign --verify --deep --strict 通过 同时更新 macos/README.md:伴侣已并入主仓,不再是「尚未被上游接收」; 按贡献指南第五节补上当前锁定的上游版本、实测环境,以及明确未验证的范围 (Intel Mac、其他 macOS 版本、多分片导出)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KxxVndwvxaziBQ5ikJuiTn
|
已合并到 先说结论:Mac 伴侣同仓收下了,而且我把贡献指南改了。 一、组织方式:不是例外,是把规则改了你在 #3 问「是否愿意讨论把这种可选 Mac 外壳作为同仓的例外」。我不想用「例外」的方式处理——例外没有边界,下一个平台来了还得再吵一次。所以直接改了 底线 2 原文是「重型能力只能做成可选伴侣,不进主仓」,与收下 新增了「五、可选平台伴侣」,把三条以后容易扯皮的写死:
我的主力开发机是 Windows,跑不了 关于你说的「允许平台支持逐步补齐,不必把两端同时完成作为 Mac 版可用的前提」——同意,采纳了。Windows 版等有人来做,不做 Mac 版的前置条件。 二、合并时我改了什么1. 你钉的是 v6.0 发布点, 但你不必 rebase 重做适配——v6.0 → 2. 3. 双语 README — 各加一节「可选:macOS 桌面伴侣」,开头第一句就是「不需要它也能用」,并列清边界:需自行构建、仅 Apple Silicon 实测、本地 ad-hoc 签名未经公证、Intel Mac 与 Windows 未验证。致谢段也加上了。 4. 三、实测结果MacBook Air / Apple Silicon (arm64) / macOS 26.6.2 / Python 3.13.13 / Node 26.5.0,用真实的新版分片导出(manifest + 5 个分类 ZIP,2026-09-09):
最后一条我特别验了,因为它是产品底线。另外静态复查:bundle 内 CSP 是 两点确认给你:
四、三条建议A.
|
|
补一条后续:合并之后又加了两样东西,都跟 一、给 Mac 伴侣加了 CI
起因是我在 #3 里说过的那句「我的主力开发机是 Windows,连构建都跑不了,收进主仓的话往后每次改 关键设计:版本锁过期【不算失败】这条是给你的保障,不是限制,所以专门说明一下。
所以分成两档:
锁过期时仍然跑
或者:
对你的实际意义:你不用追着我的发版跑。 我改了东西之后,是"只需升锁"还是"真把适配器搞坏了",commit 旁边就写着,你不必自己开机验一遍才知道要不要动手。 一个可能对你有用的实测结果
它替代不了什么CI 只能验"能不能构建、测试过不过"。真实数据的 GUI 验证——导入、切档案、取出原件、⌘Q 保存——仍然只能在真机上人工做。 另外这也不能取代我上一条里的建议 A。CI 在锁一致时能全面把关,锁过期时只剩 二、改了
|
新版 Claude 导出由 manifest 与多个分类 ZIP 组成,旧 Mac 实现把每个 ZIP 当成独立档案,无法完整读取一次导出。本次将可选 Mac 伴侣的存储单位调整为整份导出目录:同次导出的原件共同保存、读取和取出,不同导出各自拥有聊天查看状态、收藏和标签;旧版单 ZIP 档案保持兼容。
网页核心保持官方 v6.0 原样,构建 App 时通过独立适配器连接本机文件存储,复用现有解析与渲染。App 将原件保存在 Application Support 的普通目录中,支持显式导入、发现手动放入的独立目录、Finder 访问、原样取出和移至废纸篓。构建脚本固定已验证的上游文件版本,源码与 App 产物分开,不包含私人数据。
验证包含原生文件与迁移测试、10 项 JavaScript 回归测试、真实 WKWebView 的 42 项集成断言,以及 Apple Silicon 构建、签名和既有旧格式档案实际打开检查。新版多 ZIP 验证使用合成数据;尚未验证 Intel Mac、Windows 或用户的真实新版导出。本次范围仅为 macOS 伴侣。
这是 #3 后续单独整理的 macOS 伴侣提案。是否将可选 Mac 外壳放进主仓仍在讨论中,因此先以草稿提供完整源码供审阅。当前分支固定在已验证的 v6.0;主分支后续更新会触发构建脚本的兼容性校验,合入前需要对齐目标版本并重新验证。