docs: record automatic game resource delivery

This commit is contained in:
2026-09-06 09:56:47 +08:00
parent 4df4bc9624
commit 5c61110f46
10 changed files with 141 additions and 14 deletions

View File

@@ -4,6 +4,24 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Automatic Game Resource delivery source
`6113a2453299141eab8420a56e93675712dd607b` from task
`20260906-game-resource-auto-delivery-7a4e2c91` is integrated onto local `main`
as product commit `4df4bc96245c01cd95e35ddf1b2b03d0e0d231c5` by task
`20260906-game-resource-auto-delivery-integration-8c4e1a72`. One confirmed
`game_resource_generate` call is now a Main-owned submit-and-deliver operation:
Main submits once, polls the accepted execution internally, downloads every terminal
output, and saves the files under the frozen original project at
`assets/generated/game-resource/<executionId>/`. Provider execution, billing, and
local delivery remain separate states. A durable user-data receipt resumes only the
local download/save phase after an interruption, so it cannot create a second
Provider submission or Token Point charge. The shared project write lease is held
only while terminal outputs are materialized, and the Agent-visible status/save tools
and second save confirmation are removed. Source verification passed 99 focused
tests, the 1,901-test full unit suite with 2 skips plus pressure, typecheck, lint with
0 errors/5 unchanged warnings, all Vite targets, 8 Electron tests, the unified Plugin
E2E journey, and Windows x64 runtime staging. No live paid Provider generation,
client installation, deployment, publication, or push is claimed.
- Official project-wide Plugin activation source
`718783f6837e29f56c9add633596249c03e5701f` from task
`20260905-official-plugin-project-scope-6e4a9c21` is integrated onto local `main`
@@ -677,7 +695,7 @@ Canvas 侧栏提供“获取灵感”进入 Prompt Museum。列表、筛选、
Makelore 在会话恢复、登录和刷新后由 Electron Main 请求 Works `/api/auth/me`,Renderer 只获得 Code、Canvas、Learning、Robot 四个布尔权限。缺失 `module_access` 或任一字段时默认开启;服务端 `design` 显式映射客户端 `painting`。被关闭的模块卡片置灰且不可点击,根路由、深层路由和别名路由均在 `MainLayout` 或模块初始化前阻断。Code provider 等待认证权限加载完成;权限查询返回终止性 `401` 时同时清理 Main 和 Renderer 会话。`/settings` 是全局设置,不受 Code 入口策略阻断。该机制只是客户端入口策略,不代替服务端 API 授权。
插件在编程侧栏只有一个“插件”入口,`/plugins` 是唯一产品页面,并以统一列表投影 Marketplace、账号 Library、官方设备状态、本机 Device Packages、当前项目状态与 retained IDs;旧 `/plugin-marketplace`、`/my-plugins` 与 `/project-plugins` 路由只做确定性筛选重定向。获取、设备安装、项目启用、Agent Skill 分配、运行授权和计费仍是独立生命周期,不因界面统一而自动推进;原生 selected-model Web Search 不进入插件列表。
插件在编程侧栏只有一个“插件”入口,`/plugins` 是唯一产品页面,并以统一列表投影 Marketplace、账号 Library、官方设备状态、本机 Device Packages、当前项目状态与 retained IDs;旧 `/plugin-marketplace`、`/my-plugins` 与 `/project-plugins` 路由只做确定性筛选重定向。获取、设备安装、项目启用、Agent Skill 分配、运行授权和计费仍是独立生命周期,不因界面统一而自动推进;原生 selected-model Web Search 不进入插件列表。Game Resource 在一次计费确认后由 Main 提交一次并内部轮询,终态全部输出自动写入调用时冻结的原项目;Agent 不再轮询状态、选择保存路径或进行第二次保存确认,交付恢复也不得重新生成或重复计费。
AI 学习现在是已启用的运营精选项目目录,并继续受登录和 `module_access.learning` 控制。Renderer 通过 Main-owned Host API 获取分页项目卡片和 README 详情;Markdown 支持 GFM、禁用原始 HTML。服务端发布时只校验图片 URL 为无凭据、默认端口、无 fragment 且当前 DNS 结果全部为公网地址的 HTTPS URL,保留地址而不下载、识别格式、转码或镜像;客户端仅为 README 图片节点启用直连,因此 SVG 和 Electron 支持的其他格式可直接显示,单图失败不阻断详情。封面和历史发布媒体继续走受控路径。详情页的下载按钮打开系统保存对话框;Main 将 ZIP 流式写入临时文件,只允许最多五跳同 Works origin 重定向,不校验 `Content-Length`、`archiveBytes`、实际流字节数或客户端大小上限,校验 SHA-256 和 ZIP 签名后原子保存,Renderer 只接收 `saved` 或 `cancelled`。课程生成、进度、本地课程库、OpenMAIC player、Agent、ASR、课堂 runtime、Learning IPC 和 player artifact 打包已删除且没有兼容读取路径;历史课程数据保留但不再读取。服务端和客户端源码契约已完成,不代表生产部署或真实账号安装包联调已经完成。

