Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: web-infra-dev/midscene
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.18.0
Choose a base ref
...
head repository: web-infra-dev/midscene
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.19.0
Choose a head ref
  • 9 commits
  • 169 files changed
  • 5 contributors

Commits on Jun 9, 2025

  1. Configuration menu
    Copy the full SHA
    7ced918 View commit details
    Browse the repository at this point in the history
  2. docs: add previous changelog (#816)

    * docs(site): add previous changelog
    
    * docs(site): add recently changelog
    
    * docs(site): summary for previous changlog
    quanru authored Jun 9, 2025
    Configuration menu
    Copy the full SHA
    aeab83c View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2025

  1. fix(cli): deal with locate item in yaml (#820)

    * fix(cli): deal with locate item in yaml
    
    * fix(cli): uitars will not build yaml
    quanru authored Jun 10, 2025
    Configuration menu
    Copy the full SHA
    e5e2057 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2025

  1. feat(recorder): add record ability to chrome extension (#769)

    * 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 <[email protected]>
    
    * 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 <[email protected]>
    
    * chore(workflow): add CLAUDE.md with project documentation and development guide
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * 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 <[email protected]>
    
    * 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 <[email protected]>
    zhoushaw and claude authored Jun 11, 2025
    Configuration menu
    Copy the full SHA
    c9f9a48 View commit details
    Browse the repository at this point in the history
  2. feat(web-integration): support unstableLogContent api for agent (#826)

    * feat(web-integration): support unstableLogContent api for agent
    
    * fix(web-integration): use sync mehtod
    
    * docs(core): update API doc
    
    * fix(web-integration): playwright
    
    * docs(site): update
    
    ---------
    
    Co-authored-by: yutao <[email protected]>
    quanru and yuyutaotao authored Jun 11, 2025
    Configuration menu
    Copy the full SHA
    3510a8c View commit details
    Browse the repository at this point in the history
  3. feat(mcp, shared, visualizer): add license (#818)

    * feat(mcp, shared, visualizer): add license
    
    * docs(core): update playwright reporter doc
    
    ---------
    
    Co-authored-by: yutao <[email protected]>
    quanru and yuyutaotao authored Jun 11, 2025
    Configuration menu
    Copy the full SHA
    a84100e View commit details
    Browse the repository at this point in the history
  4. feat(cli): support dotenv-override argv for cli (#819)

    * 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 <[email protected]>
    quanru and yuyutaotao authored Jun 11, 2025
    Configuration menu
    Copy the full SHA
    199ab17 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2025

  1. fix(shared): reduce null element node (#827)

    * fix(shared): reduce null element node
    
    * feat(web-integration): delete content and locator, support visible-only for domIncluded
    
    * feat(web-integration): remove logScreenshot documentation and update tests to use treeToList for content extraction
    
    * feat(web-integration): add trimContextByViewport function to filter execution tasks by visible elements
    
    * release: v0.18.1
    
    * fix(workflow): update default release version to 'prepatch'
    
    * fix(web-integration): node detect empty
    
    * release: v0.18.2
    
    * fix(evaluation): restore generateExtractData
    
    * fix(web-integration): reporter export
    
    ---------
    
    Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
    quanru and github-actions[bot] authored Jun 13, 2025
    Configuration menu
    Copy the full SHA
    32f503f View commit details
    Browse the repository at this point in the history
  2. release: v0.19.0

    github-actions[bot] committed Jun 13, 2025
    Configuration menu
    Copy the full SHA
    95e24f9 View commit details
    Browse the repository at this point in the history
Loading