From b02c3f22e1b1fe394dd44cf1a5cb50bc8f809a4e Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Wed, 12 Aug 2026 21:59:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E6=9E=84=E5=BB=BA=E5=8F=91=E5=B8=83=E4=B8=BB?= =?UTF-8?q?=E5=88=86=E6=94=AF=E6=99=8B=E5=8D=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/20260811-package-win-a7c3.md | 53 ++++++++++ ...60812-promote-client-built-release-9e6c.md | 97 +++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 .project-docs/30-worklog/tasks/20260811-package-win-a7c3.md create mode 100644 .project-docs/30-worklog/tasks/20260812-promote-client-built-release-9e6c.md diff --git a/.project-docs/30-worklog/tasks/20260811-package-win-a7c3.md b/.project-docs/30-worklog/tasks/20260811-package-win-a7c3.md new file mode 100644 index 0000000..1fee0ee --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260811-package-win-a7c3.md @@ -0,0 +1,53 @@ +# Task: Build Makelore 1.0.0 Windows package + +## Identity + +- Task ID: 20260811-package-win-a7c3 +- Mode: Feature +- Branch: main +- Worktree: D:\Datas\OthersProjects\makelore +- Base commit: be9bc84474cd23aa3861c0cb059082785e72abf2 +- Owner: developer +- Status: Completed + +## Scope + +- 基于最新 `main` HEAD 构建 Windows x64 Electron 安装包。 +- 通过 electron-builder 的 `extraMetadata.version` 将安装包及包内版本固定为 `1.0.0`,不修改源码 `package.json` 版本。 +- 交付 `release/Makelore-1.0.0-win-x64.exe`,并完成运行时、原生模块、内置工具和 SHA256 校验。 + +## Intent And Constraints + +- 保留内部 `niancode` 兼容标识及现有 Makelore 打包边界。 +- 不恢复发布/上传工作台,不修改产品代码或共享 canonical 文档;仅生成本地构建产物与本任务记录。 +- 使用仓库锁定的 pnpm 版本;若外部运行时下载不可用,必须验证并复用同版本的本地运行时,不能静默交付未验证文件。 + +## Plan + +1. 核对源码版本、当前提交和 Windows 打包前置运行时。 +2. 执行 Renderer/Main/Preload 编译与 Windows x64 打包,覆盖安装包版本为 `1.0.0`。 +3. 校验安装包内部版本、Electron/Node、Python/uv/OpenCode、原生模块、Unicode 路径和 SHA256。 + +## Outcome + +- 已基于最新 `main` HEAD `3a80625fe2fb74ab4e0a883188a52eade8cd23b9` 完成 Windows x64 安装器重建。 +- 源码 `package.json` 版本为 `2.0.0`;通过 electron-builder `extraMetadata.version=1.0.0` 生成并确认包内版本为 `1.0.0`,未改动源码版本。 +- 交付产物为 `release/Makelore-1.0.0-win-x64.exe`。 +- 复用已验证的本地 `uv 0.10.0` x64 运行时,避免外部下载波动。 + +## Verification + +- `pnpm run package:stage:win-x64`:通过。 +- `node scripts/run-electron-builder.mjs --win --publish never --config.extraMetadata.version=1.0.0`:通过。 +- `pnpm run verify:artifact:win -- --allow-dirty --installer .\\release\\Makelore-1.0.0-win-x64.exe`:通过。 +- 包内版本:`1.0.0`;Electron:`40.10.6`;Node:`24.15.0`;OpenCode:`1.18.9`;uv:`0.10.0`。 +- 原生模块、Python/uv/OpenCode/Playwright MCP、Unicode 路径校验均通过。 +- 安装器大小:`219861126` bytes(约 `209.68 MiB`);SHA256:`10785C90A3C7D45DCDF26DC9C81171DE3914D673B441EE33EB2E36575A2888CB`;签名状态:`NotSigned`。 + +## Follow-ups + +- 如需正式分发,后续应配置并验证 Windows Authenticode 签名。 + +## Promotion Candidates + +- None recorded;本任务仅生成本地构建产物,不改变产品行为或 canonical 项目记忆。 diff --git a/.project-docs/30-worklog/tasks/20260812-promote-client-built-release-9e6c.md b/.project-docs/30-worklog/tasks/20260812-promote-client-built-release-9e6c.md new file mode 100644 index 0000000..0677d05 --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260812-promote-client-built-release-9e6c.md @@ -0,0 +1,97 @@ +# Task: 合并客户端本地构建发布到主分支 + +## Identity + +- Task ID: 20260812-promote-client-built-release-9e6c +- Mode: Integration +- Branch: main +- Worktree: D:\Datas\OthersProjects\makelore +- Base commit: 3a80625fe2fb74ab4e0a883188a52eade8cd23b9 +- Owner: codex +- Status: Completed + +## Scope + +- 将 `main` 从 `3a80625fe2fb74ab4e0a883188a52eade8cd23b9` 以 + `--ff-only` 晋升到已通过跨仓终审的 + `6e822ccf7c349352aa7cb511845fbbbfc222eb30`。 +- 原样保留已完结 Windows 1.0.0 打包任务记录 + `20260811-package-win-a7c3.md`,并将其与本晋升记录纳入主分支。 +- 不 push、不发布安装器、不执行线上 Works Square/OSS/CDN 变更。 + +## Intent And Constraints + +- 用户已明确授权“全部合并到主分支”,该确认用于释放原 owner 并通过 + `--adopt-existing` 接管已知、仅含打包 task record 的主工作树。 +- 只允许 fast-forward,不 rebase/reset/stash,不删除或改写旧打包记录。 +- 目标必须包含当前 `main` 且不得包含同路径旧打包记录;现有 untracked 文件的 + SHA-256 必须保持 `96721E45B528C50B1073CD58F5D138DD38EECB3A1603C76B5156A4CA49545795`。 +- 本地通过不代表生产部署或安装器发布;相关 commitments 保持 Pending。 + +## Project Context Loaded + +Read: +- `.project-docs/05-agent-entry/read-before-planning.md` +- `.project-docs/05-agent-entry/memory-index.md` +- this active task record +- `.project-docs/00-brief/project-positioning.md` +- `.project-docs/30-worklog/current-state.md` +- `.project-docs/10-decisions/decision-index.md` +- `.project-docs/20-architecture/system-overview.md` +- source and integration task records for client-built Release +- `.project-docs/80-commitments/commitments.md` +- `.project-docs/90-maintenance/stale-items.md` +- adopted Windows package task record + +Relevant understanding: +- Project goal: 为非专业用户提供 Main-owned、无需 Docker/手工 ZIP 的静态作品发布链。 +- Current focus: Main 本地 npm/Vite 构建、同字节 Electron UX 预检、双归档上传和服务端固化。 +- Active constraints: Renderer 不接触路径/归档/origin/凭据;客户端预检不是可信 receipt;Vite config/plugins 以桌面用户权限执行。 +- Decisions affecting this task: 用户已确认架构反转、全部合并和已知工作树 ownership transfer。 +- Evidence/commitments: 129 项客户端聚焦测试、typecheck/lint/runtime verifier、真实 Electron E2E 和安装器实物验证已通过;生产整链仍 Pending。 +- Files likely involved: Git ref、本 promotion task record 和已知 package task record;不新增生产代码编辑。 +- Unknowns/conflicts: 旧 1.0.0 package record 与新 2.0.0 本地证据用途不同,无语义覆盖;真实生产未验证。 + +Gate result: +- Passed. + +## Plan + +1. 再验工作树、旧记录摘要与 `main -> target` fast-forward 图。 +2. 执行 `git merge --ff-only`,确认目标生产代码和 canonical facts 已进入 `main`。 +3. 提交原 package record 和本 promotion record,按 post-merge rollover 模式完成 drift 门禁。 +4. Complete/release ownership;不 push、不发布。 + +## Outcome + +- `main` 已通过 `git merge --ff-only` 从 + `3a80625fe2fb74ab4e0a883188a52eade8cd23b9` 前进到 + `6e822ccf7c349352aa7cb511845fbbbfc222eb30`。 +- Main-owned 固定 npm/lockfile Vite 本地构建、同字节内存 snapshot Electron 预检、 + source+built+contract 双归档上传、错误投影及 packaged npm runtime 已进入主分支。 +- 原 Windows 1.0.0 打包任务记录原样保留,摘要未变;它只记录旧本地构建证据, + 不覆盖新集成记录中的 2.0.0 安装器证据与未发布状态。 +- 未 push,未上传/发布安装器,未改生产服务或外部系统。 + +## Verification + +- 合并前 `git rev-list --left-right --count HEAD...6e822cc...` 为 `0 2`,且 + `git merge-base --is-ancestor HEAD 6e822cc...` 成功。 +- 旧 package record SHA-256 在接管与合并前保持 + `96721E45B528C50B1073CD58F5D138DD38EECB3A1603C76B5156A4CA49545795`; + target 不含同路径文件,因此 fast-forward 未覆盖它。 +- `git merge --ff-only 6e822cc...` 成功;合并后 `HEAD` 精确为目标 SHA。 +- 目标在晋升前已通过跨仓 Sol 终审:Standards PASS、Spec PASS、`P0=0/P1=0`; + 客户端 6 files / 129 tests、typecheck、scoped lint、publish runtime verifier 和 + packaged installer verifier 均通过。 +- 原 task-aware drift 将按快进前 base 把目标生产文件/source records 视为 foreign; + 本记录和 package record 提交后,按既有 post-merge rollover 模式从新 base 完成门禁。 + +## Follow-ups + +- 保持真实 Works Square source+built 协议、OSS/CDN/运营/App 整链验收 Pending。 +- 正式发布安装器前继续运行 `verify:publish-runtime` 与 `verify:artifact:win`;本次不发布。 + +## Promotion Candidates + +- None recorded.