docs: integrate Learning removal
This commit is contained in:
@@ -4,6 +4,22 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- Learning-removal source `5a7cb9b2085848631bdf7de45fe1cac74b905ed9` from task
|
||||
`20260903-remove-learning-7a91` is integrated onto the latest local `main` as
|
||||
`bd0873f34823754760368d8d37703c74bf65106d` by task
|
||||
`20260904-integrate-remove-learning-6e4a9c21`, preserving the later AI Design
|
||||
and unified Plugin workspace changes. Makelore now exposes only Code, Canvas,
|
||||
and Robot; the Learning route tree, Renderer, Main Host API, download service,
|
||||
shared DTOs, artwork, tests, server contract, and packaging surface are removed.
|
||||
Stale Learning URLs return to the module chooser and retired Host API paths use
|
||||
the standard not-found boundary. Historical course data remains untouched and
|
||||
unread, while `makelore-learning:v1` stays byte-for-byte frozen only as a shared
|
||||
account-partition compatibility salt. ADR-005 and the Learning deployment
|
||||
commitment are superseded by the user's explicit 2026-09-04 product decision.
|
||||
Integration verification passed dependency lock install, 8 focused files / 109
|
||||
tests, typecheck, full unit 1,844 with 3 skips plus pressure 1/1, production build,
|
||||
targeted Electron 8/8, and full Electron 33/33 with 1 platform skip. Lint reported
|
||||
0 errors and only existing warnings in current source and a historical worktree.
|
||||
- Conversation-first AI Design client source
|
||||
`fe50e4ba198649a07c5c9443f15edf7dfa2a47e6` from task
|
||||
`20260903-design-guided-conversation-client-8b4e1c72` is integrated onto local
|
||||
@@ -87,8 +103,9 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
local and remote mainline histories with normal merge `d25ed08`: fetched
|
||||
`origin/main` frontier `28e1690` and local frontier `301c149` are both ancestors
|
||||
of the integrated tree. It also reviewed every local worktree/branch; historical
|
||||
Learning Player source `b1f51be` remains intentionally excluded under ADR-005,
|
||||
rather than being mistaken for current product work. No history rewrite or
|
||||
Learning Player source `b1f51be` remains intentionally excluded and the later
|
||||
complete Learning removal supersedes ADR-005, rather than that source being
|
||||
mistaken for current product work. No history rewrite or
|
||||
force-push is part of this integration.
|
||||
- Packaged Pi runtime-root source `5d7a235` from task
|
||||
`20260902-build-unsigned-mac-9d7e4a2c` is integrated through merge `4babd6d`.
|
||||
@@ -147,8 +164,8 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
and collapsed process previews remain anchored to their first displayable
|
||||
line. Those predecessor Project Configuration Plugin surfaces are superseded by
|
||||
the reviewed unified `/plugins` workspace above and are not restored. Historical
|
||||
source `b1f51be` remains explicitly excluded because
|
||||
ADR-005 continues to retire the OpenMAIC Learning Player packaging chain.
|
||||
source `b1f51be` remains explicitly excluded; the 2026-09-04 product decision
|
||||
supersedes ADR-005 and removes the remaining Learning catalog surface as well.
|
||||
- Youth-facing AI Design client source
|
||||
`0fd32a2d49045a8f9e7f2e19ba6477f48f93e30c` is integrated over Model Tools
|
||||
frontier `7552cf59526449c29d663a769c0fb62d84a1a759` through merge
|
||||
@@ -479,14 +496,15 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
their existing boundaries. The matching Works Square source is `65ea070`.
|
||||
- Learning project-catalog source commit `38db158` from feature task
|
||||
`20260819-learning-project-catalog-impl-4e9c71a2` was merged as `d967b0f` by integration task
|
||||
`20260820-integrate-learning-catalog-a73e91c4`. Learning keeps its login and
|
||||
`20260820-integrate-learning-catalog-a73e91c4`. At that historical checkpoint Learning kept its login and
|
||||
`module_access.learning` gate but now contains only a server-driven project list,
|
||||
safe README detail, direct credential-free HTTPS Markdown images, and a Main-owned verified
|
||||
native ZIP save path. Course generation, progress, local library, OpenMAIC player,
|
||||
Agent/ASR/classroom runtime, Learning IPC and player-artifact packaging were removed
|
||||
without a compatibility read path. Historical course data is left untouched. The
|
||||
matching Works Square operations/admin/API implementation and real-account package
|
||||
smoke remain pending.
|
||||
smoke remained pending. The 2026-09-04 removal recorded at the top of this file
|
||||
supersedes that catalog and its deployment obligation.
|
||||
- Square-auth lifecycle source commit `dc776ff` from feature task
|
||||
`20260819-square-auth-proxy-client-8c4f2a` was merged as `f52c2c8` and promoted
|
||||
from verified candidate `e7ec12d` to local `main` by integration task
|
||||
@@ -521,7 +539,7 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
- Project-cover source commit `145a6ce571d646325092d1e722282babea503954` from feature task `20260817-project-cover-upload-a6a98e56`, integrated by task `20260813-sync-push-main-9c2f71`. First submission now requires a bounded PNG/JPEG/WebP cover, shows preview/file/reselect feedback, and sends metadata plus cover through Main-owned `POST /api/projects/with-cover`; conflicts stop before version upload and existing draft/published projects remain version-only. The matching Works Square server source is `407c883` (local merge `0cedfc4`). No client package, production deployment, or real-account smoke occurred.
|
||||
- `3b37ac3` / `55e61b7`: macOS Robot hotspot discovery performs one bounded worker-thread rescan after an empty or SSID-redacted CoreWLAN result; persistent SSID redaction maps to the existing permission error instead of a misleading empty-device state, while firmware and the open `Xiaozhi-*` contract remain unchanged.
|
||||
- `f5d47c8` / `b6148a5`: AI Programming voice capture is available after an Agent is selected but before the lazy first OpenCode session exists; transcription fills the composer draft without creating an empty session, while runtime, loading, transcribing, busy, and recording guards remain unchanged.
|
||||
- `4013edc` / `3b799af`: integrated per-user Code/Canvas/Learning/Robot entry policy from Works Square, projected by Electron Main as four booleans and enforced before disabled module routes initialize.
|
||||
- `4013edc` / `3b799af`: historically integrated per-user Code/Canvas/Learning/Robot entry policy from Works Square. The 2026-09-04 removal narrows the current Main projection to Code/Canvas/Robot while preserving the same pre-initialization route gate.
|
||||
- `01bee31`: historically enabled the AI Learning course catalog/generation/download/playback architecture. Its Learning course/runtime behavior is superseded by `38db158` above; its unrelated `game-engine` removal and project-root `planning-with-files` behavior remain historical context.
|
||||
- `26b52d7`: Canvas Prompt Museum, editable server-priced generation Quotes, project deletion/task-detail workflow, cloud-default Canvas development entry, and Chinese-only UI consolidation from the authoritative remote main. Its transient bundled `game-engine` Skill is superseded by `01bee31`.
|
||||
- `f8d82e6`: Prompt Museum media rendering now accepts only the server-controlled relative media route, fetches it through a Main-owned bounded Works-authenticated proxy with one refresh retry, and keeps credential-free HTTPS CDN media direct. Renderer-side validation and card-local placeholders cover invalid or failed media; attribution URLs remain optional.
|
||||
@@ -555,11 +573,11 @@ Canvas 侧栏提供“获取灵感”进入 Prompt Museum。列表、筛选、
|
||||
|
||||
密码登录提供可选“记住密码”。该记录与七天登录会话分离,只在正式安装包且系统安全存储可用时由 Electron Main 加密落盘;Renderer 仅在登录页内存中接收回填,不写 Zustand/localStorage,Works Square 也不持久化桌面密码。退出登录和短信登录不删除记录,成功的未勾选密码登录会清除旧记录。未打包开发版禁用该选项,避免未签名 Electron 调试进程触发 macOS 钥匙串。
|
||||
|
||||
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 授权。
|
||||
Makelore 在会话恢复、登录和刷新后由 Electron Main 请求 Works `/api/auth/me`,Renderer 只获得 Code、Canvas、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 不进入插件列表。
|
||||
|
||||
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 打包已删除且没有兼容读取路径;历史课程数据保留但不再读取。服务端和客户端源码契约已完成,不代表生产部署或真实账号安装包联调已经完成。
|
||||
Learning 已从 Makelore 产品中移除:没有模块卡片、路由、侧栏、Renderer 页面、Main Host API、下载服务、共享 DTO、素材或打包 fallback。旧 Learning URL 回到模块选择页,旧 API 使用标准 404 边界。客户端不扫描、读取、迁移或自动删除历史课程数据;名称仍含 Learning 的冻结账号分区盐仅为跨模块持久状态兼容标识,不代表产品模块仍存在。
|
||||
|
||||
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 期间仍可编辑;正式包从 staged `pi-runtime` manifest/root 定位并校验 Pi 包入口,不从脚本目录或应用 `node_modules` 回退。Renderer 只通过 `/api/coding/*` 和 Snapshot-first/`patch-batch` SSE 消费产品中立合同;gap/reconnect 只恢复目标 Conversation,accepted/uncertain mutation 不自动重放。`lifecycle:sleep` 会关闭旧事件流,视图挂载、项目上下文变化、页面重新可见或窗口 focus 会静默刷新已选 Snapshot,使后台 terminal 状态收敛且不重放 mutation。隐藏 Conversation 的红点只在新 pending interaction 或新 completed/failed/aborted terminal transition 出现,不由助手/thinking/工具过程或单个工具失败触发。Session hydration 沿完整 active branch 投影可见历史,Pi compaction 只改变模型上下文并保持 summary 私有;Renderer 首次挂载最近 120 个节点,向上滚动时按 100 个节点追加更早内容并补偿新增高度以保持阅读锚点。折叠的 thinking、助手过程说明与工具输出固定展示第一条可见内容和首个非空行,横向偏移保持为零,展开后仍显示完整内容。未解析 Conversation 第一次选模先 validate 并持久化 resolved metadata,再 prepare;同账号模型切换使用 target `set_model`,跨账号只重建目标逻辑线程。Web Search 只作为所选模型 capability 进入父 worker 并使用相同 model/provider/credential 与普通模型计费,不经过 Marketplace/Hosted client/Plugin Charge 或浏览器 fallback;child 不继承。Conversation 工具可检查并在独立确认后安装 npm、Git、本地 Plugin 目录或 loose `SKILL.md` 为 Main-owned immutable Device Package;不运行生命周期脚本,可执行 extension 具有桌面用户权限,新/idle parent 自动刷新,active parent 结算后刷新,child 为空。每个 Main-selected generation 都保留全部显式安装且当前启用的 Skill 路径;生成的 Makelore bridge 是必需的首个 extension,其余 extension 全部经 `additionalExtensionPaths` 加载,并继续关闭 ambient discovery。top-level 逻辑 turn 并发为 4,warm idle logical-thread LRU 为 8;independent child 进程并发为 4 并使用 FIFO 进程预算 8;coding child 与 parent 共用项目 write lease。同一助手工具批次内,内置 `bash`/`edit`/`write` 与声明需要该 write lease 的动态产品工具按顺序执行,避免 Pi 在批量 prepare 阶段形成租约自锁;纯只读工具批次仍可并行。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。精确的 `403 token_point_balance_exhausted` / `词元点数余额不足` 上游响应会在 Main 内归类为不可重试的配额耗尽,Renderer 只收到稳定 `CODING_PROVIDER_QUOTA_EXHAUSTED` 与安全中文提示;重开会话仍保留该提示,不暴露上游 request id 或原始错误正文。真实 Provider 验证仍为用户明确接受的未验证风险;macOS arm64 仅有本地未签名 mounted-image initialize/shutdown 证据,签名/公证/完整 process-enumeration、macOS x64 与 native non-WSL Linux 仍未通过平台发布门禁。
|
||||
|
||||
@@ -569,6 +587,12 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
|
||||
## Recently Completed
|
||||
|
||||
- 2026-09-04: Integrated the complete Learning removal onto the latest local `main`.
|
||||
The module chooser, guarded routes, sidebar, auth projection, Main dispatcher,
|
||||
lifecycle state, build output, and docs now contain only Code, Canvas, and Robot.
|
||||
Stale Learning routes return to the chooser, the retired API is unregistered, and
|
||||
historical course data remains untouched. Full unit, build, and Electron E2E gates
|
||||
passed on the integrated tree.
|
||||
- 2026-09-03: Reconciled local `main@7a37593` with fetched
|
||||
`origin/main@8e947b4` through a normal two-parent merge. The result keeps the
|
||||
reviewed single `/plugins` workspace and Device Package multi-extension
|
||||
@@ -663,10 +687,9 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
## Next Recommended Steps
|
||||
|
||||
1. 在停止服务的目标数据库完成 Design V2 cutover dry-run、清零 blocker、显式 apply/validate,再用成对部署的服务端与安装包真实账号执行 direct edit、chat edit、Quote request/confirm、后台完成、结果下载和 interrupted unknown-result replay smoke; paid Provider activation 另行授权。
|
||||
2. 部署 Works `module_access` migration 与 `/api/auth/me` 权限 API,打包新 Makelore 客户端,再用真实账号分别关闭 Code、Canvas、Learning、Robot 执行卡片、根/深层/别名路由 smoke;同时独立验证模块 API 服务端授权。
|
||||
3. 部署 Works Square Learning 项目管理、对象存储、README HTTPS URL 校验和 list/detail/media/archive API,再使用真实账号验证发布/下架、分页、远程 README 图片(含 SVG、失效 origin 和隐私提示)、ZIP 校验/保存以及 Windows 与签名 macOS 安装包。
|
||||
4. 对 default-on Guided Hotspot Binding 核对指定固件镜像与六位码发行/消费契约,补齐 Windows 真机热点连接、签名 macOS x64/arm64 CoreWLAN/CoreLocation/worker 打包验证、真实 Host API/native seam Electron E2E 和完整真机 smoke;发布支持保留精确 `=0` 回滚,不把缺失证据表述为已验收。
|
||||
5. 成组核对客户端 source+built+contract 上传 → 服务端逐字节校验 → OSS immutable Release → CDN/Edge 的发布契约与客户端 `play_url` 消费契约。
|
||||
2. 部署 Works `module_access` migration 与 `/api/auth/me` 权限 API,打包新 Makelore 客户端,再用真实账号分别关闭 Code、Canvas、Robot 执行卡片、根/深层/别名路由 smoke;同时独立验证模块 API 服务端授权。
|
||||
3. 对 default-on Guided Hotspot Binding 核对指定固件镜像与六位码发行/消费契约,补齐 Windows 真机热点连接、签名 macOS x64/arm64 CoreWLAN/CoreLocation/worker 打包验证、真实 Host API/native seam Electron E2E 和完整真机 smoke;发布支持保留精确 `=0` 回滚,不把缺失证据表述为已验收。
|
||||
4. 成组核对客户端 source+built+contract 上传 → 服务端逐字节校验 → OSS immutable Release → CDN/Edge 的发布契约与客户端 `play_url` 消费契约。
|
||||
|
||||
## Open Questions / Blockers
|
||||
|
||||
@@ -674,9 +697,9 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
|
||||
## Risky Areas
|
||||
|
||||
- 四模块权限只控制 Makelore 客户端入口和初始化,不是 API 授权边界。不得因卡片置灰或路由阻断而放宽 Works/模块服务端的身份与权限校验;旧服务端缺少对象/字段时默认开启是显式兼容策略。
|
||||
- 三模块权限只控制 Makelore 客户端入口和初始化,不是 API 授权边界。不得因卡片置灰或路由阻断而放宽 Works/模块服务端的身份与权限校验;旧服务端缺少对象/字段时默认开启是显式兼容策略。
|
||||
- Prompt Museum 相对媒体必须保持固定的服务端路径并由 Main 处理;如果服务端增加媒体变体,需同步维护 entry/path 语法、Works Bearer 所有权、单次刷新、10 MiB 限制、可信 raster MIME 白名单与 Renderer data URL 校验。HTTPS 直连媒体必须继续无凭据,图片失败必须局限在卡片/详情视图。
|
||||
- Learning 项目目录依赖真实 Works 运营发布和固定 API 契约;README 图片只允许服务端校验后的无凭据 HTTPS URL,并由 Markdown 图片节点直接加载,不得扩展为任意网络或归档代理。第三方 origin 的可用性、格式支持和请求隐私是已接受边界。Main 必须保持 Bearer 所有权、封面/历史媒体受控读取、一次 401 refresh、同源最多五跳、SHA-256/ZIP 签名和原子保存;客户端下载明确不执行大小门禁,不得把上游错误、Token、对象存储 URL 或本地路径投影到 Renderer。历史课程数据不再读取但也不得被隐式删除。
|
||||
- Learning 必须保持完全退役;不得因旧链接、旧服务端字段或历史数据而恢复入口、路由、API、下载或打包 fallback。历史课程数据不再读取、迁移,也不得被隐式删除。
|
||||
- Works Project 首次封面已由服务端源 `407c883`(本地 merge `0cedfc4`)提供单请求原子绑定与失败补偿,客户端源 `145a6ce` 因此要求首次发布上传 PNG/JPEG/WebP 封面;部署、安装包和真实账号/对象存储 smoke 仍未完成。服务端仍没有已有 metadata 的 revision/ETag 与 draft-only 条件写,因此已有 draft/published 继续只允许 version-only,客户端不得以无条件 PATCH 替代。
|
||||
- Guided Hotspot Binding 默认开启并提供未经认证的热点扫描/显式连接,但当前 Hotspot/portal 仍是开放 SoftAP + 明文 HTTP,且精确出货镜像、激活码发行契约、签名 macOS、Windows 真机与完整整链尚未验证。界面必须保留环境警告,异常发布可用精确环境值 `0` 回滚;不得把 SSID 前缀宣称为可信设备发现、自动认领或在线证明。
|
||||
- 一键提交已成功但本机 submission binding 落盘失败时必须保持提交成功、显示固定 `binding_warning` 并继续轮询,避免用户误判上传失败。
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
# Task: Integrate Learning module removal
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260904-integrate-remove-learning-6e4a9c21
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: /Users/inmanx/Documents/makelore
|
||||
- Base commit: bdc290c2cffee6eebbc1b1a6826edad3f830572a
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Integrate source task `20260903-remove-learning-7a91` at commit
|
||||
`5a7cb9b2085848631bdf7de45fe1cac74b905ed9` onto the latest local `main`.
|
||||
- Preserve later `main` work, especially the conversation-first AI Design changes, while
|
||||
removing the Learning module from Renderer, Main, tests, assets, packaging, and docs.
|
||||
- Promote the accepted three-module product boundary into canonical project memory and
|
||||
supersede the Learning-specific decision and release commitments.
|
||||
- Verify the merged product on the latest `main`, then start the desktop development app.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- The user explicitly confirmed on 2026-09-04 that Learning should remain removed; this
|
||||
is the human decision required to supersede ADR-005.
|
||||
- Keep Code, Canvas, Robot, authentication, updater, Plugins, packaging, and
|
||||
`/deliverables` behavior intact.
|
||||
- Do not inspect, migrate, or delete historical course data.
|
||||
- Preserve the literal `makelore-learning:v1` compatibility salt where it partitions
|
||||
shared account state; its name is not an active Learning product surface.
|
||||
- Do not restore a Learning fallback route. Stale Learning URLs should resolve through
|
||||
the normal module chooser behavior.
|
||||
- Source task records are read-only during integration.
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
- Concurrent Task Gate passed in Integration mode on the root `main`; this task held
|
||||
the exclusive integration lock and the completed source task remained isolated.
|
||||
- Planning Gate passed after reading the source record, integrated current state,
|
||||
ADR-005, decision index, architecture, domain rules, success criteria,
|
||||
commitments, and stale registry.
|
||||
- The user's explicit 2026-09-04 confirmation resolves the semantic conflict with
|
||||
accepted ADR-005 and authorizes the three-module canonical product state.
|
||||
- `project-positioning.md` remains a project-wide placeholder; the populated README,
|
||||
AGENTS guidance, decisions, architecture, domain, and current-state records provide
|
||||
the concrete product boundary for this integration.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Cherry-picked source `5a7cb9b2085848631bdf7de45fe1cac74b905ed9`
|
||||
onto the latest local `main` as `bd0873f34823754760368d8d37703c74bf65106d`.
|
||||
- Resolved README and Plugin Marketplace E2E conflicts by preserving the newer
|
||||
unified Plugin workspace and AI Design behavior while removing Learning policy data.
|
||||
- Makelore now exposes only Code, Canvas, and Robot across module selection, guarded
|
||||
routing, sidebar projection, auth state, desktop lifecycle, Host API dispatch, and
|
||||
build output.
|
||||
- Promoted the accepted three-module boundary into canonical decisions, architecture,
|
||||
domain rules, success criteria, glossary, current state, and commitments. ADR-005
|
||||
and the Learning deployment commitment are superseded.
|
||||
- Learning implementation files, routes, DTOs, assets, tests, and server contract stay
|
||||
deleted. Negative retirement tests and the frozen `makelore-learning:v1` shared
|
||||
account-partition salt are the only intentional implementation references.
|
||||
- Historical course data was neither inspected nor changed.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` passed with pnpm `10.33.4`.
|
||||
- `corepack pnpm run typecheck` passed.
|
||||
- Focused Vitest passed 8 files / 109 tests covering module access/navigation,
|
||||
App/provider gates, auth route/store, lifecycle, Main layout, and Host dispatch.
|
||||
- `corepack pnpm run lint:check` completed with 0 errors and 12 existing warnings:
|
||||
5 in current unchanged UI files and 7 under the historical
|
||||
`.worktrees/learning-player-release-fix` tree.
|
||||
- `corepack pnpm run build:vite` passed for Renderer, Main, Preload, and release
|
||||
utility. The output contains Code, Canvas, and Robot module assets and no
|
||||
Learning-named asset or chunk.
|
||||
- `corepack pnpm test` passed 220 files / 1,844 tests with 3 skips; the isolated
|
||||
pressure suite passed 1/1.
|
||||
- Targeted Electron E2E passed 8/8 across module navigation, retired Learning route,
|
||||
unified Plugins, and the latest Canvas flow.
|
||||
- Full Electron E2E passed 33/33 with 1 Windows-conditional skip.
|
||||
- Source/reference audit found no active Learning file, import, route registration,
|
||||
API constant, product copy, or build artifact. `git diff --check` passed.
|
||||
- Project-doc completeness and task-aware Integration Gate drift checks passed after
|
||||
confirming the source task record remained byte-identical in its source branch.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- The existing real-account module-access release commitment now covers Code,
|
||||
Canvas, and Robot only. No Learning service deployment or package acceptance remains.
|
||||
- No remote push, packaged-client install, production deployment, or publication was
|
||||
performed by this integration.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Applied all source promotion candidates to canonical decisions, architecture,
|
||||
domain rules, success criteria, glossary, current state, and commitments. No
|
||||
unresolved Learning promotion candidate remains.
|
||||
Reference in New Issue
Block a user