Repository navigation
Description
Parent
#631 — PersonaBot attachment file operations. Coordinate with #48 / #629 and Project 10; milestone v1.1.
What to build
Human posts one small CSV ZIP in an authorized Lark group/topic and explicitly @mentions the bound PersonaBot while replying to that file. Human and Bot see trusted file metadata, binary download occurs only on first access under the Bot's existing authenticated account, and the Orchestrator saves an independent working copy in an explicitly writable directory. It uses native file tools and approved Shell, creates a result ZIP, imports it as an independent Attachment and explicitly replies with that file in the same existing topic under its own bound platform identity. Human can inspect/download the received file and returned result.
Acceptance criteria
- Qualify the exact optional provider artifact and public file-capability contract against IM tracer: work-group @Bot → PersonaBot Inbox → same-topic reply #12's working text ingress/reply baseline; reuse existing dsh-im transport helpers behind public Service methods, never private src imports or Human credentials. No claim of an upstream release or production enablement.
- The authenticated inbound message and trusted replied-to file establish exact account fingerprint, source message/conversation/topic and resource association. Arbitrary IDs, URL-looking strings, raw Host paths, wrong accounts and mismatched parent/topic references do not grant access. No general history-read or full-admission policy is added.
- Metadata is visible on receipt through canonical Source Event/Inbox and the existing source-detail surface without a fabricated DM/Channel. Binary transfer occurs on first explicit access with cancellation, existing byte limits and current Binding/Grant/provider availability checks. Record bounded lifecycle/failure diagnostics without secrets.
- Persist file provenance with the existing Attachment owner and source authority, without a duplicate attachment catalog or provider transcript. Preserve canonical source deduplication and no duplicate Inbox attention across redelivery/restart. Source permission revocation refuses later source operations; an already saved independent working file remains governed by destination-directory authority.
- Human can download the received file from source details and select its work directory through existing Grants. The actual Orchestrator acquires the source-validated file, runs native operations and existing Shell approval, and returns an explicitly selected independent result through the existing import contract.
- A checked same-source file reply validates current account/Binding/Service Grant and source route again before upload/send. Persist Outbox intent before external effects; distinguish upload failure, provider rejection, accepted, cancellation and ambiguous outcome. No blind retries, wrong-topic fallback, display-name retargeting or remote-original replacement; accepted is not delivered/read.
- Real-provider E2E: actual Human file upload/@mention, one native ZIP/CSV processing run and own-identity same-topic result. Download and inspect three rows, quantity seven and total sixty; verify original bytes and independent output identity. Cold restart retains canonical source/Inbox/file/Outbox facts without replaying a send. Exercise revoked/wrong source, bounded transfer failure and unknown outcome in appropriate regressions.
- Complete bilingual ADR/architecture/guidance/release ledgers and checks, include public-safe GitHub-rendered screenshots or recording plus runnable Human QA, create one issue PR and pause the goal for Human QA.
Blocked by
- IM tracer: work-group @Bot → PersonaBot Inbox → same-topic reply #12 — trusted bound PersonaBot Inbox ingress and same-source reply baseline; current PR feat(im): route work-group mentions to PersonaBot Inbox and reply in the original topic #655 is separately active and not yet merged.
- Tracer: Explicitly edit a received original and expose its current contents through message references #633 — native current-original/source access integration; now complete.
#612's broader context-history read, #613 full group admission and #614 Thread following are coordination neighbors, not prerequisites for one explicitly trusted reply-to-file. Slack and provider/routing variants follow later proven behavior rather than being pre-created here.
Scope boundaries
One Lark account, one authorized group and one existing topic, one ZIP/result file. No external-original writeback, generic document parser, direct Assignment access, provider-wide search, ordinary-message subscription or additional provider.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 1, 2026
Agent work claim
codex/local/01a0f268-9db7-7702-b051-bc1bb94b22b9(not a DSH Session)codex/657-lark-attachment-filesHuman approved this exact complete slice. Native blockers are closed: #633 via #653 and #12 via #655. Latest-main base is
7237c53ffe0fa3abf0219aea0b67878031388a3e; no other claim or open PR exists for this issue. The #12/provider owner's preserved QA instance is not modified or stopped by this task.6 remaining items
docs: capture real Lark ZIP acceptance for issue 657
Merge current main into issue 657 Lark attachment tracer
fix(attachments): retry independent acquisition after concurrent failure
DoodleBears commentedon Oct 1, 2026
Agent work outcome
codex/local/01a0f268-9db7-7702-b051-bc1bb94b22b9(not a DSH Session).9d51d19ed14a32eb81009e8cf333f17a53c96286; latest main integrated with both documentation intents preserved.docs: show the complete integrated Lark ZIP reply
DoodleBears commentedon Oct 1, 2026
Final review head:
37edf9b675eabe4fe154ec1fd2cfe41a1c9add5a(last commit only corrects the screenshot framing). PR #671 now renders all six evidence images, including the complete latest-main ZIP card and its download button.Code validation remains 1773 PASS / 2 SKIP, with 15 focused review regressions passing. Real Lark/model acceptance and independently downloaded ZIP verification remain pinned to
adf2e5ba: rows=3, quantity=7, total=60; original and CSV unchanged. GitHub verification is currently running.This issue remains ready for Human QA. Browser file-save completion is still an explicit Human QA check. The shared receiver was restored; this task’s own QA IM Provider is confirmed disabled. No merge performed.
Merge latest main before Lark attachment delivery
feat: process Lark ZIP attachments and reply in the same topic (#671)
DoodleBears commentedon Oct 1, 2026
Agent work outcome
codex/local/01a0f268-9db7-7702-b051-bc1bb94b22b9(not a DSH Session)f30870655f6737e28ba90e2a4dc5969214460e91.c2a8732918bf07b1047c987c9a797998bad5e13b; complete CI succeeded, local checks passed with 1792 tests passing and 2 skipped. Real Lark/model ZIP evidence and independently downloaded original/result archives are linked in the PR.