Repository navigation
Closed
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersMessaging module and external providersready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Milestone
Description
Parent
#902 — Personal WeChat capability alignment. IM coordination reference: #48.
What to build
When the owner quotes a message, the Bot can identify the quoted content where available and read nearby retained context without mistaking a quote for a Thread or claiming a remote history API.
Scope: personal WeChat/iLink, explicitly authorized paired-owner DM. Enterprise WeChat/WeCom is excluded.
Acceptance criteria
- Normalize the native reference fields actually received, including embedded quoted content and server-ID-only references. Preserve reference IDs losslessly and distinguish native evidence from a local lookup result.
- Resolve references within the same authorized account/conversation from canonical retained Source Events and outbound receipts when a genuine native server message ID is available. Do not equate client acknowledgements with native IDs or create a second Provider transcript database.
- Render quote context and its availability in source details. A deleted, unknown, inaccessible or unretained referenced message is explicitly unavailable; do not invent content or a Thread relationship.
- Provide bounded, cursor-based reads/nearby lookup over retained authorized WeChat Source Events with stable IDs, pagination and clear coverage. Label these as retained local context, not remote WeChat history or search.
- Real E2E: quote a fresh retained inbound message, verify the Bot uses its actual context and replies in the original DM; cover server-ID-only/native variants available in the current client and unknown reference behavior. Also verify bounded paging across retained sources.
Blocked by
None — can start immediately. Completed prerequisite: #878 / PR #894.
Delivery and evidence
- Deliver one production-shaped tracer through the qualified Provider, canonical Messaging authority, applicable PersonaBot/Channel/Inbox behavior, and an operable Client path. Reuse the existing exclusive Consumer; do not create standalone dsh-im Sessions or a parallel message store.
- Keep the original external author, timestamp, lossless native message ID, Source Event ID, and trusted reply route. Every external send uses the acting Bot's own bound identity and current Grant; platform credentials, context tokens and media keys remain Provider-private.
- Qualify the changed Provider capability on the maintained fork and pin the verified artifact. Submit reusable Provider changes upstream where appropriate, without making upstream merge a release prerequisite.
- Complete fresh real WeChat E2E with the Human controlling WeChat. Include observable success and the relevant refusal/recovery behavior, focused regression coverage, and packaged-product verification. A model's claim, HTTP success, or client acknowledgement alone is not delivery/read proof.
- Preserve real screenshots or recording during acceptance; embed GitHub-renderable evidence in the PR, including before/after and applicable light/dark states for visible UI changes. Do not publish credentials or unrelated chat contents.
- Update the illustrated English and Chinese WeChat connection guide and reusable IM integration guidance with verified behavior and platform limitations; edit canonical source docs, not generated site content.
- Create one issue-linked PR, then pause for Human QA. Merge and deployment require their own Human authorization. Issue closure requires the accepted behavior, not only documentation or a capability flag.
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersMessaging module and external providersready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Type
Projects
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 6, 2026
Agent work claim
codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95(not a DSH Session)codex/908-wechat-quote-contextCompleted prerequisite #907 / PR #1060 is merged. No remote WeChat history API, Thread relationship, client-acknowledgement/native-ID equivalence or Provider transcript store will be introduced.
DoodleBears commentedon Oct 6, 2026
Agent work outcome
codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95(not a DSH Session)80d6a402bcb3ae1f2a48356f865973b4890d0f63BH908-QUOTE-OK 紫色风铃42and supplied the receiving screenshot included in the PR.Merge main and retain WeChat QA regression evidence
DoodleBears commentedon Oct 6, 2026
Agent work checkpoint — Human QA remains paused
codex/local/01a0f14c-5338-7020-853b-0fe54b87aa959b529f867979886d5a6261cab7e58f096c972b2b. Main92a2bc49was integrated after publication; bilingual Release Ledger conflicts were resolved without dropping either entry.DoodleBears commentedon Oct 6, 2026
Agent work outcome
codex/local/01a0f14c-5338-7020-853b-0fe54b87aa953127198c127913eb6b40bdcf52c7580afb04bc63