109 lines
8.3 KiB
Markdown
109 lines
8.3 KiB
Markdown
# Task: 集成客户端静态发布链路收敛
|
||
|
||
## Identity
|
||
|
||
- Task ID: 20260810-integrate-static-release-client-7b4d
|
||
- Mode: Integration
|
||
- Branch: codex/20260810-integrate-static-release-client-7b4d-integrate-static-release-client
|
||
- Worktree: D:\Datas\OthersProjects\makelore-integrate-static-release-client-7b4d
|
||
- Base commit: 8dd99c1855b4e29b9af8088011785d6524404fb2
|
||
- Owner: codex
|
||
- Status: Completed
|
||
|
||
## Scope
|
||
|
||
- 对已经进入本集成分支的客户端静态发布提交 `4df0477`、安全补强提交 `8dd99c1` 执行正式 Integration Gate。
|
||
- 将源任务 `20260810-static-release-only-a91c` 中经用户确认、已由回归验证且会影响后续维护的发布边界晋升到 canonical 项目记忆。
|
||
- 只更新 canonical `.project-docs` 与本集成任务记录;不修改已验证生产代码,不合并或推送 `main`。
|
||
|
||
## Intent And Constraints
|
||
|
||
- 创建者唯一发布路径是项目配置一键提交 → Main 安全打包 → 服务端版本上传 → 客户端轮询云构建;不得恢复 Compose/deploy-check、watcher/arm/upload、手工 ZIP 或独立部署工作台。
|
||
- submission binding v2 只持久化成功提交;旧 `submitted` 绑定保留,旧中间/失败态迁移为 `legacy_retired`,兼容文件名不等于仍有 cloud deployment coordinator。
|
||
- 已发布作品优先使用安全投影后的 `play_url`,`runtime_url` 仅保留一个客户端版本;不可信 URL 必须 fail closed。
|
||
- 发布路由必须在读取凭据、项目文件或开始打包前要求 Renderer capability;Host token/base 不足以绕过 UI。
|
||
- 云端上传成功后的本机绑定失败只能产生安全 `binding_warning`,不能反转提交,Renderer 必须继续轮询。
|
||
- 不把客户端本地/Electron 验证写成真实 Builder、OSS/CDN、运营发布或 App 播放整链已经完成。
|
||
|
||
## Project Context Loaded
|
||
|
||
Task context:
|
||
- Task ID: `20260810-integrate-static-release-client-7b4d`
|
||
- Mode: Integration
|
||
- Branch: `codex/20260810-integrate-static-release-client-7b4d-integrate-static-release-client`
|
||
- Worktree: `D:\Datas\OthersProjects\makelore-integrate-static-release-client-7b4d`
|
||
- Base commit: `8dd99c1855b4e29b9af8088011785d6524404fb2`
|
||
- Other active local tasks: `20260807-makelore-release-client-8c4e`、`20260807-client-login-sliding-7d2a`、源任务 `20260810-static-release-only-a91c`、`20260809-cloud-build-diag-client-4a7c`、`20260806-design-multisession-ui-4e7d`、`20260806-design-enter-send-b83f`。
|
||
- Overlap or semantic-conflict assessment: 无语义冲突;旧一键发布任务与本次唯一入口/Main-owned 边界一致,构建诊断只记录上游证据,登录和 AI 设计任务不改变静态发布领域语义。
|
||
|
||
Read:
|
||
- `.project-docs/05-agent-entry/memory-index.md`
|
||
- `.project-docs/05-agent-entry/integration-gate.md`
|
||
- `.project-docs/00-brief/project-positioning.md`
|
||
- `.project-docs/00-brief/success-criteria.md`
|
||
- `.project-docs/30-worklog/current-state.md`
|
||
- `.project-docs/30-worklog/task-history.md`
|
||
- `.project-docs/10-decisions/decision-index.md`
|
||
- `.project-docs/20-architecture/system-overview.md`
|
||
- `.project-docs/20-architecture/module-map.md`
|
||
- `.project-docs/20-architecture/data-flow.md`
|
||
- `.project-docs/40-domain/business-rules.md`
|
||
- `.project-docs/40-domain/glossary.md`
|
||
- `.project-docs/50-evidence/evidence-index.md`
|
||
- `.project-docs/60-reflection/reflection-index.md`
|
||
- `.project-docs/60-reflection/skill-candidates.md`
|
||
- `.project-docs/80-commitments/commitments.md`
|
||
- `.project-docs/90-maintenance/stale-items.md`
|
||
- `.project-docs/90-maintenance/doc-update-policy.md`
|
||
- 源任务与全部活跃 peer 的任务记录。
|
||
|
||
Relevant understanding:
|
||
- Project goal: 为非专业用户提供项目配置中的一键提交审核链路,由 Main 持有文件、凭据、安全打包和网络访问。
|
||
- Current integrated focus: 小游戏/小程序进入单一提交与项目级真机预览;服务端 OSS/CDN 和生产整链仍未验收。
|
||
- Active task scope: 只晋升客户端静态发布唯一化和相应安全/迁移边界。
|
||
- Active constraints: 不改生产代码;不恢复旧协调链;不泄漏敏感信息;不虚构真实生产部署结论。
|
||
- Decisions affecting this task: 用户已明确确认 Builder → OSS immutable Release → CDN/Edge → App 方向,并要求客户端一步到位移除旧 runner/runtime-cleaner 协调语义;无相反 accepted ADR。
|
||
- Evidence, reflections, or commitments affecting this task: 源任务记录 227 项聚焦回归、typecheck、Vite/Electron build、实际 Electron E2E 和 E2E 收集;真实账号生产整链仍为明确 follow-up。
|
||
- Files or modules likely involved: `current-state.md`、architecture、domain、evidence、commitments、stale-items、task-history 与本任务记录。
|
||
- Unknowns, stale docs, or conflicts: `project-positioning.md`、`success-criteria.md` 仍为模板占位但不影响本次局部晋升;真实 Builder/OSS/CDN/运营/App 环境未验证。
|
||
|
||
Gate result:
|
||
- Passed
|
||
|
||
## Plan
|
||
|
||
1. 以 `4df0477`、`8dd99c1` 和源任务 Outcome/Verification/Promotion Candidates 为证据,筛选最小长期事实。
|
||
2. 更新当前状态、架构/数据流、领域规则/术语、任务历史、证据、承诺和缺失上下文;不创建无必要 ADR,不修改产品代码。
|
||
3. 运行文档结构与 task-aware drift 检查,并复跑静态发布关键门禁、typecheck、Vite/Electron build 和 E2E 收集。
|
||
4. 完成本集成任务记录并提交中文 integration commit,保持独立分支等待 root 最终 fast-forward。
|
||
|
||
## Outcome
|
||
|
||
- 已在 `current-state.md` 登记源提交 `4df0477` / `8dd99c1`,并把当前客户端发布焦点更新为项目配置一键提交、Main 打包上传、云构建轮询与运营审核;真实 OSS/CDN/App 生产链继续保持未完成状态。
|
||
- 已在系统概览、模块图和数据流固定唯一静态发布路径、submission binding v2、旧状态 `legacy_retired`、Renderer capability、`binding_warning` 以及 `play_url`/`runtime_url` 迁移边界。
|
||
- 已在领域规则和术语表明确旧 Compose/deploy-check/watcher/arm/upload/手工 ZIP 入口不得恢复,兼容文件名不代表自动部署协调器仍存在。
|
||
- 已将源任务验证加入证据索引,将真实生产整链和后续删除 `runtime_url` 记录为共享承诺,并在 stale items 明确客户端本地验证不能替代生产部署结论。
|
||
- 未创建 ADR:本次晋升落实用户已确认且与现有单入口/Main-owned 边界一致的实现事实,没有反转 accepted decision 或改变产品方向。
|
||
|
||
## Verification
|
||
|
||
- `git merge-base --is-ancestor`:`4df047708b40011a2c68dbfaa23ac214360e481e` 与 `8dd99c1855b4e29b9af8088011785d6524404fb2` 均已进入当前集成基线。
|
||
- `check_project_docs.py --target .`:通过。
|
||
- `check_doc_drift.py --target . --task-id 20260810-integrate-static-release-client-7b4d`:通过,canonical 写入符合 integration ownership 边界。
|
||
- `pnpm exec vitest run tests/unit/works-play-url.test.ts tests/unit/works-submission-binding.test.ts tests/unit/device-preview-routes.test.ts tests/unit/project-progress-sync.test.ts tests/unit/works-routes.test.ts tests/unit/works-square.test.ts tests/unit/project-publish-action.test.tsx tests/unit/works-project-publish.test.ts tests/unit/project-packager.test.ts tests/unit/opencode-routes.test.ts`:10 files / 227 tests passed。
|
||
- `pnpm run typecheck`:通过。
|
||
- `pnpm run build:vite`:Renderer、Electron Main、Preload 均构建成功;仅有仓库既有 chunk-size 提示。
|
||
- `pnpm exec playwright test --list --reporter=line`:成功收集 13 个 Electron E2E 文件、21 条用例;实际 Electron 一键入口用例沿用源任务已通过证据。
|
||
- `git diff --check`:通过;仅有 Windows 工作区的 LF/CRLF 提示。
|
||
- 变更路径复核:除本 integration task record 外全部位于 canonical `.project-docs`,未修改任何生产代码、测试、README 或构建配置。
|
||
|
||
## Follow-ups
|
||
|
||
- 完成服务端 Builder、OSS immutable Release、CDN/Edge 与 App 消费链成组集成后,执行真实小游戏和小程序生产整链验收。
|
||
- 一个客户端兼容版本结束且服务端/存量数据稳定提供 `play_url` 后,删除 `runtime_url` 类型、读取回退和测试。
|
||
- 仓库级 lint 的既有错误继续由独立维护任务处理,避免混入本次文档集成。
|
||
|
||
## Promotion Candidates
|
||
|
||
- None;本次已完成源任务中经确认且适用于客户端的 canonical 晋升。
|