docs: record consultation integration checkpoint and registry blocker
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
2026-09-24 12:35:28 +08:00
parent 8a157be4f6
commit 0a8fce67a4
11 changed files with 44 additions and 11 deletions

View File

@@ -1,8 +1,8 @@
# ADR: 官方编程老师与项目会话导航
- Status: Accepted / implemented, amended 2026-09-23
- Status: Accepted / implemented, amended 2026-09-24
- Date: 2026-09-22
- Approval: 用户确认项目默认 Agent、项目下会话、多老师列表与移除试聊;随后确认使用 Yuxi 原生智能体、客户端提供三个只读工具、沿用学生账号付费,并要求实施及合并。
- Approval: 用户确认项目默认 Agent、项目下会话、多老师列表与移除试聊;随后确认使用 Yuxi 原生智能体、客户端提供三个只读工具、沿用学生账号付费,并要求实施及合并。2026-09-24 明确取消客户端固定老师/朋友分类,统一使用后端下发智能体,并要求合并上下文预算修复。
## Decision
@@ -13,10 +13,14 @@
- 本地工具只交给老师主线程:云端持久中断完整批次,Main 主动回传配对结果,关联 Run 续接同一问题。最多六批读取,保留原付款人、版本、上下文和截止时间;读取限当前项目,允许 .makelore/project.json,排除其余内部记录与 Git 数据,不提供本地写入或命令。
- Works Square 验证学生编程资格,使用专用短期老师凭据;聊天模型费用记入学生 ai_programming / coding_teacher 账本。老师资源仍归 Yuxi 创建者,个人 Agents 模块继续创建者付费,老师问题不占创建者个人智能体金额上限。
- 云端保存老师消息、执行和收到的片段;Main 按账号、项目和来源会话保存话题索引与展示历史。旧本地老师话题保留原路径。停用阻止后续调用,历史仍可查看;断线按游标和持久状态恢复,重启后中断旧问题,下次提问先停止旧问题再绑定新上下文。
- “问老师”仍是右侧独立答疑,用户发起,不主动巡查项目。正文、保存历史和带回草稿仅接收云端主线程文本;子线程事件仍推进续传游标。带回回答只追加草稿,不自动发送。Code/Pi 执行和项目 Plugin 生命周期保持各自边界。
- Code 咨询统一使用服务端下发智能体,不内置老师/朋友角色、本地教学人设或按名称分配的工具权限。名称、头像、简介、欢迎语和推荐问题均来自发布定义;新话题使用用户选择或运营默认项,已有话题继续固定原定义和版本。所有下发项共享上述只读工具边界,通用讨论组件协议不定义智能体人格。
- 右侧咨询保留已实现的结构化讨论和主动跟进:自动检查在隐藏窗口、操作会话运行、来源归档、智能体回复或咨询草稿编辑期间延后,Main 再校验来源、启停和冷却。跟进使用同一发布定义与学生计费,不伪造学生消息。正文、保存历史和带回草稿仅接收云端主线程文本;子线程事件仍推进续传游标。带回回答只追加草稿,不自动发送。Code/Pi 执行和项目 Plugin 生命周期保持各自边界。
- 当前咨询与草稿按账号、项目保存,每轮绑定当时的操作会话。旧客户端生成的朋友话题及草稿只读保留,不再继续调用,也不自动绑定云端智能体;旧来源会话级历史不自动迁移。现有云端 `coding-teacher` 契约与存储名保留为实现兼容,不构成角色分类。
- 输入预算在编译时计入完整执行请求。本地旧模型路径按约 2 UTF-8 字节估算 1 Token,工具定义、调用和读取预留纳入同一计量;估算不替代模型上限或实际 usage。云端以完整 JSON 转义后的 query 字节数裁剪来源节选,原文仍可按 ID 读取。固定配置/当前讨论超限与用户问题/引用超限分别提示,不静默修改发布预算、问题、明确引用或话题版本。
## Evidence And Release Boundary
- 2026-09-24 客户端源 `8a157be4f62d073744164318e02185aebeaadc09` 包含预算修复 `de72b1cd945df373d09402a1cf3a0e9b34832f03`。预算修复通过 289 项相关测试;统一智能体覆盖 323 项相关用例、类型/lint/生产构建、2 项 Electron 交互和 13 项布局测试。扩展 Main 类型检查仍有基线 66 项诊断,无新增;不代表真实收费模型、已安装客户端或生产整链验收。详见两份源任务记录。
- 配套源:Works Square 79b1da574364d6f412e4395c179b5d27cc7bbd7d;Yuxi c2792dc4938a68db8ce1e34056e84af4b06c739b;MakeLore d20c818fe79bc5833cef15d99974b699dde71c6d。
- 源验证包括 WS 66 passed / 1 skipped、Operations 125 项及构建/浏览器验证;Yuxi 2243 passed / 1 skipped、真实 HTTP/PostgreSQL/Redis/worker/SDK 续接验证;MakeLore 51 项相关测试、typecheck、lint、构建及已有 Electron 流程验证。模型使用明确替身,真实供应商扣款与完整生产拓扑未验收。
- 合并不代表部署;需配套发布三个端及 Yuxi worker。本次无新增数据库迁移,WS 唯一 head 仍为 20260922_0096。老师模型必须在学生网关开放,既有云接入配置与被选资源依赖须就绪。

