From 158d3ee5fa0b9233523e4663a68b0fda5a1383cc Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Wed, 23 Sep 2026 10:46:50 +0800 Subject: [PATCH] =?UTF-8?q?docs(teacher):=20=E9=9B=86=E6=88=90=20Yuxi=20?= =?UTF-8?q?=E8=80=81=E5=B8=88=E4=B8=8E=E5=AD=A6=E7=94=9F=E8=AE=A1=E8=B4=B9?= =?UTF-8?q?=E8=BE=B9=E7=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ADR-2026-09-22-coding-teacher.md | 28 ++++++------ .project-docs/10-decisions/decision-index.md | 2 +- .project-docs/20-architecture/data-flow.md | 4 +- .project-docs/20-architecture/module-map.md | 2 +- .../20-architecture/system-overview.md | 2 +- .project-docs/30-worklog/current-state.md | 4 ++ ...0260923-merge-yuxi-teachers-ml-9d623c5f.md | 44 +++++++++++++++++++ .project-docs/40-domain/business-rules.md | 4 +- .project-docs/50-evidence/evidence-index.md | 1 + 9 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 .project-docs/30-worklog/tasks/20260923-merge-yuxi-teachers-ml-9d623c5f.md diff --git a/.project-docs/10-decisions/ADR-2026-09-22-coding-teacher.md b/.project-docs/10-decisions/ADR-2026-09-22-coding-teacher.md index 64e4caf6..8ebb8301 100644 --- a/.project-docs/10-decisions/ADR-2026-09-22-coding-teacher.md +++ b/.project-docs/10-decisions/ADR-2026-09-22-coding-teacher.md @@ -1,23 +1,23 @@ # ADR: 官方编程老师与项目会话导航 -- Status: Accepted / implemented +- Status: Accepted / implemented, amended 2026-09-23 - Date: 2026-09-22 -- Approval: 用户确认详细设计、实施及合入主分支;随后确认运营指定当前老师,并要求恢复当前会话和项目文件读取后合并修复。 +- Approval: 用户确认项目默认 Agent、项目下会话、多老师列表与移除试聊;随后确认使用 Yuxi 原生智能体、客户端提供三个只读工具、沿用学生账号付费,并要求实施及合并。 ## Decision -- 新项目直接创建一个内部默认编程 Agent 并保存 defaultAgentId;移除创建 Agent 的产品流程。会话直接列在项目下,项目打开不自动创建会话,首次发送或显式新建才创建。旧 Agent ID、配置和 Pi 会话绑定保留;归档、改名、未读与运行状态延续原合同。 -- Works Square 运营端下发当前使用的官方编程老师,包括提示词、顺序启用的纯文本 Skills、模型及原生思考选项、展示信息和上下文/输出预算。客户端继续消费固定 `coding-teacher` 通道;老师列表、新建与当前选择由运营端负责。草稿、不可变发布版本、启停和操作记录分离;版本写入使用 expected_revision。发布与启用必须显式操作。 -- MakeLore Main 使用当前登录账号的受管模型网关运行独立答疑,不启动 Pi、不执行 Skill 脚本。默认上下文包含当前来源活动分支的已完成用户/助手文本、用户显式引用及本话题已完成历史。长消息按预算保留最近问答的首尾节选和消息 ID,面板显示节选提示;可按需读取本轮捕获的原文,不能进入其他来源分支或其他老师话题。 -- 老师可使用 Main 提供的只读目录、项目文本文件和会话原文工具。文件路径限于当前项目,允许 `.makelore/project.json` 配置;不读取其他 `.makelore` 会话数据、`.git` 内部数据,不修改文件或执行命令。复用既有文件服务的 UTF-8 与 256 KiB 预览上限,按行读取并明确标示截断。 -- 模型原生工具调用在 Main 内完成,最多六批读取后要求最终文本。工具定义、调用、结果与原生思考均计入输入预算;较早工具轮次成组省略,用量累计覆盖每次模型请求。读取与后续请求检查账号和取消状态;原生思考仅在必要的模型续接中保留,不投影或持久化,也不读取主会话 thinking 或工具参数。 -- 本机老师话题按账号、项目和来源会话隔离并固定发布版本;每次新问题检查在线启停,云端不保存学生老师聊天。先持久化请求身份再执行;重试读取原请求,取消和重启中断可见,来源会话删除时清理相关话题。 -- “问老师”位于编程右侧面板;带回建议只追加主输入草稿,不自动提交。运营桌面试聊要求 admin 和精确已保存 draft_revision,使用示例上下文。 -- 个人云智能体、Code/Pi 执行、现有网关付款规则和项目 Plugin 生命周期保持独立。客户端使用运营指定老师,不增加客户端老师选择列表、跨设备老师历史或长期记忆框架。 +- 新项目创建内部默认编程 Agent 并保存 defaultAgentId,会话直接列在项目下。打开项目不自动创建空会话,首次发送或显式新建才创建;历史 Agent ID、配置和 Pi 会话绑定保留。 +- Yuxi 拥有老师提示词、模型和所选 Skills、知识库、MCP、子智能体。Works Square 运营菜单首先展示下发列表,添加时从 Yuxi 选择并发布当前配置,支持多位、默认选择与启停,不维护第二份提示词编辑器或试聊界面。 +- 运营显式同步 Yuxi 配置产生不可变下发版本。新话题可选择已下发老师,默认使用运营指定老师;已有话题固定原版本。配置与资源绑定固定,Skill 按问题建立运行快照,知识内容和远端工具仍由各自服务拥有;资源撤销可能阻止执行,版本不表示复制全部外部资源。 +- Yuxi 原生 Request/Run、PostgreSQL checkpoint 和 Redis 事件拥有云执行。Main 冻结本次账号、项目、来源 Pi 已完成分支的公开消息及老师话题,通过三个只读工具提供目录、UTF-8 文件行段和会话原文。文件按读取时内容提供,会话按本轮快照读取,不上传完整工程、Pi 原始日志或思考。 +- 本地工具只交给老师主线程:云端持久中断完整批次,Main 主动回传配对结果,关联 Run 续接同一问题。最多六批读取,保留原付款人、版本、上下文和截止时间;读取限当前项目,允许 .makelore/project.json,排除其余内部记录与 Git 数据,不提供本地写入或命令。 +- Works Square 验证学生编程资格,使用专用短期老师凭据;聊天模型费用记入学生 ai_programming / coding_teacher 账本。老师资源仍归 Yuxi 创建者,个人 Agents 模块继续创建者付费,老师问题不占创建者个人智能体金额上限。 +- 云端保存老师消息、执行和收到的片段;Main 按账号、项目和来源会话保存话题索引与展示历史。旧本地老师话题保留原路径。停用阻止后续调用,历史仍可查看;断线按游标和持久状态恢复,重启后中断旧问题,下次提问先停止旧问题再绑定新上下文。 +- “问老师”仍是右侧独立答疑,用户发起,不主动巡查项目。正文、保存历史和带回草稿仅接收云端主线程文本;子线程事件仍推进续传游标。带回回答只追加草稿,不自动发送。Code/Pi 执行和项目 Plugin 生命周期保持各自边界。 ## Evidence And Release Boundary -- Server source: 93ece7c6aa5c61f1f20b5fe3fe98bb86bb57b6f7 -- Client source: 9242a40d874984159d71494ac6510f3a248e89c0 -- Context/file repair: 44e754a43ec6d286fee6b6492da0d1f9347770e6;56 项相关测试、1 项 Electron 流程、Renderer typecheck、scoped lint 与构建通过,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。老师模型必须在学生网关开放,既有云接入配置与被选资源依赖须就绪。 +- 本修订取代旧 Main 独立模型循环、云端不存老师消息、纯文本 Skill、客户端不能选老师等边界。历史实施与验证保留在源任务记录;当前机制见 [产品说明](../../README.md)。 diff --git a/.project-docs/10-decisions/decision-index.md b/.project-docs/10-decisions/decision-index.md index 4bf3c084..b1f653f8 100644 --- a/.project-docs/10-decisions/decision-index.md +++ b/.project-docs/10-decisions/decision-index.md @@ -1,6 +1,6 @@ # Decision Index -- [官方编程老师与项目会话导航](ADR-2026-09-22-coding-teacher.md):2026-09-22 accepted / implemented;项目默认 Agent、项目下会话、运营版本化教师定义和 Main 独立答疑;支持当前项目/会话只读工具、长上下文节选与原文恢复,无 Pi 执行或文件写入。 +- [官方编程老师与项目会话导航](ADR-2026-09-22-coding-teacher.md):2026-09-23 amended / implemented;运营下发多位 Yuxi 老师并指定默认,Main 提供三个项目/会话只读工具、云端续接及主线程正文路由,学生账号付费。 ## Active Decisions diff --git a/.project-docs/20-architecture/data-flow.md b/.project-docs/20-architecture/data-flow.md index 6bc4c9ca..bfa35928 100644 --- a/.project-docs/20-architecture/data-flow.md +++ b/.project-docs/20-architecture/data-flow.md @@ -4,7 +4,9 @@ 目录式创建 → Main 保存项目与 defaultAgentId → 项目直接列出会话 → 首次发送或显式新建创建 Conversation → 原 Pi 执行链。历史会话继续使用原 Agent 绑定;切换项目丢弃旧读取。 -问老师/显式引用 → Main 读取 WS 已发布定义与当前来源分支的已完成文本 → 为最近主会话/老师问答分配节选预算 → 固定话题版本并持久化 requestId → 当前账号模型网关。模型需要更多资料时,原生工具请求 → Main 校验账号/取消状态 → 只读当前项目目录/文本文件或捕获的会话原文 → 结果回传同一网关继续回答,最多六批读取后要求最终文本;输入预算包含工具数据,用量累加。回答 → Host SSE/本机话题存储 → 右侧面板;工具读取结果和原生思考不写入本机话题。取消、重启中断和结果恢复以持久请求为准;关闭面板不取消模型。带回回答只追加主草稿,运营精确草稿版本试聊只用示例上下文且无项目工具。见[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 +问老师/选择已下发老师 → Main 获取 WS 专用老师凭据,固定话题版本并保存问题身份与账号/项目/Pi 公开消息快照 → Yuxi 原生 Request/Run。持久读取中断 → Main 校验绑定与取消状态 → 列目录/读取文件/读取会话原文 → 主动 POST 完整配对结果 → checkpoint 关联 Run 续接。最多六批读取,保留原问题时限与学生付款人;文件使用读取时内容,会话使用本轮快照。云端保存消息和收到的片段,完整工程与 Pi 原始日志保留本机。 + +云端事件 → Main 先推进游标,再仅转发云端主线程文本 → Host SSE/本机历史 → 右侧面板。子智能体文本不混入正文或带回草稿;断线按游标与持久状态恢复。关闭面板不取消已接受问题,停止/退出请求取消原问题;重启后下次提问先停止旧问题。带回回答只追加草稿,不自动发送,旧本地老师话题保留原执行路径。见[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 ## Permanent wallet and recharge diff --git a/.project-docs/20-architecture/module-map.md b/.project-docs/20-architecture/module-map.md index a0ebcb6c..2c287875 100644 --- a/.project-docs/20-architecture/module-map.md +++ b/.project-docs/20-architecture/module-map.md @@ -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 云配置、上下文节选/原文读取、本机话题、原生模型只读工具续接、Host API/SSE、独立右侧答疑与运营试聊 | 无 Pi worker 或写入/命令工具;复用 `coding-projects/project-files.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 中断续接与本机话题 | `cloud-runner.ts` 跟随关联 Run 并按云端主线程路由正文;`read-tools.ts` 复用项目文件边界。账号/项目/来源会话隔离,无本机写入/命令,旧话题保留原路径。见 [teacher 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. | diff --git a/.project-docs/20-architecture/system-overview.md b/.project-docs/20-architecture/system-overview.md index 184a7931..f0f40cb7 100644 --- a/.project-docs/20-architecture/system-overview.md +++ b/.project-docs/20-architecture/system-overview.md @@ -1,6 +1,6 @@ # System Overview -官方编程老师由 Works Square 运营指定当前发布定义,MakeLore Main 按账号/项目/来源会话运行独立答疑并持久化本机话题。Main 可按需只读当前项目文件和捕获的会话原文;长上下文保留最近问答节选,原生工具结果经既有模型网关续接,仍无 Pi 执行、写文件或命令。Code 项目自动建立内部默认 Agent、会话直接列于项目下。该能力与个人云智能体独立。详见[已接受决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 +官方编程老师由 Yuxi 原生智能体执行,Works Square 运营选择下发、同步版本并指定默认老师。Main 按账号/项目/来源会话管理本机话题,绑定当前项目和已完成 Pi 公开消息,执行云端请求的三个只读工具后主动回传结果;Yuxi 保存云端消息和收到的片段。学生支付老师模型费用,个人 Agents 保持创建者付费。正文只接收云端主线程文本,子线程事件仍推进续传游标。Code 项目默认 Agent、项目下会话和 Pi 执行保持原边界。详见[已接受决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 ## Current Architecture diff --git a/.project-docs/30-worklog/current-state.md b/.project-docs/30-worklog/current-state.md index 8c20756b..cd3cef10 100644 --- a/.project-docs/30-worklog/current-state.md +++ b/.project-docs/30-worklog/current-state.md @@ -4,6 +4,10 @@ This file is the integrated default-branch snapshot. Feature tasks record progre ## Integrated Through +- 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)。 + - 2026-09-22:原老师集成任务后续将修复源 `44e754a43ec6d286fee6b6492da0d1f9347770e6` 从 `7f5131e` 无冲突快进合入本地 `main`。 老师能按需只读当前项目目录、UTF-8 代码/配置和本轮捕获的主会话/老师话题原文;长来源及上一轮老师回答保留最近问答节选,避免上下文被全部丢弃或连续追问失败。 Main 原生工具结果续接最多六批后要求最终回答,检查账号与取消状态,计算完整输入预算并累计模型用量;不启动 Pi、不写文件或执行命令。 diff --git a/.project-docs/30-worklog/tasks/20260923-merge-yuxi-teachers-ml-9d623c5f.md b/.project-docs/30-worklog/tasks/20260923-merge-yuxi-teachers-ml-9d623c5f.md new file mode 100644 index 00000000..659a89b2 --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260923-merge-yuxi-teachers-ml-9d623c5f.md @@ -0,0 +1,44 @@ +# Task: Integrate Yuxi coding teachers into main branch + +## Identity + +- Task ID: 20260923-merge-yuxi-teachers-ml-9d623c5f +- Mode: Integration +- Branch: main +- Worktree: D:\Datas\OthersProjects\makelore +- Base commit: 1f2ad3fb3a71b8b35fabb5b319cd3b54b4c2ebbe +- Owner: codex +- Status: Ready for Integration + +## Scope + +- Integrate the approved three-part Yuxi coding-teacher release; this task owns the ml local primary branch and canonical memory. Exact source: d20c818fe79bc5833cef15d99974b699dde71c6d; source task: 20260923-yuxi-teachers-client-53ba33e2. + +## Intent And Constraints + +- Project Context Loaded: official check/start/status passed in integration mode with the task ID, branch, absolute primary worktree and base in Identity, exclusive integration lock and reservation. The user explicitly approved releasing the three completed prior owners and adopting seven existing foreign documents unchanged; they are excluded from commits. +- Read entry/memory-index, own and source records, positioning, current-state, decision-index/teacher decisions, system-overview, module-map/data-flow, business-rules/success-criteria, evidence/reflection/commitment/stale indexes. Yuxi root engineering guidance and architecture also loaded. Project goal: MakeLore Main owns desktop credentials, project/Pi reads and local teacher UI/history. +- Read 105 peer records from registered paths; all readable. Other peer scopes match the previously loaded implementation assessment, apart from the completed source task. Historical placeholder scopes remain unknown/read-only, with no concrete conflict for this exact integration. Yuxi/MakeLore positioning templates are supplemented by AGENTS, architecture, README and verified source. +- Current integrated teacher behavior is local Main execution; the user's accepted Yuxi-native teacher design and explicit student payer decision supersede that boundary. Existing personal-agent creator billing, Pi execution and local project write boundaries remain. Source tests/reviewer evidence applies to unchanged product bytes; real provider/production topology validation is still pending. The paired client source includes d20c818, resolving the routing follow-up recorded in the Yuxi source. +- Planning and Integration Gates Passed. Plan: fast-forward the exact verified source; promote the already-approved runtime/distribution/read-tool/billing facts into owning canonical documents; prove source ancestry and product equality, validate documentation/contracts, commit/complete and ask separately about source worktree cleanup. No new subagents, push, deployment or paid model calls. + +## Outcome + +- Fast-forwarded local main from 1f2ad3fb3a71b8b35fabb5b319cd3b54b4c2ebbe to d20c818fe79bc5833cef15d99974b699dde71c6d without conflicts. All three paired sources are integrated, including MakeLore d20c818, which resolves the child-thread routing follow-up in the unchanged Yuxi source record. +- Promoted the user-approved Yuxi runtime, Operations distribution, Main read-tool/history, main-thread text routing and student payer boundaries into canonical decisions/architecture/domain/current-state/evidence. Source task records are imported unchanged. Product and test files exactly match the verified source. +- The three pre-existing foreign documents retain their original adopted state and remain outside commits. No push, deployment, installer update, production migration or paid provider call. + +## Verification + +- Main contains the exact source HEAD; git merge --ff-only and source ancestry/equality checks passed. Product/test/build evidence is inherited from the exact fast-forwarded source; no conflict or product rewrite required another product test run. +- New relative document links passed (8 targets in this repository); whitespace checks passed. Official task-aware drift passed with unchanged source provenance and adopted foreign documents. Reviewed the committed/working range from the recorded base; only this integration's canonical documents and task record are committed beyond the source. + +## Follow-ups + +- Source worktree D:/Datas/OthersProjects/.codex-worktrees/makelore/20260923-yuxi-teachers-client-53ba33e2 (task 20260923-yuxi-teachers-client-53ba33e2) remains pending the separate post-merge cleanup question. Preserve its branch and commits. +- Initial blocked start created an unclaimed integration checkout at D:/Datas/OthersProjects/.codex-worktrees/makelore/20260923-merge-yuxi-teachers-ml-9d623c5f, branch codex/20260923-merge-yuxi-teachers-ml-9d623c5f-merge-yuxi-teachers. Ownership was rolled back before a task record was created; it is not a ready managed task and is retained for separate cleanup review. The active task owns the primary worktree in Identity, not this unused checkout. +- Release/real provider billing and full deployed three-service acceptance remain separate; keep existing recovery-backup directories unchanged. + +## 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. diff --git a/.project-docs/40-domain/business-rules.md b/.project-docs/40-domain/business-rules.md index 1e08564e..36dfbcbd 100644 --- a/.project-docs/40-domain/business-rules.md +++ b/.project-docs/40-domain/business-rules.md @@ -4,9 +4,9 @@ - 每个新项目创建内部默认 Agent,普通界面无 Agent 创建步骤或分组列。defaultAgentId 选取已存默认、置顶或首个可用 Agent;历史 Agent 与会话绑定不重写,不重新启用停用/归档 Agent。 - 项目直接显示会话并保留归档、改名、未读、运行状态;打开项目不创建空会话。首次发送或显式新建才创建。项目设置编辑默认配置,历史会话仍能定位原绑定配置。 -- 老师为独立答疑,Skills 不执行代码;默认上下文限于当前来源活动分支已完成用户/助手文本、显式引用及本话题历史。长消息保留最近问答节选,可按需读取本轮原文和当前项目文本文件(含 `.makelore/project.json`),无写文件或命令能力,不进入其他会话/账号记录。话题本机隔离、固定发布版本,每次新问题检查在线启停;每次读取及模型续接检查账号/取消状态。 +- 老师使用 Yuxi 原生配置和云资源,新话题可选择运营下发的老师,旧话题固定版本。Main 只提供当前项目和本轮捕获的 Pi 公开消息/老师话题的三个只读工具,允许 `.makelore/project.json`,无本机写入或命令,不进入其他账号/来源记录;每次读取与续接检查绑定及取消状态。Yuxi 保存老师消息与收到的片段,完整本地工程不全量上传。 - 同 requestId 相同输入读取已有请求结果,不同输入冲突;重启中的请求标记中断,账号退出中止,来源删除清理相关话题。带回回答追加草稿且不自动发送;已归档来源必须先恢复。 -- 运营试聊要求 admin 与精确已保存草稿版本,只使用示例上下文。个人云智能体和现有付款边界独立。 +- 运营只管理下发、同步、默认与启停,无重复提示词编辑器或试聊。老师聊天模型由学生账号付费,个人 Agents 保持创建者付费。正文、历史及带回草稿只接收云端主线程文本;忽略子线程文本仍推进游标。 依据:[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)及 [ADR-008](../10-decisions/adr-008-interactive-ai-app-scaffold.md)。 diff --git a/.project-docs/50-evidence/evidence-index.md b/.project-docs/50-evidence/evidence-index.md index ca447a5e..4289723f 100644 --- a/.project-docs/50-evidence/evidence-index.md +++ b/.project-docs/50-evidence/evidence-index.md @@ -4,6 +4,7 @@ Use this index for searchable, traceable evidence records. | Date | Topic | Status | Source | Detail | |---|---|---|---|---| +| 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. | | 2026-09-05 | Code-owned official project Plugins activate per project without partner assignment | Integrated on local `main`; rebuilt installed-client smoke pending | Initial Scaffold source/product `300ac89a81409440aac84ff45b1d9ca2fa186629` / `6710527e8f7150a6c4997d566a380454e33f455e`; broadened source/product `718783f6837e29f56c9add633596249c03e5701f` / `e0de7aa28c1d6e97454f0e4073ae9153e746bb4b`; tasks `20260905-official-plugin-project-scope-6e4a9c21` / `20260905-official-plugin-project-scope-integration-8b3d6f42`; ADR-008 | `makelore.data-service`, `makelore.game-resource`, and `makelore.project-scaffold` now enter every parent Agent after their existing delivery/acquisition and project-enable requirements, without partner assignment; child Agents remain empty and other package lifecycles are unchanged. TDD reproduced Main `skill_unassigned` and Renderer assignment-command failures. The broadened source passed 30 focused, 70 adjacent, and 37 resolver/composition tests, typecheck, lint, all Vite targets, and Electron E2E 1/1. The ordinary full unit run had one unrelated two-second real-process timing miss among 1,889 passes/2 skips; that file passed 6/6 alone. No rebuilt installed-client smoke is claimed. |