docs: reconcile remote scaffold integration

This commit is contained in:
inman
2026-09-05 12:44:50 +08:00
parent a2cb07fedc
commit 8064add242
5 changed files with 113 additions and 105 deletions

View File

@@ -4,6 +4,25 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Remote `main` frontier `d642d7607c26dee01ef65b4e70dd756465dea16a`
is integrated with local frontier
`53f3db3aced61533944eab5e6b3c8c2293f733f8` by the ordinary two-parent merge
`a2cb07fedcf22bb14141a27cee2218c149b8c63e` under task
`20260905-integrate-remote-main-b83d6f`. The remote ADR-008 interactive AI
application type, bundled `makelore.project-scaffold` Skill, and bundled-delivery
status correction are retained alongside the local Learning removal: the product
still exposes only Code, Canvas, and Robot. Three canonical-document conflicts were
reconciled semantically, the application tree merged without content conflicts,
and README now describes minimal project creation plus explicit scaffold execution.
Verification passed 228 focused Vitest tests, the 12-test scaffold suite with the
canonical macOS temporary path, typecheck, 1,859 full-suite tests with 3 conditional
skips plus pressure 1/1, production build, and targeted Electron 1/1. Lint reported
0 errors and 12 existing warnings. The default macOS `/var` temporary-path alias
still makes two copied-script scaffold tests exit before emitting JSON; the same
tests pass through the canonical `/private/var` path and remain a harness/path
portability follow-up. The two remote task records stay intact in remote parent
`d642d76` rather than being copied into this integration result. No push, package,
deployment, publication, or production database change was made.
- Remote `main` frontier `336e0bb0caf24537b7b0f350aba3e04a37f5544c`
is integrated with local frontier
`2d3c103bac83fccffb15b760a6e79912c352541a` by the ordinary two-parent merge
@@ -825,4 +844,4 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
## Last Updated
2026-09-04
2026-09-05

View File

@@ -1,42 +0,0 @@
# Task: Land official project scaffold plugin on main
## Identity
- Task ID: 20260904-project-scaffold-main-merge-e7b4c291
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 336e0bb0caf24537b7b0f350aba3e04a37f5544c
- Owner: codex
- Status: Ready for Integration
## Scope
- Fast-forward the verified integration commit `b92e7ba5bbde186626d93787ca358fbf4c2523a3` onto local `main`.
- Record final default-branch landing evidence while preserving the three explicitly adopted historical task documents unchanged and uncommitted.
## Intent And Constraints
- Preserve the accepted official bundled-plugin boundary: only the fixed code-owned resource root may execute `scaffold.mjs`; downloadable Marketplace artifacts continue to reject scripts.
- Preserve normal ancestry and do not package, publish, deploy, push, or alter the adopted historical task documents.
## Outcome
- Fast-forwarded local `main` from `336e0bb0caf24537b7b0f350aba3e04a37f5544c` to verified integration head `b92e7ba5bbde186626d93787ca358fbf4c2523a3`.
- Local `main` now contains the unified `interactive_ai_app` type and the official bundled Marketplace Plugin `makelore.project-scaffold`, including its Skill, templates, publication guidance, and `scaffold.mjs`.
- Preserved the three explicitly adopted historical task documents byte-for-byte and left them uncommitted.
- Excluded the completed source integration task record from the final default-branch tree; it remains reachable on its preserved source branch and commit.
## Verification
- The fast-forward completed without conflicts and `b92e7ba5bbde186626d93787ca358fbf4c2523a3` is an ancestor of local `main`.
- The exact landed integration head had already passed Plugin and Skill validators, 88 focused Vitest tests, 12 scaffold Node tests, TypeScript typecheck, Git whitespace checks, and project-document gates.
- The task-aware drift check passed while confirming all adopted historical documents remained unchanged.
## Follow-ups
- Packaging, installed-client smoke, live Marketplace publication, deployment, and remote push remain separate authorized operations.
## Promotion Candidates
- None. This task landed the already accepted and verified integration result.

View File

@@ -0,0 +1,91 @@
# Task: Integrate remote main into local main
## Identity
- Task ID: 20260905-integrate-remote-main-b83d6f
- Mode: Integration
- Branch: main
- Worktree: /Users/inmanx/Documents/makelore
- Base commit: 53f3db3aced61533944eab5e6b3c8c2293f733f8
- Owner: codex
- Status: Transferred to Final Integration Gate
## Scope
- Merge fetched `origin/main@d642d76` into local `main@53f3db3` with a normal
two-parent merge and preserve both histories.
- Reconcile overlapping product and canonical documentation so the official
Project Scaffold plugin coexists with the locally integrated Learning removal.
- Verify ancestry, repository integrity, and focused behavior affected by any
conflict resolutions.
## Intent And Constraints
- Hold the Integration Gate lock for the complete merge and documentation
reconciliation.
- Do not rebase, reset, force-push, stash, discard local commits, or publish the
result remotely.
- Preserve the product boundary of Code, Canvas, and Robot only; do not restore
Learning routes, APIs, assets, or packaging paths.
- Accept ADR-008's already-reviewed `interactive_ai_app` and bundled official
Scaffold Skill boundary while retaining Main-owned build/release authority.
- Resolve semantic conflicts from source task outcomes and accepted decisions;
do not choose whole-file `ours` or `theirs` for canonical documents.
## Outcome
- Created ordinary two-parent merge
`a2cb07fedcf22bb14141a27cee2218c149b8c63e` with parents local
`53f3db3aced61533944eab5e6b3c8c2293f733f8` and remote
`d642d7607c26dee01ef65b4e70dd756465dea16a`; neither history was rewritten.
- Resolved the only three conflicts in `data-flow.md`, `system-overview.md`, and
`current-state.md`. The resulting canonical state keeps the three-module
Code/Canvas/Robot access projection and complete Learning removal while adopting
ADR-008, `interactive_ai_app`, the explicit bundled Project Scaffold Skill, and
its device-status correction.
- Application code, including the shared Sidebar, merged automatically without
conflict. Confirmed that no Learning implementation path was restored.
- Updated README to replace the obsolete automatic小游戏/小程序 template description
with minimal project creation, historical alias normalization, explicit scaffold
execution, and the code-owned bundled-script exception.
- Kept the two imported remote task records read-only and excluded them from the
resulting default-branch tree; both remain intact in remote parent `d642d76` and
its history, while their accepted outcomes are recorded in canonical current state.
- Local `main` is now 8 commits ahead and 0 behind `origin/main`. No push, package,
deployment, publication, or production database mutation was performed.
## Verification
- `git show -s --format='%H %P' a2cb07f` confirms the expected two parents, and
`git rev-list --left-right --count main...origin/main` returned `8 0` immediately
after the merge.
- Focused Vitest: 14 files, 228 tests passed.
- Scaffold Node tests: the default macOS `/var` temporary alias produced 10/12 with
two empty-output copied-script failures; rerunning through the canonical
`/private/var` temporary directory passed 12/12. The alias difference was confirmed
with `fs.realpathSync(os.tmpdir())` and did not require product-code conflict repair.
- `pnpm run typecheck` passed using pinned pnpm `10.33.4`.
- Full `pnpm test` passed 1,859 tests with 3 conditional skips, then pressure 1/1.
- `pnpm run lint:check` completed with 0 errors and 12 existing warnings.
- `pnpm run build:vite` completed all Renderer, Main, Preload, and utility builds.
- Targeted Electron E2E `project-configuration-skills.spec.ts` passed 1/1.
- Git whitespace and unresolved-conflict checks passed before the merge commit.
- The first task-aware drift check correctly blocked on the two task records imported
by the merge commit. It did not identify an authored mutation to either record;
final gate closure is transferred to a fresh Integration task whose base contains
the merged and reconciled history.
## Follow-ups
- Harden the scaffold CLI main-module check or its macOS test fixture so scripts
invoked through the `/var` alias match Node's canonical `/private/var` module URL;
this is not changed incidentally by repository synchronization.
- Deploy the matching Works Square server and migrate through
`20260904_project_scaffold_0085` before claiming production Marketplace availability.
- Close the project-document ownership check from fresh Integration task
`20260905-finalize-pull-integration-c49a71` based on the reconciled merge result.
## Promotion Candidates
- None. This Integration Gate applies the accepted ADR-008 and source-task outcomes
directly to canonical project memory.

View File

