• keppo-bot[bot]'s avatar
    [codex] fix binary-safe cloud sandbox sync uploads (#3188) · 26dc0390
    keppo-bot[bot] 提交于
    ## What changed
    - switch the cloud sandbox upload client to a multipart
    manifest-plus-file request instead of JSON `Record<string, string>`
    payloads
    - read synced files as raw bytes for both full and incremental uploads
    while preserving `replaceAll`, `deletedFiles`, and queued incremental
    sync behavior
    - update the fake cloud sandbox server and desktop-side tests to
    validate multipart uploads and binary byte preservation
    
    ## Why
    The previous upload path decoded files as UTF-8 strings before sending
    them to the engine, which corrupted binary assets and broke cloud
    previews for files like images, fonts, and wasm.
    
    ## Impact
    Desktop cloud sandbox syncs now send byte-exact file contents to the
    engine, including incremental syncs.
    
    ## Compatibility
    - depends on the engine multipart upload support in
    dyad-sh/dyad-llm-engine#146
    - the engine PR keeps legacy JSON uploads available for older desktop
    clients, but this desktop change is required for binary-safe uploads
    
    ## Validation
    - `npm test -- src/ipc/utils/cloud_sandbox_provider.test.ts`
    - `npm run ts`
    - `npm run lint`
    - `npm run fmt:check`
    
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/3188"
    target="_blank">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    Co-authored-by: 's avatarWill Chen <7344640+wwwillchen@users.noreply.github.com>
    26dc0390
名称
最后提交
最后更新
..
ai_messages_utils.ts 正在载入提交数据...
app_env_var_utils.ts 正在载入提交数据...
cleanFullResponse.ts 正在载入提交数据...
cloud_sandbox_provider.test.ts 正在载入提交数据...
cloud_sandbox_provider.ts 正在载入提交数据...
context_paths_utils.ts 正在载入提交数据...
copy_file_utils.ts 正在载入提交数据...
debug_fetch.ts 正在载入提交数据...
dyad_tag_parser.ts 正在载入提交数据...
fallback_ai_model.ts 正在载入提交数据...
file_utils.ts 正在载入提交数据...
findLanguageModel.ts 正在载入提交数据...
get_model_client.ts 正在载入提交数据...
git_author.ts 正在载入提交数据...
git_utils.ts 正在载入提交数据...
llm_engine_provider.ts 正在载入提交数据...
lm_studio_utils.ts 正在载入提交数据...
lock_utils.ts 正在载入提交数据...
mcp_consent.ts 正在载入提交数据...
mcp_manager.ts 正在载入提交数据...
mcp_tool_utils.ts 正在载入提交数据...
media_cleanup.ts 正在载入提交数据...
media_path_utils.ts 正在载入提交数据...
mention_apps.ts 正在载入提交数据...
mime_utils.ts 正在载入提交数据...
neon_timestamp_utils.ts 正在载入提交数据...
ollama_provider.ts 正在载入提交数据...
path_utils.ts 正在载入提交数据...
port_utils.ts 正在载入提交数据...
process_manager.test.ts 正在载入提交数据...
process_manager.ts 正在载入提交数据...
provider_options.ts 正在载入提交数据...
pty_command_runner.test.ts 正在载入提交数据...
pty_command_runner.ts 正在载入提交数据...
read_env.ts 正在载入提交数据...
replacePromptReference.ts 正在载入提交数据...
replaceSlashSkillReference.ts 正在载入提交数据...
resolve_media_mentions.ts 正在载入提交数据...
retryOnLocked.ts 正在载入提交数据...
retryWithRateLimit.ts 正在载入提交数据...
ripgrep_utils.ts 正在载入提交数据...
runShellCommand.ts 正在载入提交数据...
safe_sender.ts 正在载入提交数据...
simpleSpawn.ts 正在载入提交数据...
socket_firewall.test.ts 正在载入提交数据...
socket_firewall.ts 正在载入提交数据...
start_proxy_server.ts 正在载入提交数据...
telemetry.ts 正在载入提交数据...
template_utils.ts 正在载入提交数据...
test_utils.ts 正在载入提交数据...
theme_utils.ts 正在载入提交数据...
thinking_utils.ts 正在载入提交数据...
token_utils.ts 正在载入提交数据...
vercel_utils.ts 正在载入提交数据...
versioned_codebase_context.ts 正在载入提交数据...