From 950d52d1478832c88aede4cde02f8ce0959be0bb Mon Sep 17 00:00:00 2001 From: timmy Date: Wed, 19 Aug 2026 06:24:52 +0000 Subject: [PATCH 1/2] perf: parallelize mobile workspace fetch (Closes #1116) --- src/frontend_bundle.py | 8 ++++- .../e2e/test_mobile_home_bootstrap_release.py | 29 +++++++++++++++++-- tests/test_frontend_bundle.py | 14 +++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/frontend_bundle.py b/src/frontend_bundle.py index 8b448cb..e8db10f 100644 --- a/src/frontend_bundle.py +++ b/src/frontend_bundle.py @@ -114,7 +114,13 @@ def build_frontend(frontend_dir: Path) -> FrontendBuild: f'' for name, bundle in feature_bundles.items() ) - dashboard_html = dashboard_html.replace("", feature_metadata + "\n") + workspace_preload = ( + f'' + ) + dashboard_html = dashboard_html.replace( + "", feature_metadata + "\n" + workspace_preload + "\n" + ) dashboard_html = dashboard_html.replace( "", f'\n', diff --git a/tests/e2e/test_mobile_home_bootstrap_release.py b/tests/e2e/test_mobile_home_bootstrap_release.py index 1d50550..176d8af 100644 --- a/tests/e2e/test_mobile_home_bootstrap_release.py +++ b/tests/e2e/test_mobile_home_bootstrap_release.py @@ -29,6 +29,7 @@ def test_release_artifact_bootstraps_mobile_home_and_returns_from_insights( browser_errors: list[str] = [] failed_responses: list[str] = [] workspace_requests: list[str] = [] + launch_transfer_events: list[str] = [] live_requests: list[str] = [] try: @@ -38,6 +39,18 @@ def test_release_artifact_bootstraps_mobile_home_and_returns_from_insights( viewport={"width": width, "height": height}, ignore_https_errors=True ) page = context.new_page() + cdp = context.new_cdp_session(page) + cdp.send("Network.enable") + cdp.send( + "Network.emulateNetworkConditions", + { + "offline": False, + "latency": 100, + "downloadThroughput": 48 * 1024, + "uploadThroughput": 48 * 1024, + "connectionType": "cellular3g", + }, + ) page.on("pageerror", lambda error: browser_errors.append(error.stack or str(error))) page.on( "console", @@ -53,9 +66,16 @@ def test_release_artifact_bootstraps_mobile_home_and_returns_from_insights( ) page.on( "request", - lambda request: workspace_requests.append(request.url) - if "feature-today-timer-" in request.url - else None, + lambda request: ( + workspace_requests.append(request.url), + launch_transfer_events.append("workspace-requested"), + ) + if "feature-today-timer-" in request.url else None, + ) + page.on( + "requestfinished", + lambda request: launch_transfer_events.append("core-finished") + if "/runtime-" in request.url else None, ) page.on( "request", @@ -69,6 +89,9 @@ def test_release_artifact_bootstraps_mobile_home_and_returns_from_insights( page.locator('input[name="access_token"]').fill(ACCESS_TOKEN) page.locator("#submit-sign-in").click() page.wait_for_url(origin + "/", wait_until="networkidle") + assert launch_transfer_events.index("workspace-requested") < ( + launch_transfer_events.index("core-finished") + ), launch_transfer_events expect(page.locator("#my-work-status")).to_contain_text("2") initial_live_requests = len(live_requests) diff --git a/tests/test_frontend_bundle.py b/tests/test_frontend_bundle.py index 0806a0e..273d33b 100644 --- a/tests/test_frontend_bundle.py +++ b/tests/test_frontend_bundle.py @@ -15,6 +15,7 @@ from src.views import dashboard, feature_bundle, runtime_bundle, service_worker FRONTEND = Path(__file__).resolve().parents[1] / "frontend" PAGE_SCRIPT = re.compile(r'') +SCRIPT_PRELOAD = re.compile(r'') def test_page_runtime_is_one_deterministic_content_addressed_bundle(tmp_path): @@ -119,6 +120,19 @@ def test_product_workflows_are_stable_lazy_feature_chunks(tmp_path): assert security_changed.feature_bundles["security-center"].runtime_name != security_center.runtime_name +def test_mandatory_workspace_fetch_is_preloaded_without_blocking_launch(): + build = build_frontend(FRONTEND) + workspace = build.feature_bundles["today-timer"] + + assert SCRIPT_PRELOAD.findall(build.dashboard_html) == [workspace.runtime_name] + assert build.dashboard_html.count(f'') == 0 + assert len(build.runtime_gzip_bytes) <= 100 * 1024 + assert len(workspace.runtime_gzip_bytes) <= 110 * 1024 + + shell_block = build.service_worker_source.split("const OPTIONAL_FEATURES = [", 1)[0] + assert f"BASE + '{workspace.runtime_name}'" not in shell_block + + def test_shipped_browser_bundles_are_valid_javascript(tmp_path): build = build_frontend(FRONTEND) bundles = {"core.js": build.runtime_bytes} -- 2.43.0 From b70a2fb6077a9dead45b5df72dc21f40c4712638 Mon Sep 17 00:00:00 2001 From: timmy Date: Wed, 19 Aug 2026 06:46:05 +0000 Subject: [PATCH 2/2] test: accept queued or delivered blocker receipt --- tests/e2e/test_mobile_today_handoff_release.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/e2e/test_mobile_today_handoff_release.py b/tests/e2e/test_mobile_today_handoff_release.py index 6f49c07..57fb950 100644 --- a/tests/e2e/test_mobile_today_handoff_release.py +++ b/tests/e2e/test_mobile_today_handoff_release.py @@ -574,10 +574,18 @@ def test_release_artifact_recovers_admitted_blocker_after_reload_and_opens_next_ })""") assert state["today"] == ["issue:acme/mobile:42:"] assert state["later"]["issue:acme/mobile:41:"].startswith("2099-08-19T09:00") - comments = [item for item in state["outbox"]["items"] if item["kind"] == "issue-comment"] - assert len(comments) == 1 - assert comments[0]["number"] == 41 - assert comments[0]["body"] == "Blocked waiting for the design owner" + queued_comments = [ + item for item in state["outbox"]["items"] if item["kind"] == "issue-comment" + ] + delivered_comments = [ + {"number": number, "body": body} + for number, body in fake.comments + if number == 41 and body == "Blocked waiting for the design owner" + ] + assert len(queued_comments) + len(delivered_comments) == 1 + receipt = (queued_comments + delivered_comments)[0] + assert receipt["number"] == 41 + assert receipt["body"] == "Blocked waiting for the design owner" assert page.evaluate("document.documentElement.scrollWidth <= window.innerWidth") assert browser_errors == [] browser.close() -- 2.43.0