219 Commits
Author SHA1 Message Date
ciregenz 3235324122 [eric] agents: a user's Stop or Close is final; no watchdog resend, disk reload, read, or late-booting child revives the card 2026-08-20 19:39:33 -07:00
ciregenzandClaude Opus 5 6edce86d68 [eric] browser: children survive turn 1 on every lane, never report "done" for nothing, tables render first try
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 18:16:51 -07:00
ciregenz 10bca6ba17 Revert "[eric] browser: a card the renderer parked is slow, not dead; parallel agents no longer ghost"
This reverts commit 6ed6206c7b.
2026-08-20 16:13:50 -07:00
ciregenzandClaude Opus 5 6ed6206c7b [eric] browser: a card the renderer parked is slow, not dead; parallel agents no longer ghost
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 15:50:55 -07:00
ciregenz 8ae3f94d20 [eric] browser: fast path refuses multi-page sweeps (3+ URLs deterministic + classifier rule); a grabbed sweep answered INSUFFICIENT from one read (ENG-355) 2026-08-19 08:00:40 -07:00
ciregenz 123f71b8cb [eric] browser: RequestUserSignIn is a first-class tool; auth walls hand off to the user in place instead of killing the run (ENG-351) 2026-08-18 19:06:38 -07:00
ciregenz d45e2b3731 [eric] browser: a failed navigation now fails loudly; a reused card that cannot move is replaced instead of answering from the old page 2026-08-17 15:48:49 -07:00
ciregenz 8185e3b52a [eric] browser: a hard login wall with nothing to borrow hands off to the user at the card and resumes itself when the wall clears (ENG-279) 2026-08-17 08:25:18 -07:00
ciregenz 2d0fc643f1 [eric] browser: refusal and ghost runs clear the card's cached transcript instead of poisoning every later dispatch; CreateBrowserAgent gains fresh=true (Haik's report) 2026-08-16 18:22:34 -07:00
ciregenz 11784a9083 [eric] settings: the UPLOAD_DIR rename left the browser upload tool importing a deleted name; upload_dir()/legacy roots wired everywhere (ENG-312) 2026-08-16 01:53:48 -07:00
ciregenz 60da51f3c9 [eric] browser: a run reports its call counts beside the prose, so a caller can check instead of trust (ENG-297) 2026-08-13 11:34:50 -07:00
ciregenz 223e1f547a [eric] browser: a summary built from faked tool-call markup fails instead of reaching the user (ENG-297) 2026-08-13 11:28:24 -07:00
ciregenz b161f19efe [eric] browser: reading cannot complete a task that asked for a change (ENG-297) 2026-08-13 11:19:50 -07:00
ciregenz e4d94f2094 Revert "[eric] browser: the agent knows passkey sign-in cannot work here and routes to the password path instead of retrying into Google's generic error (ENG-269)"
This reverts commit 6e84f27d7c.
2026-08-12 09:00:04 -07:00
ciregenz 6e84f27d7c [eric] browser: the agent knows passkey sign-in cannot work here and routes to the password path instead of retrying into Google's generic error (ENG-269) 2026-08-12 08:41:32 -07:00
ciregenz 3ac55520d6 [eric] browser: the upload tool also finds inputs inside shadow roots and embedded frames, and a refused path names the exact staging copy that unblocks it (ENG-47) 2026-08-11 20:22:10 -07:00
ciregenz ba97d141ee [eric] browser: agents can attach a file to an upload field without the OS picker; the path is allow-listed backend-side so a hostile page cannot turn it into exfiltration (ENG-47) 2026-08-11 20:10:36 -07:00
ciregenz edd72376f6 [eric] browser: the routing classifier treats the browser as last resort; native integrations beat it, search beats a page visit, reading beats acting 2026-08-10 08:47:13 -07:00
ciregenz 366f74f688 [eric] browser: the first-message fast path learns which integrations are natively connected, so a Slack ask stops opening a browser when Slack tools exist 2026-08-10 08:18:59 -07:00
ciregenz 91058c0663 [eric] browser: a dashboard-less session that asks for a browser gets a one-line error instead of a hung tool call and an empty errored sub-session 2026-08-09 20:24:03 -07:00
ciregenz f25fe95c37 [eric] browser: RequestHumanIntervention is never auto-injected, the toggle really removes it, and workflow runs never see it 2026-08-08 00:37:38 -07:00
ciregenz ab89896443 [eric] browser: reach an opener whose label is a sentence, without reaching an upsell 2026-08-02 17:55:23 -07:00
ciregenz 8a6be84a4c [eric] browser: a send task is not staged until there is somewhere to write 2026-08-02 17:48:00 -07:00
ciregenz d67df490f8 [eric] browser: a header sign-in widget no longer walls off the composer beside it 2026-08-02 16:23:46 -07:00
ciregenz fb3ec15105 [eric] merge: bring eric/dev onto the browser v3 branch (7 conflicts resolved, gates green) 2026-08-02 16:14:53 -07:00
ciregenz 1508e03c5f [eric] browser: half an emoji in page text no longer kills the whole prestage 2026-08-02 15:30:17 -07:00
ciregenz 2489cc3971 [eric] browser: persist the wall/llm/tools/ours latency split, so a speed claim has evidence 2026-08-01 00:35:11 -07:00
ciregenz 5799b3b62a [eric] browser: log the page a send filled on; correct the inflated composer-reach claim 2026-08-01 00:32:51 -07:00
ciregenz 39dbbd0a39 [eric] browser: a post or comment task can never land in a DM box, at composer or opener 2026-07-31 22:50:17 -07:00
ciregenz c826d2b614 [eric] browser: a slow command reports whether the wait was before its handler or inside it 2026-07-31 18:43:20 -07:00
ciregenz 7761d716b1 [eric] browser: a read-only directive can never be a publish task, so probes stop reporting failure 2026-07-31 17:16:50 -07:00
ciregenz ec4a044b0b [eric] browser: strip the click-by-index element rows from anything a human reads 2026-07-31 15:58:49 -07:00
ciregenz a9da551425 [eric] browser: show a failed step as failed in the live overlay, with per-step timestamps 2026-07-31 14:33:16 -07:00
ciregenz dcaf655b14 [eric] browser: measure browser time where the commands actually run, not from 18 self-reports 2026-07-31 14:00:19 -07:00
ciregenz c9c25542b9 [eric] browser: never click a disabled submit, and turn the structural composer finder on 2026-07-31 13:03:59 -07:00
ciregenz 2c63367ae0 [eric] browser: a signed-in page is not a login wall just because it says sign in 2026-07-31 13:03:58 -07:00
ciregenz 0cf7d111c2 [eric] browser: rank a submit control instead of exact-matching a closed label set 2026-07-31 13:03:58 -07:00
ciregenz 5d8bf4102e [eric] browser: only a verified delivery teaches a write skill, not a resend guard 2026-07-31 02:44:34 -07:00
ciregenz a1c6c710eb [eric] browser: reddit clears its composer without posting, so treat it as a ghost-drop host 2026-07-31 02:37:07 -07:00
ciregenz b4074c3665 [eric] browser: never report a post as sent when no send was ever confirmed 2026-07-31 02:23:36 -07:00
ciregenz 013bf663ef [eric] browser: a post that never confirmed is not a skill worth learning 2026-07-31 01:27:55 -07:00
ciregenz 17ab446945 [eric] browser: read script looks cheap first and only a decline buys the whole page 2026-07-31 00:51:54 -07:00
ciregenz 4f4d5e8d55 [eric] browser: the read script asks for the whole page, not the model loop's smaller default 2026-07-31 00:02:57 -07:00
ciregenz e989517c6c [eric] lint: de-private the wall budget, trim error_classify under cap, drop stray ws_manager 2026-07-30 20:58:16 -07:00
ciregenz f6ad6cfb91 [eric] browser: a run out of wall time delivers what it has instead of nothing 2026-07-30 20:50:37 -07:00
ciregenz f1f8464f1a [eric] browser: reap idle agent cards so finished runs stop stacking live webviews 2026-07-30 19:47:20 -07:00
ciregenz ece00223ae [eric] browser: read answers lead with the answer, not with 'based on the page text provided' 2026-07-30 17:48:47 -07:00
ciregenz 78843dba2f [eric] browser: a prose decline from the read script is a decline, not an answer 2026-07-30 17:31:16 -07:00
ciregenz 3d5c287139 [eric] merge: bring eric/browser onto eric/dev (30 conflicts resolved, gates green) 2026-07-30 13:18:11 -07:00
ciregenz 0d9e80d502 [eric] browser: capacity-retry the model call + classify the catch-all (free-pool 429 raw-card leak sealed) 2026-07-28 15:49:59 -07:00