* feat(web-integration): support user expected xpath option for locate methods
* docs(site): xpath option for api
* fix(ci): nx config
* docs(site): update docs
* feat(cli): support dotenv-override argv for cli
* feat(cli): support dotenv-debug argv for cli
* docs(core): update doc of dotenv
---------
Co-authored-by: yutao <yutao.tao@bytedance.com>
* chore: add record example
* chore: delete unless file
* chore: optimize common logic
* chore: optimize record logic
* chore: support horizontal scroll
* chore: optimize label input logic
* chore: delete unless file
* chore: modify record log content
* chore: add record lib
* chore: optimize record iife logic
* chore: delete unless config
* chore: modify comment
* feat(chrome-extension): add recording functionality
- Add new record UI components (record.tsx, record.less)
- Integrate recording capabilities into popup extension
- Update worker script to handle recording events
- Add content script wrapper for recording injection
- Remove EventRecorder from record-form app (moved to extension)
- Update manifest.json permissions for recording
- Update dependencies for recording functionality
- Enhance store with recording state management
* feat(chrome-extension): improve recording stability with page refresh handling
- Add tab update monitoring to automatically stop recording on page refresh/navigation
- Implement content script injection check with ping mechanism
- Enhance error handling with specific messages for Chrome internal pages
- Improve recording stop reliability when content script becomes unavailable
- Add graceful handling for missing content script during stop operation
* fix(core): align dependency versions across workspace
- Update React to ^19.1.0 and React DOM to >=19.1.0 in all packages
- Update @types/react to ^19.1.4 and @types/react-dom to ^19.1.3
- Update TypeScript to ^5.8.3 across all packages
- Update dayjs to use caret version ^1.11.11
- Align all rsbuild and rslib plugin versions
- Fix dependency version inconsistencies to pass CI checks
* refactor(chrome-extension): rename content-script-wrapper to event-recorder-bridge
- Renamed content-script-wrapper.js to event-recorder-bridge.js
- Updated references in rsbuild.config.ts and record.tsx
- Updated internal comments to match new name
- New name better describes the file's bridge functionality
* feat(chrome-extension): enhance recording session management and UI
- Introduced RecordingSession interface for better session handling
- Implemented session persistence with localStorage for recording sessions
- Added UI components for creating, editing, and deleting recording sessions
- Enhanced event handling to load and display events from selected sessions
- Improved user feedback with success messages for session actions
- Updated styles for session management and recording status indicators
* feat(chrome-extension): enhance recording UI and session management
- Simplified the Record component structure by separating list and detail views for better user experience.
- Improved styling for the recording sessions list and detail views, ensuring better responsiveness and usability.
- Added functionality to switch between list and detail views for recording sessions.
- Updated session management to allow for viewing, editing, and deleting sessions with improved user feedback.
- Enhanced event handling and display for recorded events within the detail view.
* feat(record): add screenshot capture for recorded events
- Add screenshot capture before and after each recorded event
- Implement screenshot capture in chrome extension service worker
- Add screenshot fields to RecordedEvent interface
- Create UI components for displaying screenshot thumbnails in timeline
- Add hover effects and popover for screenshot preview
- Remove unused AGENTS.md file
* feat(chrome-extension): align React and TypeScript versions across the project
- Downgrade React and React DOM to 18.3.1 in all packages for consistency
- Update @types/react and @types/react-dom to 18.3.1
- Ensure TypeScript version is consistently set to ^5.8.3
- Adjust dependencies in package.json files for various apps and packages
- Enhance Chrome extension functionality with safe API wrappers for better error handling
- Implement checks for Chrome extension environment in recording components
* feat(chrome-extension): enhance event recording with new features and dependencies
- Add @rsbuild/plugin-node-polyfill to support Node.js polyfills in the project
- Update event recording logic to include viewport dimensions and element positioning
- Improve screenshot handling by integrating new properties in RecordedEvent interface
- Enhance RecordTimeline component to display element positioning and dimensions
- Optimize event handling and UI updates for better user experience
- Clean up and refactor code for improved readability and maintainability
* feat(record): enhance event data with coordinates in event recorder
- Add x and y coordinates to the event data sent to the Chrome extension
- Update RecordTimeline component to utilize new coordinate properties for element positioning
- Ensure compatibility with existing event handling logic
* chore: optimize select box logic
* chore: delete unless config
* feat(record): optimize AI description generation to be asynchronous and non-blocking
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(record): implement smooth scroll with enhanced animations and performance
- Add requestAnimationFrame-based smooth scrolling for better performance
- Implement container-level auto-scroll to bottom when new events arrive
- Extract event optimization logic to separate eventOptimizer utility module
- Add smooth scroll CSS properties and touch optimization for mobile
- Enhance hover animations with cubic-bezier easing and GPU acceleration
- Add slideInUp and fadeInScale keyframe animations for timeline items
- Improve scrollbar styling with transition effects
- Optimize will-change properties for better rendering performance
- Add overscroll-behavior to prevent scroll propagation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore(workflow): add CLAUDE.md with project documentation and development guide
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(record): optimize session creation to auto-start recording with timestamp name
* feat(record): optimize session creation to use timestamp naming by default
- Modified session creation to auto-create with timestamp name without showing modal
- Improved record UI to display session titles more effectively
- Reorganized description display in both list and detail views
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(record): improve session management and code quality
- Optimize session creation to use timestamp naming by default without requiring modal input
- Improve UI layout to display titles and descriptions more effectively in both list and
detail views
- Apply code formatting improvements across the codebase for better readability
- Fix linting issues in scripts and component files
* feat(record): implement caching for element descriptions and screenshots to enhance performance
* feat(record): refactor stopRecording logic and add visibility change handling for extension popup
* feat(record): auto-stop recording when leaving detail view
* feat(record): improve recording state management and handle asynchronous stop actions
* chore: upgrade lock file
* feat(record): add persistence for recording state in local storage
* feat(record): add modular structure with components and hooks for improved organization
* feat(record): implement AI-generated titles and descriptions for recording sessions
* feat(record): enhance recording session management with improved layout and AI title generation
* feat(record): enhance recording control hook with session update callback
* fix: update coding standards and improve code formatting across multiple files
* feat(record): add Playwright test generation feature and export controls
* feat(record): enhance AI description generation with caching and callback handling
* feat(record): replace RecordedEvent with ChromeRecordedEvent for improved event handling
* feat(record): improve debug logging and event handling in recording sessions
* feat(record): enhance event optimization and logging, add diagnosis feature for recording chain
* feat(record): update RecordDetail and RecordList components, improve diagnostic function and type imports
* feat(record): enhance tab monitoring with event listeners for activation and updates
* feat(record): sort sessions by updated time in RecordList component
* feat(record): implement session ID handling and cleanup for previous recordings
* feat(eventOptimizer): improve element rectangle handling and callback updates in description generation
* feat(record): enhance AI title and description generation logic, improve event handling and logging
* feat(record): implement debounce mechanism for AI description generation and enhance event rectangle validation
* feat(record): enhance AI description generation with improved caching and debouncing logic, and add session ID dependency in cleanup
* feat(record): update AI title and description generation logic to prevent overwriting existing session names and descriptions, and improve event handling in scroll events
* refactor(record): clean up code formatting and improve logging consistency across components
* docs(record): update CLAUDE.md with detailed implementation and optimization strategies for the recording system
* feat(record): enhance event details display with JSON copy functionality and improved cache key generation
* chore(commitlint): increase maximum header length to 300 characters
* chore(commitlint): disable scope-enum rule enforcement
* feat(record): implement unified logging system and replace console logs with structured logger
* feat(record): add hash ID generation for recorded events and clean up elementRect handling
* feat(record): add before and after screenshot functionality to event timeline
* feat(record): remove event-recorder-bridge script and update build configuration
* feat(record): update screenshot handling in RecordTimeline component to display before and after images
* refactor(record): clean up code formatting and remove unnecessary lines
* feat(build): enhance build configuration with caching and input/output settings
* feat(record): pause active recording sessions when creating a new session
* feat(record): enhance Playwright export controls with live event handling and improved description checks
* refactor(record): streamline configuration and improve logging clarity
* feat(record): update YAML generation to follow Midscene.js conventions with enhanced action mapping and descriptive naming
* feat(record): simplify YAML generation for Midscene.js with clearer structure and updated action mapping
* feat(record): enhance YAML export functionality with improved event handling and loading state
* feat(record): add Playwright and YAML test generation utilities with shared types and export controls
* feat(record): replace PlaywrightExportControls with a unified ExportControls component
* feat(record): integrate Playwright test generation from core package and update language handling in UI components
* feat(record): add @midscene/record dependency and integrate YAML test generation from core package
* feat(record): enhance event handling by saving current recording events during session updates and cleanup
* feat(record): enhance event recording by adding final navigation event and improving error handling in event recorder bridge
* feat(record): improve event handling by conditionally clearing events during recording start
* feat(record): optimize event handling by implementing debouncing and refining fallback descriptions
* feat(record): enhance test generation by extracting navigation and viewport info for improved options
* feat(record): implement event persistence with local storage for recording sessions
* chore: clean up code formatting and improve readability across multiple files
* feat(record): add dropdown menu for code generation and streamline state management
* feat(record): remove YAML export functionality from ExportControls and related components
* feat(record): add ProgressModal component for enhanced recording feedback
* feat(record): enhance ExportControls and ProgressModal with improved UI and confetti animation
* feat(record): simplify ExportControls and RecordDetail components by removing unused functionality and improving session details display
* feat(record): improve error handling and logging in content script checks and enhance tab URL validation
* feat(record): add generatedCode field to RecordingSession and improve error handling in content script checks
* feat(record): add canvas-confetti for celebratory effects in ProgressModal and update dependencies
* feat(record): refactor RecordDetail to use sessionId and improve session retrieval with error handling
* feat(progress-modal): adjust confetti display duration and update completion timing in ProgressModal
* chore: upgrade lock file
* refactor(snapshot): simplify element description rules for clarity and brevity
* feat(record): initialize optimizedEvents state as empty array and refactor logging methods for improved clarity
* refactor(export-controls): streamline event description generation and update progress step order for clarity
* feat(progress-modal): add ShinyText component for enhanced step title display during loading
* refactor(export-controls): consolidate test generation logic into a common function for improved maintainability
* refactor(export-controls, eventOptimizer): improve code readability and consistency by formatting and simplifying logic
* chore: delete unless config
* chore: add ignore file
* chore: add ignore file
* refactor: migrate from 'record' to 'recorder' package and consolidate related files
* refactor: remove playwright example file and integrate example code into prompts and YAML generation
* chore: hidden recorder
* chore: delete unless file
* chore: delete unless file
* refactor: migrate from 'record-form' to 'recorder-form' and update related configurations
* refactor: remove shiny-text component and update imports in related files
* refactor: enhance ProgressModal styling for better alignment and readability
* refactor: update finalEvents assignment in ExportControls for session title generation
* refactor: comment out recorder section in PlaygroundPopup for future review
* chore(ci): fix lint error
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat(web-integration): support logScreenshot api for agent
* docs(core): update api description
* docs(site): fix error
* feat(web-integration): title is also optional
* docs(site): fix
---------
Co-authored-by: yutao <yutao.tao@bytedance.com>
* fix(android): modify automatically closing the keyboard after typed text (#793)
* fix(android): modify automatically closing the keyboard after typed text
* fix(android): rename to autoDismissKeyboard
* feat(android): support autoDismissKeyboard option for aiInput
* docs(core): update doc
* refactor(android): agent no need support autoDismissKeyboard parameter
* refactor(android): build parameter in build plan
* chore(core): update android docs
---------
Co-authored-by: welkang <welkang@qq.com>
Co-authored-by: yutao <yutao.tao@bytedance.com>
* feat(android): support custom host and port of adb
* feat(android): add options for custom ADB path, host, and port in AndroidDevice constructor
* docs(android): custom remote host and port for adb
* fix(core): fix planning test
* fix(report): report insight view
* chore(core): rename workflow
* fix(core): report replay scripts
* fix(core): test case
* docs(core): update api doc for ui-tars
* chore(core): fix test case
* feat(web-integration): support full xpath for cache
* refactor(web-integration): simplify getElementXPath to improve clarity and performance
* feat(web-integration): add support for 'A' node type and related extraction logic
* feat(web-integration): merge children rects of button
* feat(web-integration): enhance caching documentation and tests
* test(web-integration): update snapshot
* docs(core): update caching
---------
Co-authored-by: yutao <yutao.tao@bytedance.com>