An unconditional re-raise sent BrowserErrors without long_term_memory (e.g.
upload_file's failure paths) into Tools.act's handle_browser_error, which
re-raises exactly those — escaping act() as an exception where callers
previously got a recoverable ActionResult(error=...).
Guard the bypass on long_term_memory being present (the exact condition
handle_browser_error formats without re-raising; short_term_memory alone
would still re-raise), and flatten plain BrowserErrors to RuntimeError as
before. Regression test covers the plain-BrowserError path through
tools.act.
Registry.execute_action's catch-all handler flattened BrowserError into a
generic 'Error executing action ...' RuntimeError, destroying the structured
short_term_memory/long_term_memory the error carries to steer the LLM's next
action (e.g. the list of available dropdown options when clicking a select).
The 'except BrowserError' branch in Tools.act that formats those memories
into an ActionResult was dead code for any action that let a BrowserError
propagate (upload_file, dropdown_options via event_result, extraction
handlers).
Re-raise BrowserError before the generic handlers so handle_browser_error
becomes the single formatting point again.
- Eliminated the caching of target types in SessionManager, simplifying the management of target information.
- Updated various components to directly access target types from the Target objects, enhancing clarity and reducing redundancy.
- Adjusted related methods in BrowserSession, CrashWatchdog, and DomService to reflect the changes in target type retrieval.
- Changed the placeholder check from '2fa_code' to 'bu_2fa_code' to align with recent updates in sensitive data terminology.
- This modification enhances consistency in the handling of 2FA secrets across the codebase.
- Changed the key in sensitive_data from 'otp_secret' to '2fa_code' for consistency across files.
- Updated instructions in the 2FA example to reflect the new key and improve clarity on user input.
These changes enhance the clarity and maintainability of the 2FA implementation.
- Improved handling of sensitive data replacement by ensuring that the correct replacement value is assigned based on the placeholder type.
- Added comments for clarity on the logic used for generating TOTP codes for 2FA secrets.
This change enhances the maintainability and readability of the code.