feat(agents): 支持个人微信发布与渠道会话
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-13 16:22:36 +08:00
parent 03774d0625
commit 2e710db0fb
28 changed files with 2678 additions and 31 deletions

View File

@@ -0,0 +1,56 @@
# Task: Implement MakeLore AgentBus channel publication
## Identity
- Task ID: 20260913-agentbus-channels-ml-3ec75b90
- Mode: Feature
- Branch: codex/20260913-agentbus-channels-ml-3ec75b90-agentbus-channels
- Worktree: C:\Users\7brot\.codex\worktrees\makelore-agentbus-channels-3ec75b90
- Base commit: 03774d0625a5a0d0221dbb9989e88a9406e0fa48
- Owner: codex
- Status: Ready for Integration
## Scope
- Implement the accepted AgentBus personal WeChat publication workflow in the native CloudAgents desktop workspace: connection/QR/verification, self pairing and invitations, same-owner route control, activity and delivery retry, own-session controls/artifacts, and scheduled result notification.
- Main/shared DTO, Host operations, local QR component/dependencies and final publication recovery regression tests are owned by works_square; Renderer publication/connection/access/activity by makelore; own-channel conversations, CloudChat approval reuse, DraftEditor integration, scheduled notifications/costs, enable-budget confirmation, Electron E2E/README and this record by root. The existing authorized Yuxi implementer supplies dedicated own-channel controls and artifact routes. Agents share this worktree and preserve each other's changes.
## Intent And Constraints
- Concurrent and Planning Gates Passed at base 03774d0. Official start/status match this identity. Both peer slices cover all 181 peers: 89 historical records lack Promotion Candidates and 38 have placeholder scope/intent, retained as unknown coordination details; no concrete conflict in readable context affects this isolated scope.
- Loaded startup/task/memory, positioning, integrated state, decisions including the accepted personal-cloud-agent ADR, architecture/module/data flow, domain/success criteria, evidence/reflection/commitments/stale indexes. Placeholder positioning and stale three-module prose are resolved by the accepted ADR and actual README; canonical documents remain untouched.
- User authorized the existing three implementers and one reviewer, client start, and exact nine-record missing-worktree recovery. The shared skill repair passed 17 tests, quick_validate and independent review; official release-missing succeeded for all nine authorized missing records before start. Primary's three untracked documents and unrelated registry ownership remain unchanged.
- Reuse AgentBus routing, shared SSO and individual owner isolation. Main owns credentials/network/recovery/file save; Renderer uses typed Host operations. Creator payment does not grant invited content. No org/pool/Console iframe, no automatic mutation replay, and no verification code persistence.
- No commit, merge, deployment, live WeChat message or paid model call in this implementation turn.
## Outcome
- Native publication is implemented: create/adopt connection, locally generated QR, verification, self pairing/invitation/revocation, enable/pause/switch/disconnect, safe activity and failed-file delivery retry. Main uses typed operations and per-account durable original inputs; verification codes never enter its journal. Implementation, independent review and local combined validation are complete.
- Root added explicit schedule notification selection, preservation/clearing of unavailable targets, channel cost source, and own-channel conversation entry with native control, operation recovery and auto-refreshed output file saving. History follows all native offset pages so recent outputs beyond message 100 remain visible.
- Disabled schedule updates omit unchanged notification configuration: Yuxi exclude_unset preserves the old target without revalidating a disconnected target, so the user can always pause. Explicit target selection/clearing and enabling still send notification config for normal server validation.
- CloudApproval now accepts an explicit submitDecision callback so ordinary conversation behavior is preserved and channel sessions use their dedicated controls with the actual action_requests/decisions protocol. No fallback to ordinary creator run/file endpoints.
- Failed controls transfer to Main's durable recovery record. A rejected new-session operation can be explicitly ignored before stopping an attachment intake that has not become a Run; failure to read the journal preserves the exact in-memory intent. Distinct failed-file parts keep separate account/message/part recovery IDs.
- Provider qrcode_url is a login payload, not an image resource. CloudWechatQr encodes it locally with qrcode 1.5.4 and displays a data SVG; changed values never show the previous code. Enable confirmation shows actual published audience and existing task/daily limits, including zero, with retry for unavailable budget data.
- Publication recovery uses the Main journal alone. Pending or unreadable recovery blocks new mutations; explicit refresh rereads both binding and recovery state. QR presentation starts only after a real result. A verification record cannot be consumed before its target binding is loaded/current. Binding and Provider-generation changes clear ephemeral data and reject late responses. Own route targets follow all list pages; invitations require the saved server policy.
- Activity separates execution and actual WeChat delivery. A known receipt is not delivery confirmation. File-part retry refreshes failed/queued/sent status without rerunning the model; connection health includes its last-confirmed time. The personal WeChat panel appears immediately after the publication overview.
## Verification
- Final pnpm typecheck and build:vite passed. The eight focused client suites passed 81/81: Main, workflows, page, management, own conversations, channel panel, local QR and enable confirmation. Changed source/test ESLint checks passed with three pre-existing CloudChat/CloudCosts warnings; git diff --check passed. Build retains the existing chunk-size/dynamic-import and Browserslist warnings.
- Final Electron run passed 2/2 after the last fixes. The isolated Host fixture covers native approval, automatic PPT exposure and session-scoped save, actual local data-image QR generation, verification, pairing, explicit schedule destination, compact-window overflow and existing draft/leave protection. Screenshots in ignored test-results were visually inspected at 1366×900 and 980×680. These are local fixture tests, not real WeChat/paid-model/production acceptance.
- Existing authorized independent reviewer returned final Standards PASS / Spec PASS with no remaining findings for Main, own sessions/schedules, local QR, enable confirmation and the complete publication panel. The last explicit-refresh increment was independently rerun with Panel 14/14 passing and targeted ESLint passing. Yuxi self bridge, real adoption HTTP contract and offset increments also passed review; latest affected Linux suite 73/73, Ruff and documentation gates passed, and Yuxi task is Ready for Integration.
## Follow-ups
### 2026-09-13 commit handoff
- User authorized committing and merging this reviewed four-repository batch, and explicitly authorized transferring the four previous primary-worktree task registrations while preserving seven unrelated document changes. Earlier no-commit statements describe the implementation turn only.
- Same-task ownership was resumed and verified against the official registry. Planning context and the previous peer-scope assessment remain applicable; no product code changed during this handoff.
- Preserve the final independent Standards PASS / Spec PASS and recorded product-test evidence. The retained feature branch and this committed Ready for Integration record are the source for a separate integration task.
- No remote push, deployment, paid call, real WeChat message or worktree deletion is included in this authorization.
- Integrate the matching AgentBus/Adapter, Works Square, Yuxi and MakeLore worktrees together, then configure/deploy compatible versions and perform real shared-SSO, personal WeChat, attachment/PPT, billing and scheduled-notification acceptance. No production identity linking, provider message, paid call, commit, merge or deployment occurred in this task.
## Promotion Candidates
- Target: personal-cloud-agent ADR, architecture and integrated current-state in a later Integration Gate. Proposal: native personal WeChat publication and own-session operation boundaries, account-scoped durable Main recovery and explicit scheduled notification targets. Evidence: this implementation, tests and matching AgentBus/WS/Yuxi tasks. Future impact: one personal creator workflow with private caller content and recoverable delivery. No conflict with accepted foundations. Product direction is already authorized; live production rollout and canonical promotion require their own actual integration work.