• Will Chen's avatar
    Fix uploading files to codebase in local agent mode (#2210) · 76cff36c
    Will Chen 提交于
    <!-- CURSOR_SUMMARY -->
    > [!NOTE]
    > Fixes upload-to-codebase in local-agent by resolving attachment IDs to
    real file bytes and adds e2e coverage.
    > 
    > - **Core fix**: New `file_upload_utils.resolveFileUploadContent` maps
    `DYAD_ATTACHMENT_X` IDs to uploaded file contents via
    `FileUploadsState`.
    > - **Tool update**: `write_file` now writes resolved bytes (supports
    binary) instead of raw ID strings.
    > - **Stream handling**: Clear stale uploads for the chat at stream
    start in `chat_stream_handlers`.
    > - **Tests**: Playwright test, fixture, and snapshot verify uploading
    `logo.png` to `assets/uploaded-file.png` and content parity.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    220b0eaae361fee015e5146b9fffd217e7bf7626. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Fixes uploading files to the codebase in local-agent mode by resolving
    attachment IDs (e.g., DYAD_ATTACHMENT_0) to real file bytes before
    writing. Adds e2e coverage to prevent regressions.
    
    - **Bug Fixes**
    - Added resolver to map upload IDs to file content using
    FileUploadsState.
      - Updated write_file to use the resolver and write the resolved bytes.
    - Cleared file uploads state at chat start to avoid stale IDs from
    previous requests.
    - Added Playwright test and fixture that upload logo.png and verify the
    written file and snapshot.
    
    <sup>Written for commit 220b0eaae361fee015e5146b9fffd217e7bf7626.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    76cff36c
local_agent_file_upload.spec.ts_local-agent---upload-file-to-codebase-1.aria.yml 982 Bytes