Skip to content

WeChat tracer: checked image intake and native image reply #904

Closed

Description

@DoodleBears

Parent

#902 — Personal WeChat capability alignment. IM coordination reference: #48.

What to build

A WeChat image appears as an image source in BotHarness; a suitably configured model can use it, and the Bot can return a native image to the original DM.

Scope: personal WeChat/iLink, explicitly authorized paired-owner DM. Enterprise WeChat/WeCom is excluded.

Acceptance criteria

  • Extend the checked media path established by the file tracer to native image items, including image-only intake and available accompanying text, without replacing an image with an opaque URL or duplicate Source Event.
  • Show a safe image preview/download through existing attachment presentation. Preserve source metadata; unavailable or rejected media has a clear recoverable presentation.
  • Provide the image through the existing model/tool capability that actually supports it. Distinguish image transport success from visual understanding; an unsupported model must not be presented as having seen the image.
  • Return a native WeChat image using the Bot's own identity and trusted original DM route; enforce media limits and current authorization at send time.
  • Real E2E: receive a fresh test image with a unique visible marker, verify actual image use with an appropriate model/tool, and receive a native image reply in WeChat. Keep proof of the actual receiving UI and a refusal/recovery case.

Blocked by

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 5, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • Issue scope: paired-owner checked image intake/preview, capability-gated native image inspection and own-identity native image reply in the original DM; no voice/video, WeCom, other contacts or group expansion
    • Branch: codex/904-wechat-images
    • Started: 2026-10-05 20:39 UTC
    • State: active
    • Dependency: WeChat tracer: checked source file processing and original-DM file reply #903 / PR feat(wechat): process source files and return results in the original DM #932 passed Human QA and received explicit merge authorization; final CI was cancelled without a test assertion failure and is being rerun on the exact unchanged head. Independent preparation starts from that accepted head; merge is still pending CI and the candidate will be integrated with main before delivery.
    • Human controls WeChat. Only the independent local BotHarness QA browser is authorized for agent UI operation. Native image understanding requires a declared image-capable model; Human confirmed one is available for local configuration.
  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 5, 2026
  5. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent progress — native image roundtrip confirmed

    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95; original claim remains this task's scope.
    • WeChat tracer: checked source file processing and original-DM file reply #903 / feat(wechat): process source files and return results in the original DM #932 is now merged. Current WeChat tracer: checked image intake and native image reply #904 implementation is based on main e2dd34de and documented at head b6b9c022.
    • Installed product 0.0.0-test.904 / verified managed Provider 4.32.0-botharness.6 received the Human's native JPEG through one canonical Source Event. Client light/dark checked preview is captured.
    • Actual deepseek-official/deepseek-flash native read_image returned an ImageBlock and independently identified the visible Discord application, layout and readable labels. The pinned native Tool's missing scoped fs dependency was reproduced in the real Cordis Tool Runtime, patched with a tracked dependency patch, and verified in the installed product; no global sandbox or Workspace authority was widened.
    • Human authorized the result copy once; no permanent Tool rule was added. The independent source/result JPEGs are locally byte-identical (154682 bytes). The model imported the result and used same-source bridge_reply_file; checked Provider accepted the native JPEG send. Human subsequently confirmed: 已收到,图片内容一致 in the original WeChat DM.
    • Local full regression: 2701 PASS / 9 SKIP; Provider 3579 PASS / 0 FAIL. Lint/format/typecheck/build/pack/ledgers and final docs build passed. Reusable image docs and real preview captures are prepared.
    • Remaining evidence: Human-controlled native WeChat receiving-UI screenshot. Local acceptance and Human visual confirmation do not establish receiver-side byte equality or native read receipts. PR body and PR Lens SVG are prepared; PR is not yet published. No WeChat tracer: checked image intake and native image reply #904 merge/deploy, subsequent WeChat slices or WeCom expansion.
  6. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — paused for Human QA

    • Agent: Codex; Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95.
    • State: paused; claim scope remains WeChat tracer: checked image intake and native image reply #904 only.
    • PR: feat(wechat): checked image intake, preview and native image replies #946 — checked native WeChat image intake, authenticated/disposable Inbox preview, actual model image input and own-identity image reply. Exact head: 075f544c690b16ca0c1eeeabe35dcd8285d38f29.
    • Fresh installed-product E2E: Human sent the native image, DeepSeek Flash received a real native ImageBlock and identified its visible contents, then imported an independent unchanged result and replied on the original Source Event. Human confirmed receipt/content agreement and supplied the native receiving-client screenshot; it is embedded in the PR and bilingual connection guide. Receiver-side byte equality and native read receipts are not claimed.
    • PR includes real light/dark preview captures, original source/preview interaction states, a short video of those captured states (clearly labeled as a state sequence), native WeChat receiving screenshot and PR Lens architecture SVG. All six uploaded assets are publicly reachable with the expected media types; GitHub-rendered HTML contains all five image embeds and the video reference.
    • Local verification: 2701 PASS / 9 SKIP; Provider 3579 PASS / 0 FAIL; lint/format/typecheck/build/pack/ledgers and 358-page docs build passed. The scoped-native-file fix was first reproduced and then passed both the real Tool Runtime regression and installed-product recovery. Hosted exact-head CI remains separate and is still pending.
    • Runtime continues on the already paired isolated QA Profile, preserving one receiver and the authorized owner DM. WeChat stays Human-controlled. No WeChat tracer: checked image intake and native image reply #904 merge/deploy, no follow-on WeChat tracer: native voice transcript intake and original-DM reply #905–WeChat tracer: global behavior defaults and Profile inheritance #912 implementation and no WeCom work are authorized by this publication.

    Await Human QA and explicit merge/continue instructions. Remaining hub scope lives in #902.

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

    @DoodleBears
    ContributorAuthor

    Agent work claim — Human QA follow-up

    • Agent: Codex; Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95.
    • Issue scope: WeChat tracer: checked image intake and native image reply #904 / PR feat(wechat): checked image intake, preview and native image replies #946 only; Human requested replacing the redundant [Image] message placeholder with the actual image inside its original message bubble. Open source details should load image previews automatically, preserving captions, checked download/current authorization and recoverable failure.
    • Branch: codex/904-wechat-images.
    • State: active for this bounded Human QA correction; no follow-on issues or merge/deployment.
    • Prior isolated QA instance is no longer running and its temporary Profile is absent. Code/regression correction proceeds while locating the current Human QA page; no old pairing, receiver or external delivery is inferred as restored.
  9. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 6, 2026
  10. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — Human QA correction, paused

    • Agent: Codex; Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95.
    • Scope remains WeChat tracer: checked image intake and native image reply #904 / PR feat(wechat): checked image intake, preview and native image replies #946 only. Updated exact head: 2768b1bc1318d7df81d9ae9d8519946319ab7701.
    • Opening an external image source now automatically loads the checked image inside the original message bubble. Pure [Image] is replaced; captions, raw metadata, authenticated download, retry, MIME refusal, abort and URL disposal remain. The unopened Inbox list fetches no image bytes.
    • Fresh installed candidate 0.0.0-test.904.1, integrated with main baseline 80bc5a60, received the paired-owner PNG through canonical Inbox. Checked download returned PNG, 90151 bytes. Human supplied a real light-theme source-modal screenshot confirming the image inside the bubble. That screenshot contains private account information and remains machine-local; it has not been published.
    • The public PR keeps the original permitted image/model/native-reply proof, architecture diagram and interaction clip, explicitly labeling its old source previews as before-correction. A publishable current after/dark capture remains blocked by Chrome focus/navigation/capture timeouts; the visual-evidence exception and runnable Human review steps are written in the PR. No fabricated or relabeled after-image is used.
    • Final unchanged full regression: 2720 PASS / 9 SKIP, 329 files passed / 5 skipped. Seven focused Client checks, lint/format/typecheck/build/installed-pack/provenance, bilingual ledgers and 364-page docs build passed. Earlier timeout failures and successful unmodified focused reruns are retained; no assertions or timeout configuration were changed.
    • Exact-head GitHub verify and prerelease-preparation checks were running at publication; local results are not represented as hosted CI success.
    • State: paused for Human QA. Goal remains paused. No merge, deployment or WeChat tracer: native voice transcript intake and original-DM reply #905–WeChat tracer: global behavior defaults and Profile inheritance #912 work performed; WeChat remains Human-controlled, with only the paired-owner private DM authorized.
  11. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 6, 2026
  12. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95
    • State: completed
    • PR: feat(wechat): checked image intake, preview and native image replies #946, merged after Human QA and explicit merge authorization.
    • Merge commit: b6979ac52cc5bb88427691f4f390b44d538de4d6.
    • Final reviewed head: 2732eef3b97bf9cd90ed6e5c8805bc30c41a5a8e; verify and npm package preparation both succeeded.
    • Human requested the new inline-preview screenshot be published in the PR; the unedited current capture is embedded and its GitHub rendering was read back. Older captures are labeled pre-correction.
    • Paired-owner original-DM image receipt and visual content agreement were accepted; byte equality on the receiving client and native read status are not claimed. No deployment performed.
    • Follow-on voice transcript scope remains WeChat tracer: native voice transcript intake and original-DM reply #905.
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