@@ -1,60 +0,0 @@
# Task: Integrate bundled official Plugin device-status fix
## Identity
- Task ID: 20260905-plugin-bundled-status-integration-8f2c5a41
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 9ed9bf4a715e300420e7a764a4cf576a6dfc4938
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate feature commit `6bd9287c879dca93da11e17533f84e3535fc656a`
onto local `main` from its exact parent `9ed9bf4a715e300420e7a764a4cf576a6dfc4938`.
- Reconcile the source outcome into current state and remove only the duplicate source
task record from the default-branch checkpoint.
## Intent And Constraints
- Concurrent Task Gate: Passed after releasing the completed prior integration lock and
claiming this exact root/main worktree in Integration mode.
- Planning Gate: Passed after reading the source task outcome, ADR-008, current Plugin
architecture/business rules, current state, and the prior scaffold landing record.
- Preserve the three explicitly adopted historical task records byte-for-byte and
uncommitted; do not stash, reset, clean, move, or delete them.
- Preserve the accepted boundary: Project Scaffold ships in the signed client, has no
device download action, and still requires server-authoritative free account
acquisition before project enablement.
## Outcome
- Cherry-picked feature source `6bd9287c879dca93da11e17533f84e3535fc656a`
onto local `main` as product commit `6d102b2` without conflict.
- Removed only the duplicate source task record from the default-branch documentation
checkpoint; it remains intact on the source branch and commit.
- Updated current state with the accepted presentation correction and the separate
production server deployment/migration requirement.
- Preserved all three adopted historical task records byte-for-byte and uncommitted.
## Verification
- Source evidence: focused Plugin page/model 35 passed; typecheck and scoped ESLint
passed; all Vite targets passed; isolated Pi timing rerun 6/6 and pressure 1/1 passed.
- Source commit and landed product commit have the exact same tree
`1976d2f27f239dead6d26f99131182c7c657a9db`.
- Root replay was not claimed because the root checkout has no installed Vitest or
TypeScript executables; no dependency mutation was performed there.
- Local server evidence remains separate: Project Scaffold Marketplace tests 2/2 and
sole migration head `20260904_project_scaffold_0085`.
## Follow-ups
- Deploy the current Works Square server and migrate production through 0085 so the
public catalog can authorize and expose `免费获取`.
## Promotion Candidates
- None recorded.

View File

