Skip to content

Tracer: Process a received CSV ZIP in an authorized directory and return a new attachment #632

Closed

Description

@DoodleBears

Tracer: Process a received CSV ZIP in an authorized directory and return a new attachment

Parent

#631 — PersonaBot attachment file operations.

What to build

Human uploads a ZIP in a local conversation and asks the PersonaBot to summarize its CSV into a new ZIP. Human explicitly authorizes a writable project/work directory. The Orchestrator acquires the current attachment under source authorization, saves a separate working file in that directory, unpacks and reads it using ordinary native tools and approved Shell operations, creates the summary, and returns an independently stored downloadable Attachment to the original conversation.

Complete the narrow path through the existing file owner, durable directory authorization, native Tool/Execution World permission boundary, Host/Client authorization interaction and model-facing file acquisition/result import. Retain the Orchestrator's Memory working-directory contract and existing Assignment authority. This is not a backend-only upload foundation or a mock Client.

Acceptance criteria

  • Human can authorize and revoke Orchestrator write access to the selected work directory through a runnable Client surface. Existing read-only Grants stay read-only unless explicitly authorized, and another PersonaBot gains no access.
  • The Orchestrator sees attachment information and can acquire the current exact file; current source membership/visibility and attachment association are checked. Missing, wrong-owner or unavailable attachments are not successful reads.
  • Saving creates an independent working file. Native file tools can read and modify it inside the authorized destination; ordinary file moves within authorized scope work. The source attachment and message reference remain unchanged.
  • Native file policy and the Execution World write boundary both honor the authorized directory without globally widening permissions. Shell retains existing approval/saved-rule behavior; attachment receipt grants no automatic Shell approval.
  • The real model unpacks the ZIP, reads CSV records, computes totals, creates summary files, repacks them and explicitly selects the produced ZIP for return. No test-only response injection replaces model processing.
  • Import of the selected generated file uses the existing attachment owner and trusted result identity; the reply uses current send authorization and the original conversation. The output is downloadable and has an independent Attachment identity.
  • Fixture has three records with quantities 2, 1 and 4, unit prices 10, 20 and 5. Each row amount is 20; summary reports three rows, quantity 7 and total 60. Download and unpack the returned result to verify these values.
  • Verify preservation of original bytes; source/destination denial and revocation; missing input; transfer limits/cancellation; failed result import/send. Distinguish failure from success using production seams.
  • Include real DSH model interaction and Human download/contents verification as GitHub-rendered screenshots or recording in the PR. Include required before/after UI evidence for the authorization surface.
  • Record the accepted architecture decision, updated Orchestrator write authorization meaning, living architecture and bilingual release/documentation changes under repository workflow. Public guidance distinguishes implemented local files from future bridge support.
  • Record task claim/commit/PR trace, complete required checks and pause the goal after PR creation for Human QA.

Blocked by

None — can start immediately after ticket publication and claim. Real-file storage and trusted forwarding are merged prior art, not new open dependencies.

Scope boundaries

Original-source writeback is the next sibling. Lark/Slack transfer adapters, direct Assignment attachment access, universal document parsing, arbitrary Host paths, attachment versioning, automatic Memory writes and automatic remote-original updates are excluded. Shape trusted source identity so later Channel/Inbox bridge integration does not require a second file authority.

Activity

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

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f268-9db7-7702-b051-bc1bb94b22b9 (not a DSH Session)
    • Issue scope: authorized received-ZIP file access, explicit Orchestrator writable-directory permission, ordinary native processing and independently imported result attachment returned to the originating local conversation. Real-model CSV ZIP E2E and PR visual evidence; original writeback remains Tracer: Explicitly edit a received original and expose its current contents through message references #633.
    • Branch: codex/632-attachment-file-operations
    • Started: 2026-10-01 05:18 UTC
    • State: active

    The Human confirmed the design and this two-ticket split. #632 has no open native blocker. #631 and #633 are published and linked, with #633 blocked by #632. Existing #12/#117/#629 claims and external-provider Human QA remain separate; no external account or PR merge is authorized by this claim.

  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    in-progressHeld by an agent session; see Claim comment for who
    on Oct 1, 2026
  5. DoodleBears commented on Oct 1, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Agent: Codex
    • Task: codex/local/01a0f268-9db7-7702-b051-bc1bb94b22b9 (not a DSH Session)
    • State: paused for Human QA
    • PR: feat(attachments): process received files in Human-authorized folders #648 — feat(attachments): process received files in Human-authorized folders #648
    • Commit: 5cb839b45f4e97aa4a8600c5cdb65936960b6737
    • Delivery: default-off Human folder write authorization; source-owned save-as; native file processing and individually approved Shell; independent generated attachment import and canonical reply/download. Formal ADR-0105, bilingual docs/ledgers, generation-42 upgrade and regression coverage included.
    • Evidence: PR正文 embeds GitHub-rendered before/after UI and real-model E2E screenshots; image load was verified. Fresh Profile download contains three amounts of 20, row_count 3, quantity_total 7, amount_total 60. Original bytes unchanged; returned identity independent; 13 real Tool results successful.
    • Validation: static checks/build/ledgers/font generation passed; final full suite 1647 passed, 1 existing skipped. Earlier unchanged Group-deletion timeout remains disclosed, with separate main/branch isolated passes and full rerun pass; it is not claimed fixed. GitHub CI was still running at handoff.
    • Remaining scope: Human QA and merge decision. Tracer: Explicitly edit a received original and expose its current contents through message references #633 stays blocked pending this first slice. No merge or next issue work has been performed; the goal is paused as requested.
  6. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 1, 2026
  7. DoodleBears commented on Oct 1, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

  8. removed
    in-progressHeld by an agent session; see Claim comment for who
    on Oct 1, 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:messagingMessaging module and external providersfeature:workspaceWorkspace Grant and working-directory authorityready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    • Status
      Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions