Skip to content

Build hybrid browser worker loop and benchmark harness - #82

Open
rsproule wants to merge 33 commits into
codex/model-readable-personal-infofrom
codex/browser-worker-loop-optimization
Open

Build hybrid browser worker loop and benchmark harness#82
rsproule wants to merge 33 commits into
codex/model-readable-personal-infofrom
codex/browser-worker-loop-optimization

Conversation

@rsproule

@rsproule rsproule commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Stack

This PR is stacked on #86 and uses its structured personal profile and vault-backed benchmark fixtures.

Browser worker architecture

  • expose deterministic Playwright execution as the primary surface for inspection, extraction, and related safe interactions
  • add the Kernel Browser Loop semantic catalog for snapshot, text, find, wait, and relaxed browser_act fallback plans
  • retain visual computer control as the final fallback for coordinate or rendering-dependent interactions
  • preserve Kernel session ownership, secure vault autofill, and worker cleanup behavior
  • currently pin the worker to zai/glm-5.2 with low reasoning while model candidates are evaluated

Benchmark and observability

  • exercise eleven real transaction-boundary tasks, adding Yankees tickets, an Elsewhere concert, facial moisturizer shopping, a nonstop flight, and a weekend car rental to the original six
  • inject a structured synthetic profile plus a fake Visa 4242 vault card into isolated benchmark databases
  • run baseline and candidate variants concurrently against isolated Portless applications
  • add a standalone shadcn benchmark dashboard with run history, per-task status, time/cost deltas, compact stacked timing breakdowns, durable trace links, and direct Kernel live-browser video links
  • calculate time and cost comparisons only for paired tasks where both variants passed; mismatched outcomes show no delta and are excluded from averages
  • persist model, Playwright, semantic DOM, visual CUA, setup, waiting, web, vault, and other wall-time categories
  • make the gated LLM judge authoritative for task pass/fail; worker self-reported status is diagnostic only
  • tell the judge that personal and payment data are synthetic fixtures, with an Apple-only rule for address-correction suggestions that preserves the required final ZIP
  • persist judge score and rationale on the task trace page

Latest completed A/B

Run: terra-fast browser-act vs main 11-task suite

  • baseline: origin/main at 490f709, before Browser Loop and browser_act, using the main default Sol Fast worker
  • candidate: PR head plus the current Terra Fast model edit, isolated as a69ecd3 for the run
  • task success: 5/11 baseline to 6/11 candidate
  • recovered: Amtrak, Booking.com, and nonstop flight checkout
  • regressed: Peek next-month selection and Target moisturizer checkout
  • comparable set: 3 tasks passed by both variants
  • comparable median time: 112.1s to 329.3s, a 193.7% regression
  • comparable P95 time: 422.8s to 355.2s, a 16.0% reduction
  • comparable LLM cost: $2.0574 to $3.2756, a 59.2% regression
  • total LLM spend: $4.9694 to $8.8332
  • judge score: 0.45 to 0.55
  • model steps: 237 to 359; tool calls: 201 to 328
  • artifacts: .eve/browser-ab/2026-09-01T00-24-12.632Z

Main predates structured profile storage, so it received the synthetic card but could not receive the structured profile fixture. Two judge passes also look overly permissive: main Target stopped at sign-in, and candidate flight stopped at required passenger gender before review/payment. Treat the headline success counts as provisional until those boundary judgments are tightened or manually reviewed.

Validation

  • pnpm check — 48 files and 236 tests passed; lint, types, formatting, Knip, and boundaries passed
  • pnpm build
  • pnpm exec next build evals/browser/dashboard

knip.config.ts is unchanged from PR #86; dashboard discovery is owned through the package export and executable scripts.

@rsproule rsproule changed the title Adopt Browser Loop for semantic browser execution Build hybrid browser worker loop and benchmark harness Aug 31, 2026
@rsproule
rsproule changed the base branch from main to codex/model-readable-personal-info August 31, 2026 19:36
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