View File

@@ -1,6 +1,6 @@
# Decision Index
- [官方编程老师与项目会话导航](ADR-2026-09-22-coding-teacher.md):2026-09-23 amended / implemented;运营下发多位 Yuxi 老师并指定默认,Main 提供三个项目/会话只读工具、云端续接及主线程正文路由,学生账号付费。
- [下发智能体咨询与项目会话导航](ADR-2026-09-22-coding-teacher.md):2026-09-24 amended / implemented;取消固定老师/朋友分类,运营下发 Yuxi 智能体并指定默认,发布定义拥有人设与显示资料,Main 提供一致的项目/会话只读工具。旧合成朋友话题与草稿只读保留;学生计费、版本固定与主线程正文路由保持,输入预算区分近似 Token 与精确 JSON 字节。
## Active Decisions

View File

@@ -1,13 +1,15 @@
# Data Flow
## Project conversations and teacher chat
## Project conversations and distributed-agent consultation
目录式创建 → Main 保存项目与 defaultAgentId → 项目直接列出会话 → 首次发送或显式新建创建 Conversation → 原 Pi 执行链。历史会话继续使用原 Agent 绑定;切换项目丢弃旧读取。
问老师/选择已下发老师 → Main 获取 WS 专用老师凭据,固定话题版本并保存问题身份与账号/项目/Pi 公开消息快照 → Yuxi 原生 Request/Run。持久读取中断 → Main 校验绑定与取消状态 → 列目录/读取文件/读取会话原文 → 主动 POST 完整配对结果 → checkpoint 关联 Run 续接。最多六批读取,保留原问题时限与学生付款人;文件使用读取时内容,会话使用本轮快照。云端保存消息和收到的片段,完整工程与 Pi 原始日志保留本机。
统一智能体入口/选择已下发项 → Main 获取 WS 专用凭据,以所选或运营默认智能体创建项目级话题并固定版本 → 保存问题身份及当前账号/项目/本轮 Pi 公开消息快照 → Yuxi 原生 Request/Run。名称、人设和展示资料来自发布定义,不叠加本地老师/朋友人格。持久读取中断 → Main 校验绑定与取消状态 → 列目录/读取文件/读取会话原文 → 主动 POST 完整配对结果 → checkpoint 关联 Run 续接。所有下发项均遵守相同工具边界。最多六批读取,保留原问题时限与学生付款人;文件使用读取时内容,会话使用本轮快照。云端保存消息和收到的片段,完整工程与 Pi 原始日志保留本机。
云端事件 → Main 先推进游标,再仅转发云端主线程文本 → Host SSE/本机历史 → 右侧面板。子智能体文本不混入正文或带回草稿;断线按游标与持久状态恢复。关闭面板不取消已接受问题,停止/退出请求取消原问题;重启后下次提问先停止旧问题。带回回答只追加草稿,不自动发送,旧本地老师话题保留原执行路径。见[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。
编译完整请求 → 本地路径按近似 Token 预算、云端路径按实际 JSON query 字节预算裁剪来源节选 → 提交前按同一计量复核。问题、明确引用及固定讨论指令保持完整;真正的固定配置超限单独提示。旧合成朋友历史和草稿只读展示,不创建新调用或自动绑定;现有结构化讨论、主动跟进和项目草稿继续使用统一咨询身份。
## Permanent wallet and recharge
账号菜单 / PointWallet → `src/lib/works-billing.ts` → Main 固定 `/api/works/billing/*` 路由 → Works Square 账务 API。Main 持有认证与账号绑定,通过 `shared/works-billing.ts` 的公开 DTO 投影余额、产品、订单及流水;充值沿用 Renderer capability,Renderer 不传付款人、价格、Token 或任意上游地址。账号切换后 Main 与账号绑定的 UI 丢弃迟到结果,打开菜单和窗口 focus 刷新当前账号。

View File

@@ -4,7 +4,7 @@
| Path | Responsibility | Owner Notes |
|---|---|---|
| `electron/coding-teacher/**`, `electron/api/routes/coding-teacher.ts`, `shared/coding-teacher.ts`, and `src/pages/Chat/Teacher*.tsx` | Main-owned 老师选择、云凭据、项目/Pi 快照、三个只读工具、Yuxi 中断续接与本机话题 | `cloud-runner.ts` 跟随关联 Run 并按云端主线程路由正文;`read-tools.ts` 复用项目文件边界。账号/项目/来源会话隔离,无本机写入/命令,旧话题保留原路径。见 [teacher ADR](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 |
| `electron/coding-teacher/**`, `electron/api/routes/coding-teacher.ts`, `shared/coding-teacher.ts`, and `src/pages/Chat/Teacher*.tsx` | Main-owned 下发智能体目录与选择、云凭据、项目/Pi 快照、三个只读工具、Yuxi 续接、项目级咨询和讨论 | 服务端发布定义提供人设与显示资料,无本地老师/朋友分类或名称工具限制;旧合成朋友话题/草稿只读。`context.ts` 按执行路径测量完整请求,`model-runner.ts` 使用近似 Token 预算,`cloud-runner.ts` 使用精确 JSON 字节并仅路由云端主线程正文。账号/项目/本轮来源隔离,无本机写入或命令。见 [咨询 ADR](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 |
| `electron/coding-projects/project-config.ts`, `src/pages/Chat/CodingProjectConversations.tsx`, and `src/components/layout/Sidebar.tsx` | 内部默认 Agent 与项目下会话导航 | 旧绑定保留;首次发送或显式新建创建会话,打开项目不创建。 |
| `electron/coding-plugins/manifest.ts`, `release-descriptor.ts`, `signature-verifier.ts`, and `trusted-keys.ts` | Closed Plugin package/descriptor parsing, fixed code-owned resource roots, compatibility checks, canonical archive validation, and Ed25519 trust | Data Service plus exact Game Resource, Game Audio and Project Scaffold roots are code-owned. Other schema-2 packages still pass descriptor/signature/archive validation; downloadable P0 Skill assets remain text/image-only. Hosted Web Search is not a current Plugin root. |
| `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. |

View File

@@ -1,6 +1,6 @@
# System Overview
官方编程老师由 Yuxi 原生智能体执行,Works Square 运营选择下发、同步版本并指定默认老师。Main 按账号/项目/来源会话管理本机话题,绑定当前项目和已完成 Pi 公开消息,执行云端请求的三个只读工具后主动回传结果;Yuxi 保存云端消息和收到的片段。学生支付老师模型费用,个人 Agents 保持创建者付费。正文只接收云端主线程文本,子线程事件仍推进续传游标。Code 项目默认 Agent、项目下会话和 Pi 执行保持原边界。详见[已接受决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。
Code 咨询由 Works Square 运营下发的 Yuxi 智能体执行,客户端不内置老师/朋友角色;发布定义提供名称、头像、人设、欢迎语和推荐问题。Main 按账号/项目管理本机话题与草稿,每轮绑定当前操作会话和已完成 Pi 公开消息,执行云端请求的三个只读工具后主动回传结果;Yuxi 保存云端消息和收到的片段。学生支付咨询模型费用,个人 Agents 保持创建者付费。新话题使用所选或默认项,旧话题固定版本;旧合成朋友历史及草稿仅查看。结构化讨论和现有主动跟进协议保留。正文只接收云端主线程文本,子线程事件仍推进续传游标。Code 默认 Agent、项目下会话和 Pi 执行保持原边界。详见[已接受决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。
## Current Architecture

View File

@@ -4,6 +4,11 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- 2026-09-24:将客户端源 `8a157be4f62d073744164318e02185aebeaadc09` 从 `eb3dc85a2f0ed8457b7f24684c2da3ab192c2e46` 无冲突快进合入本地 `main`,包括预算修复 `de72b1cd945df373d09402a1cf3a0e9b34832f03` 及其源记录 `248776d8550d67de7ce30802a9f827d432c42a99`。
咨询统一使用运营下发的智能体,移除固定老师/朋友角色、本地人设与按名称限制工具的逻辑;名称、头像、简介、欢迎语和推荐问题取自发布定义。旧合成朋友话题与草稿只读保留,不自动绑定或提交;项目级草稿、已发布版本、学生计费和现有讨论/主动跟进保持。
输入预算区分近似模型 Token 与完整 JSON query 字节,固定配置超限单独提示,修复短问题被错误拦截。源覆盖 323 项相关用例,类型/lint/生产构建、2 项 Electron 交互和 13 项布局测试通过;预算源另有 289 项相关测试。扩展 Main 仍为基线 66 项诊断,无新增。合并未改产品实现,沿用源验证;未推送、打包、安装或做真实付费模型验收。
见[统一智能体源任务](tasks/20260924-cloud-consultation-agents-82a6cd19.md)、[预算源任务](tasks/20260924-teacher-context-budget-3a9e6c81.md)和[本地集成记录](tasks/20260923-merge-yuxi-teachers-ml-9d623c5f.md)。本条更新当前咨询规则,旧条目保留为历史;集成文档门禁收尾状态以集成记录为准。
- 2026-09-23:任务 `20260923-merge-yuxi-teachers-ml-9d623c5f` 经用户确认交接主目录,将 `d20c818fe79bc5833cef15d99974b699dde71c6d` 从 `1f2ad3fb3a71b8b35fabb5b319cd3b54b4c2ebbe` 无冲突快进合入本地 `main`。配套三端已统一为 Yuxi 原生老师、WS 运营选择下发/同步/默认/启停、Main 三个项目/Pi 只读工具及学生账号付费;个人 Agents 保持创建者付费。MakeLore `d20c818` 已关闭 Yuxi 源记录中的子线程正文路由待办。
源验证:51 项相关测试、typecheck、lint 和生产构建通过;原 Electron 老师选择/带回草稿流程通过。子线程正文混入先复现失败再修复,回归覆盖两种事件格式及断线游标。 产品文件与源一致,未重写实现;完整生产拓扑及真实供应商计费仍待发布验收。原有 3 份外来文档保持未提交原样,未推送或部署,无本次新增迁移。
本条取代早期 Main 独立运行/不保存云端老师消息/运营重复编辑配置的现状说明,旧条目保留为历史。见[本次集成](tasks/20260923-merge-yuxi-teachers-ml-9d623c5f.md)和[源任务](tasks/20260923-yuxi-teachers-client-53ba33e2.md)。

View File

@@ -8,7 +8,7 @@
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 1f2ad3fb3a71b8b35fabb5b319cd3b54b4c2ebbe
- Owner: codex
- Status: Ready for Integration
- Status: Blocked
## Scope
@@ -42,3 +42,18 @@
## Promotion Candidates
- Applied the accepted source promotion candidates in integration mode. User confirmation already covers native Yuxi teachers, local read tools and student billing; no unresolved product decision remains.
## 2026-09-24 Consultation Follow-up Integration
- User requests merging the completed context-budget and server-agent unification follow-ups; explicitly declines the additional Yuxi tool explanation UI. Continue this Yuxi-teacher integration in its existing primary ownership. Current main starts at eb3dc85a2f0ed8457b7f24684c2da3ab192c2e46; exact source is 8a157be4f62d073744164318e02185aebeaadc09, including budget source 248776d8550d67de7ce30802a9f827d432c42a99 / product de72b1cd945df373d09402a1cf3a0e9b34832f03.
- Project Context Loaded: official check/start/status passed with unchanged Identity, primary main ownership and exclusive integration lock. Read entry/planning gate, memory index, own and both source records, positioning, teacher ADR/decision index, system/module/data-flow, business rules/glossary/success criteria, current state, evidence/reflection/commitment/stale indexes. Compared all 110 owners with the prior source gate: only this integrator and the completed unification source changed; those records reread. Historical placeholder peer scopes remain unknown/read-only, with no concrete dependency. No new owners or conflicting decisions.
- Main owns local access/history; Yuxi/Works own published personas and student billing. The user's explicit removal of fixed teacher/friend categories supersedes earlier fixed personas. Existing cloud contracts, version pins, scoped reads and generic structured discussion remain. Positioning templates are supplemented by README/AGENTS/verified code; old consultation statements are updated only for this accepted scope.
- Planning and Integration Gates Passed. Plan: fast-forward the verified source, reconcile accepted canonical consultation/budget facts, prove source ancestry and product equality, run official documentation checks, commit and complete. Preserve all three previously adopted foreign documents byte-for-byte and exclude them from commits; source records stay read-only. No subagents, extra Yuxi UI, cloud changes, paid provider calls, push, packaging or deployment.
### Follow-up Outcome And Verification
- Fast-forwarded main from eb3dc85 to 8a157be without conflicts. Both completed source tips are ancestors; no product or test implementation was changed during integration. Exact source code comparison passes. README corrects one remaining old teacher/friend entry description. Canonical decisions, architecture, rules, glossary, evidence and integrated snapshot now state the user-approved server-agent and budget behavior. Source records are unchanged.
- Reuse exact source verification: unification covers 323 relevant unit cases, standard typecheck, scoped lint, production build, 2 Electron interactions and 13 layouts; budget source covers 289 relevant cases. Expanded Main remains 66 baseline diagnostics with no additions. No new production/provider/installed-app validation is claimed. Whitespace check and referenced source-document existence pass. Three pre-existing untracked documents remain unchanged and excluded from this checkpoint.
- Documentation completion is BLOCKED, not passed: the resumed integrator's original 1f2ad3f base predates later cross-machine main integration. Official check_doc_drift attributes six existing historical task records in that prior first-parent range to this task. All six predate this follow-up and are identical to eb3dc85. Five name source branches not retained locally; one records main, so the unchanged-source import rule cannot prove it. Neither source records nor the official checker are rewritten to suppress this result.
- Retain this as an incomplete integration checkpoint. Proposed recovery requires explicit human approval: release this primary ownership with official release --force (required only because the three known foreign documents remain untracked), start a fresh integration task at the current committed main with --adopt-existing for exactly those unchanged documents, then run its full gates to close this merge. This records the true new integration boundary without changing old task bases, branch history or user files. No cleanup, reset, stash or automatic force release.
- Both just-integrated managed source worktrees remain retained pending the separate cleanup decision after documentation closure: 20260924-teacher-context-budget-3a9e6c81 and 20260924-cloud-consultation-agents-82a6cd19. Branches and all source commits must remain preserved.

View File

@@ -1,12 +1,15 @@
# Business Rules
## Project conversations and official teacher
## Project conversations and distributed agents
- 每个新项目创建内部默认 Agent,普通界面无 Agent 创建步骤或分组列。defaultAgentId 选取已存默认、置顶或首个可用 Agent;历史 Agent 与会话绑定不重写,不重新启用停用/归档 Agent。
- 项目直接显示会话并保留归档、改名、未读、运行状态;打开项目不创建空会话。首次发送或显式新建才创建。项目设置编辑默认配置,历史会话仍能定位原绑定配置。
- 老师使用 Yuxi 原生配置和云资源,新话题可选择运营下发的老师,旧话题固定版本。Main 只提供当前项目和本轮捕获的 Pi 公开消息/老师话题的三个只读工具,允许 `.makelore/project.json`,无本机写入或命令,不进入其他账号/来源记录;每次读取与续接检查绑定及取消状态。Yuxi 保存老师消息与收到的片段,完整本地工程不全量上传。
- 同 requestId 相同输入读取已有请求结果,不同输入冲突;重启中的请求标记中断,账号退出中止,来源删除清理相关话题。带回回答追加草稿且不自动发送;已归档来源必须先恢复。
- 运营只管理下发、同步、默认与启停,无重复提示词编辑器或试聊。老师聊天模型由学生账号付费,个人 Agents 保持创建者付费。正文、历史及带回草稿只接收云端主线程文本;忽略子线程文本仍推进游标。
- 客户端不内置老师/朋友角色:名称、头像、简介、欢迎语、推荐问题及人格由服务端发布定义决定,通用讨论协议不定义人格。任意名称的下发智能体都遵守同一只读工具边界;不再按角色限制项目读取。
- 当前咨询按账号、项目保存,每轮绑定所选操作会话;新话题选择下发项或运营默认项,旧话题固定原定义与版本。旧合成朋友话题及未发送草稿仅查看,不继续调用、不自动重绑定或提交;兼容路由/存储名不定义新角色。
- 输入预算区分近似模型 Token 与精确云端 JSON 字节,编译和提交使用同一完整请求计量。保留当前问题、明确引用和固定指令,按需缩减来源节选;固定配置/讨论超限不误报为用户短问题过长,不静默提升预算或迁移旧话题。
依据:[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)及 [ADR-008](../10-decisions/adr-008-interactive-ai-app-scaffold.md)。

View File

@@ -2,6 +2,9 @@
| Term | Meaning | Notes |
|---|---|---|
| 下发智能体 | 运营从 Yuxi 选择、发布并向 Code 客户端提供的咨询智能体 | 无固定老师/朋友分类;显示资料、人设及资源由发布定义提供,学生付费。现有 `coding-teacher` 接口名是实现兼容 |
| 咨询话题 | 账号/项目下固定某一发布智能体版本的对话 | 每轮绑定当时的操作会话;结构化讨论与主动跟进使用同一身份;原来源会话级历史保留原路径 |
| 旧合成朋友 | 旧客户端基于老师配置在本机替换人设产生的历史身份 | 历史和草稿只读保留,不再调用,不自动映射到同名云端智能体 |
| `ProjectType` | 项目配置中持有且之后不可变的内部产品类型 | 普通新建不展示选择并默认 `interactive_ai_app`;既有 `custom` 继续兼容,历史 `mini_game` / `mini_program` 读取时归一为前者,缺少字段按 `custom` 处理 |
| `BuildPreset` | 平台内部用于构建和验收项目包的受控实现 | 不等于 `ProjectType` 或 Scaffold 状态;交互式 AI 应用使用固定 Vite preset |
| Official Project Plugin | 由 MakeLore 代码所有、以项目启用作为生效范围的官方 Plugin | 当前闭合集合为 `makelore.data-service`、`makelore.game-resource`、`makelore.project-scaffold`;满足既有交付/获取条件并启用项目后自动进入每个 parent Agent,不使用伙伴分配,child 为空 |

View File

@@ -4,6 +4,7 @@ Use this index for searchable, traceable evidence records.
| Date | Topic | Status | Source | Detail |
|---|---|---|---|---|
| 2026-09-24 | 统一下发智能体与上下文预算修复 | Integrated locally; installed/live-provider acceptance not run | `8a157be4f62d073744164318e02185aebeaadc09`, [统一智能体](../30-worklog/tasks/20260924-cloud-consultation-agents-82a6cd19.md), [预算修复](../30-worklog/tasks/20260924-teacher-context-budget-3a9e6c81.md) | 统一智能体覆盖 323 项相关用例、标准类型检查/lint/生产构建、2 项 Electron 交互及 13 项布局测试;预算源 289 项测试包含真实服务/执行器与临时文件读取。扩展 Main 类型检查与基线同为 66 条、无新增。合并保持产品实现不变;未验证真实收费模型或安装版。 |
| 2026-09-23 | Yuxi 编程老师与客户端只读工具 | Integrated locally; production acceptance pending | `d20c818fe79bc5833cef15d99974b699dde71c6d`, [source task](../30-worklog/tasks/20260923-yuxi-teachers-client-53ba33e2.md) | 源验证:51 项相关测试、typecheck、lint 和生产构建通过;原 Electron 老师选择/带回草稿流程通过。子线程正文混入先复现失败再修复,回归覆盖两种事件格式及断线游标。 本次精确快进,产品字节相同;真实收费模型和完整部署拓扑未验收。 |
| 2026-09-22 | 编程老师长上下文与项目文件只读能力 | Integrated on local `main`; real cloud-model acceptance pending | Source `44e754a43ec6d286fee6b6492da0d1f9347770e6`, [source task](../30-worklog/tasks/20260922-teacher-context-c40f7b51.md), [integration task](../30-worklog/tasks/20260922-merge-coding-teacher-client-b80c376f.md) | 原实现会逐条删光超预算来源消息,并拒绝模型工具请求;长来源、长老师回复和原生文件读取均先复现失败再修复。现在保留最近问答节选,可按消息 ID 恢复原文并只读当前项目文件。56 项相关测试、1 项 Electron 流程、Renderer typecheck、scoped lint 和构建通过;Main 全量严格类型检查仍有既有 66 条诊断。快进后产品树与已测源完全一致,未推送、安装或调用真实计费模型。 |
| 2026-09-06 | Game Resource generation automatically delivers every output to the frozen project | Integrated on local `main`; live paid Provider and rebuilt installed-client smoke not run | Source `6113a2453299141eab8420a56e93675712dd607b`, product `4df4bc96245c01cd95e35ddf1b2b03d0e0d231c5`, source task `20260906-game-resource-auto-delivery-7a4e2c91`, integration task `20260906-game-resource-auto-delivery-integration-8c4e1a72`, ADR-008 | One confirmed generate call submits once; Main internally polls, downloads all terminal outputs, and writes them to the original frozen project. A durable receipt resumes local delivery without another Provider call or Token Point charge, and the shared write lease is held only during materialization. Agent-visible status/save tools and the second save confirmation are gone. Source evidence: 99 focused tests, 1,901 full unit tests/2 skips plus pressure, typecheck, lint, all Vite targets, 8 Electron tests, unified Plugins E2E 3/3, and Windows x64 runtime staging. No live paid generation, deploy, publication, push, installation, or packaged end-to-end smoke is claimed. |