Record teacher component removal integration

This commit is contained in:
2026-09-28 17:55:03 +08:00
parent 317def7912
commit d37bc137ca
8 changed files with 58 additions and 5 deletions

View File

@@ -56,6 +56,6 @@ A good solution should {quality bar}.
### 产品定位与交付机制 ### 产品定位与交付机制
云端管理、运营下发、项目和会话读取、聊天与结构化讨论共同支持上述能力的交付。客户端统一承载服务端下发的智能体,“老师”“朋友”“方法教练”等名称和人设由云端配置决定,不新增固定角色分类或按名称分配权限。 云端管理、运营下发、项目和会话读取与聊天共同支持上述能力的交付。客户端统一承载服务端下发的智能体,“老师”“朋友”“方法教练”等名称和人设由云端配置决定,不新增固定角色分类或按名称分配权限。
本节作为老师 Agent 产品理念的权威记录;既有技术与运行边界见[老师 Agent 决策](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 本节作为老师 Agent 产品理念的权威记录;既有技术与运行边界见[老师 Agent 决策](../10-decisions/ADR-2026-09-22-coding-teacher.md)。

View File

@@ -10,6 +10,7 @@
## Decision ## Decision
- 2026-09-28 用户要求移除老师对话栏的结构化组件并确认合并:不再渲染想法板、结构图、流程/条件图和逐项对照,以及邀请、焦点和操作按钮。新提问与引导求助不再携带 discussion-v1 或 discussion;普通正文、“帮我看看”与快捷追问保留。旧结构化数据与快照不删除,结果不确定的旧请求重试保持原 ID 和完整输入,避免重复调用。
- 2026-09-28 用户确认像微信联系人一样持续聊天,随后明确纠正:不同项目必须有不同会话,并授权修复及合并。唯一可见聊天身份为账号+项目+稳定 config_id;同一项目不按名称、默认标记、Pi 会话或发布版本创建第二个可见聊天。项目隔离历史、草稿、已读和模型上下文;本次范围为本机持久化,不含跨设备同步。 - 2026-09-28 用户确认像微信联系人一样持续聊天,随后明确纠正:不同项目必须有不同会话,并授权修复及合并。唯一可见聊天身份为账号+项目+稳定 config_id;同一项目不按名称、默认标记、Pi 会话或发布版本创建第二个可见聊天。项目隔离历史、草稿、已读和模型上下文;本次范围为本机持久化,不含跨设备同步。
- 新项目创建内部默认编程 Agent 并保存 defaultAgentId,会话直接列在项目下。打开项目不自动创建空会话,首次发送或显式新建才创建;历史 Agent ID、配置和 Pi 会话绑定保留。 - 新项目创建内部默认编程 Agent 并保存 defaultAgentId,会话直接列在项目下。打开项目不自动创建空会话,首次发送或显式新建才创建;历史 Agent ID、配置和 Pi 会话绑定保留。
- Yuxi 拥有老师提示词、模型和所选 Skills、知识库、MCP、子智能体。Works Square 运营菜单首先展示下发列表,添加时从 Yuxi 选择并发布当前配置,支持多位、默认选择与启停,不维护第二份提示词编辑器或试聊界面。 - Yuxi 拥有老师提示词、模型和所选 Skills、知识库、MCP、子智能体。Works Square 运营菜单首先展示下发列表,添加时从 Yuxi 选择并发布当前配置,支持多位、默认选择与启停,不维护第二份提示词编辑器或试聊界面。
@@ -27,11 +28,13 @@
- 更早的话题仅在已登记项目、账号与 config_id 归属均明确时导入,以项目/话题/请求来源去重,重复正文不去重;失联目录稍后重试。无法证明身份的朋友/旧老师历史及旧草稿只读保留。现有云端 coding-teacher 名称不构成角色分类。独立主动观察后续也必须向相应项目的唯一智能体聊天投递建议。 - 更早的话题仅在已登记项目、账号与 config_id 归属均明确时导入,以项目/话题/请求来源去重,重复正文不去重;失联目录稍后重试。无法证明身份的朋友/旧老师历史及旧草稿只读保留。现有云端 coding-teacher 名称不构成角色分类。独立主动观察后续也必须向相应项目的唯一智能体聊天投递建议。
- 输入预算在编译时计入完整执行请求。本地旧模型路径按约 2 UTF-8 字节估算 1 Token,工具定义、调用和读取预留纳入同一计量;估算不替代模型上限或实际 usage。云端以完整 JSON 转义后的 query 字节数裁剪来源节选,原文仍可按 ID 读取。固定配置/当前讨论超限与用户问题/引用超限分别提示,不静默修改发布预算、问题、明确引用或话题版本。 - 输入预算在编译时计入完整执行请求。本地旧模型路径按约 2 UTF-8 字节估算 1 Token,工具定义、调用和读取预留纳入同一计量;估算不替代模型上限或实际 usage。云端以完整 JSON 转义后的 query 字节数裁剪来源节选,原文仍可按 ID 读取。固定配置/当前讨论超限与用户问题/引用超限分别提示,不静默修改发布预算、问题、明确引用或话题版本。
- 咨询回答以 Markdown 渲染标题、列表、表格、代码、HTTP(S) 链接/图片和公式,代码与表格在栏内滚动;普通 JSON、Markdown 链接与代码中的字面转义保持原义。discussion-v1 仅由顶层 reply/quickReplies/tool 或专用围栏识别,组件仍遵循既有生命周期。解析失败保留原讨论卡与可恢复正文,完整 unparsedResponse 单独持久保存并默认折叠,不再次注入后续会话上下文。 - 咨询回答以 Markdown 渲染标题、列表、表格、代码、HTTP(S) 链接/图片和公式,代码与表格在栏内滚动;普通 JSON、Markdown 链接与代码中的字面转义保持原义。历史 discussion-v1 请求仍由顶层 reply/quickReplies/tool 或专用围栏识别,保留数据解析但不再显示组件。解析失败保留原讨论数据与可恢复正文,完整 unparsedResponse 单独持久保存并默认折叠,不再次注入后续会话上下文。
- 工具活动使用实际主线程事件及 Main 本地读取结果的名称/状态,按 run/call 关联与去重,单独折叠展示;参数、输出、错误原文与推理不进入活动 DTO 或回答。未观察到结果的调用明确显示结果缺失,不补写过期事件或旧话题。Yuxi chat_service 保证只有 AI 角色进入回答流,客户端不按内容外形猜测清洗。 - 工具活动使用实际主线程事件及 Main 本地读取结果的名称/状态,按 run/call 关联与去重,单独折叠展示;参数、输出、错误原文与推理不进入活动 DTO 或回答。未观察到结果的调用明确显示结果缺失,不补写过期事件或旧话题。Yuxi chat_service 保证只有 AI 角色进入回答流,客户端不按内容外形猜测清洗。
## Evidence And Release Boundary ## Evidence And Release Boundary
- 2026-09-28 组件移除源 317def79129503062d15076585881ceae753055c 无冲突快进合入本地 main。47 项相关单测、12 项浏览器布局、1 项 Electron 咨询场景及类型/lint/构建通过;产品与测试保持源字节,沿用其验证。没有服务端或历史数据迁移;未推送、打包或更新安装版。见[源任务](../30-worklog/tasks/20260928-remove-teacher-cards-ef1cf59c.md)和[集成记录](../30-worklog/tasks/20260928-merge-teacher-cards-a09c07f3.md)。
- 2026-09-28 项目隔离修复源 `4b41c23a3a5e9da1a329b1b69930787a670163de` 已合入本地 main,纠正上述原跨项目假设。382 项相关测试、标准 typecheck、变更文件 lint、Vite 构建和 3 项 Electron 场景通过,覆盖同一智能体的双项目历史/草稿切换、升级导入及目录刷新;扩展 Main 仍有 66 项既有诊断。合并保持产品/测试与已验证源一致,沿用源证据;没有更新安装版或验收线上模型。见[修复源记录](../30-worklog/tasks/20260928-agent-project-chat-6644c06d.md)与[续接集成记录](../30-worklog/tasks/20260928-merge-agent-single-chat-9911c6df.md#project-isolation-correction-resume)。 - 2026-09-28 项目隔离修复源 `4b41c23a3a5e9da1a329b1b69930787a670163de` 已合入本地 main,纠正上述原跨项目假设。382 项相关测试、标准 typecheck、变更文件 lint、Vite 构建和 3 项 Electron 场景通过,覆盖同一智能体的双项目历史/草稿切换、升级导入及目录刷新;扩展 Main 仍有 66 项既有诊断。合并保持产品/测试与已验证源一致,沿用源证据;没有更新安装版或验收线上模型。见[修复源记录](../30-worklog/tasks/20260928-agent-project-chat-6644c06d.md)与[续接集成记录](../30-worklog/tasks/20260928-merge-agent-single-chat-9911c6df.md#project-isolation-correction-resume)。
- 2026-09-28 单会话源 `7aa81da616449dead25557476cf4f1433edf84b5` 已纳入本地 main。源365项相关单测、Renderer typecheck、变更文件 lint、Vite构建和真实 Electron 夹具交互通过;扩展 Main 检查与基线同为66项既有诊断。合并保持产品/测试与源一致,不重跑相同验证。未推送、打包、部署或进行真实付费模型验收;主动观察组合验收另行完成。见[源任务](../30-worklog/tasks/20260928-agent-single-chat-27da516b.md)及[集成记录](../30-worklog/tasks/20260928-merge-agent-single-chat-9911c6df.md)。下方旧话题交互证据仅记录当时版本。 - 2026-09-28 单会话源 `7aa81da616449dead25557476cf4f1433edf84b5` 已纳入本地 main。源365项相关单测、Renderer typecheck、变更文件 lint、Vite构建和真实 Electron 夹具交互通过;扩展 Main 检查与基线同为66项既有诊断。合并保持产品/测试与源一致,不重跑相同验证。未推送、打包、部署或进行真实付费模型验收;主动观察组合验收另行完成。见[源任务](../30-worklog/tasks/20260928-agent-single-chat-27da516b.md)及[集成记录](../30-worklog/tasks/20260928-merge-agent-single-chat-9911c6df.md)。下方旧话题交互证据仅记录当时版本。

View File

@@ -2,7 +2,7 @@
- 2026-09-26 已确认[老师 Agent 产品定位](../00-brief/project-positioning.md#老师-agent-的产品定位):某一领域杰出人物的能力转化而成的智能体,供平台学生使用;蒸馏属于实现方法,以真实案例验证领域能力;补充下方既有咨询技术决定。 - 2026-09-26 已确认[老师 Agent 产品定位](../00-brief/project-positioning.md#老师-agent-的产品定位):某一领域杰出人物的能力转化而成的智能体,供平台学生使用;蒸馏属于实现方法,以真实案例验证领域能力;补充下方既有咨询技术决定。
- [下发智能体咨询与项目会话导航](ADR-2026-09-22-coding-teacher.md):2026-09-28 amended / implemented;按用户纠正,唯一持续聊天身份为账号+项目+下发智能体,不同项目隔离历史、草稿、已读与模型上下文,保留同项目无新话题入口的交互。Pi 来源/发布版本在每轮接受时冻结,同项目变化只轮转内部线程。旧全局聊天按每轮可证明的项目分入对应会话,保留原文件并开启新云端执行段;不明归属仅保留原档案。学生计费、统一只读工具和主线程正文保持;主动观察建议接入由独立任务继续并绑定对应项目。 - [下发智能体咨询与项目会话导航](ADR-2026-09-22-coding-teacher.md):2026-09-28 amended / implemented;按用户纠正,唯一持续聊天身份为账号+项目+下发智能体,不同项目隔离历史、草稿、已读与模型上下文,保留同项目无新话题入口的交互。Pi 来源/发布版本在每轮接受时冻结,同项目变化只轮转内部线程。旧全局聊天按每轮可证明的项目分入对应会话,保留原文件并开启新云端执行段;不明归属仅保留原档案。学生计费、统一只读工具和主线程正文保持;老师对话栏已移除结构化组件及新请求的组件格式要求,历史数据保留;主动观察建议接入由独立任务继续并绑定对应项目。
## Active Decisions ## Active Decisions

View File

@@ -6,6 +6,8 @@
当前项目中顶栏选择下发智能体 → Main 通过 /api/coding/projects/:projectId/agent-conversations/:agentId 读取账号/项目/智能体唯一聊天与最近50轮,打开本身不调用模型 → 学生发送时幂等获取该项目聊天,冻结项目/Pi 来源/当前发布版本 → 获取WS专用凭据 → Yuxi原生Request/Run。同项目/Pi/版本沿用内部线程;同项目来源或版本改变时新建执行段并仅携带该项目有预算的公开交流,不创建第二个可见聊天。切换项目恢复独立聊天,不复用前一项目历史或云端checkpoint。名称、人设和资料来自发布定义。读取中断 → Main校验本轮绑定、取消与额度 → 列目录/读取文件/读取会话原文 → 主动回传配对结果 → 原问题关联Run续接。协议2为12批/64KiB累计成功结果/8KiB单页,旧协议六批;最后一批消费后要求最终回答。保留原问题时限与学生付款人;文件使用读取时内容,会话使用本轮快照。云端只保存消息和收到的片段,完整工程与Pi原始日志保留本机。 当前项目中顶栏选择下发智能体 → Main 通过 /api/coding/projects/:projectId/agent-conversations/:agentId 读取账号/项目/智能体唯一聊天与最近50轮,打开本身不调用模型 → 学生发送时幂等获取该项目聊天,冻结项目/Pi 来源/当前发布版本 → 获取WS专用凭据 → Yuxi原生Request/Run。同项目/Pi/版本沿用内部线程;同项目来源或版本改变时新建执行段并仅携带该项目有预算的公开交流,不创建第二个可见聊天。切换项目恢复独立聊天,不复用前一项目历史或云端checkpoint。名称、人设和资料来自发布定义。读取中断 → Main校验本轮绑定、取消与额度 → 列目录/读取文件/读取会话原文 → 主动回传配对结果 → 原问题关联Run续接。协议2为12批/64KiB累计成功结果/8KiB单页,旧协议六批;最后一批消费后要求最终回答。保留原问题时限与学生付款人;文件使用读取时内容,会话使用本轮快照。云端只保存消息和收到的片段,完整工程与Pi原始日志保留本机。
Renderer 新提问/引导求助省略组件格式与讨论上下文 → Main 既有普通回答路径;“帮我看看”仍使用问题建议协议。历史组件状态不再进入可见卡片或焦点控件;不确定的旧请求重试沿用原 ID 与完整输入。存储及旧请求协议不迁移。
云端事件 → Main 先推进游标,再仅转发云端主线程文本 → Host SSE/本机历史 → 右侧面板。子智能体文本不混入正文或带回草稿;断线按游标与持久状态恢复。关闭面板不取消已接受问题,停止/退出请求取消原问题;重启后下次提问先停止旧问题。带回回答只追加草稿,不自动发送,旧本地老师话题保留原执行路径。见[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 云端事件 → Main 先推进游标,再仅转发云端主线程文本 → Host SSE/本机历史 → 右侧面板。子智能体文本不混入正文或带回草稿;断线按游标与持久状态恢复。关闭面板不取消已接受问题,停止/退出请求取消原问题;重启后下次提问先停止旧问题。带回回答只追加草稿,不自动发送,旧本地老师话题保留原执行路径。见[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。
编译完整请求 → 本地路径按近似Token预算、云端路径按实际JSON query字节预算裁剪来源节选 → 提交前按同一计量复核。问题、明确引用及固定讨论指令保持完整;真正的固定配置超限单独提示。明确引用绑定旧项目/Pi时须移除引用或恢复原来源。聊天轮文件原子写入后更新轻量索引;恢复与旧记录导入按原始身份去重,不重发模型。旧全局聊天依据每轮可证明的项目分入对应存储,映射已读、复制相应讨论并开启新云端执行段;原文件不修改,无项目归属的轮保留原档案。历史页和SSE按请求ID合并且排除跨项目迟到响应,已读归Main,文字草稿和阅读缓存按账号/项目/智能体保存。旧全局草稿只导入其记录的项目,保留原值。现代聊天停止旧定时跟进,独立主动观察后续接入相应项目的同一聊天。 编译完整请求 → 本地路径按近似Token预算、云端路径按实际JSON query字节预算裁剪来源节选 → 提交前按同一计量复核。问题、明确引用及固定讨论指令保持完整;真正的固定配置超限单独提示。明确引用绑定旧项目/Pi时须移除引用或恢复原来源。聊天轮文件原子写入后更新轻量索引;恢复与旧记录导入按原始身份去重,不重发模型。旧全局聊天依据每轮可证明的项目分入对应存储,映射已读、复制相应讨论并开启新云端执行段;原文件不修改,无项目归属的轮保留原档案。历史页和SSE按请求ID合并且排除跨项目迟到响应,已读归Main,文字草稿和阅读缓存按账号/项目/智能体保存。旧全局草稿只导入其记录的项目,保留原值。现代聊天停止旧定时跟进,独立主动观察后续接入相应项目的同一聊天。

View File

@@ -13,7 +13,7 @@ TeacherConversationStore 在 userData/agent-conversations/<account>/<agent>/proj
## Current Architecture ## Current Architecture
咨询正文由 TeacherReply 渲染 Markdown、GFM 与公式,Main 只按明确的 discussion-v1 字段解析讨论组件;普通 JSON/代码仍是正文。失败原文默认折叠持久保存且不重新注入上下文。云端主线程与本地读取活动投影为独立的工具名称/状态,参数、结果和推理不进入回答。Yuxi 在消息投影处筛选 AI 角色;详见[咨询决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。 咨询正文由 TeacherReply 渲染 Markdown、GFM 与公式;TeacherDiscussionPanel、焦点与操作逻辑及专用样式已移除。新提问与引导求助省略 presentation/discussion,使用既有普通回答路径;“帮我看看”及快捷追问保留。Main 保留历史 discussion-v1 解析与存储,旧未确认请求仍以原身份和完整输入重试,Renderer 不再显示其组件。普通 JSON/代码仍是正文。失败原文默认折叠持久保存且不重新注入上下文。云端主线程与本地读取活动投影为独立的工具名称/状态,参数、结果和推理不进入回答。Yuxi 在消息投影处筛选 AI 角色;详见[咨询决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)。
知识文档上传、附件导入与替换后由客户端自动衔接既有解析索引接口,Main 保留处理 Task、可用性与替换关系。Renderer 每 5 秒串行刷新已加载页面,以服务端持久 Task 与实际分块显示阶段、失败原因及可用于回答的文档;请求未确认时保留同一操作意图,观察到新 Task 后才解除本地不确定状态。替换失败及清理重试保留旧可用内容,零分块不显示可用。见[知识处理交互规则](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md#知识文档处理与可用状态)。 知识文档上传、附件导入与替换后由客户端自动衔接既有解析索引接口,Main 保留处理 Task、可用性与替换关系。Renderer 每 5 秒串行刷新已加载页面,以服务端持久 Task 与实际分块显示阶段、失败原因及可用于回答的文档;请求未确认时保留同一操作意图,观察到新 Task 后才解除本地不确定状态。替换失败及清理重试保留旧可用内容,零分块不显示可用。见[知识处理交互规则](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md#知识文档处理与可用状态)。

View File

@@ -4,6 +4,8 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through ## Integrated Through
- 2026-09-28:用户确认主目录交接后,将组件移除源 317def79129503062d15076585881ceae753055c 从 592920d 无冲突快进合入本地 main。老师对话栏移除想法板、结构图、流程图、对照及其专用交互,新问题不再请求组件输出;普通正文、快捷求助、历史数据及未确认旧请求的原身份恢复保留。产品/测试与源一致,沿用47项单测、12项布局、1项Electron以及类型/lint/构建验证。三份外来文档原样保留且未提交;未推送、打包或更新安装版。见[源记录](tasks/20260928-remove-teacher-cards-ef1cf59c.md)和[集成记录](tasks/20260928-merge-teacher-cards-a09c07f3.md)。本条取代下方历史记录中的可见讨论组件描述。
- 2026-09-28:按用户“不同项目应有不同会话”的明确纠正,无冲突合入源 `4b41c23a3a5e9da1a329b1b69930787a670163de`(基于 `a21a1f0`)。当前唯一聊天身份为账号+项目+下发智能体,历史、草稿、已读、SSE、接受锁和模型上下文按项目隔离;同项目保持持续聊天,无新话题入口。旧全局轮按已知项目归属导入,保留原文件与请求身份,使用新云端执行段;不明归属保留原档案。本文下方跨项目单聊天条目保留为历史,本条及修订咨询ADR为当前规则。产品/测试与已验证源一致,沿用382项相关测试、标准typecheck、scoped lint、Vite构建和3项Electron场景;扩展Main仍有66项既有诊断。三份外来文档未改动、未提交;未推送、打包、部署或调用收费模型。独立主动观察未合入,后续须适配项目聊天。见[修复源](tasks/20260928-agent-project-chat-6644c06d.md)与[本次集成](tasks/20260928-merge-agent-single-chat-9911c6df.md#project-isolation-correction-resume)。 - 2026-09-28:按用户“不同项目应有不同会话”的明确纠正,无冲突合入源 `4b41c23a3a5e9da1a329b1b69930787a670163de`(基于 `a21a1f0`)。当前唯一聊天身份为账号+项目+下发智能体,历史、草稿、已读、SSE、接受锁和模型上下文按项目隔离;同项目保持持续聊天,无新话题入口。旧全局轮按已知项目归属导入,保留原文件与请求身份,使用新云端执行段;不明归属保留原档案。本文下方跨项目单聊天条目保留为历史,本条及修订咨询ADR为当前规则。产品/测试与已验证源一致,沿用382项相关测试、标准typecheck、scoped lint、Vite构建和3项Electron场景;扩展Main仍有66项既有诊断。三份外来文档未改动、未提交;未推送、打包、部署或调用收费模型。独立主动观察未合入,后续须适配项目聊天。见[修复源](tasks/20260928-agent-project-chat-6644c06d.md)与[本次集成](tasks/20260928-merge-agent-single-chat-9911c6df.md#project-isolation-correction-resume)。
- 2026-09-28:续接已批准的集成任务,将远程 `4495345fb0a9ea1abef8e603629ce9b51d73eb05` 与本地 `56da6b99111027e93ae34432fb52fdaa1a016384` 合并。保留账号/智能体唯一聊天、跨项目草稿及每轮项目/发布版本,接入共享手动刷新、顶栏悬停介绍和简化咨询栏;旧话题时代测试与说明已适配,未合入独立主动观察功能。120 项相关单测、标准类型检查、scoped lint、Vite 构建、3 项 Electron 交互与9项布局场景通过。3份原有未跟踪文档和远程来源记录保持原样;未推送、打包、部署或调用真实收费模型。见[续接集成记录](tasks/20260928-merge-agent-single-chat-9911c6df.md#remote-merge-resume)。 - 2026-09-28:续接已批准的集成任务,将远程 `4495345fb0a9ea1abef8e603629ce9b51d73eb05` 与本地 `56da6b99111027e93ae34432fb52fdaa1a016384` 合并。保留账号/智能体唯一聊天、跨项目草稿及每轮项目/发布版本,接入共享手动刷新、顶栏悬停介绍和简化咨询栏;旧话题时代测试与说明已适配,未合入独立主动观察功能。120 项相关单测、标准类型检查、scoped lint、Vite 构建、3 项 Electron 交互与9项布局场景通过。3份原有未跟踪文档和远程来源记录保持原样;未推送、打包、部署或调用真实收费模型。见[续接集成记录](tasks/20260928-merge-agent-single-chat-9911c6df.md#remote-merge-resume)。

View File

@@ -0,0 +1,46 @@
# Task: Integrate teacher conversation component removal
## Identity
- Task ID: 20260928-merge-teacher-cards-a09c07f3
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 592920da060276fa222ce15383bc22d2dde2eb49
- Owner: codex
- Status: Ready for Integration
## Scope
- Integrate verified MakeLore source 317def7 into local main and promote its approved component-free teacher conversation contract.
## Intent And Constraints
- User explicitly approved releasing completed main owner 20260928-merge-agent-single-chat-9911c6df and adopting the three inspected foreign task records unchanged. Bundled release/start/status establish this integration task, main, absolute worktree, base and exclusive integration ownership.
- Concurrent Task Gate and Planning Gate Passed. Reused unchanged same-base positioning/success/architecture context from implementation; refreshed entry/own/source tasks, memory index, current-state, teacher ADR/index, architecture/data-flow/domain and relevant evidence. Inspected 133 peer records; no missing paths. Historical placeholder scopes remain unknown without blocking dependencies. Independent observer work and read-only macOS diagnosis remain outside this merge.
- Plan: fast-forward exact verified source, promote accepted contract, compare integrated product/test/source-record bytes, pass document boundaries, then commit/complete.
- Preserve source records and three unrelated untracked files; no subagents, push, packaging, deployment or paid model calls.
## Outcome
- Fast-forwarded local main from 592920da060276fa222ce15383bc22d2dde2eb49 to 317def79129503062d15076585881ceae753055c without conflicts.
- Promoted the approved removal of visible discussion components and new-request component metadata to positioning, teacher ADR/index, architecture/data-flow, business rules and Integrated Through. Main history, old uncertain request recovery, ordinary chat and project isolation remain.
- Three adopted foreign documents remain unmodified and uncommitted. Source worktree retained pending cleanup decision; branch and commits preserved.
- Works Square product is unchanged; its companion routing-only record is not needed for the client main merge.
## Verification
- Fast-forward ancestry verified; source checkout is clean at 317def7 with Ready for Integration ownership.
- Reuse source evidence because integration changes only project memory beyond source: 47 focused unit tests, 12 browser layouts, 1 Electron scenario, typecheck, scoped lint and production compilation passed.
- Source browser fixture had KaTeX-font allow-list warnings under reused dependencies; source build warnings and live-model/installed-version limitations remain in its task record.
- Final Git comparison confirms every non-project-document file and the imported source record match 317def7 exactly. git diff --check and task-aware documentation drift checks passed; the latter also verifies adopted foreign records remain unchanged. No repeat application suite is warranted.
## Follow-ups
- Await explicit cleanup decision for source task 20260928-remove-teacher-cards-ef1cf59c at D:\Datas\OthersProjects\.codex-worktrees\makelore\20260928-remove-teacher-cards-ef1cf59c, branch codex/20260928-remove-teacher-cards-ef1cf59c-remove-teacher-cards. Removal preserves branch/commits but removes checkout/build outputs; no cleanup performed.
- Installed clients need an updated build; remote push is not included.
## Promotion Candidates
- Accepted source candidates promoted under user removal and merge instructions. Source task records remain read-only; no unresolved product-direction choice.

View File

@@ -8,7 +8,7 @@
- 同requestId相同输入读取当前项目聊天的已有结果(包括更早历史页),不同输入冲突;同一账号/项目/智能体一次接受一轮人工问答,各项目接受锁独立。SSE、取消、保存、讨论和已读均绑定项目,其他项目不能取消本轮。重启将未完成问题标为中断,账号退出中止。带回回答核对原项目/Pi来源,只追加草稿且不自动发送;已归档来源必须先恢复。 - 同requestId相同输入读取当前项目聊天的已有结果(包括更早历史页),不同输入冲突;同一账号/项目/智能体一次接受一轮人工问答,各项目接受锁独立。SSE、取消、保存、讨论和已读均绑定项目,其他项目不能取消本轮。重启将未完成问题标为中断,账号退出中止。带回回答核对原项目/Pi来源,只追加草稿且不自动发送;已归档来源必须先恢复。
- 运营只管理下发、同步、默认与启停,无重复提示词编辑器或试聊。老师聊天模型由学生账号付费,个人 Agents 保持创建者付费。正文、历史及带回草稿只接收云端主线程文本;忽略子线程文本仍推进游标。 - 运营只管理下发、同步、默认与启停,无重复提示词编辑器或试聊。老师聊天模型由学生账号付费,个人 Agents 保持创建者付费。正文、历史及带回草稿只接收云端主线程文本;忽略子线程文本仍推进游标。
- 客户端不内置老师/朋友角色:名称、头像、简介、欢迎语、推荐问题及人格由服务端发布定义决定,通用讨论协议不定义人格。任意名称的下发智能体都遵守同一只读工具边界;不再按角色限制项目读取。 - 客户端不内置老师/朋友角色:名称、头像、简介、欢迎语、推荐问题及人格由服务端发布定义决定,通用讨论协议不定义人格。任意名称的下发智能体都遵守同一只读工具边界;不再按角色限制项目读取。
- 顶栏点击直接恢复当前项目的唯一聊天,没有新话题加号和话题下拉框。历史分页,已读由Main持久保存;草稿与阅读缓存按账号/项目/智能体隔离,引用仍绑定原项目/Pi,迟到响应不得进入另一项目。旧全局聊天依据每轮可证明的项目归属分入对应聊天,映射已读并开启新云端执行段;保留原文件与请求身份,不明归属仅留原档案。旧全局草稿只导入记录的项目,优先于更早话题草稿且保留原值。更早项目话题仍按当前账号、config_id与项目/话题/请求来源去重导入,不按名称猜归属。讨论状态按项目保存。旧Renderer定时跟进不再向现代聊天派发;独立主动观察后续也须投递到对应项目的同一聊天。 - 顶栏点击直接恢复当前项目的唯一聊天,没有新话题加号和话题下拉框。历史分页,已读由Main持久保存;草稿与阅读缓存按账号/项目/智能体隔离,引用仍绑定原项目/Pi,迟到响应不得进入另一项目。旧全局聊天依据每轮可证明的项目归属分入对应聊天,映射已读并开启新云端执行段;保留原文件与请求身份,不明归属仅留原档案。旧全局草稿只导入记录的项目,优先于更早话题草稿且保留原值。更早项目话题仍按当前账号、config_id与项目/话题/请求来源去重导入,不按名称猜归属。历史讨论状态仍按项目保存,但对话栏不再渲染讨论组件、邀请、焦点或操作按钮;新问题与引导求助不再请求组件输出,旧未确认请求重试保持原身份及完整输入。旧Renderer定时跟进不再向现代聊天派发;独立主动观察后续也须投递到对应项目的同一聊天。
- 输入预算区分近似模型 Token 与精确云端 JSON 字节,编译和提交使用同一完整请求计量。保留当前问题、明确引用和固定指令,按需缩减来源节选;固定配置/讨论超限不误报为用户短问题过长,不静默提升预算或迁移旧话题。 - 输入预算区分近似模型 Token 与精确云端 JSON 字节,编译和提交使用同一完整请求计量。保留当前问题、明确引用和固定指令,按需缩减来源节选;固定配置/讨论超限不误报为用户短问题过长,不静默提升预算或迁移旧话题。
依据:[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)及 [ADR-008](../10-decisions/adr-008-interactive-ai-app-scaffold.md)。 依据:[老师决定](../10-decisions/ADR-2026-09-22-coding-teacher.md)及 [ADR-008](../10-decisions/adr-008-interactive-ai-app-scaffold.md)。