docs(wechat): 合入扫码账号渠道简化
This commit is contained in:
@@ -27,9 +27,9 @@ Accepted / implemented,2026-09-11 集成。产品范围、三端分工、创
|
||||
|
||||
## Personal WeChat Publication(2026-09-13 accepted / implemented)
|
||||
|
||||
- Published cloud agents expose a native personal WeChat panel: create/adopt account, local QR rendering, login verification, direct use by the scanning owner, contact invitations, access revocation, enable/pause, route switch, disconnect, safe activity and failed-file retry. Creator self-pairing codes are removed, including stale recovery presentation; invited contacts still receive a complete invitation command.
|
||||
- The native Channels page owns account creation, local QR rendering, login verification, direct use by the scanning account, enable/pause, route switch, disconnect, safe activity and failed-file retry. Agent publication provides a linked-account summary. Pairing codes, contact invitations, audience configuration and caller management are removed.
|
||||
- Renderer uses typed Host operations. Main owns credentials, network, per-account durable original operations and file saving. Verification codes never enter the recovery journal; uncertain mutations require explicit recovery.
|
||||
- QR payloads are encoded locally. Account or Provider-generation changes clear transient state. Enable confirmation shows the actual published version, audience and task/daily budget, including zero.
|
||||
- QR payloads are encoded locally. Account or Provider-generation changes clear transient state. Each selected account exposes its connection and current target; budgets remain the existing Agent policy.
|
||||
- Own WeChat conversations use dedicated Yuxi session endpoints for approval, stop/new session, complete history pagination and automatically refreshed deliverables. The creator cannot browse invited callers' content.
|
||||
- The scanning owner's first message establishes their history and available notification conversation. Scheduled result notification requires an explicitly selected self target. Execution completion and WeChat delivery status remain distinct; retrying a failed file part does not run the model again.
|
||||
|
||||
@@ -39,13 +39,23 @@ Source `2e710db0fb512f276fda8ae8a3939d366b34a972`, [source task](../30-worklog/t
|
||||
|
||||
- 用户在 MakeLore 的“渠道 > 微信”统一管理多个个人微信账号;账号可以先创建、扫码连接,再选择自己已发布的智能体。每个账号只有一个可选当前目标,多个账号可路由到同一智能体。
|
||||
- AgentBus Core 的 ChannelAccount 继续拥有账号、当前路由、代次和操作回执;无目标创建默认停用,请求体不增加 `enabled` 字段。清空目标必须停用,切换或清空路由保留微信登录凭据与 Provider generation。
|
||||
- Yuxi 提供用户级 `/api/makelore/channel-accounts` 与按操作 ID 恢复的接口。已有 Agent binding 仅索引当前路由,历史 caller/session 保留;旧渠道与无目标账号均按 Core 账号清单呈现。多个账号分别保留通知目标和权限范围。
|
||||
- MakeLore Main 继续拥有凭据、请求与持久恢复,Renderer 只消费 typed Host API。智能体发布页改为关联渠道摘要与跳转;权限、活动记录及本人会话定位到明确选中的账号。
|
||||
- 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;本地测试证据与线上验收分开,真实微信、生产部署及收费模型未因这次合并视为通过。
|
||||
|
||||
## Scan-Bound WeChat Accounts(2026-09-14 accepted / implemented)
|
||||
|
||||
- 谁扫码就绑定谁。一个账号只接受经过 Adapter/Core 验证的扫码身份;其他微信通过各自扫码连接,可分别选择同一个已发布智能体。
|
||||
- 移除使用范围、邀请码、邀请兑换和单个调用者管理。账号级连接、路由、启停/解绑、活动、微信对话、文件和既有控制流程保留;Main 仍拥有凭据与恢复,创建者继续付款。
|
||||
- 历史 invited caller/session 不更改内容归属,不允许新的入站、内部恢复或待发结果继续交付;旧邀请码回执取消。服务端保留历史表,不需要新增 schema 迁移。
|
||||
- MakeLore 已删除相应 typed Host 操作与界面;旧恢复记录只能在本机显式丢弃,不请求已删除 API、不阻塞其他账号。定时通知仍从隔离的扫码账号会话选择目标。
|
||||
- 本节取代上述旧章节中的邀请、受众配置和单 caller 撤销规则;历史源任务与已发生的集成记录保留。部署需配套更新 MakeLore 与 Yuxi API/worker,本批不修改 AgentBus/Works Square,不新增环境变量。
|
||||
|
||||
源 `21e707d`,见[源任务](../30-worklog/tasks/20260914-wechat-scan-owner-ml-b4169ea9.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-14 amended / implemented;用户级多微信账号、可选已发布智能体路由、先连接后选目标、切换保留登录。共享身份、创建者计费与调用者隐私不变;真实渠道部署验收待执行。
|
||||
- [个人云智能体与微信渠道](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 枚举映射。
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
微信账号生命周期独立于智能体: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。客户端不声明本人身份;邀请、撤销和调用者内容隔离保持原规则。历史空身份连接重新扫码后会刷新运行实例,无需推进账号代次。
|
||||
微信渠道只供扫码绑定的账号使用: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 池;付款不授予受邀调用者内容权限。上线验收与本地代码集成分开记录。
|
||||
个人微信云智能体已按 [已接受渠道决策](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md) 集成:AgentBus 拥有共享身份下的 Worker/ChannelAccount 路由及交付,Yuxi 拥有独立账号会话和原生执行,Works Square 拥有创建者词元点数,MakeLore Main 拥有桌面授权与恢复。沿用标准 Worker;付款不授予其他账号或历史受邀会话的内容权限。上线验收与本地代码集成分开记录。
|
||||
|
||||
个人云智能体职责见 [已接受决策](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md):Yuxi 拥有云执行,WS 拥有账号和词元点数,MakeLore Main 提供 Host API;Code/Pi、Canvas、Robot 保持既有体系。
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- 2026-09-14:任务 `20260914-land-scan-account-ml-8fb88137` 经用户确认登记移交,将已独立审查源 `21e707d` 无冲突快进合入本地 `main`。微信渠道统一按扫码账号使用,删除使用范围、邀请与调用者管理;历史受邀内容不改归属、不继续入站/恢复/投递。源记录原样导入,产品树与已验证源保持一致,证据及限制见[源任务](tasks/20260914-wechat-scan-owner-ml-b4169ea9.md)。本次无新 SQL/环境变量;未推送、部署或清理工作区。
|
||||
|
||||
- 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 份未跟踪文档保持不变;未推送、部署或清理工作区。
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# Task: 合入微信扫码账号渠道界面简化
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260914-land-scan-account-ml-8fb88137
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: D:\Datas\OthersProjects\makelore
|
||||
- Base commit: a721b8fb7e99eb8979fcb9c8c21a6540ebef911d
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- 将已审查源 21e707d 快进合入本地主分支,同步扫码账号规则的 canonical memory;保留主目录原有 3 份未跟踪文档。
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- 用户授权合并及旧登记移交,官方 release/start/status 成功。旧邀请规则按用户决定替代,创建者计费与历史内容隔离保持。不创建额外子智能体,不推送、部署或清理。
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
- Task ID: 20260914-land-scan-account-ml-8fb88137
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: D:\Datas\OthersProjects\makelore
|
||||
- Base commit: a721b8fb7e99eb8979fcb9c8c21a6540ebef911d
|
||||
- Other active local tasks: 已读取注册 peer 的 Scope/Intent/Promotion。扫码源/审查为本批输入,其余为 Canvas/Pi/插件/Robot/打包和历史渠道诊断;部分旧审查模板的协调状态未知。
|
||||
- Overlap assessment: 不合入 peer 后续功能,不读取或修改其未提交源码。独立审批任务无本次必需语义依赖;旧邀请规则已由用户明确新决定取代。
|
||||
- Read: 根 AGENTS;read-before-planning、memory-index、本人任务、planning-gate;project-positioning、current-state、decision-index、个人云智能体 ADR、system-overview、business-rules、success-criteria、reflection-index、commitments;两源任务 Outcome/Verification/Promotion。
|
||||
- Project goal: 个人创作者云智能体,Yuxi 执行、WS 身份账本、AgentBus 账号路由、MakeLore Main 凭据与恢复。
|
||||
- Current focus: 用户级多微信账号已集成;本次改为每个账号仅供扫码身份使用,删除额外邀请管理。
|
||||
- Constraints: 原样导入已审查产品代码与源任务;canonical 文档只在本集成任务修改,不推送/部署/迁移/清理。
|
||||
- Evidence: 两源干净且主分支为其祖先;全新 Reviewer Standards/Spec PASS。主线与源产品一致后复用原测试;差异则停止交付补验。
|
||||
- Unknowns: 定位模板以确认的 ADR/源码为准;远程 main 与本地基线相同。真实微信/模型/安装包验收独立执行。
|
||||
- Gate result: Passed
|
||||
|
||||
## Outcome
|
||||
|
||||
- 已将源 21e707d 无冲突快进合入本地 main;产品代码与已审查源完全一致,源任务及支持记录原样导入。
|
||||
- 已同步扫码账号规则的 ADR、索引、架构与集成快照,补充渠道域规则。原有 3 份未跟踪文档未修改、未提交。
|
||||
- 未推送、部署、操作生产数据或删除工作区;本次实现仅涉及 MakeLore 与 Yuxi,AgentBus/Works Square 无改动。
|
||||
|
||||
## Verification
|
||||
|
||||
- git merge --ff-only 成功;git diff --exit-code 21e707d 排除 .project-docs 后为空,证明产品树与已审查源一致,复用源验证,不重复无差异代码测试。
|
||||
- 源 Reviewer Standards/Spec PASS。源 71 focused、typecheck、lint、build、Electron channels 1 和 pressure 1 通过;全量 2048 passed/2 skipped/1 既有 Pi v6/v7 断言失败,未扩大修复范围。
|
||||
- 修改的 canonical 文档本地相对链接 21 项通过,git diff --check 与 task-aware check_doc_drift 通过;漂移门禁同时确认已采纳的原有文档状态未变。
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- 本次已合入且干净的源工作区保留,清理等待单独确认。部署后真实微信扫码/收发和文件交付仍需验收。本批无新 SQL/环境变量。
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- 已在授权 Integration Gate 落实源 Promotion Candidates;旧邀请方向由用户明确扫码账号决定取代,源记录保持只读。无待裁决语义冲突。
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
## Durable Rules
|
||||
|
||||
- 微信渠道按扫码账号独立连接并选择目标智能体,多个账号可以指向同一已发布智能体。只接受可信扫码身份;没有使用范围、联系人邀请或单调用者授权管理。创建者付款不改变各账号和历史受邀内容的隔离;旧邀请不恢复、不兑换、不交付遗留结果。详见[渠道决定](../10-decisions/ADR-2026-09-11-personal-cloud-agents.md)。
|
||||
|
||||
- Marketplace Release A is curated: only Operations publishes packages. Users may
|
||||
acquire an eligible Plugin for free; only server-declared metered operations may
|
||||
later consume Token Points, and system-included Data Service remains zero-charge.
|
||||
|
||||
Reference in New Issue
Block a user