Repository navigation
fix: e2e downloads finish while a step is attached - #2332
Conversation
…ches up - the save-dialog stand-in sends the bytes as requests launch.js routes, not through an exposed binding: every client attached over CDP hears a binding call, and step.js answered it with "not exposed", so the app showed "File download failed" though every byte was saved - the guide: the sync split button on a new profile, how to turn on the semantics tree for labels(), journey 7 at rate 1.0 then 0.3, the duplicate-file dialog's buttons, and copying assets/config for a WSL copy Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019ZiqyGae4T1gJLGGB29pR9
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
|
Visit the preview URL for this PR (updated for commit e199588): https://ardrive-web--pr2332-e2e-save-route-5wt85gm3.web.app (expires Wed, 28 Oct 2026 01:44:31 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: a224ebaee2f0939e7665e7630e7d3d6cd7d0f8b0 |
This fixes a bug in my own #2328, found by the final 2.90.0 e2e run, and catches the guide up with that run.
The bug
#2328's stand-in for the save dialog passed the bytes to
launch.jsthroughctx.exposeBinding. Every Playwright client attached over CDP hears a binding call, and that includesstep.js. When a step was still connected as a download finished,step.jsanswered first withFunction "__e2eSave" is not exposed. The app then showed File download failed, even though every byte had been saved. My own check for #2328 compared the bytes but never looked at the screen, so I missed it.The fix
The page now
fetcheshttps://e2e-save.invalid/<name>?op=open|write|close, and actx.routeinlaunch.jsanswers it. Only the client that set up the route intercepts it, and the request never leaves the browser. Each body is a base64 string sent astext/plain, which keeps every request simple, so there is no CORS preflight.Guide
labels()returns nothing until Flutter's semantics tree is on. The guide now says how to turn it on, and to do that last.assets/configbesidetool/web_e2e, becauselaunch.jsreads the Turbo services from../../assets/config.Verified on staging (
a88146448), test wallet, tools run from a Linux copynet.loglogsdownload … 51200 bytes, andcmpwith the uploaded original says identical.#/drives. On the way, a public drive linked first was attached automatically, as designed. I detached it afterwards.0 AR spent, no uploads.
🤖 Generated with Claude Code
https://claude.ai/code/session_019ZiqyGae4T1gJLGGB29pR9
Summary by CodeRabbit
Documentation
Tests