Skip to content

Research:Feishu/Lark Messaging provider contract(events / capabilities / identity) #78

Closed

Description

@DoodleBears

Current ownership — 2026-09-30

Feature Project: IM Identities & Messaging. Supply only current official provider facts and real sandbox evidence needed by the next #117/#12 tracer; no broad speculative provider survey.

Why

#71 已定义通用 Messaging/Provider Capability/Service Grant/Outbox contract;#48 仍需要一份以 Feishu/Lark 官方能力为依据的 adapter contract,避免把 provider 特性泄漏进 Messaging deep module。

Research and contract

  • verified sender/account identity、tenant/app/bot/account fingerprint。
  • new message、recall、可用的 edit/current-message fetch、thread/reply、reaction/card/file events。
  • webhook/long-connection verification、event id/version/time、out-of-order 与 replay behavior。
  • reply route、proactive post、attachment fetch/upload、provider idempotency/outcome lookup。
  • permissions/scopes、rate limits、credential rotation、account removal。
  • 每 account 的 Provider Capability 声明与 unsupported behavior。

Acceptance criteria

  • 只使用飞书/Lark 官方文档和可重复的 sandbox evidence;每条能力有来源与验证日期。
  • capability matrix 映射到 ADR-0036~0039,不把 capability 当 authorization。
  • 明确 edit/recall/echo/reconciliation 的 supported/unsupported/unknown。
  • 给 IM identities and messaging: provider coordination #48 提供 adapter interface、event normalization 和 acceptance fixtures。
  • 更新现有 research note,避免另建互相冲突的事实清单。

Related

Delivery relationship

Activity

  1. added this to the v1.1 milestone on Sep 19, 2026
  2. added
    V1.1Milestone v1.1; mirrors the GitHub milestone
    area:docsDocumentation, research, or planning artifact
    feature:messagingMessaging module and external providers
    scope:researchEvidence-gathering or mechanism spike
    on Sep 22, 2026
  3. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

  4. 5 remaining items

  5. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    The Human bound the real Lark account/destination in Profile, sent a text and confirmed receipt, then authorized merge. Exact final head db2ce29cddb4406c0d8240373aa71526a992807d passed GitHub lint/format/typecheck/test/build/docs and CodeRabbit checks; local integration was 1462 pass / 1 skip. Canonical grant, intent and one settled accepted attempt were verified without another external send. Main integration retains the concurrent Human Inbox reply, usage and Host file actions.

    Released legacy dsh-im remains disabled. The compatible authenticated-account/checked-send contract is proposed in xmanrui/dsh-im#293 and has not been accepted or released. This does not complete #117's compatible pinned artifact or #46/#78's inbound scope.

    The Human clarified work-group collaboration as the priority. #12 now verifies work-group @bot → the bound PersonaBot Inbox/Orchestrator → trusted same-group/topic reply; DM is a compatibility follow-up. See #12 (comment).

  6. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • Issue scope: current official Feishu/Lark capability contract and repeatable work-group sandbox evidence needed by the IM tracer: work-group @Bot → PersonaBot Inbox → same-topic reply #12 @mention / same-topic reply tracer; capability/permission matrix and normalization/acceptance fixtures. Platform breadth beyond the first tracer is explicitly unsupported by the current adapter or unknown, rather than speculative implementation.
    • Branch: codex/78-lark-group-contract
    • Started: 2026-09-30 18:35 UTC
    • State: active

    This is the first frontier under the Human's requested goal. Complete E2E evidence and a screenshot/recording-bearing PR, then pause the goal for Human QA before starting another issue. #117's Human-accepted outbound slice is merged; #12's full Inbox/Orchestrator integration is not yet delivered.

  7. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 30, 2026
  8. self-assigned this
    on Sep 30, 2026
  9. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • State: paused for Human QA, as explicitly requested for each issue PR
    • PR: research: qualify Lark work-group provider contract (#78) #607 (draft)
    • Final head: ae8b7e537f10da59f7f4059eb35f0e2191f7734f
    • Delivered: dated official Feishu/Lark capability matrix mapped to ADR-0036–0039, public normalization/acceptance fixture seam, repeatable isolated work-group sandbox, three real sources and three independently read checked-reply receipts, and a GitHub-rendered E2E report screenshot.

    The real Lark paths covered ordinary group @bot, @bot inside an existing topic, and a new group message after cold Host restart. Substituted group/topic routes were refused. The screenshot is explicitly a report from real provider records, not a PersonaBot product screenshot. Native IDs, credentials and unrelated chat content remain local. Eight probe regressions passed. Provider fork 19d88f14bf85d74d4abf035a0c749d0b4a640257 remains an unreleased proposal; this qualification does not deliver #12's canonical Source Event/Inbox/Orchestrator/Outbox integration.

    Final-head lint, format, typecheck, build and docs build passed. Full local suite: 1507 pass / 1 existing Human DM steering 15-second timeout / 1 skip. One isolated diagnostic run passed 4/4; this is not a claimed fix and the first failure is preserved in the PR. Exact-head GitHub CI is running, not yet a confirmed pass.

    Human QA: open BotHarness IM QA #78, select the real Bot mention and send [BH78 ROOT] in the main group or [BH78 TOPIC] in the prepared topic; expect one matching ACK in place. The isolated test consumer remains available. No merge or next issue until Human feedback; this issue stays open pending QA/merge.

  10. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 30, 2026
  11. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Human QA design follow-up — external group policy

    The Human observed an unmentioned Thread reply not entering the current probe's accepted records. The probe requires an authenticated @mention on every qualifying source; its successful @mention-in-Thread reply does not prove automatic Thread following or ordinary-message reception. Lark read status is not the probe's durable acceptance/Observation/reply receipt.

    Confirmed defaults: direct-mention-only external Inbox admission and @addressed responses. Human may enable ordinary group admission with existing time/count digest harvest or immediate wake. Bot explicitly chooses Thread follow/unfollow within the authorized scope; answering once does not auto-follow. Admission, wake and whether to answer are independent. Thread support is optional and adapted provider by provider, with group-only behavior for adapters without it.

    For the next selected context-read/following tracer, qualify exact Bot-identity permissions for ordinary message delivery, Chat history, Thread history, surrounding-context assembly and native search separately. The official Lark history API supports tenant-token Chat/Thread reads, requires stated group permissions and Bot membership, and warns that Chat listing returns only Thread roots in ordinary groups; replies require Thread listing. Thread listing cannot currently use a time range. Therefore bounded nearby-context assembly must report coverage honestly. Native search support under the concrete Bot identity is not verified here; do not silently borrow Human credentials. These are follow-up capability gates, not claims that #607 has implemented them or new blockers expanding its exercised acceptance.

  12. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim — Human-authorized merge follow-up

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • Issue scope: fix the opt-in QA probe's late asynchronous consumer lease disposal found during research: qualify Lark work-group provider contract (#78) #607 review, add focused regression coverage, then merge the Human-accepted qualification PR after exact-head checks.
    • Branch: codex/78-lark-group-contract
    • Started: 2026-09-30 21:05 UTC
    • State: active

    No PersonaBot integration or broader provider behavior is added to this PR. The Human authorized merge and continuation; the proposed subsequent ticket breakdown is separately awaiting confirmation.

  13. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 30, 2026
  14. DoodleBears commented on Sep 30, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • State: completed after Human QA and explicit merge authorization
    • PR: research: qualify Lark work-group provider contract (#78) #607
    • Final head: 2ef0bddbc33f50395123ea03a6c5e3277ac64d19
    • Merge commit: bdecd0da167e450e1ac65da981f22dcce0bd7204

    Exact-head CI (lint, format, typecheck, tests, build, docs) and CodeRabbit passed. The review's late-consumer cleanup finding was reproduced by two failing regressions and fixed; all 10 probe tests passed. Original real Lark records and screenshot retain their original probe hash rather than claiming a new platform run after this cleanup-only correction. The Human accepted the provider qualification and authorized continuation.

    Confirmed Group / optional Thread design remains in #48. New approved follow-ups #612 and #613 depend on #12; #614 depends on #613. They are native children of #48 in Project 10 / v1.1. #12's canonical PersonaBot integration and #117's compatible artifact adoption remain separate unfinished scope.

  15. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

V1.1Milestone v1.1; mirrors the GitHub milestonearea:docsDocumentation, research, or planning artifactfeature:messagingMessaging module and external providersscope:researchEvidence-gathering or mechanism spikewayfinder:researchWayfinder research ticket

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions