docs: integrate installed resource loading
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
| `electron/coding-plugins/account-plugin-cache.ts`, `marketplace-client.ts`, and `package-store.ts` | Main-owned Account Library cache, authenticated server client, and atomic immutable device installation store | Account acquisition and device installation are separate. Package bytes switch atomically only after descriptor, signature, archive, client-range, and provenance checks; failed updates preserve the prior current release. |
|
||||
| `electron/coding-plugins/effective-resolver.ts`, `registry.ts`, `project-service.ts`, and `electron/coding-runtime/pi/**` | Effective official Plugin projection, selected-model tools, Device Package resources, and frozen parent logical-thread runtime snapshot | Project enablement and Agent Skill assignment are preserved independently. Trusted Marketplace artifacts, exact acquired official bundled definitions, and immutable local Device Package generations enter through distinct authorities. Child workers remain empty; active threads retain frozen resources until settlement/disposal. |
|
||||
| `electron/coding-runtime/pi/model-tools/**` and `shared/model-tools.ts` | Closed selected-model tool registry and provider-specific Web Search request shaping | The frozen selected model capability controls whether `makelore_web_search` exists. The tool uses that model/provider/credential and normal model billing; no Hosted Plugin adapter, Admission, Plugin Charge, or browser fallback exists. |
|
||||
| `electron/coding-packages/**`, `electron/api/routes/device-packages.ts`, `shared/device-packages.ts`, and `src/stores/device-packages.ts` | Main-owned conversation install preview/confirmation/commit, immutable local package generations, safe Renderer projection, and parent-worker refresh | Sources are npm, Git, absolute local Plugin directories, or loose `SKILL.md`. Lifecycle scripts are disabled; executable extensions run with desktop-user authority after explicit confirmation. Device packages never join Account Library, Marketplace Package Store, Release, Channel, or Admission state. |
|
||||
| `electron/coding-packages/**`, `electron/api/routes/device-packages.ts`, `shared/device-packages.ts`, and `src/stores/device-packages.ts` | Main-owned conversation install preview/confirmation/commit, immutable local package generations, safe Renderer projection, and parent-worker refresh | Sources are npm, Git, absolute local Plugin directories, or loose `SKILL.md`. Lifecycle scripts are disabled; executable extensions run with desktop-user authority after explicit confirmation. Every generation projects all explicitly installed and currently enabled Skills/extensions; Device Packages never join Account Library, Marketplace Package Store, Release, Channel, or Admission state. |
|
||||
| `electron/coding-plugins/adapters/game-resource.ts` and `electron/services/game-resource-client.ts` | Provider-neutral `makelore.game-resource` hosted tool adapter and Main-owned Works Square transport | Tools materialize only from an eligible frozen `platform_hosted` parent snapshot. Metered mutations require explicit confirmation and stable logical operation identity; Renderer/Pi never receive Provider URLs, credentials, balances, raw responses, or Provider job IDs. |
|
||||
| `electron/api/routes/plugin-marketplace.ts`, `src/stores/plugin-marketplace.ts`, `src/pages/PluginMarketplace/`, `src/pages/MyPlugins/`, and `src/pages/ProjectPlugins/` | Bounded Main routes and Renderer projections for Marketplace catalog, Account Library, official package-device state, local Device Packages, and project actions | Renderer receives no Account token, filesystem path, Admission, package bytes, signed download URL, or install-source picker. My Plugins separates Official Plugins from Device Installed. Catalog/Library/device/project generations prevent stale A/B or cross-action results from replacing current state. |
|
||||
| `src/components/works/ProjectPublishAction.tsx` | 可发布项目的一键提交、云构建轮询与用户可理解状态 | 只通过 Renderer API 提交非敏感元数据;绑定告警不终止轮询 |
|
||||
@@ -28,9 +28,9 @@
|
||||
| `electron/api/coding-composition.ts` / `electron/api/routes/coding-*.ts` | 唯一 Main-owned Coding composition 与 `/api/coding/*` Host API | 管理 project/Agent/Conversation、SSE、附件、文件、命令、交互和安全诊断;mutation 返回 202 acceptance 且按 request id 去重 |
|
||||
| `electron/coding-projects/` | `.makelore/project.json` 与 `.makelore/conversations.json` schema-v2 项目/Agent/Conversation 数据、原子持久化与项目文件能力 | 不读取或迁移 `.niancode` / `.opencode` 项目元数据;legacy 内容保持 inert 且不删除 |
|
||||
| `electron/coding-runtime/conversation-service.ts` | 产品级 Conversation orchestration、模型/思考强度、fork/archive/recover 与运行时门禁 | unresolved Conversation 先验证并持久化模型再首次 prepare;已解析 Conversation 的模型切换复用 target runtime seam |
|
||||
| `electron/coding-runtime/pi/{agent-server-process,worker-pool,worker-process,rpc-client,session-registry,event-projector}.ts` / `resources/pi-agent-server.mjs` | 一个长驻父 Agent Server 内的 per-Conversation 逻辑 Runtime/Session/channel、严格 LF JSONL RPC、generation recovery 与 Snapshot/Patch 投影 | top-level logical-turn cap 4、warm idle LRU 8;线程级替换只使目标 generation 失效,Server 退出使所有旧 channel 失效并在下次恢复时只重启一个 Server |
|
||||
| `electron/coding-runtime/pi/{agent-server-process,worker-pool,worker-process,rpc-client,session-registry,event-projector}.ts` / `resources/pi-agent-server.mjs` | 一个长驻父 Agent Server 内的 per-Conversation 逻辑 Runtime/Session/channel、严格 LF JSONL RPC、generation recovery 与 Snapshot/Patch 投影 | 首个 extension 必须是生成的 Makelore bridge,所有后续显式 extension 作为 Pi `additionalExtensionPaths` 加载且不启用 ambient discovery;top-level logical-turn cap 4、warm idle LRU 8;线程级替换只使目标 generation 失效,Server 退出使所有旧 channel 失效并在下次恢复时只重启一个 Server |
|
||||
| `electron/coding-runtime/pi/{provider-config,provider-refresh,resource-loader}.ts` / `electron/api/routes/ai-proxy.ts` | Main-owned Provider catalog、secret/env 投影、资源 revision、一次凭据刷新与上游错误分类 | secret 不进入 argv/catalog/Renderer;确定性的 Works user-context 缺失使缓存凭据过期并 fail fast,不自动重放 mutation |
|
||||
| `electron/coding-runtime/pi/{extension-host,subagent,write-lease}.ts` / `electron/main/background-lifecycle.ts` | 唯一显式 Makelore extension、交互、子 Agent、同项目写租约与后台运行租约 | child 并发 4、单次最多 8、禁止递归;active/uncertain run 不因页面隐藏或确认超时被回收,所有 stop/replacement 必须有原因 |
|
||||
| `electron/coding-runtime/pi/{extension-host,subagent,write-lease}.ts` / `electron/main/background-lifecycle.ts` | 必需 Makelore extension、显式安装且启用的 Device Package extensions、交互、子 Agent、同项目写租约与后台运行租约 | parent generation 加载完整 Main-selected extension 集;child 并发 4、单次最多 8、禁止递归;active/uncertain run 不因页面隐藏或确认超时被回收,所有 stop/replacement 必须有原因 |
|
||||
| `electron/main/updater.ts` | 目标 feed 解析、electron-updater 生命周期与原始诊断 | 缺少稳定 manifest 保持错误;事件/Promise 重复失败按检查实例去重 |
|
||||
| `src/components/settings/UpdateSettings.tsx` | 更新状态、重试与用户可读错误展示 | 只显示一条简洁中文提示;技术诊断统一回退到本地化通用文案 |
|
||||
| `shared/image-workspace.ts` | AI Design V2 Workspace、Direction、Living Form、immutable Quote、Task、Asset 与事件共享契约 | Current Specification 是唯一语义权威;Task/Asset 属于独立 Workspace resource projection |
|
||||
|
||||
@@ -22,9 +22,9 @@ Makelore 是 Electron 桌面客户端。Renderer 负责项目操作与状态展
|
||||
| Coding Host API & Composition | 唯一 `/api/coding/*` composition、202 acceptance/dedupe、SSE、附件/文件/交互/诊断 | Electron Main 拥有 project/Conversation 服务、选中目标、认证和错误脱敏;SSE 公开面只有 Snapshot 与 `patch-batch` |
|
||||
| Pi Conversation Runtime | 一个长驻 Pi `0.84.2` Agent Server 承载每条 active/warm Conversation 的隔离逻辑 Runtime/Session/JSONL channel | 严格 LF JSONL RPC、generation recovery、Snapshot hydration;top-level 逻辑 turn 并发 4、warm idle LRU 8;Server 退出统一使旧 channel 失效并按需单实例重启 |
|
||||
| Pi Provider & Managed Resources | Provider catalog、thread-local secret projection、model/resource revision、Prompt/Skill/extension materialization、selected-model tools | 父凭据只进入选中逻辑线程的内存 credential store,child 凭据只进入该短命进程;Works `model_capabilities` 由 Main 严格归一化并作为安全 Provider metadata 持久化。Web Search 仅在精确 capability 存在时随冻结的 selected model/provider/credential 进入 parent tool catalog,并走普通模型计费;不回退 `agent_browser` 或独立 Hosted Provider。服务端 reasoning levels 优先于本地 profile,缺字段则清理 override 并回退;不扫描项目或用户的 `.pi/.agents/.codex`,不把 secret 或原始响应放进 argv、catalog 或 Renderer |
|
||||
| Pi Extension, Subagents & Lifecycle | 唯一显式 Makelore extension、UI interaction、ephemeral child、write lease 与 background run lease | child 并发 4、单次最多 8、禁止递归;active/uncertain run 不因页面隐藏或 confirmation timeout 被停止,replacement/stop 必须可解释并清理所有 ownership |
|
||||
| Pi Extension, Subagents & Lifecycle | 必需的生成式 Makelore extension、Main 显式选定的已安装 extensions、UI interaction、ephemeral child、write lease 与 background run lease | Makelore bridge 固定为首个 extension,其余选定 extension 全部经 Pi 的 explicit additional paths 加载且 ambient discovery 关闭;child 并发 4、单次最多 8、禁止递归;active/uncertain run 不因页面隐藏或 confirmation timeout 被停止,replacement/stop 必须可解释并清理所有 ownership |
|
||||
| Official Hosted Plugins | Acquired code-owned bundled Game Resource package → effective parent snapshot → code-owned Main adapter → fixed Works Square hosted route | 无设备下载、更新、Beta 或签名步骤;Renderer/Package/Pi 不持有 Provider key、model 或 URL。每次计费操作要求显式确认,child 不继承 hosted tool。历史 Hosted Web Search 不再进入当前客户端。 |
|
||||
| Device Packages | Conversation install tools → Main-owned inspect/preview/confirm/commit → immutable local generation → parent Skill/Pi-extension resources | 支持 npm、Git、绝对本地 Plugin 目录与 loose `SKILL.md`;没有可见安装入口、Account Library、Release、Admission 或 Marketplace Package Store。可执行 extension 拥有桌面用户权限且生命周期脚本禁用。新/idle parent 自动刷新,active parent 在 turn settled 后刷新,child 始终为空。 |
|
||||
| Device Packages | Conversation install tools → Main-owned inspect/preview/confirm/commit → immutable local generation → parent Skill/Pi-extension resources | 支持 npm、Git、绝对本地 Plugin 目录与 loose `SKILL.md`;没有可见安装入口、Account Library、Release、Admission 或 Marketplace Package Store。可执行 extension 拥有桌面用户权限且生命周期脚本禁用。每个 generation 包含所有显式安装且当前启用的 Skill/extension;新/idle parent 自动刷新,active parent 在 turn settled 后刷新,child 始终为空。 |
|
||||
| AI Design Workspace & Living Form | 一个 Workspace 的当前 Direction、Current Specification、持久 Agent Session、conversation timeline、Tasks 与 Assets | Living Form 是服务端 Current Specification 的投影;Renderer 只持有草稿和已接受投影 |
|
||||
| AI Design Input & Reconciliation | Chat、字段/集合编辑、decision、proposal、lock、Asset binding 与 restore | 全部进入同一 `design.input.apply` reducer;稳定 command/operation ID 支持 unknown-result 重放,revision conflict 刷新权威状态 |
|
||||
| AI Design Gateway Routing | Main-owned Works Square V2 adapter 与 Direction event stream | Main 持有 Works Token、stream ticket、WebSocket、重试分类和错误脱敏;事件顺序与 Task progress 不构成 Specification 真值 |
|
||||
|
||||
@@ -4,6 +4,25 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- Packaged Device Package preparation source
|
||||
`5a2f0eb6785b59d8b455ed5cb1d9773351ff895a` from task
|
||||
`20260902-local-skill-install-fix-6b3e91a4` and installed-resource activation
|
||||
source `17664c5fffcfe695653b4146503e645f54767c4b` from task
|
||||
`20260903-load-installed-resources-8f3c1a72` are integrated by task
|
||||
`20260903-integrate-installed-resources-4b7e2c91`. Packaged inspection now
|
||||
imports package-management authority from the distributed physical Pi runtime
|
||||
instead of the incomplete `app.asar` dependency graph. The parent Agent Server
|
||||
keeps the generated Makelore bridge as its required first extension and loads
|
||||
every further Main-selected, installed, and enabled Device Package extension
|
||||
through Pi `0.84.2`'s explicit additional-extension input; all selected Skill
|
||||
paths remain intact and ambient discovery remains disabled. Packaged prepare
|
||||
passed for loose Skill, npm, and Git sources without committing a package, and
|
||||
a real Agent Server regression registered commands from two external
|
||||
extensions. Focused/full unit and pressure tests, typecheck, scoped lint,
|
||||
production build, Windows packaging, and artifact/runtime verification passed
|
||||
across the two source tasks. The currently installed 1.2.6 client was not
|
||||
replaced; rebuilt exact-main installation and live prepare/confirm/activation
|
||||
remain release acceptance work.
|
||||
- Youth-facing AI Design client source
|
||||
`0fd32a2d49045a8f9e7f2e19ba6477f48f93e30c` is integrated over Model Tools
|
||||
frontier `7552cf59526449c29d663a769c0fb62d84a1a759` through merge
|
||||
@@ -34,9 +53,10 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
local commit; lifecycle scripts stay disabled; new and idle parent workers refresh
|
||||
automatically while active workers switch after settlement; child workers remain
|
||||
empty. My Plugins now separates Official Plugins from Device Installed packages and
|
||||
exposes no visible install picker. Packaged Skill/Pi-extension installation and real
|
||||
selected-model search remain external acceptance gates; no paid Provider request,
|
||||
production install, publish, push, or PR is claimed.
|
||||
exposes no visible install picker. The later packaged prepare and multi-extension
|
||||
activation corrections are recorded above; rebuilt exact-main installed-client
|
||||
acceptance and real selected-model search remain external gates. No paid Provider
|
||||
request, production install, publish, push, or PR is claimed.
|
||||
- Windows titlebar Logo-overlap correction source
|
||||
`99a210e244731d1cdc923e9dd4adf6e09e64c2a4` from task
|
||||
`20260901-windows-titlebar-logo-overlap-5100e298` is integrated onto local
|
||||
@@ -409,7 +429,7 @@ Makelore 在会话恢复、登录和刷新后由 Electron Main 请求 Works `/ap
|
||||
|
||||
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 打包已删除且没有兼容读取路径;历史课程数据保留但不再读取。服务端和客户端源码契约已完成,不代表生产部署或真实账号安装包联调已经完成。
|
||||
|
||||
AI 编程已经硬切到精确 pin 的 Pi `0.84.2`,不存在 OpenCode fallback 或双 runtime。project、Agent 与 Conversation 只在 `.makelore/project.json` 和 `.makelore/conversations.json` 使用本地 schema v2;当前客户端不从 `.niancode` 或 `.opencode` 读取、迁移或删除项目元数据。Electron Main 按需启动一个长驻父 Agent Server,每条 active/warm Conversation 在其中拥有独立 Runtime/Session/channel、credential store、extension context、generation/seq、Snapshot/Patch、model/thinking、队列、interaction 与错误状态,Composer 在 lazy prepare 期间仍可编辑。Renderer 只通过 `/api/coding/*` 和 Snapshot-first/`patch-batch` SSE 消费产品中立合同;gap/reconnect 只恢复目标 Conversation,accepted/uncertain mutation 不自动重放。未解析 Conversation 第一次选模先 validate 并持久化 resolved metadata,再 prepare;同账号模型切换使用 target `set_model`,跨账号只重建目标逻辑线程。top-level 逻辑 turn 并发为 4,warm idle logical-thread LRU 为 8;independent child 进程并发为 4 并使用 FIFO 进程预算 8;coding child 与 parent 共用项目 write lease。prompt/compact confirmation timeout 后仍保留 run/Agent-Server-or-child-process/background ownership,迟到 success/failure/exit/abort 单调且 exactly-once 收敛,页面隐藏不会停止 active/uncertain run。线程级替换只使目标 generation 失效;整个 Agent Server 退出会统一使所有旧 channel 失效,但 Main/Renderer 存活且下次恢复只重启一个 Server。Pi `0.84.2` 手动 compact 不发 `agent_settled`,由 correlated compact RPC 结果终结。父 Provider credential 只进入选中逻辑线程的内存 credential store,child 凭据只进入该短命进程;确定性的 Works user-context 缺失会失效 gateway credential、fail fast、不重放并投影固定 Provider-auth 错误,不归类为 Pi crash。真实 Provider 验证仍为用户明确接受的未验证风险,macOS x64/arm64 与 native non-WSL Linux 也未通过平台发布门禁。
|
||||
AI 编程已经硬切到精确 pin 的 Pi `0.84.2`,不存在 OpenCode fallback 或双 runtime。project、Agent 与 Conversation 只在 `.makelore/project.json` 和 `.makelore/conversations.json` 使用本地 schema v2;当前客户端不从 `.niancode` 或 `.opencode` 读取、迁移或删除项目元数据。Electron Main 按需启动一个长驻父 Agent Server,每条 active/warm Conversation 在其中拥有独立 Runtime/Session/channel、credential store、extension context、generation/seq、Snapshot/Patch、model/thinking、队列、interaction 与错误状态,Composer 在 lazy prepare 期间仍可编辑。Renderer 只通过 `/api/coding/*` 和 Snapshot-first/`patch-batch` SSE 消费产品中立合同;gap/reconnect 只恢复目标 Conversation,accepted/uncertain mutation 不自动重放。未解析 Conversation 第一次选模先 validate 并持久化 resolved metadata,再 prepare;同账号模型切换使用 target `set_model`,跨账号只重建目标逻辑线程。Main-selected Device Package generation 把所有显式安装且当前启用的 Skill 路径和 extension 路径交给未来或空闲 parent;生成的 Makelore bridge 始终是必需的首个 extension,其余全部经 `additionalExtensionPaths` 加载,同时保持 ambient discovery 关闭。active parent 在 turn settled 后刷新,child 始终为空。top-level 逻辑 turn 并发为 4,warm idle logical-thread LRU 为 8;independent child 进程并发为 4 并使用 FIFO 进程预算 8;coding child 与 parent 共用项目 write lease。prompt/compact confirmation timeout 后仍保留 run/Agent-Server-or-child-process/background ownership,迟到 success/failure/exit/abort 单调且 exactly-once 收敛,页面隐藏不会停止 active/uncertain run。线程级替换只使目标 generation 失效;整个 Agent Server 退出会统一使所有旧 channel 失效,但 Main/Renderer 存活且下次恢复只重启一个 Server。Pi `0.84.2` 手动 compact 不发 `agent_settled`,由 correlated compact RPC 结果终结。父 Provider credential 只进入选中逻辑线程的内存 credential store,child 凭据只进入该短命进程;确定性的 Works user-context 缺失会失效 gateway credential、fail fast、不重放并投影固定 Provider-auth 错误,不归类为 Pi crash。真实 Provider 验证仍为用户明确接受的未验证风险,macOS x64/arm64 与 native non-WSL Linux 也未通过平台发布门禁。
|
||||
|
||||
Updater 仍由 Electron Main 选择目标 feed、记录原始诊断并保持失败语义。正式稳定源缺少对应平台 manifest 时,设置页只显示一条简洁中文提示并允许重试,不把缺包误报为已是最新版,也不向普通界面暴露堆栈、URL、路径或错误码;签名产物发布和真实升级安装仍属于外部 Release Gate。
|
||||
|
||||
@@ -417,6 +437,15 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
|
||||
## Recently Completed
|
||||
|
||||
- 2026-09-03: Integrated the paired Device Package prepare and activation fixes.
|
||||
Packaged Main now resolves package inspection from the physical bundled Pi
|
||||
runtime, and the parent Agent Server loads the required generated Makelore
|
||||
bridge plus every explicit installed/enabled Pi extension while retaining all
|
||||
selected Skills and keeping ambient discovery off. Source verification passed
|
||||
packaged npm/Git/loose-Skill prepare, a real Agent Server with two external
|
||||
extension commands, full unit/pressure, typecheck, lint, build, Windows
|
||||
packaging, and artifact checks. The installed 1.2.6 client is unchanged, so
|
||||
exact-main rebuild/install and live activation are still pending.
|
||||
- 2026-08-31: Integrated the provider-neutral `makelore.game-resource` hosted Plugin
|
||||
client with fetched `origin/main`. Generic schema-2 `platform_hosted` packages now
|
||||
materialize frozen Skill/tool snapshots only for eligible parent Pi logical threads;
|
||||
|
||||
@@ -1,147 +0,0 @@
|
||||
# Task: Fix packaged local Skill installation
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260902-local-skill-install-fix-6b3e91a4
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260902-local-skill-install-fix-6b3e91a4-local-skill-install-fix
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-local-skill-install-fix-6b3e91a4
|
||||
- Base commit: 28e1690038d61b9333a2f6ca77f0187ea4273676
|
||||
- Owner: codex-root
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Fix packaged conversation-driven Device Package installation after the bundled
|
||||
Pi CLI succeeds but the Main-owned package inspection path fails to load its
|
||||
production dependency closure.
|
||||
- Add a red/green packaged-runtime regression for the lazy package-manager
|
||||
boundary.
|
||||
- Preserve closed Device Package errors across the Pi extension bridge so
|
||||
supported-source dependency failures and unsupported source syntax no longer
|
||||
collapse to the same generic `Bridge request failed` response.
|
||||
- Rebuild and verify the Windows `app.asar`/product artifact, then execute the
|
||||
real packaged npm and Git prepare paths without committing a package.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Keep the accepted Device Packages product model unchanged: installation is
|
||||
initiated only through conversation tools; preview and a distinct later
|
||||
confirmation precede commit; packages are local Main-owned immutable
|
||||
generations; lifecycle scripts stay disabled; only future/idle parent workers
|
||||
receive resources and child workers remain empty.
|
||||
- Work only in the isolated feature worktree from exact client `main`
|
||||
`28e1690038d61b9333a2f6ca77f0187ea4273676`. Preserve the three unowned task
|
||||
records in the client root and do not reset, stash, clean, adopt, or modify
|
||||
that worktree.
|
||||
- Do not add a global Pi CLI requirement, visible installer, Account Library,
|
||||
Marketplace Release/Admission, hosted Web Search, Provider, server, billing,
|
||||
deploy, publish, push, or PR behavior.
|
||||
- Avoid leaking local paths, stacks, credentials, or raw dependency diagnostics
|
||||
to Pi/Renderer. Only closed Device Package codes and bounded public messages
|
||||
may cross the bridge; internal errors may be logged in Main.
|
||||
- The prior diagnosis is accepted evidence: installed bundled Pi npm/Git
|
||||
resolution succeeds, while importing the packaged
|
||||
`@earendil-works/pi-coding-agent` graph fails because
|
||||
`partial-json@0.1.7` is absent from `app.asar`.
|
||||
|
||||
## Concurrent Task Gate
|
||||
|
||||
- `check_project_docs` passed for the client root.
|
||||
- `task_context start` created the exact isolated worktree/branch/base recorded
|
||||
above; `status --json` confirmed matching task, owner, mode, branch, worktree,
|
||||
and base.
|
||||
- The client root remains on `main` with exactly three pre-existing untracked
|
||||
task records; none was copied as a change or adopted.
|
||||
- The only semantically adjacent registered peer is the older native Web Search
|
||||
client coordinator. Its task record owns hosted/model-tool composition, not
|
||||
Device Package manager loading, bridge error projection, or packaging closure;
|
||||
no semantic or file-ownership conflict is present.
|
||||
- Gate result: Passed.
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
Read the project memory entry, active record, positioning/current state,
|
||||
decision index, ADR-006, system/module/data-flow architecture, business rules,
|
||||
success criteria, evidence/reflection/commitment/stale indexes, the completed
|
||||
Model Tools and Device Packages integration record, the relevant peer record,
|
||||
and the prior diagnosis record.
|
||||
|
||||
Relevant understanding:
|
||||
|
||||
- Electron Main owns package bytes, inspection, durable generations, Pi resource
|
||||
materialization, and packaged dependency authority; Renderer/Pi receive only
|
||||
closed projections.
|
||||
- The current integrated frontier deliberately lazy-loads the ESM-only Pi package
|
||||
manager for remote installs. Workspace tests passed, but packaged signed-in
|
||||
installation remained an explicit acceptance gate and the installed artifact
|
||||
now proves that its ESM dependency closure is incomplete.
|
||||
- ADR-006 explicitly requires installed-package regressions to be exercised
|
||||
against final `app.asar` and packaged runtime roots.
|
||||
- Likely owned modules are `electron/coding-packages/**`, the Pi extension bridge,
|
||||
artifact verification scripts/tests, and the root production dependency lock.
|
||||
- Planning Gate result: Passed.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Replaced the packaged Device Package inspection dependency on the incomplete
|
||||
`app.asar` Pi graph with the already-distributed physical
|
||||
`resources/pi-runtime/dist/index.js` authority used by the bundled Pi CLI.
|
||||
- Preserved closed `local_package_*` failures through Main's worker bridge and
|
||||
the generated Pi extension while keeping unknown failures generic.
|
||||
- Added an artifact gate that rejects a Main-reachable bare
|
||||
`@earendil-works/pi-coding-agent` dynamic import and proves that the packaged
|
||||
physical runtime exposes `DefaultPackageManager` and
|
||||
`SettingsManager.inMemory`.
|
||||
- Bumped the generated MakeLore Pi extension generation so new workers cannot
|
||||
reuse stale bridge code.
|
||||
- Produced a final Windows x64 product at source commit
|
||||
`5a2f0eb6785b59d8b455ed5cb1d9773351ff895a`. No package was committed to
|
||||
the user's Device Package store and the installed MakeLore application was
|
||||
not replaced.
|
||||
|
||||
## Verification
|
||||
|
||||
- Installed-artifact RED: importing the installed `app.asar` Pi graph failed
|
||||
with `ERR_MODULE_NOT_FOUND` for `partial-json`; importing its physical
|
||||
`resources/pi-runtime/dist/index.js` succeeded with both required exports.
|
||||
- TDD RED: the new Device Package manager regression attempted the unavailable
|
||||
app Pi graph; the real worker bridge reduced a closed failure to
|
||||
`Bridge request failed`; the artifact gate accepted the stale bare import.
|
||||
- Focused and adjacent unit tests: 8 files, 69 passed.
|
||||
- Full unit suite: 222 files, 1815 passed, 2 skipped; pressure test 1 passed.
|
||||
The first run saw two Windows `spawn EBUSY` failures while Electron was first
|
||||
downloaded; that file then passed 3/3 alone and the complete rerun passed.
|
||||
- `pnpm typecheck`: passed.
|
||||
- Scoped ESLint for every changed TypeScript/JavaScript source and test: passed.
|
||||
- `pnpm run build:vite`: passed; generated Main contains the physical runtime
|
||||
loader and no bare dynamic import of `@earendil-works/pi-coding-agent`.
|
||||
- Final source/runtime acceptance used the Windows product executable, physical
|
||||
Pi CLI/runtime, and self-contained npm runtime from `release/win-unpacked`.
|
||||
Prepare succeeded without commit for a loose `SKILL.md`,
|
||||
`npm:pi-web-search`, and
|
||||
`https://github.com/DietrichGebert/ponytail`; the latter projected six Skills
|
||||
plus one Pi extension.
|
||||
- `pnpm run package:stage:win-x64` and Electron Builder/NSIS: passed. The
|
||||
installer is 208,323,462 bytes with SHA-256
|
||||
`A5CA7422B3962ABF6B0391B73EC26C7600D962630289F0EFE3BAFDD03A3B97E1`.
|
||||
- `pnpm run verify:artifact:win`: passed against source/verification head
|
||||
`5a2f0eb6785b59d8b455ed5cb1d9773351ff895a`; Electron 43.4.0, Node 24.18.1,
|
||||
Python, uv 0.10.0, npm 11.6.2 and native modules were verified from the
|
||||
final product. The pinned Python/uv staging was reused from the existing root
|
||||
after a fresh Python archive fetch stalled; the verifier proved the copied
|
||||
runtimes rather than treating the network attempt as evidence.
|
||||
- `pnpm run verify:artifact:pi`: passed. Its new Device Package evidence is
|
||||
`authority=bundled-pi-runtime`, `appAsarRootImport=false`, and both package
|
||||
manager exports are functions; Pi 0.84.2 closure and runtime probes passed.
|
||||
- `git diff --check`: passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Integrate the source commit onto client `main`, rebuild from that exact
|
||||
frontier if a main-line installer is required, then install/restart MakeLore
|
||||
before retrying the conversation-driven prepare/confirm flow.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded.
|
||||
@@ -0,0 +1,100 @@
|
||||
# Task: Integrate installed resource loading fix to main
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260903-integrate-installed-resources-4b7e2c91
|
||||
- Mode: Integration
|
||||
- Branch: codex/20260903-integrate-installed-resources-4b7e2c91-integrate-installed-resources
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-integrate-installed-resources-4b7e2c91
|
||||
- Base commit: 28e1690038d61b9333a2f6ca77f0187ea4273676
|
||||
- Owner: codex
|
||||
- Status: Ready for Main Promotion
|
||||
|
||||
## Scope
|
||||
|
||||
- Integrate the completed packaged Device Package prepare fix and the successor
|
||||
installed-resource activation fix onto the current local `main` history.
|
||||
- Promote the accepted behavior and evidence into current-state, architecture,
|
||||
README, evidence, and release-acceptance memory.
|
||||
- Verify the exact integrated source tree without installing a replacement
|
||||
client, publishing artifacts, pushing, or modifying unrelated user work.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Every resource explicitly installed and currently enabled by the user must be
|
||||
included in the Main-selected parent resource generation. Manual disablement
|
||||
remains authoritative.
|
||||
- The generated Makelore extension remains the required first extension. All
|
||||
further selected Device Package extensions load through Pi's explicit
|
||||
additional-extension input while ambient project/user discovery stays off;
|
||||
selected Skill paths remain unchanged and child workers stay empty.
|
||||
- Treat the two source task records as read-only integration evidence. Do not
|
||||
rewrite their history or broaden this merge into Marketplace, Provider,
|
||||
Renderer, deployment, publication, or installed-application changes.
|
||||
- The root `main` worktree is owned by an earlier diagnostic task and contains
|
||||
three pre-existing untracked task records. Preserve them exactly; do not
|
||||
stash, reset, clean, adopt, overwrite, or force-release that ownership
|
||||
without explicit human confirmation.
|
||||
|
||||
## Integration Plan
|
||||
|
||||
1. Fast-forward the completed source history from current `main` into this
|
||||
isolated integration branch and confirm both product commits are present.
|
||||
2. Reconcile the accepted promotion with canonical product/architecture
|
||||
memory and the release acceptance commitment.
|
||||
3. Run focused tests, full unit/pressure verification, typecheck, scoped lint,
|
||||
production build, diff checks, and the task documentation gates.
|
||||
4. Advance local `main` only through a clean, ownership-safe operation.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Fast-forwarded the completed source history through
|
||||
`d22d4b0`, retaining product commits
|
||||
`5a2f0eb6785b59d8b455ed5cb1d9773351ff895a` and
|
||||
`17664c5fffcfe695653b4146503e645f54767c4b` on the integration history.
|
||||
- Packaged Device Package inspection now resolves `DefaultPackageManager` and
|
||||
in-memory settings from the distributed physical Pi runtime. The generated
|
||||
Makelore bridge remains required, and the Agent Server loads every further
|
||||
Main-selected installed/enabled extension through Pi's explicit additional
|
||||
paths without ambient discovery; all selected Skill paths remain unchanged.
|
||||
- Promoted the accepted behavior and verification boundary into `README.md`,
|
||||
canonical current state, system overview, module map, evidence index, and the
|
||||
Windows release commitment. The README's stale Hosted Web Search description
|
||||
was reconciled with the already-integrated selected-model tool architecture.
|
||||
- Excluded the two source task-owned records from the final integration tree as
|
||||
required by the task-aware document boundary. Their files and commits remain
|
||||
intact on the source branches; this integration record carries the promoted
|
||||
default-branch result.
|
||||
- No installed application, local Device Package store, user project, package,
|
||||
deployment, publication, remote branch, or unrelated root-worktree file was
|
||||
changed.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` — passed with pinned pnpm 10.33.4;
|
||||
lockfile unchanged.
|
||||
- Focused integrated regressions — 5 files / 31 tests passed, including packaged
|
||||
package authority, generated extension bundle, real Agent Server multi-extension
|
||||
registration, worker opener, and Device Package manager behavior.
|
||||
- Full unit suite — 222 files / 1,815 passed / 2 conditional skips; serialized
|
||||
coding-chat pressure test 1/1 passed.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- Scoped ESLint over all ten changed source/test files — passed.
|
||||
- `corepack pnpm run build:vite` — Renderer, Main, Preload, and release utility
|
||||
passed; only pre-existing mixed-import and chunk-size warnings were emitted.
|
||||
- `git diff --check` — passed.
|
||||
- The task-aware drift check initially identified the two imported source task
|
||||
records as foreign ownership files. They were removed from the integration
|
||||
result; the final drift result is recorded after this task record is committed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Build and install a client from the exact promoted `main`, then execute live
|
||||
Conversation prepare→confirm→activation with npm/Git/loose Skill coverage and
|
||||
a generation containing at least two enabled extensions. The currently
|
||||
installed 1.2.6 client remains the old, known-failing artifact.
|
||||
- No push was requested; remote publication remains separate.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. Accepted source-task promotions were applied during this integration.
|
||||
@@ -1,142 +0,0 @@
|
||||
# Task: Load all enabled installed Pi resources
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260903-load-installed-resources-8f3c1a72
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260903-load-installed-resources-8f3c1a72-load-installed-resources
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-load-installed-resources-8f3c1a72
|
||||
- Base commit: 34e59bfaf2867e6a53a345de52c0ce850d6f426a
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Make every enabled, conversation-installed Device Package Pi extension load in
|
||||
the parent Agent Server alongside the required generated Makelore extension.
|
||||
- Add a real Agent Server process regression that crosses the repeated
|
||||
`--extension` seam and proves the external extension actually registers.
|
||||
- Preserve existing Skill loading, manual disablement, parent-worker refresh,
|
||||
and child-empty behavior. Do not broaden discovery to ambient project/global
|
||||
Pi resources or change Plugin Marketplace authorization.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- The user decision is that installed resources load; the bounded
|
||||
interpretation is every explicitly installed and currently enabled resource.
|
||||
The existing disable toggle remains authoritative.
|
||||
- Keep the first `--extension` path as the required Main-generated Makelore
|
||||
bridge factory. Pass subsequent confirmed Device Package paths through Pi
|
||||
`0.84.2`'s explicit additional-extension input while retaining discovery-off
|
||||
settings.
|
||||
- Make the smallest source/test change. Do not add compatibility layers,
|
||||
feature flags, new validation frameworks, Renderer behavior, Provider calls,
|
||||
package installation, or application restart.
|
||||
|
||||
## Concurrent Task Gate
|
||||
|
||||
- `check_project_docs.py` passed with the bundled Codex Python runtime.
|
||||
- `task_context.py start` created this isolated feature worktree from clean,
|
||||
human-verified adjacent fix head
|
||||
`34e59bfaf2867e6a53a345de52c0ce850d6f426a`; `status --json` matched task ID,
|
||||
branch, worktree, base, mode, and owner.
|
||||
- Relevant peer records were read. The local-Skill installation task is the
|
||||
predecessor and is included in this base. Runtime diagnosis, old package,
|
||||
client-hang, Model Tools, and Marketplace tasks do not own this worktree.
|
||||
- The package-1.2.6 record says In Progress while the registry says ready for
|
||||
integration; it targets the old main artifact and does not overlap this
|
||||
source change, so the discrepancy is noted but not blocking.
|
||||
- Gate result: Passed.
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
- Read the memory entry and planning gate, active record, project positioning,
|
||||
current state, decision index and ADR-006, system/module/data-flow
|
||||
architecture, business rules, success criteria, evidence/reflection/
|
||||
commitment/stale indexes, and relevant peer records.
|
||||
- Main owns the Pi resource set. New and idle parent threads must receive every
|
||||
enabled installed Device Package Skill/extension; active threads switch after
|
||||
settlement and child threads stay empty.
|
||||
- Live evidence proves the real Agent Server rejects built-in-plus-device
|
||||
extension arguments before open. Canonical Device Package behavior is
|
||||
therefore stale relative to the implementation, not semantically disputed.
|
||||
- Likely files are `resources/pi-agent-server.mjs` and
|
||||
`tests/unit/pi-agent-server-process-real.test.ts`.
|
||||
- `project-positioning.md` remains a template; the repository guidance,
|
||||
integrated state, ADR-006, and domain rules provide the applicable product
|
||||
boundary.
|
||||
- Planning Gate result: Passed.
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
1. Add a real-process regression with one generated Makelore extension and one
|
||||
external extension; verify it fails at the current exact-one guard.
|
||||
2. Treat only the first extension as the Makelore bridge and load all remaining
|
||||
explicit paths through Pi's additional extension list.
|
||||
3. Run the focused real-process and opener/resource tests, typecheck, scoped
|
||||
lint, production build, diff checks, and the project-document completion
|
||||
gates.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Product source and real-process regression are committed as
|
||||
`17664c5fffcfe695653b4146503e645f54767c4b`.
|
||||
- Removed the accidental exact-one Agent Server constraint. The first explicit
|
||||
extension remains the required generated Makelore runtime factory, while
|
||||
every subsequent explicit path is passed to Pi `0.84.2` as
|
||||
`additionalExtensionPaths`.
|
||||
- Retained `noExtensions: true`, so Pi loads the complete Main-selected
|
||||
installed/enabled set without adding ambient project or user-global
|
||||
discovery. Existing `additionalSkillPaths` behavior is unchanged, so all
|
||||
enabled installed Skills continue to load through the same frozen parent
|
||||
resource generation.
|
||||
- Strengthened the real-process test to open two isolated Conversations with
|
||||
the Makelore bridge plus two independent external extensions. Both external
|
||||
commands must appear in `get_commands`, proving every supplied extension is
|
||||
initialized rather than merely accepted by argument parsing.
|
||||
- No Renderer, Marketplace policy, package index, child-worker, Provider,
|
||||
application process, or installed-client state changed.
|
||||
|
||||
## Verification
|
||||
|
||||
- TDD red: the strengthened real Agent Server process test failed during
|
||||
`thread_open` with `Thread requires exactly one Makelore extension`.
|
||||
- TDD green and final focused matrix: `pi-agent-server-process-real`,
|
||||
`pi-managed-worker-opener`, and `device-package-manager` — 3 files / 10
|
||||
tests passed. The real process loaded both external extension commands.
|
||||
- Final full unit suite: 222 files / 1,815 passed / 2 conditional skips;
|
||||
serialized coding-chat pressure test 1/1 passed.
|
||||
- `pnpm run typecheck` with pinned pnpm 10.33.4: passed.
|
||||
- Scoped ESLint for the changed server and test: passed.
|
||||
- `pnpm run build:vite`: Renderer, Main, Preload, and release utility passed;
|
||||
only the existing dynamic-import and chunk-size warnings were emitted.
|
||||
- `pnpm install --frozen-lockfile` used pnpm 10.33.4 and reused the local store
|
||||
without changing the lockfile.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Integrate this task together with its predecessor
|
||||
`20260902-local-skill-install-fix-6b3e91a4`, then build and install a new
|
||||
Windows client before re-enabling/retrying Ponytail in the live application.
|
||||
- The currently installed 1.2.6 client is unchanged and still contains the
|
||||
exact-one guard; disabling the Device Package remains the reversible recovery
|
||||
until a replacement client is installed.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target canonical documents: `.project-docs/30-worklog/current-state.md` and
|
||||
`.project-docs/50-evidence/evidence-index.md`.
|
||||
- Proposal: record that the successor of the packaged local-Skill install fix
|
||||
now loads the required generated Makelore extension plus every explicit
|
||||
enabled Device Package extension, while keeping ambient discovery disabled.
|
||||
- Evidence: exact red `thread_open` failure before the source change; real
|
||||
Agent Server green with two external extension files and both registered
|
||||
commands; focused, full-unit, pressure, typecheck, lint, and production-build
|
||||
verification above.
|
||||
- Future impact: Device Packages that contain Pi extensions no longer make the
|
||||
parent Conversation unavailable; release acceptance should include
|
||||
built-in-plus-multiple-device-extension activation, not prepare-only proof.
|
||||
- Semantic conflicts: none. This implements the already accepted Device Package
|
||||
behavior and the user's explicit all-installed/enabled loading decision.
|
||||
- Human confirmation required: no for promotion of the implementation result;
|
||||
yes before any separate install/restart action if not already authorized.
|
||||
@@ -4,6 +4,7 @@ Use this index for searchable, traceable evidence records.
|
||||
|
||||
| Date | Topic | Status | Source | Detail |
|
||||
|---|---|---|---|---|
|
||||
| 2026-09-03 | Device Package packaged prepare 与全部已启用资源加载 | Integrated on local `main`; rebuilt installed-client activation pending | Prepare source `5a2f0eb6785b59d8b455ed5cb1d9773351ff895a`, activation source `17664c5fffcfe695653b4146503e645f54767c4b`, tasks `20260902-local-skill-install-fix-6b3e91a4` / `20260903-load-installed-resources-8f3c1a72`, integration task `20260903-integrate-installed-resources-4b7e2c91` | Packaged package inspection now uses the distributed physical Pi runtime instead of importing an incomplete `app.asar` graph; closed Device Package failures remain closed across the bridge. The parent Agent Server keeps its generated Makelore extension first, passes every further Main-selected installed/enabled extension through Pi `0.84.2` `additionalExtensionPaths`, retains every selected Skill path, and keeps ambient discovery off. Packaged prepare without commit passed for loose `SKILL.md`, npm, and Git/Ponytail; a real Agent Server loaded two external extensions and exposed both commands. Across the two source tasks, focused tests, 222 files / 1,815 full unit tests / 2 conditional skips, pressure, typecheck, scoped lint, production build, Windows packaging, and artifact/Pi verification passed. The currently installed 1.2.6 client was not replaced, so no live installed-client success is claimed. |
|
||||
| 2026-09-01 | Makelore Code packaged Agent Server Pi AI resolver fix | Integrated on local `main`; rebuilt Windows artifact and installed-client acceptance pending | Source `7df245a`, source task `20260901-local-runtime-unavailable-8b42c7f1`, merge `9640255`, verified candidate `42ea83c`, main promotion task `20260901-promote-local-runtime-main-a7c4e291` | The installed Electron Node process reproduced `ERR_MODULE_NOT_FOUND` for the present `@earendil-works/pi-ai@0.84.2` because the optional `import.meta.resolve` parent URL was inactive and lookup began beside `resources/resources/pi-agent-server.mjs`. Enabling that capability only for the Main-owned Agent Server made the exact differential pass without changing the runtime closure. A production-shaped sibling-layout Electron test went red before and green after; 24 focused tests, 1,761 full unit tests / 2 conditional skips, typecheck, lint with 0 errors, and Renderer/Main/Preload/utility build passed. This does not claim that the currently installed old package is fixed or that a rebuilt final artifact has passed release proof. |
|
||||
| 2026-08-30 | MakeLore AI Design Living Form V2 hard cutover | Integrated locally with matching server source; production data cutover and Provider activation pending | Client source `b0b5a602b501308a23eb27e2f51a5169b9e46b1e`, server source `b5351d54f595ce8eb873593e462e4a556bea0b05`, integration task `20260830-integrate-marketplace-design-client-main-9d5f3b82`, ADR-007 | Replaces nested V1 Conversations, Briefs, editable provider Prompt, mutable Quote PATCH, and local semantic fallback with one current Direction, one Living Form/Specification authority, stable operations, immutable Quote confirmation, and Main-owned V2 transport. Client source passed typecheck, lint with zero errors, 1,425 unit tests, Vite/Electron build, and 2 Electron E2E tests. Server source passed 2,626 tests / 31 skipped under UTF-8 mode. No production database cutover, real paid Provider request, deployment, or publication occurred. |
|
||||
| 2026-08-30 | MakeLore curated Plugin Marketplace Release A | Integrated locally; XMA-01 live acceptance PASS; production trust activation HOLD | Source `40df677a31ff7651f962151eb84b925987781c03`, source task `20260828-plugin-marketplace-client-5f8b3d72`, integration task `20260830-integrate-plugin-marketplace-client-6e3b9d82` | R7 Standards/Spec passed with zero findings. XMA-01 passed 12/12 using real PostgreSQL, signed-in packaged MakeLore, Operations-published temporary-key packages, A/B account isolation, immutable install/update/freeze/rollback, project/Agent/Pi materialization, lifecycle invalidation, pricing-only ETag change, Data Service 10 tools/14 operations and zero Token Point transactions. Final Windows installer was 208,235,670 bytes with SHA-256 `738A2F6573C502281787F418EA666C6E62C287CA0EC13C6EB22369DAB0B3FFFA`. The official Ed25519 public key was not supplied, so the production trust store correctly remains fail closed; no deployment or production publication occurred. |
|
||||
|
||||
@@ -13,7 +13,7 @@ Track future-facing memory: promised follow-ups, unfinished loops, timed checks,
|
||||
| 2026-08-16 | 验收 Prompt Museum 与 Canvas 删除/重报价的真实服务端链路 | 发布包含 `26b52d7` Canvas 行为的安装包前 | 客户端/服务端集成 | Pending | 使用真实 Works 账号核对 Museum 列表/详情/分页/筛选/署名/CDN/Prompt 回填,并确认固定相对媒体路径可经 Main Bearer 代理、401 刷新、10 MiB/可信 raster MIME 边界后在 Renderer 展示;核对最终 Prompt/options 重报价和确认设计点;删除 Workspace 后确认软删除可见性、未提交任务取消/预留积分释放、已运行任务结算。保留 Main 错误脱敏和严格 DTO/HTTPS 投影,不以客户端回归替代服务端验收 |
|
||||
| 2026-08-16 | 验收 default-on Robot Guided Hotspot Binding 的 Windows/macOS 真实设备链路 | 下一份包含页面内热点连接行为的安装包发布前 | 客户端/硬件/服务端集成 | Pending | 核对精确出货固件与固定 Portal、六位码发行/消费语义;执行 Windows Robot 真机扫描/连接、签名 macOS x64/arm64 CoreLocation/CoreWLAN/worker/ASAR/Koffi smoke,以及真实 Host/native Electron 端到端配网+Binding;保留 `NIANCODE_AI_HARDWARE_GUIDED_HOTSPOT_BINDING=0` 回滚并记录支持矩阵 |
|
||||
| 2026-08-10 | 完成客户端提交到 App `play_url` 播放的真实生产整链验收 | source+built+contract 服务端协议、OSS immutable Release、CDN/Edge 与 App 消费链成组集成后 | 客户端/服务端集成 | Pending | 使用真实账号执行小游戏和小程序创建、客户端本地构建与同字节预检、双归档提交、服务端逐字节校验/不可变 Release 固化、运营批准、CDN 发布、App 播放与监控核对;如需不可绕过 runtime gate,另行设计可信 verifier |
|
||||
| 2026-08-12 | Windows 发布流水线保留固定 npm/Pi 运行时产物门禁 | 每次生成正式 Windows 安装器时 | 客户端发布 | Pending | 运行 `pnpm verify:publish-runtime`、`pnpm verify:artifact:win`、`pnpm verify:artifact:pi` 与 final packaged proof;启动最终 `resources/resources/pi-agent-server.mjs` 并确认它从相邻 `pi-runtime` 初始化,再用安装后的首个 Conversation 确认不出现 runtime-unavailable 投影。当前 208,162,564-byte / SHA-256 `A02F79FCD3273FB0B013450492DC788B6E5ED7BBC1007468FB83BE949B8CB30D` 安装器早于 `7df245a` 修复,为本地未签名历史证据,尚未 push、发布或安装。 |
|
||||
| 2026-08-12 | Windows 发布流水线保留固定 npm/Pi 运行时与 Device Package 产物门禁 | 每次生成正式 Windows 安装器时 | 客户端发布 | Pending | 运行 `pnpm verify:publish-runtime`、`pnpm verify:artifact:win`、`pnpm verify:artifact:pi` 与 final packaged proof;启动最终 `resources/resources/pi-agent-server.mjs` 并确认它从相邻 `pi-runtime` 初始化。安装 exact-main 客户端后,用 Conversation 完成至少一个 npm/Git/loose-Skill prepare→confirm 流程,并以包含两个 extension 的已启用 Device Package generation 验证首个 Makelore bridge 与所有附加 extension/Skill 均生效、禁用项不加载、新/idle parent 刷新且 child 为空。当前安装的 1.2.6 客户端早于 `5a2f0eb` / `17664c5` 修复,不能作为通过证据;不得以 prepare-only 或 workspace real-process 测试替代安装后 activation。 |
|
||||
| 2026-08-10 | 删除客户端 `runtime_url` 兼容回退 | 一个客户端兼容版本结束,且服务端与存量数据稳定提供 `play_url` | 客户端 | Pending | 删除类型字段、读取分支和对应回归测试 |
|
||||
| 2026-08-11 | 部署并验收 AI 绘画多 Conversation 服务端契约 | 发布包含多会话客户端之前 | 客户端/服务端集成 | Pending | 确认迁移 `0033`、Conversation list/create/read/turn/confirm API、持久 Agent Session 与事件字段已上线 |
|
||||
| 2026-08-12 | 复核 AI 编程 Provider 错误与重试投影 | 升级 Pi、Works gateway 或上游 Provider 错误格式时 | 客户端/Pi/provider 集成 | Pending | 重新验证确定性 Works user-context 缺失仍会 expire credential、非重试 fail fast、固定脱敏为 `CODING_PROVIDER_AUTH_REQUIRED`,并且不会被后续 `agent_settled` 改写为 completed;不得把其他 401/429/5xx 扩大归类。 |
|
||||
|
||||
@@ -30,8 +30,9 @@ Makelore 是一个面向软件、视觉创作、互动学习与智能机器人
|
||||
- AI 绘画项目栏只展示 Workspace,不再在项目下创建独立设计会话。删除时必须完整输入项目名称;删除后项目、Living Form、任务、参考图和生成作品会从账户中隐藏且无法访问,不影响用户已另存到磁盘的副本。删除当前项目后自动打开最近更新的剩余项目,删除最后一个项目后进入空状态。
|
||||
- AI 学习:主区展示服务端分页项目卡片,详情页用安全 Markdown 渲染 README;原始 HTML 被禁用,Markdown 图片节点直接加载服务端校验后的无凭据 HTTPS URL,包括 SVG 和 Electron 支持的其他图片格式,不经过服务端下载、识别、转码或镜像。下载按钮打开系统保存对话框,Main 不按 `Content-Length`、声明字节数或客户端上限阻断下载,流式校验 SHA-256 与 ZIP 签名后原子保存。客户端不提供课程生成、课程播放器、本地课程库、Agent、ASR 或课堂 runtime。运营管理与接口字段见 [`docs/learning-project-catalog-server-contract.md`](docs/learning-project-catalog-server-contract.md)。
|
||||
- 插件市场 Release A:插件中心(Marketplace)提供运营精选的免费 `skill_only` 插件;“免费获取”只写入账号 Library,“下载/更新”才写入本机 Package Store,“启用到项目”和“分配给伙伴”仍是 Project Plugins 中彼此独立的动作。我的插件(My Plugins)展示账号获取状态、本机安装/更新/删除设备包、移除后的 tombstone 和 bounded unavailable reason;Project Plugins 继续只修改项目选择,不会因获取或下载自动启用或分配。
|
||||
- 插件运行架构:Renderer 只调用 Main-owned Marketplace facade;Main 负责账号、请求 deadline、签名/摘要校验、不可变 Release、current selection 与原子回滚。下一代 Pi worker 使用同一个 effective snapshot,将每个有效 Skill 与已验证 Package Store root 成对传给 resource loader、Extension Host 和 CLI;`skill_only` 不依赖运行时 Policy,也不执行分发包中的任意代码。正式激活仍等待官方 Ed25519 公钥(production key activation HOLD);生产私钥只能来自部署 secret,测试使用注入的临时密钥。
|
||||
- 原生 Web Search 是 `platform_hosted` 精选插件:用户仍需依次免费获取、下载、启用到项目并分配给伙伴,每次搜索还必须显式确认 Token Point 消耗。Renderer 与插件包不持有 Provider 密钥、模型或 URL;Main 只调用固定 Works Square typed route,并把收费状态作为 closed receipt 展示。正式激活仍等待官方签名公钥、`WEB_SEARCH_OPENAI_API_KEY`、模型、价格与隐私文案;开发和验收不得把 fake Provider 结果当作生产 OpenAI 通过。
|
||||
- 官方插件运行架构:Renderer 只调用 Main-owned Marketplace facade;Main 负责账号、请求 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,测试使用注入的临时密钥。
|
||||
- 原生 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,禁用生命周期脚本;新建/空闲 parent 会同时加载所有显式安装且当前启用的 Skill,以及必需 Makelore 扩展之外的全部 Pi extension,active parent 在 turn settled 后切换,child 不继承这些资源,也不会扫描 ambient 项目或用户目录。
|
||||
- 提示词博物馆:只陈列经过审核的作品预览、Prompt、分类以及作者/来源/许可证信息,支持搜索、使用场景/风格/主体筛选和详情抽屉;“使用此 Prompt”只把原文带回当前 Canvas 对话草稿,不自动发送、不构成社区。列表和详情数据由服务端提供,客户端不打包数据集;服务端字段契约见 [`docs/prompt-museum-server-contract.md`](docs/prompt-museum-server-contract.md)。
|
||||
- 视觉系统:单一浅色主题,品牌蓝 `#3A5578`、星火橙 `#F26A3D`、白色画布与低饱和蓝灰层级。
|
||||
- 字体系统:Renderer UI 内嵌 Inter Variable 与经过字符子集化的 Source Han Sans SC WOFF2,按字符范围统一中英文并保留系统中文字体 fallback;代码、路径和日志使用独立等宽字体。
|
||||
|
||||
Reference in New Issue
Block a user