fix(daytona): add retry with backoff to geesefs download (#5653) - #5654
fix(daytona): add retry with backoff to geesefs download (#5653)#5654pranjali2076 wants to merge 4 commits into
Conversation
|
@pranjali2076 is attempting to deploy a commit to the agenta projects Team on Vercel. A member of the Team first needs to authorize it. |
|
✅ Thanks @pranjali2076! This PR now meets the contribution requirements and has been reopened. A maintainer will review it soon. |
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe Daytona snapshot build now retries geesefs downloads. Drive and stage drop handlers now extract dropped files recursively and preserve relative paths. ChangesSnapshot download reliability
Recursive drive drops
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant User
participant DropHandler
participant readDroppedFiles
participant DriveUpload
User->>DropHandler: drop files or directories
DropHandler->>readDroppedFiles: pass DataTransfer items
readDroppedFiles-->>DropHandler: return DroppedFile objects
DropHandler->>DriveUpload: upload non-empty results
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Warning |
mmabrouk
left a comment
There was a problem hiding this comment.
you committed a wrong file it seems @pranjali2076 can you please fix
Sorry about that! I've reverted useDriveDrop.ts—the PR now only includes the fix for build_snapshot.py |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
web/oss/src/components/Drives/useDriveDrop.ts (1)
5-12: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winShorten the new JSDoc block.
Keep this contract in one short line, or move the detailed behavior description to external API documentation.
Proposed concise documentation
-/** - * Drag-and-drop upload behaviour shared by the drive's tree and grid: highlight the folder under - * the cursor, spring-load into it after a short hover (drill to a nested destination without - * dropping), and upload on drop — into the hovered folder, or the current folder for a background - * drop. The views wire the returned handler props onto folder targets and their container. - * - * Every drop reads its files through {`@link` readDroppedFiles}, which walks dropped directories into - * their contents; each file carries the path it should keep under the destination folder. - */ +/** Drag-and-drop hooks recursively read files and preserve their relative paths. */As per coding guidelines,
Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements.Source: Coding guidelines
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 3f9e4746-54c8-4cfd-bb90-6cedc8c0a14d
📒 Files selected for processing (2)
services/runner/images/sandbox/daytona/build_snapshot.pyweb/oss/src/components/Drives/useDriveDrop.ts
Summary
--retry 5 --retry-delay 2 --retry-all-errors) to thecurlcommand inservices/runner/images/sandbox/daytona/build_snapshot.pywhen downloading thegeesefsbinary.curlfetch to fail, breaking the entire Daytona snapshot rebuild.curlautomated retries with exponential backoff.Closes #5653
Testing
Verified locally
curlcommand withinservices/runner/images/sandbox/daytona/build_snapshot.py.curloptions directly against the target release URL in terminal to confirm non-breaking parameter execution.Added or updated tests
python -m py_compile services/runner/images/sandbox/daytona/build_snapshot.py.--retry 5 --retry-delay 2 --retry-all-errorsflags across POSIXcurlreleases.QA follow-up
N/A
Demo
N/A (Backend build script change - non-UI).
Terminal Execution Verification:
Checklist
Contributor Resources