@@ -10,7 +10,7 @@ Makelore 是一个面向软件、视觉创作与智能机器人的 AI 桌面工
应用启动默认进入 AI 模块入口选择页。入口页可在未登录状态浏览;未登录用户点击已开通模块时进入客户端原生登录页,可使用账号密码或手机号短信验证码登录。密码登录可选“记住密码”:正式安装包仅由 Electron Main 使用系统受保护凭据存储加密保存和回填账号密码,不写入 Renderer 持久状态,未打包开发版或系统安全存储不可用时禁用该选项。登录请求由 Renderer 经 Host API 交给 Electron Main再由 Main 调用 Works Square成功后回到入口选择页。已登录时Electron Main 会从 Works Square `/api/auth/me` 读取当前账号,只向 Renderer 投影用户名、账号/租户/部门标识、权限名列表与三个模块布尔开关,不透传上游资料或凭据。工作区门禁同时要求有效 Token 和完整用户身份;旧状态缺失身份时会先尝试从 Main 恢复,仍无法确认则清除残留会话并返回登录页。被管理员关闭的模块会在入口页置灰且无法点击,直接访问其工作区路径也会返回入口页。旧服务端未返回策略或缺少单项字段时默认开放;这个客户端门禁不替代服务端 API 授权。
作品广场、素材广场、独立发布上传和云部署页面不属于 Makelore 2.0 工作台。新建项目可选择“小游戏”“小程序”或“自定义项目”:小游戏和小程序会创建完整的平台发布模板,项目配置底部提供“一键提交审核”Main 自动预检、安全打包并提交,构建通过后进入运营审核,审核通过即直接发布。首次创建必须选择 PNG、JPEG 或 WebP 项目封面,并通过 Main-owned multipart 原子接口同时保存资料与封面;已有 draft/published 只提交新版本并沿用平台现有资料与封面。自定义项目只创建工作空间,不配置默认发布方式。项目成果预览 `/deliverables` 继续保留。
作品广场、素材广场、独立发布上传和云部署页面不属于 Makelore 2.0 工作台。新建项目可选择“交互式 AI 应用”或“自定义项目”,创建服务只生成 `.makelore/project.json``knowledge/`;历史 `mini_game` / `mini_program` 配置在读取时归一为交互式 AI 应用,但不会因读取被改写。用户获取、启用并为智能体分配官方 bundled `makelore.project-scaffold` 插件后,可明确调用 `makelore-project-scaffold` Skill以不覆盖既有路径的方式生成固定六文件 Vite 起步工程;该 Skill 不安装依赖、不联网、不构建、不上传或提审。交互式 AI 应用的项目配置底部提供“一键提交审核”Main 自动预检、安全打包并提交,构建通过后进入运营审核,审核通过即直接发布。首次创建必须选择 PNG、JPEG 或 WebP 项目封面,并通过 Main-owned multipart 原子接口同时保存资料与封面;已有 draft/published 只提交新版本并沿用平台现有资料与封面。自定义项目只创建工作空间,不配置默认发布方式。项目成果预览 `/deliverables` 继续保留。
## 当前产品状态
@@ -29,7 +29,7 @@ Makelore 是一个面向软件、视觉创作与智能机器人的 AI 桌面工
- AI 绘画健壮性Renderer 为每次命令生成稳定 operation id网络结果未知时保留原命令供原样重试不把未知写入当失败或创建第二次生成。Main 负责 Token 刷新、Agent Gateway REST 提交和有界 Run 查询,并将可恢复事件流投影为 Host API SSE断线后按事件游标续接并重新读取权威 Workspace。Canvas 只使用 Works Square 云端 V2 契约,没有本地语义适配器或降级路径,上游不可用时明确报错。
- AI 绘画项目栏只展示 Workspace不再在项目下创建独立设计会话。删除时必须完整输入项目名称删除后项目、Living Form、任务、参考图和生成作品会从账户中隐藏且无法访问不影响用户已另存到磁盘的副本。删除当前项目后自动打开最近更新的剩余项目删除最后一个项目后进入空状态。
- 插件工作台Code 侧栏只有一个“插件”入口,`/plugins` 在同一列表中投影官方目录、账号 Library、本机 Device Packages 与当前项目状态;旧 Marketplace、My Plugins、Project Plugins URL 只做确定性筛选重定向。来源身份保持 `official:``local:``retained:` 分离;“免费获取”、官方设备交付、项目启用和伙伴分配仍分别写入既有 authority不会自动推进下一步。任一来源失败不会清空其他来源本机 Skill/Pi 插件仍只能通过对话安装,页面只管理已安装包并明确其本机全局生效范围。
- 官方插件运行架构Renderer 只调用 Main-owned Marketplace facadeMain 负责账号、请求 deadline、签名/摘要校验、不可变 Release、current selection 与原子回滚。Pi parent worker 使用冻结的 effective snapshot将每个有效 Skill 与已验证 Package Store root 成对传给 resource loader、Extension Host 和 CLI`skill_only` 不依赖运行时 Policy也不执行分发包中的任意代码。正式激活仍等待官方 Ed25519 公钥production key activation HOLD生产私钥只能来自部署 secret测试使用注入的临时密钥。
- 官方插件运行架构Renderer 只调用 Main-owned Marketplace facadeMain 负责账号、请求 deadline、签名/摘要校验、不可变 Release、current selection 与原子回滚。Pi parent worker 使用冻结的 effective snapshot将每个有效 Skill 与已验证 Package Store root 成对传给 resource loader、Extension Host 和 CLI普通 `skill_only` 下载包不依赖运行时 Policy也不得携带可执行脚本。Project Scaffold 的 `.mjs` 是代码所有的 bundled 例外,只能从签名客户端固定资源根通过应用自带 Node 执行,不能扩展为 Marketplace 下载 artifact 的脚本权限。正式激活仍等待官方 Ed25519 公钥production key activation HOLD生产私钥只能来自部署 secret测试使用注入的临时密钥。
- 原生 Web Search 是冻结 selected model/provider/credential 的 parent-only 模型工具;只有 Works `model_capabilities` 明确声明支持时才出现,使用当前模型的正常计费链,不依赖 Marketplace 获取、Release、Admission、Hosted Provider 或 `agent_browser` 回退。
- 本机 Device Packages 只由 Conversation 工具发起安装,支持 npm、Git、绝对本地 Plugin 目录和 loose `SKILL.md`。Main 在预览和独立确认后提交不可变本机 generation禁用生命周期脚本确认界面明确提示 Pi extension 以桌面当前用户权限执行。新建/空闲 parent 会同时加载所有显式安装且当前启用的 Skill以及必需 Makelore 扩展之外的全部 Pi extensionactive parent 在 turn settled 后切换child 不继承这些资源,也不会扫描 ambient 项目或用户目录Renderer 不提供安装源选择器。
- 提示词博物馆只陈列经过审核的作品预览、Prompt、分类以及作者/来源/许可证信息,支持搜索、使用场景/风格/主体筛选和详情抽屉;“使用此 Prompt”只把原文带回当前 Canvas 对话草稿,不自动发送、不构成社区。列表和详情数据由服务端提供,客户端不打包数据集;服务端字段契约见 [`docs/prompt-museum-server-contract.md`](docs/prompt-museum-server-contract.md)。