Skip to content

WeChat tracer: quoted-message resolution and bounded retained-source context #908

Closed

Description

@DoodleBears

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.

Activity

  1. added this to the v1.1 milestone on Oct 5, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:messagingMessaging module and external providers
    scope:tracerHuman-testable implementation slice
    on Oct 5, 2026
  3. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • Issue scope: Native WeChat quote evidence, same-authorized-conversation resolution and bounded cursor reads over canonical retained Source Events, Client source details and real paired-owner E2E.
    • Branch: codex/908-wechat-quote-context
    • Started: 2026-10-06 15:55 UTC
    • State: active

    Completed 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.

  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 6, 2026
  5. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • State: paused for Human QA
    • PR: feat(wechat): preserve quotes and read bounded retained context (#908) #1071; exact head 80d6a402bcb3ae1f2a48356f865973b4890d0f63
    • Delivered slice: checked native quote evidence, authorized retained-source cursor/nearby reads, source details and illustrated bilingual guides. The live WeChat quote supplied only an item ID; resolution remained unavailable. The real model found the original through two local pages and nearby context, then replied in the original DM. The Human confirmed BH908-QUOTE-OK 紫色风铃42 and supplied the receiving screenshot included in the PR.
    • Evidence: matched light/dark before/after screenshots, native receipt, real UI keyframe video with reproduction steps, and PR Lens flow. Final integrated local regression: 2,937 passed / 9 skipped; Provider WeChat 209 passed; packaged product and docs build passed.
    • Remaining: Human QA and separate merge authorization. No remote WeChat history/search or Thread relationship is claimed; other native quote shapes have regression coverage only. Provider changes use the pinned qualified fork; upstream publication is not claimed.
  6. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 6, 2026
  7. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work checkpoint — Human QA remains paused

    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95
    • PR feat(wechat): preserve quotes and read bounded retained context (#908) #1071 final head: 9b529f867979886d5a6261cab7e58f096c972b2b. Main 92a2bc49 was integrated after publication; bilingual Release Ledger conflicts were resolved without dropping either entry.
    • Full final regression: 2,950 passed / 9 skipped with four workers; types, lint, format, product and docs builds passed. An initial integration run and concurrent focused retry had the existing Human DM burst timeout; the unchanged isolated case passed in 5.86 seconds, followed by the passing full rerun. No assertion/timeout changes. Original failure evidence is preserved in the verification document and PR.
    • All seven image/SVG attachments and the keyframe video returned valid bounded media responses. Exact-head CI is running, not yet claimed green.
    • Still paused for Human QA and separate merge authorization; no next issue started.
  8. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:fullstackEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions