Skip to content

Bridge tracer: Lark file cards with download and safe open-with #1022

Closed

Description

@DoodleBears

Parent

#1020 — Authorized Bridge media in Channel history. Coordination: #48.

What to build

Human uses real Lark/Feishu files from their original Channel bubble through known metadata, download and existing safe open-with behavior.

Acceptance criteria

  • Qualify native file/parent resource association, multiple file items and mixed text/file order where the provider supports them.
  • Show filename, known type and known size; unknown data stays unknown. Download the actual bounded original bytes.
  • Offer existing safe open-with only when the applicable Host/device supports it. Unavailable native opening still permits an authorized download. Never automatically execute, introduce a new launcher or write edits back to the provider.
  • Deliver one production-shaped path through qualified Provider intake, canonical Source Event, realtime and historical Channel projection, authorized Host media access and operable bubble UI. Do not start a competing receiver or a second message store.
  • Preserve external author, source-name button/Modal, message boundary and known item ordering. Multiple and mixed media remain one native message; unknown ordering/metadata is honest. Provider URLs, tokens, AES keys and credentials remain private.
  • Human Channel access resolves trusted media authorization without choosing or borrowing a Bot identity. Recheck placement, source/media identity, current Channel access and independent valid source authorization during acquisition and serving.
  • Visible-image previews acquire on visibility; audio/video and file actions acquire on explicit action. Reuse existing Host Attachment management; keep the default 25 MiB bound, cancellation and bounded concurrency. Display loading, too-large, unsupported, failure and retry states honestly.
  • After acquisition, refresh and Host restart retain authorized history access. Ordinary Bridge reception stop allows acquired-media viewing but no new acquisition through that stopped path. Unbind/media revocation prevents acquisition and serving through that authorization; independent valid paths remain independent. Do not resurrect Content Purge content.
  • Human viewing creates no Bot Observation, model-context change, Inbox admission, wake or external send authority. Inbox-only creates no Channel history. Bot understanding and own-identity permissions remain unchanged.
  • Complete focused observable regression coverage and real platform/media E2E: receive a uniquely identifiable native message, inspect actual bytes/preview/play/download as applicable, refresh/restart, and demonstrate relevant stop/revoke/error recovery. Mock payloads, flags and HTTP success alone are not platform proof.
  • Provide GitHub-renderable matched before/after light/dark screenshots, relevant playback/recovery recording and usable Human verification steps. Follow DSH tokens/primitives and keyboard/accessibility conventions; keep private chat content and secrets out of evidence.
  • Update applicable canonical English/Chinese user guidance and bilingual release ledgers for delivered behavior; do not edit generated docs. Deliver one issue-linked PR with task claim/trace and review-risk classification, then pause for Human QA before expanding dependent slices. Merge/deployment require separate authorization.

Blocked by

Planning and authority

