Skip to content

feat: support resumable proxy uploads#919

Open
thymikee wants to merge 2 commits into
mainfrom
feat/resumable-proxy-upload
Open

feat: support resumable proxy uploads#919
thymikee wants to merge 2 commits into
mainfrom
feat/resumable-proxy-upload

Conversation

@thymikee

Copy link
Copy Markdown
Member

Summary

  • Adds resumable upload support for proxy installs via /upload/preflight, /upload/direct/:id, and /upload/finalize, including retry/resume after interrupted direct uploads before falling back to legacy /upload.
  • Keeps upload concerns reusable by extracting daemon upload HTTP handling, resumable upload state, shared HTTP error mapping, and proxy upload ticket rewriting into focused modules.
  • Updates proxy help/docs to describe the exposed resumable /upload/* surface. Scope: 12 touched files.

Validation

Verified with TypeScript, lint, focused upload/proxy tests, CLI help tests, build, and the full unit/smoke equivalent. pnpm check:unit itself was blocked by Corepack registry signature verification, so I ran its underlying local commands: ./node_modules/.bin/vitest run --project unit passed 286 files / 2774 tests, and node --test test/integration/smoke-*.test.ts passed 8 with 1 expected opt-in web smoke skip.

Focused checks passed: upload client/proxy/daemon HTTP resumable tests, src/utils/__tests__/args.test.ts, ./node_modules/.bin/tsc -p tsconfig.json, ./node_modules/.bin/oxlint . --deny-warnings, and pnpm build.

Live proxy install evidence: installed AgentDeviceTester.app through a proxy-started server onto iOS simulator iPhone 17 Pro Max as com.callstack.agentdevicelab, and installed an Android Expo test APK through the same proxy flow onto Pixel 9 Pro XL API 37 as com.callstack.agentdevicelab.

@github-actions

github-actions Bot commented Jun 28, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstack.github.io/agent-device/pr-preview/pr-919/

Built to branch gh-pages at 2026-06-28 19:26 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions

github-actions Bot commented Jun 28, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.4 MB 1.4 MB +8.3 kB
JS gzip 445.6 kB 448.1 kB +2.5 kB
npm tarball 586.2 kB 588.2 kB +2.0 kB
npm unpacked 2.0 MB 2.0 MB +8.3 kB

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 22.6 ms 21.8 ms -0.8 ms
CLI --help 38.7 ms 40.5 ms +1.7 ms

Top changed chunks:

Chunk Raw diff Gzip diff
dist/src/9722.js +6.1 kB +1.8 kB
dist/src/cli.js +1.3 kB +399 B
dist/src/9919.js +410 B +84 B
dist/src/session.js 0 B -3 B

@thymikee

thymikee commented Jun 28, 2026

Copy link
Copy Markdown
Member Author

Fallow is red on this branch. The blocking findings are in the upload/proxy changes:

  • duplicate 11-line block in src/daemon/upload-http.ts:74-84 and src/daemon/upload-http.ts:175-185
  • duplicate 7-line block across src/daemon/upload-http.ts:198-204 and src/daemon-proxy.ts:285-291
  • high complexity called out in src/daemon/resumable-upload.ts:220 parseContentRange

Please run pnpm check:fallow --base origin/main locally and collapse the repeated upload-response/header handling before re-review.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Jun 28, 2026
@thymikee

Copy link
Copy Markdown
Member Author

Re-reviewed the corrected head after the Fallow fix.

Fallow is now green, all checks are passing, and I do not see a blocker in the resumable upload/proxy route changes. I checked the daemon upload preflight/direct/finalize route, proxy token rewriting, client resume/re-preflight behavior, and the provider/proxy tests. Residual risk is limited to the new upload surface relying on the covered live proxy install evidence. Labeled ready-for-human.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant