docs(agents): 合入用户级微信渠道管理
This commit is contained in:
@@ -35,6 +35,17 @@ Accepted / implemented,2026-09-11 集成。产品范围、三端分工、创
|
||||
|
||||
Source `2e710db0fb512f276fda8ae8a3939d366b34a972`, [source task](../30-worklog/tasks/20260913-agentbus-channels-ml-3ec75b90.md). Final 81 focused tests, typecheck, production build and 2 Electron scenarios passed, with independent review PASS. Tests use local Host fixtures; real WeChat, billing, packaging and deployment acceptance remain pending.
|
||||
|
||||
## User-Owned WeChat Accounts(2026-09-14 accepted / implemented)
|
||||
|
||||
- 用户在 MakeLore 的“渠道 > 微信”统一管理多个个人微信账号;账号可以先创建、扫码连接,再选择自己已发布的智能体。每个账号只有一个可选当前目标,多个账号可路由到同一智能体。
|
||||
- AgentBus Core 的 ChannelAccount 继续拥有账号、当前路由、代次和操作回执;无目标创建默认停用,请求体不增加 `enabled` 字段。清空目标必须停用,切换或清空路由保留微信登录凭据与 Provider generation。
|
||||
- Yuxi 提供用户级 `/api/makelore/channel-accounts` 与按操作 ID 恢复的接口。已有 Agent binding 仅索引当前路由,历史 caller/session 保留;旧渠道与无目标账号均按 Core 账号清单呈现。多个账号分别保留通知目标和权限范围。
|
||||
- MakeLore Main 继续拥有凭据、请求与持久恢复,Renderer 只消费 typed Host API。智能体发布页改为关联渠道摘要与跳转;权限、活动记录及本人会话定位到明确选中的账号。
|
||||
- 已完成操作优先读取既有回执,再处理首次操作才需要的发布/归档及 Worker 条件;恢复不能重放旧路由或重新调用模型。账号与目标始终限定在可信创建者身份内;原创建者计费、受邀调用者内容隔离及扫码本人免配对规则保持。
|
||||
- 本节取代此前将创建、连接与路由都放在智能体发布页的入口设计。先更新 AgentBus Core 与 Yuxi API/worker,再使用新版客户端;本批没有新环境变量、数据库迁移,也不要求修改 Works Square 或微信 Adapter。
|
||||
|
||||
源提交 `b7d8b1298f02e4b10b6d0089594d48720efc03e7`,见[已审查源任务](../30-worklog/tasks/20260913-user-channels-ml-8d61e4a9.md)。独立 Reviewer 最终 Standards/Spec PASS;本地测试证据与线上验收分开,真实微信、生产部署及收费模型未因这次合并视为通过。
|
||||
|
||||
## Evidence And Limits
|
||||
|
||||
The creator no-code change explicitly replaces the earlier pairing step. See [reviewed source task](../30-worklog/tasks/20260913-wechat-auto-self-ml-3679bce2.md): 64 focused tests, typecheck, build, scoped lint and an inspected Electron scenario passed; independent review passed. Main remains the network boundary and Yuxi/AgentBus establish identity. Compatible backend and client deployment is required; historical connections missing scanning identity need one reconnect. No real WeChat acceptance or installer was produced by this change.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Active Decisions
|
||||
|
||||
- [个人云智能体与微信渠道](ADR-2026-09-11-personal-cloud-agents.md):2026-09-13 accepted / implemented;共享 SSO、按用户隔离、标准 Worker 路由、创建者计费及持久交付恢复。四端本地实现已集成,真实渠道部署验收待执行。
|
||||
- [个人云智能体与微信渠道](ADR-2026-09-11-personal-cloud-agents.md):2026-09-14 amended / implemented;用户级多微信账号、可选已发布智能体路由、先连接后选目标、切换保留登录。共享身份、创建者计费与调用者隐私不变;真实渠道部署验收待执行。
|
||||
|
||||
- [官方模型能力与原生思考选项](ADR-2026-09-12-official-model-capabilities.md):2026-09-12 accepted / implemented;one-api 官方事实、Works v2 授权投影、受管模型图片输入与 Main-owned reasoningChoice,取代受管模型的静态推测与 Pi 枚举映射。
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
## Current Architecture
|
||||
|
||||
微信账号生命周期独立于智能体:MakeLore“渠道 > 微信”展示用户的 Core ChannelAccount 清单,通过 Yuxi 用户级账号 API 连接及选择可选目标;多个账号可指向同一已发布智能体,路由切换保留登录。Core 持有路由与不可变回执,Yuxi 本地 binding 只索引当前关联并保留历史 caller/session,Main 持有请求恢复与凭据。发布页只显示关联摘要与入口;详见[用户级账号决策](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md)。
|
||||
|
||||
扫码本人免配对:微信 Adapter 从持久登录状态读取扫码者身份并匹配原始发送者,Core 经绑定、代次、Worker 和会话范围校验后提供 `is_self`,Yuxi 才建立本人 caller/session。客户端不声明本人身份;邀请、撤销和调用者内容隔离保持原规则。历史空身份连接重新扫码后会刷新运行实例,无需推进账号代次。
|
||||
|
||||
个人微信云智能体已按 [已接受渠道决策](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md) 集成:AgentBus 拥有共享身份下的 Worker/ChannelAccount 路由及交付,Yuxi 拥有独立调用者会话和原生执行,Works Square 拥有创建者词元点数,MakeLore Main 拥有桌面授权与恢复。沿用标准 Worker,不增加独立 Adapter 池;付款不授予受邀调用者内容权限。上线验收与本地代码集成分开记录。
|
||||
@@ -120,4 +122,4 @@ Makelore 是 Electron 桌面客户端。Renderer 负责项目操作与状态展
|
||||
|
||||
## Last Updated
|
||||
|
||||
2026-09-07
|
||||
2026-09-14
|
||||
|
||||
@@ -4,6 +4,8 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- 2026-09-14:任务 `20260914-merge-user-channels-ml-e672b0c4` 经用户授权移交主目录,将已审查源 `b7d8b1298f02e4b10b6d0089594d48720efc03e7` 无冲突快进合入本地 `main`。用户级多微信账号、先扫码后选择目标、多个账号路由同一智能体及切换保留登录已集成;智能体发布页使用渠道摘要/入口。产品树与已审查源一致,源记录只读导入,验证和实际部署边界见[源任务](tasks/20260913-user-channels-ml-8d61e4a9.md)。原有 3 份未跟踪文档保留;未推送、部署或清理工作区。
|
||||
|
||||
- 2026-09-13:任务 `20260913-merge-wechat-self-ml-a904d7c1` 将已审查源 `8c1b161d0e14394beb62ae7f7e05c96cfed045b2` 无冲突快进合入本地 `main`。个人微信发布页移除本人配对入口,扫码本人直接使用;首条消息建立本人历史和通知目标,其他联系人仍通过独立邀请接入。源任务记录原样导入,独立 Reviewer 最终 PASS,验证与线上限制见[源任务](tasks/20260913-wechat-auto-self-ml-3679bce2.md)。原有 3 份未跟踪文档保持不变;未推送、部署或清理工作区。
|
||||
|
||||
- 2026-09-13:任务 `20260913-merge-agentbus-channels-ml-c4e81f2a` 经用户授权移交主目录后,将渠道源 `2e710db0fb512f276fda8ae8a3939d366b34a972` 从 `03774d0625a5a0d0221dbb9989e88a9406e0fa48` 无冲突快进合入本地 `main`。产品代码与已审查、测试的源完全一致,源任务记录原样导入;个人微信、共享 SSO 与按用户隔离规则见 [渠道决策](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md)。原有 3 份文档改动原样保留;未推送或部署。授权清理的源工作区因 Git 目录非空错误部分移除,残余保留,分支和提交完整。
|
||||
@@ -1057,4 +1059,4 @@ Robot 绑定设备默认先显示“引导配网 / 已有激活码”路径选
|
||||
|
||||
## Last Updated
|
||||
|
||||
2026-09-07
|
||||
2026-09-14
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
| Date | Task | Outcome | Docs Updated |
|
||||
|---|---|---|---|
|
||||
| 2026-09-14 | 合入用户级微信账号管理 | 已审查源快进到本地 main;多账号、可选目标、切换保留登录,原有 3 份文档保留 | 个人云平台 ADR、决策索引、架构、当前状态、本任务 |
|
||||
| 2026-09-04 | Land official Project Scaffold Plugin on local main | Fast-forwarded verified integration head `b92e7ba` onto local `main` while preserving three explicitly adopted historical task documents unchanged; no package, publication, deployment, or push was performed | current-state, landing task |
|
||||
| 2026-09-04 | Official Marketplace Project Scaffold integration | 将 `makelore.project-scaffold` 作为代码所有、随签名客户端交付的 bundled `skill_only` Plugin 接入 Account Library/项目启用/Agent 分配;官方 `.mjs` 不经过下载 artifact,下载包仍保持文本/图片 P0 限制 | ADR-008、current-state、architecture、domain、success criteria、integration task |
|
||||
| 2026-09-04 | 交互式 AI 应用与显式 Scaffold Skill 集成 | 合并小游戏/小程序为规范 `interactive_ai_app`,项目创建保持最小边界,独立 Skill 生成固定起步树并说明发布要求;Main/Works 继续拥有发布权威 | ADR-008、current-state、architecture、domain、commitments |
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Task: 合并用户级微信账号管理到主分支
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260914-merge-user-channels-ml-e672b0c4
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: D:\Datas\OthersProjects\makelore
|
||||
- Base commit: 46e7f6f1cd37124493be48bbb85f6a6d1de59c17
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- 将已独立审查的源提交 `b7d8b1298f02e4b10b6d0089594d48720efc03e7` 无冲突快进合入本地 `main`,并提升用户级微信账号管理的已接受语义到既有共享记忆。
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Concurrent Task Gate 与 Planning Gate Passed;用户本轮“允许”授权旧登记移交与已有文档接管,官方 release/start/status 已确认 Integration 身份、分支、基线与主目录所有权。
|
||||
- 已读取入口、本人记录、集成状态、渠道决策、架构及源任务与独立审查证据;复用同会话未变的工程规范和 peer scope 评估。旧定位及部分历史 peer 记录仍为模板,以 README/ARCHITECTURE 与已接受决策为准;没有影响本次快进的具体语义冲突。
|
||||
- 用户已确认“渠道 > 微信 > 多账号 > 可选目标智能体”;Core 继续拥有账号和路由,不改变创建者计费、调用者内容隔离或 Main 凭据边界。
|
||||
- 保留官方 adopt-existing 登记的 3 份外来文档,不修改源任务记录;未授权推送、部署或工作区清理。
|
||||
- 计划:快进准确源提交;核对产品树与已审查源完全一致;协调现有渠道 ADR、架构、状态及历史;通过文档漂移门禁并提交本任务集成记录。产品树若出现额外组合差异才需要增补代码验证。
|
||||
|
||||
## Outcome
|
||||
|
||||
- 已将源 `b7d8b1298f02e4b10b6d0089594d48720efc03e7` 无冲突快进合入本地 `main`;源产品代码和源任务记录原样保留。
|
||||
- 已将用户级账号、多账号可选目标路由、切换保留登录、发布页摘要/入口及职责边界提升到既有个人云平台 ADR、索引、架构、当前状态与历史。本次未新增产品语义。
|
||||
- 官方 drift 检查通过,原有 3 份 adopted 文档未修改或纳入提交。只提交本任务与明确列出的 canonical 文档。
|
||||
|
||||
## Verification
|
||||
|
||||
- 合并后产品树对源提交的差异为空,源任务记录对源提交的差异为空;git diff --check 与官方 check_doc_drift.py 均通过。
|
||||
- 独立 Reviewer 最终 Standards/Spec PASS,没有遗留发现;源验证包含 85 项相关测试、最终 Main 回归、类型检查、scoped lint、Vite 多目标构建及真实 Electron 1/1 用例;独立 Reviewer 的 28 项相关/Main 测试通过,1366×900 和 980×680 截图已检查。
|
||||
- 快进没有额外代码组合差异,复用准确源树的最终验证;本集成仅新增项目记忆,因此不重复全量构建/测试。
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- 三端均应使用本批配套版本;先部署 Core 与 Yuxi API/worker,再使用新版 MakeLore。无新环境变量/迁移,Works Square 和微信 Adapter 本批无须修改。
|
||||
- 真实微信、完整生产部署和收费模型仍需现场验收;未推送、部署或打包。
|
||||
- 已合入源工作区清理需按 Integration Gate 单独取得用户同意,本任务未清理;分支、提交、外来文档和审查目录保留。
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- 已完成语义提升:个人云平台 ADR 说明账号生命周期独立于智能体,Core 为账号路由权威,Yuxi 为运行和索引,Main 为凭据/恢复边界;现有计费和隐私不变。依据为用户明确要求、源实现/验证和独立审查,无未决产品冲突。
|
||||
Reference in New Issue
Block a user