Project: V1.1 · IM Identities & Messaging (#10). Milestone: v1.2, explicitly selected by Human; Project title does not override milestone. Human approved ticket granularity and blocking edges before publication. This publication does not claim implementation or take over existing WeChat work.

Activity

  1. added this to the v1.2 milestone on Oct 6, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:channelChannel chat, timeline, composer, and navigation
    feature:messagingMessaging module and external providers
    scope:tracerHuman-testable implementation slice
    on Oct 6, 2026
  3. 7 remaining items

  4. removed
    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 7, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim — remaining media qualification resumed. Task codex/local/01a112f7-dccf-7c81-b6c5-6624e3098722 resumes on codex/1022-lark-file-cards after Human requested continuing remaining issues. Scope: normal isolated QA Profile setup with the existing authorized BotHarness Onboarding QA 824 app, mutually exclusive reception, fresh native file and matched light evidence; keep exact candidate Provider and existing permission boundaries. Prior machine receiver was explicitly stopped in the handoff; this continuation has configured no local QA app receiver. Chrome read-only lookup confirms the dedicated QA app is distinct from the active production app used by the separate 1029 task. No production interruption, app-scope expansion, other-task takeover or 1023 implementation. State active; supersedes this task previous paused outcome.

  6. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 7, 2026
  7. modified the milestones: v1.2, v1.3 on Oct 11, 2026
  8. DoodleBears commented on Oct 15, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim — current-main Lark file slice

    • Agent: Codex
    • Task: codex/local/01a13902-0d72-7872-ac0f-440e152155d5 (not a DSH Session).
    • Issue scope: Bridge tracer: Lark file cards with download and safe open-with #1022 — extend the existing shared QQ file-card/authorized original-file path to qualified Lark sources, including real Client file actions, retained-history/revocation behavior, focused regression and fresh native acceptance. Do not start dependent media types/platforms.
    • Branch: codex/1022-lark-files-main, current-main base e6abf667.
    • Started: 2026-10-16 JST.
    • State: active.
    • Recovery: the owner closed old PR #1077 unmerged in the explicit cleanup and requested a fresh slice on main using the newer shared QQ file path. This Human-authorized continuation supersedes that obsolete candidate implementation for the bounded current-main slice; previous claims, failures and evidence remain history. No open matching replacement PR was found during preflight.
    • Receiver boundary: no Lark receiver has been started. The previously reserved Onboarding QA 824 App is not taken over by this claim; its actual receiver and any test window must be checked before connection. No production interruption, App permission expansion, merge or deployment authorization is inferred.
  9. DoodleBears commented on Oct 15, 2026

    @DoodleBears
    ContributorAuthor

    Agent work checkpoint

    The real QA2 path now reaches a checked quoted-parent file, canonical Source Event and Channel card. The actual card and CLI downloaded the exact original 32-byte synthetic CSV with matching SHA-256. Viewing added no Source, Admission, model usage or Outbox. Reception stop retained the acquired original; identity unbind refused cached access with source-unavailable.

    The dedicated isolated receiver was stopped early and QA2 released. Other Apps and receivers were not changed. T3 browser control recovered in a fresh tab but disappeared again after the application-menu click; that click's visible outcome, refresh/restart, matched light/dark GitHub evidence, installed-product acceptance and Human feedback remain open. Issue closure, merge and deployment are not claimed.

    Focused tests passed 46/46, and the complete media file passed 12/12 serially. The original broader run's 152/153 with one image-case timeout remains recorded; its immediate variants and full serial media rerun passed. Detailed evidence and boundaries: verification record.

  10. DoodleBears commented on Oct 15, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — completed

    • Agent: Codex
    • Task: codex/local/01a13902-0d72-7872-ac0f-440e152155d5
    • State: completed for the checked single-parent file tracer
    • Merged PR: feat: Lark referenced file cards with authorized download (#1022) #1943, commit ba53c5fbf69f05e91c81c4caa3fe645cb16465a3
    • Final reviewed head: a425ddb12ab3520e683913dbd630631bc7bf0a79; full three-shard CI, lint/typecheck/build, docs and isolated Host smoke passed. Real-model CI scenarios were skipped; actual model/platform evidence came from the isolated QA2 runs.

    The real native request reached its original Channel bubble and exact filename-only file card. Browser and actual installed CLI downloaded the same 32-byte original and SHA-256. Refresh and same-Profile packaged cold restart retained history and original bytes. Reception stop preserved acquired access; identity unbind produced a coded and visible refusal, including Retry. After the ordinary Bot turn settled, these actions added no Source, Admission, settled usage or Outbox. Five genuine matched light/dark/refusal images were verified rendered on GitHub, with two short real UI recordings.

    Limits stay explicit: this Provider qualifies one quoted parent file, not direct/multiple/rich mixed file intake. This Windows Host's native application query failed; its truthful download fallback passed, with no positive native application-launch claim. Native Session/appearance blank-page evidence remains separate under the existing #1251 investigation; no speculative fix or attribution is claimed. Stop-before-acquisition, independent paths, oversize/cancellation and purge retain controlled coverage, not a claim that each was separately exercised on Lark.

    The Human authorized merge after qualification and continuation to #1023. QA2 and both task-owned Hosts were stopped/released. No publication or deployment was performed. Current qualification: verification, visual evidence. The head-bound HTML review aid was rendered and visually checked locally at desktop/narrow widths; it remains a local artifact, not a hosted reviewer link.

  11. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 15, 2026
  12. moved this from In Progress to Done in Roadmapon Oct 15, 2026
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:channelChannel chat, timeline, composer, and navigationfeature: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