Skip to content

browse: faster interactions, bounded watch memory, drop find-browse, add Aside provider#17

Merged
time-attack merged 3 commits into
codex/gstack-2from
time-attack/Gstack-vs-Playwright
Jul 22, 2026
Merged

browse: faster interactions, bounded watch memory, drop find-browse, add Aside provider#17
time-attack merged 3 commits into
codex/gstack-2from
time-attack/Gstack-vs-Playwright

Conversation

@time-attack

@time-attack time-attack commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Three targeted improvements to the local browse engine plus a new provider. Same Playwright core — no rewrite. Base is codex/gstack-2, so the diff is exactly these 25 files (a PR to main would pull in the whole GStack 2 candidate).

What changes

1. Faster interactions (perf). click/fill/select and end-of-chain waited up to 2000ms for networkidle, taxing every interaction on polling/analytics/websocket pages. Capped to a shared NETWORK_SETTLE_MS (500ms). Idle pages still resolve instantly; only never-idle pages were paying. Measured ~4× faster per action (2030ms → 508ms).

2. Bounded watch memory. watch retained every 5s snapshot (~125 MB/hr) even though only the last is ever displayed. Now keeps last + count, with a reentrancy guard so a slow snapshot can't stack overlapping runs. ~720× less retained.

3. Removed the dead find-browse binary. A ~61 MB compiled Bun binary (~122 MB uncompressed) with no runtime caller — the CLI resolves the browse binary by explicit path. Removed source/test/shim and unwired it from the build, runtime install manifest, install smoke check, two CI workflows, e2e helpers, and the architecture doc.

4. Aside browser provider (feat). Added the Aside AI browser to the GStack 2 provider contract (kind: dedicated-ai-browser) so browser QA can route to the user's real logged-in browser via the aside CLI. Regenerated the six BROWSER-PROVIDERS.md and updated the provider-contract test.

Testing

  • Full free suite (bun test): exit 0.
  • gstack2 suite: 218 pass / 0 fail (incl. the updated provider-contract test).
  • Browse binary compiles clean after the find-browse removal.
  • Benchmarks (real sites): per-action 2030→508ms (4×); watch 125 MB/hr → 0.2 MB (720×); ~61 MB removed from the distribution.

Not included

An unrelated Gemini benchmark-adapter fix is intentionally left out (stashed locally).

🤖 Generated with Claude Code


Summary by cubic

Make browse actions faster and cut watch-mode memory. Add the Aside browser provider and remove the unused find-browse binary.

  • New Features

    • Added the Aside browser provider to the GStack 2 contract; regenerated BROWSER-PROVIDERS.md and updated the provider-contract test.
  • Refactors

    • Capped implicit networkidle settle after click/fill/select and end-of-chain to 500ms; ~4× faster on never-idle pages.
    • Bounded watch-mode memory by keeping only the last snapshot plus a count, with a reentrancy guard; ~720× less retained.
    • Removed the dead browse/dist/find-browse binary and all wiring (build, runtime bundle, CI, tests, docs); ~61 MB trimmed from the distribution.

Written for commit d3ed301. Summary will update on new commits.

Review in cubic

Sinabina and others added 3 commits July 21, 2026 19:42
click/fill/select and end-of-chain waited up to 2000ms for networkidle,
taxing every interaction on polling/analytics pages. Capped to a shared
NETWORK_SETTLE_MS (500ms); idle pages still resolve instantly (~4x faster
per action on never-idle pages). watch mode retained every 5s snapshot
(~125 MB/hr) though only the last is ever shown; now keeps last + count,
with a reentrancy guard against overlapping snapshot runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
find-browse (a ~61 MB compiled Bun binary, ~122 MB uncompressed) had no
runtime caller; the CLI resolves the browse binary by explicit path. Removed
the source, its test, and the shim, and unwired it from the build, the
runtime install manifest, the install smoke check, two CI workflows, the
e2e test helpers, and the architecture doc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds the Aside AI browser to the GStack 2 browser-provider contract
(kind: dedicated-ai-browser), so browser QA can route to the user's real
logged-in browser via the aside CLI (structured snapshot, console logs via
page.console.logs(), and network via page.cdp). Regenerated the six
BROWSER-PROVIDERS.md and updated the provider-contract test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cursor

cursor Bot commented Jul 22, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@time-attack
time-attack merged commit 1e85622 into codex/gstack-2 Jul 22, 2026
1 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant