docs: reconcile interactive AI app scaffold boundary
This commit is contained in:
@@ -4,6 +4,24 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- Interactive AI application and explicit scaffold source `959b633` is integrated
|
||||
through merge `4bc3e0ea5331a7d3f3576768c0119c02c0f0f952` and canonically reconciled by
|
||||
task `20260904-reconcile-project-scaffold-f7b4d2a9`. New projects use one
|
||||
`interactive_ai_app` / “交互式 AI 应用” type or `custom`; historical `mini_game`
|
||||
and `mini_program` values normalize at the read boundary without a batch rewrite.
|
||||
Project creation owns only `.makelore/project.json` and `knowledge/`. The independent
|
||||
`makelore-project-scaffold` Device Package provides an explicit, non-overwriting,
|
||||
fixed six-file Vite starter and read-only publication-readiness guidance; it does not
|
||||
install, build, upload, submit, or approve. Non-empty Skill `scripts/` are now disclosed
|
||||
as desktop-user executable code and use the non-overridable application Node exposed as
|
||||
`MAKELORE_NODE_EXECUTABLE`. Main and Works Square retain build, preflight, artifact,
|
||||
upload, immutable Release, and review authority. Exact integration verification passed
|
||||
the 12-test scaffold suite, 123 focused Vitest tests, typecheck, scoped ESLint, and the
|
||||
Renderer/Main/Preload/utility Vite build. Source evidence additionally includes the
|
||||
project-configuration Electron flow, real scaffold-to-locked-Vite build, plugin/Skill
|
||||
validation, and installed Device Package prepare→confirm→commit/resource reads. Immutable
|
||||
distribution plus installed Windows, signed macOS, and native Linux proof remain pending;
|
||||
no plugin publication, production upload, approval, or remote push is claimed.
|
||||
- AI Design streamed-reply diagnosis
|
||||
`229b1b1ce39b7f1541a93ea3c980ab82b6d6266c` and client fix
|
||||
`23f96a523eb37d8397bb3766ce95a59d56e59225` from tasks
|
||||
@@ -587,7 +605,7 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Current Focus
|
||||
|
||||
客户端面向非专业用户提供“创建小游戏或小程序 → 项目配置中一键提交 → Main 本地 npm/Vite 构建 → Electron 双视口预检最终产物 → 上传 source+built 双归档与 contract → 运营审核”的唯一创建者链路。Main 对安全源码快照运行安装包内固定 npm 11.6.2 的 `npm ci --ignore-scripts`,再显式调用项目 `package-lock.json` 锁定的 Vite;Vite config/plugins 以当前桌面用户权限执行,因此只适用于用户信任的本地项目,不是 sandbox。预检由 Main 以临时 loopback origin 和 Electron WebContents/CDP 检查与最终 `built_archive` 相同的内存文件字节,覆盖桌面/移动视口、运行错误、白屏和外域访问;不使用 Playwright。该检查仍可由非官方客户端绕过,不产生可信 receipt,也不复刻生产 opaque-origin。服务端不再替客户端运行项目 Vite,而是把源码、构建归档和 contract 视为不可信输入,逐字节重算与校验并固化不可变 Release;人工审核仍不可绕过。自定义和缺少类型字段的旧项目不提供该入口。已发布作品优先使用安全投影后的 `play_url`,`runtime_url` 仅保留一个客户端版本的兼容回退。
|
||||
客户端面向非专业用户提供“创建交互式 AI 应用 → 明确调用 Scaffold Skill 生成起步文件 → 项目配置中一键提交 → Main 本地 npm/Vite 构建 → Electron 双视口预检最终产物 → 上传 source+built 双归档与 contract → 运营审核”的唯一创建者链路。项目创建只生成 `.makelore/project.json` 和 `knowledge/`;`makelore-project-scaffold` 只负责不覆盖的固定起步树与只读发布准备度说明,不能安装、构建、上传、提审或批准。Main 对安全源码快照运行安装包内固定 npm 11.6.2 的 `npm ci --ignore-scripts`,再显式调用项目 `package-lock.json` 锁定的 Vite;Vite config/plugins 以当前桌面用户权限执行,因此只适用于用户信任的本地项目,不是 sandbox。预检由 Main 以临时 loopback origin 和 Electron WebContents/CDP 检查与最终 `built_archive` 相同的内存文件字节,覆盖桌面/移动视口、运行错误、白屏和外域访问;不使用 Playwright。该检查仍可由非官方客户端绕过,不产生可信 receipt,也不复刻生产 opaque-origin。服务端不再替客户端运行项目 Vite,而是把源码、构建归档和 contract 视为不可信输入,逐字节重算与校验并固化不可变 Release;人工审核仍不可绕过。`custom` 和缺少类型字段的旧项目不提供该入口;历史 `mini_game` / `mini_program` 只在读取边界归一为规范 `interactive_ai_app`。已发布作品优先使用安全投影后的 `play_url`,`runtime_url` 仅保留一个客户端版本的兼容回退。
|
||||
|
||||
AI Design Canvas 现在默认以对话和一张持续可见的“我的创作”卡服务 8-16 岁创作者;专业字段矩阵收进按需打开的“精细调整”,移动端保持对话优先并只挂载一个卡片/底部面板。Creation Card、精细调整、Quote、Task 与结果提示都只投影权威状态,已知问题按 code 转成通俗中文,未知服务端或 Provider 文本不会直接显示。一个 Workspace 仍只公开一个 current Direction、一个 persistent Agent Session 和一个 Current Specification;conversation timeline 只记录交互历史。Chat、direct edits、decision responses、proposal acceptance、locks、Asset binding 与 restore 都通过 `design.input.apply` 进入同一服务端 reducer,Renderer drafts 在 accepted 前保持本地。Main 持有 Works Token、stream ticket、WebSocket、request deadline、stable command/operation IDs 与错误脱敏;unknown result 只能复用原 identity,结构化业务错误不得重放。Generation 由服务端对 exact Specification revision 编译 immutable Quote,客户端只展示 public output plan、warnings、expiry 与 Token Points,并以 Quote ID 调用 `design.generation.confirm`;Provider Prompt、model、route、storage 和 billing atoms 不进入 Renderer。Task/Asset events 独立收敛 Workspace resources,不改写 Living Form。Development 与 packaged builds 均使用 Works Square V2,V1 DTO、local semantic adapter、mutable Quote PATCH 与 editable provider Prompt 已移除。
|
||||
|
||||
@@ -700,7 +718,7 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
|
||||
## In Progress
|
||||
|
||||
- 成组集成服务端 source+built+contract 校验、OSS immutable Release、CDN/Edge 与 App 消费链后,使用真实账号和生产配置执行客户端提交到作品播放的整链验收。
|
||||
- 先部署支持规范 `interactive_ai_app` 与历史别名的服务端,再安装匹配客户端;随后成组验证显式 Scaffold Skill、source+built+contract 校验、OSS immutable Release、运营审核、CDN/Edge 与 App 消费链。
|
||||
|
||||
## Next Recommended Steps
|
||||
|
||||
@@ -726,7 +744,7 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
- `/api/works/projects/publish-source` 必须在读取凭据和项目文件前校验 Renderer capability;Host token/base 不能替代该 UI 边界。
|
||||
- `works-cloud-deploy.json` 仅是已安装数据的兼容文件名,不代表客户端仍拥有自动部署协调器;旧中间态不得恢复为后台任务。
|
||||
- 刷新凭据、发布 Token、ZIP、幂等键和重试只能由 Electron Main 持有。
|
||||
- 本地 `projectType` 只决定产品分流和模板选择,不得作为授权依据或替代 Main/服务端的包体校验。
|
||||
- 本地 `projectType` 只决定产品分流和显式 Scaffold Skill 选择,Skill 的静态检测也只提供准备度证据;两者都不得作为授权依据或替代 Main/服务端的构建、包体校验和审核。
|
||||
- 本地构建必须使用安装版 Electron Node、固定 npm 11.6.2 和项目 `package-lock.json` 锁定的 Vite,不得回退到全局 PATH、已有 `node_modules` 或未验证的 npm 闭包;依赖安装需要网络。
|
||||
- 项目 Vite config/plugins 以桌面用户权限执行,不能称为 sandbox;此风险边界必须在发布说明中保留。
|
||||
- AI Design 的 Current Specification 是唯一语义权威。Direction events 必须按 Workspace/Direction/revision/operation identity 收敛;assistant delta、event cursor、Task progress 和 Asset updates 不得改写 Living Form。
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
| Date | Task | Outcome | Docs Updated |
|
||||
|---|---|---|---|
|
||||
| 2026-09-04 | 交互式 AI 应用与显式 Scaffold Skill 集成 | 合并小游戏/小程序为规范 `interactive_ai_app`,项目创建保持最小边界,独立 Skill 生成固定起步树并说明发布要求;Main/Works 继续拥有发布权威 | ADR-008、current-state、architecture、domain、commitments |
|
||||
| 2026-08-07 | 客户端登录七天滑动续期 | Main-owned 刷新凭据与真实活动续期 | README、current-state |
|
||||
| 2026-08-08 | Makelore 一键提交审核 | 项目配置单入口,Main 安全打包与幂等提交 | README、architecture、domain |
|
||||
| 2026-08-08 | 项目真机预览 | 待审 Owner preview 与精确已发布 Runtime | README、architecture、domain |
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
# Task: Reconcile interactive AI app scaffold Skill
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260904-reconcile-project-scaffold-f7b4d2a9
|
||||
- Mode: Integration
|
||||
- Branch: codex/20260904-integrate-project-scaffold-b6d3e8a1-integrate-project-scaffold
|
||||
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260904-integrate-project-scaffold-b6d3e8a1
|
||||
- Base commit: 4bc3e0ea5331a7d3f3576768c0119c02c0f0f952
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Promote the reviewed and already-merged scaffold/type behavior from base commit
|
||||
`4bc3e0ea5331a7d3f3576768c0119c02c0f0f952` into a client ADR,
|
||||
canonical architecture/domain memory, current state, history, and commitments.
|
||||
- Record one `interactive_ai_app` product type, explicit Scaffold Skill ownership,
|
||||
executable Skill-script disclosure, and remaining installed-build release gates.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Project creation owns only project metadata and `knowledge/`; the Skill must be
|
||||
explicit and non-overwriting and may not duplicate build/upload/review authority.
|
||||
- Historical types normalize without a batch rewrite; `custom` remains
|
||||
non-publishable.
|
||||
- Main retains fixed npm/Vite build/preflight/package/upload authority and Works
|
||||
Square retains validation and review authority.
|
||||
- Source task records/proposals and the primary checkout's unrelated files remain
|
||||
untouched.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Added ADR-008 and reconciled canonical brief, architecture, domain, current-state,
|
||||
history, and release commitments with the reviewed source already present at the
|
||||
task base.
|
||||
- Established `interactive_ai_app` as the only new publishable product type and kept
|
||||
`mini_game` / `mini_program` solely as non-rewriting historical read aliases.
|
||||
- Recorded the three-owner boundary: Project Service creates metadata and `knowledge/`;
|
||||
the explicit Device Package Skill creates the fixed starter and explains readiness;
|
||||
Main/Works Square remain the sole build, upload, validation, Release, and approval
|
||||
authorities.
|
||||
- Recorded non-empty Skill `scripts/` as executable code requiring disclosure and later
|
||||
confirmation, with `MAKELORE_NODE_EXECUTABLE` as the application-owned runtime path.
|
||||
- Folded immutable distribution and installed Windows/signed macOS/native Linux proof
|
||||
into the existing release commitments. No plugin publication, deployment, production
|
||||
submission, approval, or remote push was performed.
|
||||
|
||||
## Verification
|
||||
|
||||
- Exact integration tree `4bc3e0ea5331a7d3f3576768c0119c02c0f0f952`:
|
||||
scaffold Node suite 12/12; focused project/device/publish Vitest suite 123/123;
|
||||
`pnpm run typecheck`; scoped ESLint; and `pnpm run build:vite` all passed.
|
||||
- Source task evidence retained: project-configuration Electron E2E 1/1, real
|
||||
scaffold → fixed npm 11.6.2 → locked Vite build, plugin creator validation,
|
||||
Skill creator validation, and real Device Package prepare → confirm → commit →
|
||||
resource reads passed.
|
||||
- `git diff --check`: passed.
|
||||
- `check_project_docs.py --target .`: passed.
|
||||
- `check_doc_drift.py --target . --task-id
|
||||
20260904-reconcile-project-scaffold-f7b4d2a9`: passed; only Integration-owned
|
||||
canonical memory and this task record are changed.
|
||||
- Canonical consistency scan found only intentional compatibility statements and
|
||||
preserved historical task/current-state entries for the superseded dual-type model.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Distribute the scaffold plugin from an immutable SemVer/Git source and run the
|
||||
already-recorded installed-package proofs before claiming platform support.
|
||||
- Deploy the matching server before the client, then run the real-account
|
||||
create → scaffold → build → submit → approve → CDN/App playback chain.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. This Integration task promoted the accepted source candidates directly into
|
||||
canonical project memory.
|
||||
Reference in New Issue
Block a user