View File

@@ -0,0 +1,96 @@
# Task: Integrate automatic Game Resource delivery
## Identity
- Task ID: 20260906-game-resource-auto-delivery-integration-8c4e1a72
- Mode: Integration
- Branch: codex/20260906-game-resource-auto-delivery-integration-8c4e1a72-game-resource-auto-delivery-integration
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260906-game-resource-auto-delivery-integration-8c4e1a72
- Base commit: f721966f3c8db982279e34033b94b4347f0a8174
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate source commit `6113a2453299141eab8420a56e93675712dd607b`
from feature task `20260906-game-resource-auto-delivery-7a4e2c91` onto the
current local `main` frontier.
- Preserve the source product and test patch unchanged, reconcile its promotion
candidates into canonical project memory, and verify the resulting integrated
tree at the affected Game Resource/Main/Pi/Plugin boundaries.
- Advance only local `main`; do not push, publish, deploy, install a client, or
execute a paid Provider generation.
## Intent And Constraints
- The accepted product behavior is one confirmed Game Resource operation owned by
Electron Main: submit once, poll internally, save every output into the frozen
original project, and resume local delivery without a second Provider submission
or Token Point charge.
- Provider execution and local delivery remain separate states. Electron Main keeps
filesystem, Works credentials, Provider, billing, retry, receipt, and write-lease
authority; Renderer, Pi, Skill, and model gain none of those authorities.
- Preserve ADR-006's single Pi runtime, frozen parent worker, no-replay mutation,
background ownership, and shared project-write-lease rules, plus ADR-008's
project-wide Game Resource activation and child-empty behavior.
- Apply the source with `git cherry-pick --no-commit`, register its task record as
an unchanged adopted foreign document before committing, and never edit the source
task record in this Integration task.
- The user root worktree has three pre-existing untracked task records. They remain
unowned and untouched; all integration work stays in this isolated worktree.
- Concurrent Task Gate: Passed. The exact integration task identity, branch,
worktree, base, and exclusive integration lock match task-context state.
- Planning Gate: Passed after reading the required project memory, ADR-006, ADR-008,
the source task outcome and promotion candidate, the relevant reflection, and all
planning peer scopes. Historical placeholder peer scopes are unknown coordination
state but provide no evidenced semantic conflict with this exact source integration.
## Outcome
- Integrated source `6113a2453299141eab8420a56e93675712dd607b` as
product commit `4df4bc96245c01cd95e35ddf1b2b03d0e0d231c5`; both commits
resolve to tree `de2d63d6be23ca018742d3e7cbb2322a32014e3c`.
- The accepted one-confirmation flow is present on the integrated tree: Electron Main
submits generation once, polls internally, downloads all terminal outputs, writes
deterministic create-only files beneath the frozen original project, and persists
delivery state outside the project so local recovery cannot submit or charge again.
- One shared project write-lease coordinator is used by Pi writes and Game Resource
materialization; the delivery coordinator holds it only for the terminal write/change
tracking phase. The generated Pi bridge is version 6 and emits one progress/result
card. Agent-facing status and save tools plus the second save confirmation are absent.
- Promoted the source task's durable decision into ADR-008, current state, system
overview, module map, data flow, business rules, success criteria, and evidence.
The adopted source task record remains byte-for-byte unchanged.
- No server, Provider, Marketplace policy, price, Admission, or billing contract changed.
No live paid Provider request, build installation, deployment, publication, push, or
remote main mutation was performed.
## Verification
- Before the product commit, the adopted foreign task record matched the source worktree
byte-for-byte (`7,672` bytes), and `git diff --cached --check` passed.
- Source/product tree equality passed with exact tree
`de2d63d6be23ca018742d3e7cbb2322a32014e3c`.
- Integrated-tree focused regression: 14 files / 101 tests passed, covering the delivery
coordinator, client/adapter, Registry/manifest, Pi extension/release/product seams,
composition, artifact projection, and conversation timeline.
- Integrated-tree `corepack pnpm run typecheck` passed.
- Adopted source evidence remains valid for the identical product tree: 13 files / 99
focused tests; 227 files / 1,901 full unit tests / 2 skips plus pressure 1/1; lint with
0 errors / 5 unchanged warnings; all Vite targets; Windows Electron 8/8; unified Plugin
E2E 3/3; and Windows x64 Pi runtime staging.
- Dependency restoration used the committed lockfile in offline, frozen,
`--ignore-scripts` mode and changed no tracked product file.
- Final project-document, drift, task-context, diff, clean-tree, exact-root-untracked-file,
local-main fast-forward, and task-retirement checks are completed at closeout.
## Follow-ups
- Rebuild and install MakeLore from the new local `main`, then run one explicitly
authorized live Game Resource generation to confirm the progress card and all output
files in a real project. The current integration intentionally does not incur a paid
Provider call or replace the installed client.
## Promotion Candidates
- Promoted in this Integration Gate; no unresolved candidate remains.