Eliminates the guideline about scrolling with num_pages parameter
from the browser usage prompts to simplify navigation instructions.
Refactors parameter handling in registry action validation by removing
unnecessary parameter cleaning, streamlining the process.
Replaces static page statistics with dynamic calculations for
viewport and scroll position metrics. Simplifies code logic in
scroll handling by removing unnecessary defaults for page
scrolling. Improves readability and reliability of page
scroll operations by requiring explicit num_pages parameter.
Enhances page-view consistency and user interaction handling.
Eliminates an unnecessary return check for action_result
after evaluating the window height, simplifying the code
and ensuring the correct flow of the scroll retry logic.
Replaces pixel-based scrolling with page unit determination, allowing for more intuitive scroll actions by specifying the number of pages. Adjusts related documentation, examples, and tests to reflect this change for improved code consistency and user experience.
Removes special parameters from params to avoid
double keyword argument conflicts by utilizing
a separate special_context mechanism. This ensures
only essential parameters are validated in the Pydantic
action model, enhancing robustness and readability.
Removes unnecessary Field description in ScrollAction to streamline code.
Implements additional test cases for varying scroll amounts, improving test coverage and validation of scrolling behavior in the integration tests.
Introduces ability to scroll by a specific number of pixels
via a new 'amount' parameter, defaulting to one page height
if unspecified. Updates relevant documentation and examples
to reflect these changes, enhancing navigation precision.
Improves user experience by allowing finer control over page
scrolling actions.
Relates to user feedback on scroll improvements.
- Wrapped the action execution call in a try-except block to catch exceptions and return an ActionResult with the error message.
- Ensured that Laminar's output is set only if it is not None, improving the robustness of the function.
- Added `@observe` decorators to various methods in `service.py`, `session.py`, and `controller.py` to improve tracking of actions and state changes.
- Updated method signatures to include observability features for better debugging and monitoring.
- Adjusted retry logic for certain actions to enhance reliability and performance.
- Added new file types: JsonFile and CsvFile to the file system.
- Updated read_file method to handle external files with .json and .csv extensions.
- Modified write_file action to allow .json and .csv file extensions in addition to .md and .txt.
- Introduced pypdf dependency for PDF file handling.
This update improves the flexibility of file operations within the application.
- Updated retry logic to handle page errors more effectively by capturing the current page context before retrying the action.
- Improved error messaging to provide clearer feedback when actions fail due to page navigation or closure.
- Updated timeouts for action execution, step processing, and screenshot operations to more aggressive values (e.g., reduced from 60s to 20s for actions, 30s to 10s for DOM processing).
- Adjusted retry logic and timeout settings for screenshot and iframe content extraction to enhance performance and reduce potential hangs.
- Improved logging for timeout events to provide clearer feedback on operation failures.
- Added timeout handling for page content extraction with a 30-second limit, returning an error message on timeout.
- Introduced timeout protection for iframe content extraction with a 10-second limit, logging a warning on timeout.
- Implemented a 60-second timeout for LLM calls, logging a warning if the call exceeds this duration.
- Enhanced error handling to provide clearer feedback on extraction failures.
- Commented out retry logic for page errors to simplify error handling.
- Maintained the raise of the original exception for clarity in error reporting.
- Simplified the return statement for site unavailable errors by removing redundant parameters while maintaining functionality.
- Improved code readability and consistency in error handling.
- Reintroduced action retry mechanism to handle transient errors during action execution.
- Added logging for failures and implemented a retry attempt with context preservation for better resilience.
- Updated GoToUrlAction to include a new_tab parameter for opening URLs in a new tab or navigating in the current tab.
- Removed the OpenTabAction as its functionality is now integrated into GoToUrlAction.
- Enhanced scroll action to allow scrolling up or down based on a boolean parameter.
- Cleaned up commented-out code related to accessibility tree retrieval for better readability.