All notable changes to Terminator will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- MCP: Add
kill_by_execution_idto terminate child processes by execution ID - MCP: Kill child processes when cancelling requests in
stop_execution
- MCP: Make peer notifications non-blocking to prevent 503 busy errors
- MCP: Skip empty log lines to avoid spam during shutdown
- Build: Ignore Claude Code temp files in git
- MCP: Broadcast progress notifications to all connected MCP clients (not just the initiating one)
- MCP: Auto-cleanup dead peers on send failure
- MCP: Forward workflow Progress, Status, and Log events as MCP notifications
- MCP: Use Windows Job Objects with KILL_ON_JOB_CLOSE to auto-terminate child processes when agent exits
- MCP: Extract logs from error data for TypeScript workflow failures
- Recorder: Add early exit checks to prevent UIA traversals during stop
- MCP: Extract logs from execute_sequence results in addition to run_command
- MCP: Capture pipe logs on error path for workflow failures
- MCP: Pass ORG_TOKEN as env var for KV HTTP backend - workflows now use remote KV store for duplicate detection
- Core: Add CREATE_NO_WINDOW flag to prevent PowerShell console flash
- Core: Use JPEG for screenshot disk logs (~4x smaller files)
- Workflow: Send 1-based step indices in emit calls
- Test: Update get_executions_dir test for mediar path
- Desktop: Add
closeTabmethod for safe browser tab closing (#446)
- Workflow: Emit step events in normal execution path
- Workflow: Emit step lifecycle events automatically
- MCP: Switch screenshots from PNG to JPEG for ~80% size reduction
- Core: Detect clicks on browser chrome (tabs/address bar) and skip DOM capture
- Core: Initialize COM before UIA calls in focus save/restore
- MCP: Install
@mediar-ai/workflowand@mediar-ai/kvpackages alongside terminator
- MCP: Add
ask_usertool for AI to request user clarification during tool execution - MCP: Add elicitation support for user input during tool execution (#441)
- Desktop: Add
draw_cursormethod to ScreenshotResult andget_cursor_positionhelper - Desktop: Add
find_parent_windowhelper andget_tree_from_elementDesktop method - Desktop: Add
window_selectorsupport tocapture_screenshotsnippet - Desktop: Add title, show_overlay, browser_dom_max_elements to
get_window_treesnippet - Desktop: Add retry loop and click options to TypeScript snippet generation
- Desktop: Add verification code generation for action tools in TypeScript snippets
- MCP: Include
execution_log_pathandtypescript_snippet_pathin execute_sequence/execute_ts_workflow output - HTTP: Add POST
/modeendpoint for ask/act mode and blocked tools
- Desktop: Correct cursor overlay colors for BGRA format
- Desktop: Fix verification code generation to handle empty process
- Workflow: Clarify
execute_sequenceis for UI ops only - Process: Only kill safe processes (terminator/node/bun) when port is in use, warn for unexpected processes (#438, #439)
- Workflow: Use
executed_without_error/executed_with_errorstatus naming convention - MCP: Block tools in ask mode, update status naming convention
- Desktop: Add
restoreFocus,uiDiffBeforeAfteroptions, improve click snippet generation
- Version bump only (no functional changes)
- CLI: Add
success()early exit example to init template - CLI: Add README.md template with non-technical workflow description
- Workflow: Add
setState()method to WorkflowContext for React-style state updates - CLI: Update init template with two-step example using
next()andsetState()
- MCP: Prevent dangling bun/node processes when MCP agent stops
- Workflow: Update ExecutionStatus enum values (
executed_without_error,execution_error) - MCP: Add X-Workflow-Dir header support
- MCP: Add typecheck_workflow tool for TypeScript type checking
- Tests: Handle missing esbuild in transpiler tests
- MCP: Improve execution logger and update README
- Version bump only (no functional changes)
- MCP: Improve execution logging with step_id tracking
- CLI: Sync all workspace crate versions (terminator-computer-use, terminator-rs)
- CLI: Add type annotations to all callbacks in init template
- Workflow: Use
unknowninstead ofanyfor better type inference in callbacks
- CLI: Remove double braces in init template
- MCP: Change default
tree_max_depthfrom 100 to 30 with improved guidance
- Docs: Use GIF for autoplay demo video in README
- Platform: Windows-only support - removed macOS and Linux platform code, dependencies, and CI workflows
- Docs: Reorganized README with improved MCP setup instructions and new demo video
- Transpiler: TypeScript support for
execute_browser_scriptwith context-engineered error messages
- CLI: Improve init template with trigger, metadata, and context.data support
- Workflow: Add
enabledproperty to trigger configs (cron, manual, webhook)
- CI: Remove crates.io publish workflow
- CI: Publish all crates to crates.io in correct dependency order
- CI: Remove Linux from CLI workflow (Windows-only)
- CI: Remove Python CI/CD workflow
- Fix UiDiffOptions doc test (remove non-existent field)
- Workflow: Add context.data field for workflow output data (#431)
- Fix: add missing APIs to run_command description (openUrl, navigateBrowser, delay, etc.)
- Fix: re-enable result.data assertions in onSuccess tests
- Fix: replace deprecated logger with console in init templates
- Fix: resolve log pipe race condition causing lost logs
- Workflow: Add trigger/cron scheduling support for TypeScript workflows (#427)
- MCP: Add named pipe logging for TypeScript workflows (#416)
- MCP: Add gitignore-aware file search and improved dropdown error messages (#420)
- MCP: Prompt improvements and execution logging (#419)
- Docs: Improve verify_element and select_option documentation (#422)
- Fix tests
- Fix: expose globals as local variables in JS wrapper script
- Fix log pipe drain before process exit (#426)
- Fix: save focus state before window activation in type_into_element (#425)
- Element and input improvements (#424)
- Focus restoration and prompt improvements (#423)
- Clippy and fmt fixes
- Version bump release
- Version bump release
- MCP: Scripting engine enhancements
- Workflow: Add event tests
- MCP: Enhance event pipe and workflow events
- Workflow: Add screenshot emit test
- MCP: Add screenshot collection from workflow events with metadata
- Examples: Add strip-ui-styles example for CSS removal
- Core: Focus restore tests and strip-styles improvements
- Build: Static VC runtime linking for terminator-nodejs
- Core: Refactor and debug improvements
- Clippy warnings and errors
- Missing trait implementations
- MCP: Add workflow event streaming support with Windows named pipes IPC
- MCP: Add
emitAPI to TypeScript workflows for real-time progress updates - MCP: Add event streaming to
run_commandtool (event_sender, execution_id params) - SDK: Add
@mediar-ai/workflowevents module withemit.progress(),emit.stepStarted(),emit.stepCompleted(), etc. - SDK: Add
createStepEmitter()for scoped event emission with auto-prefixed step context - Core: Add
get_value()API for retrieving element values (#407) - Core: Move
type_into_elementauto-verification to core library (#408)
- MCP: Use Windows named pipes instead of stderr JSON parsing for cleaner event IPC
- Build: Bundle bun runtime support for workflows (#407)
- CLI: Add
initcommand to scaffold TypeScript workflows - Tree: Build chained selectors during tree traversal and return in click response
- SDK: Add
geminiComputerUseto TypeScript SDK - SDK: Add
processName()method and documentdesktop.applications() - Run Command: Default
include_logsto true for MCP tool - Run Command: Include partial logs on timeout when
include_logsis true
- CI: Run all unit tests, exclude e2e/integration/mcp tests that require real desktop
- Browser Script: Improve error message for chrome:// pages
- MCP: Use
eval()for multi-statement script execution in browser - Computer Use: Use correct key format
{Ctrl}ainstead of^a - Computer Use: Improve reliability of
type_text_atand screenshot timing - Recorder: Drill through containers with broken bounds to find named elements
- Build: Add
opt-level=1to dev-release profile for faster compilation
- Recorder: Change URL search logs from warn to info
- Run Command: Add TypeScript SDK API documentation
- Run Command: Fix incorrect
desktop.locator()scoping documentation
- Workflow SDK: Add
complete()function for early workflow exit with success - Workflow SDK: Add
PendingActionevent for immediate modal display - Workflow Recorder: Add URL capture for Gemini Computer Use API compliance
- Workflow Recorder: Add UIA debug logging and
page_urlfor click events
- Workflow SDK: Replace
throw complete()pattern withreturn success()for cleaner early exit - Workflow Recorder: Use magenta color key and Consolas font for overlay labels
- Workflow SDK: Use 1-based step index in validation error messages
- Workflow SDK: Improve validation error messages with step index and execution range
- Workflow Recorder: Skip elements with relative timestamps in selectors
- Workflow Recorder: Filter internal browser elements from selector chain
- Workflow Recorder: Stop parent hierarchy at application window boundary
- Workflow Recorder: Improve selector parsing and chain generation
- Workflow Recorder: Use UTF-8 safe string truncation in overlay labels
- MCP Agent: Always inject
accumulated_envforrun_commandsteps - MCP Agent: Improve
get_window_treetool description with vision options
- Workflow SDK: Add unit tests for
complete()early exit functionality
- Workflow SDK: Add
SuccessResulttype and renamehumantosummary - MCP Agent: Add
gemini_computer_usetool for agentic desktop automation using native Gemini 2.5 Computer Use API - MCP Agent: Add dynamic MCP tools list to
execute_sequenceinstructions - MCP Agent: Auto-initialize KV variable when
ORG_TOKENis present
- MCP Agent: Rewrite
gemini_computer_useto use native Gemini 2.5 Computer Use API - UI Overlay: Simplify overlay labels to render inside element boxes
- MCP Agent: Add granular PERF logs for MCP tool execution timing
- Development: Optimize dev build profile
- MCP Agent: Change premature success log to debug level in
browser_script
- Workflow SDK: Add
onSuccesshandler support for direct pattern (steps array) - Workflow SDK: Add
lastStepIdandlastStepIndextoWorkflowSuccessContext
- Style: Run cargo fmt on Rust codebase
- MCP Agent: Optimize window restoration to only restore modified windows
- MCP Agent: Add PERF timing logs for MCP tool execution breakdown
- Workflow SDK: Add comprehensive tests for onSuccess handler (14 tests)
- MCP Agent: Add array indexing tests for variable substitution
- MCP Agent: Strip stack traces from error responses
- TypeScript: Add type assertions to HTTP adapter for strict mode
- MCP Agent: Add KV storage support for run_command scripts
- Docs: Add KV storage documentation to run_command tool
- OCR: Apply DPI scaling to OCR, Omniparser, and Gemini Vision bounds
- Workflow SDK: Add
retry()function that can be thrown fromexecute()to re-run step - CI: Add workflow package type checking and unit tests
- Workflow SDK: Fix test type annotations (remove
as anycasts) - MCP Agent: Pass execution_id as structured tracing field instead of message prefix
- MCP Agent: Use SendMessageTimeoutW to avoid blocking on hung windows
- Recorder: Use
&&syntax instead of pipe for selectors - Recorder: Use
text:instead ofname:contains:in selectors
- KV: Rename VM_TOKEN to ORG_TOKEN in HTTP adapter
- Workflow SDK: Add
retriesoption to createStep with configurable delay - MCP Agent: Add
include_browser_domparameter to get_window_tree - MCP Agent: Add index-based clicking for browser DOM elements (
click_indexwithvision_type: 'dom') - MCP Agent: Add index-based clicking for UI tree elements (
click_indexwithvision_type: 'uia') - MCP Agent: Add
show_overlayparameter for visual UI debugging - MCP Agent: Add
browser_dom_max_elementsparameter to get_window_tree - MCP Agent: Add compact YAML format for omniparser output
- Inspect Overlay: Add display modes, collision detection, and smaller font
- Inspect Overlay: Show text content in DOM overlay labels
- Code: Add missing
include_all_boundsfield and fix clippy warnings - Inspect Overlay: Use non-blocking polling loop and cache-based UI tree overlay
- Inspect Overlay: Fix DPI scaling for browser DOM
- Inspect Overlay: Improve visual appearance and fix hide functionality
- Inspect Overlay: Simplify label to show only index number
- Docs: Update selector syntax to use
&&instead of legacy pipe|
- CI: Publish terminator-cli to crates.io on release (
cargo install terminator-cli) - Docs: Add remote-mcp skill for controlling remote machines via MCP
- Code: Resolve clippy warnings (dead_code, format strings)
- MCP Agent: Add configurable timeout for run_command execution
- MCP Agent: Optimize OmniParser image processing for faster inference
- CLI: Fix authentication on remote MCP
- MCP Agent: Add telemetry to TypeScript workflow execution
- Workflow SDK: Add
nextpointer for step branching and loops- Static jumps:
next: 'step_id' - Dynamic branching:
next: ({ context }) => condition ? 'a' : 'b' - Retry loops with counter
- Infinite loop detection (max 1000 iterations)
- Static jumps:
- Workflow SDK: Auto-read name/version/description from package.json
- Workflow SDK: Remove name/version/description from createWorkflow() - now exclusively read from package.json (single source of truth)
- CLI: Remove unused telemetry receiver
- Code: Fix clippy warnings (unused imports, extra blank lines)
- MCP: Stream TypeScript workflow logs through Rust tracing with full OpenTelemetry integration
- MCP: Add log level prefixes ([ERROR], [WARN], [INFO], [DEBUG]) in TypeScript execution
- MCP: Add ParsedLogLine struct and parse_log_line function for log parsing
- Telemetry: TypeScript workflow logs now include trace_id/execution_id for ClickHouse correlation
- MCP: Add unified click_cv_index tool with vision_type parameter (ocr/omniparser) replacing separate click tools
- MCP: Add click_type parameter (left/double/right) to click_cv_index for different click actions
- MCP: Add omniparser support via Replicate API integration
- MCP: Support nested execute_sequence calls in dispatch_tool
- UI Automation: Add click_at_coordinates_with_type method supporting left, double, and right clicks
- Telemetry: Propagate tracing spans to spawned tasks for proper trace correlation
- Telemetry: Include execution_id and trace_id in log body for ClickHouse filtering
- Telemetry: Downgrade expected failures from error! to warn!/debug!
- Code: Address clippy warnings (format strings, needless borrow)
- MCP: Replace click_ocr_index and click_omniparser_index with unified click_cv_index tool
- Config: Add files.eol setting to enforce LF line endings
- MCP: Add OCR support and click_ocr_index tool for text-based UI automation
- MCP: Add OCR tree formatting with indexed words in get_window_tree
- UI Automation: Expose OCR and coordinate click on Desktop
- UI Automation: Implement Windows OCR with bounding boxes using Windows Media OCR
- Workflow Recorder: Add process_name field to event structs and TextInputTracker
- Telemetry: Add tracing-opentelemetry layer for TraceId propagation to logs
- MCP: Update get_window_tree description with OCR usage information
- MCP: Add tracing span with trace_id for distributed tracing
- Extension: Add lifecycle logging and health reporting
- UI Automation: Add element verification to open_application and navigate_browser
- Telemetry: Add structured log attributes for OpenTelemetry correlation
- Build: Revert bun install mode restriction for S3 mount compatibility
- MCP: Add version field to /health endpoint for monitoring
- Code quality: Address cargo clippy warnings (format strings, collapsible if, ptr_arg)
- Telemetry: Receive and use execution_id from executor for distributed tracing
- Tests: Add missing trace_id and execution_id fields to test fixtures
- Docs: Update README terminology from 'legacy systems' to 'legacy software'
- Telemetry: Add log_source and trace_id fields for distributed tracing support
- Workflow: Add onSuccess handler that returns data for MCP integration
- Docs: Improve CLI installation instructions with npm wrapper guidance
- Workflow: Rename createWorkflowError to WorkflowError for consistency
- CI/CD: Add GitHub Actions workflow to publish @mediar-ai/kv package
- Automatically builds TypeScript and publishes to npm on version tags
- Synced @mediar-ai/kv version to 0.23.13 (was stuck at 0.1.0 since v0.23.8)
- CI/CD: Prevent duplicate artifact uploads in Release Terminator CLI workflow
- Fixed "Not Found" errors by uploading only archives (*.tar.gz, *.zip) instead of all artifacts
- Removed duplicate terminator.exe uploads that were causing workflow failures
- CI/CD: Remove duplicate tag trigger from Publish Workflow Package workflow
- Fixed double workflow runs by removing redundant push:tags trigger
- Now only triggers via workflow_run dependency chain after NPM packages are published
- Prevents race conditions and ensures correct dependency order
- Telemetry: Add OpenTelemetry metadata for better filtering and grouping in ClickHouse dashboards
- Resource-level: deployment.environment, service.instance.id, os.type, os.arch, automation.api
- Workflow-level: workflow.execution_id, workflow.url, workflow.format, workflow.trigger_source
- Step-level: step.process, step.selector, step.url, step.text_length for improved filtering
- MCP: Add post-action verification to missing action tools
- MCP: Add activate_window before actions and enhance press_key_global
- MCP: Make ui_diff_before_after and include_tree_after_action mandatory
- MCP: Make verify_timeout_ms optional with 2000ms default
- MCP: Add bring_to_front flag to separate foreground from window management
- MCP: Use text: selector instead of value: for set_value auto-verification
- MCP: Hide #ID selectors in compact YAML tree view
- MCP: Add unwrap_or(2000) to verify_timeout_ms in verification code
- MCP: Set in_sequence flag in dispatch_tool to prevent double window management
- Windows: Use AttachThreadInput to bypass Windows focus-stealing prevention
- MCP: Skip tree building when both verify fields are empty
- MCP: Make highlight_before_action a required boolean parameter
- MCP: Flatten FontStyle into HighlightElementArgs
- MCP: Change maximize_target default from true to false
- Editor: Add .editorconfig and fix .gitattributes line endings
- MCP: Improve MCP agent prompt with selector syntax guide
- MCP: Update MCP agent prompt with tool behavior defaults
- MCP: Add local-copy execution mode for TypeScript workflows to fix S3/rclone symlink issues
- Window management: Add BringWindowToTop and SetForegroundWindow to window management
- Workflow: Copy workflow files to local temp directory before execution for better performance and symlink support
- MCP: Default MCP_EXECUTION_MODE to "local-copy" in agent wrapper
- MCP: Add optional window management parameters to all MCP tools
- Docs: Add Bounty Developer Program section to README
- Tests: Add missing skip_preflight_check and window_mgmt fields to ExecuteSequenceArgs test instantiations
- Style: Run cargo fmt to fix formatting issues
- KV package: New @mediar-ai/kv package for workflow state sharing with Memory, File, and Redis adapters
- CLI: Add sync_kv_package() to version management for release automation
- CI: Remove Linux from Python wheels workflow
- Test: Ignore debugger detach tests failing in CI
- Linux: Add missing trait method implementations (maximize_window_keyboard, minimize_window_keyboard, get_native_window_handle)
- Linux: Fix press_key signature to match trait definition
- Linux: Add Process selector case handling in selector matching
- Element: Fix unused variable warning
- CI: Remove Linux builds from MCP and NPM publish workflows (Windows-only for now)
- TypeScript workflow: Export WorkflowBuilder and add function overloads for type inference
- MCP: Guidance for server-side dev log tools and screenshot investigation
- Window management: Add window manager module for optimized window state management
- Window management: Integrate UWP window management support with keyboard-based maximize/restore
- Selector: Add Process selector for targeting elements by process name
- Workflow: Add workflow_id parameter for env state persistence
- Test: Add comprehensive UWP window management tests
- BREAKING: Renamed
include_treeparameter toinclude_tree_after_actionacross all MCP tools and YAML workflows for clearer semantics - BREAKING: Enforce mandatory process scoping to eliminate desktop-wide searches - all selectors must include
process:prefix - BREAKING: Make clear_before_typing, highlight_before_action, and click_position mandatory parameters
- BREAKING: Make verification parameters mandatory for all action tools
- Selector: Replace PID parameter with process selector in capture_element_screenshot
- Performance: Optimize window search depth from 10 to 5
- Performance: Remove click action delays for faster automation
- Performance: Remove bounds stability checking for faster Windows element interactions
- Refactor: Remove element IDs from compact YAML tree view
- Refactor: Consolidate window management with UWP support in MCP tools
- MCP: Update tool descriptions to recommend process selector over PID
- Test: Fix notepad test to use correct process selector syntax
- Test: Ignore browser script tests failing in CI due to extension connection timeout
- Selector: Restore boolean operators for non-text prefixed selectors
- Selector: Handle special characters in prefixed selectors
- Security: Update js-yaml to fix prototype pollution vulnerability
- MCP: Fix timeout inconsistency in wait_for_element error details
- MCP: Ensure window restoration in all error paths
- MCP: Add tree data management guidance to prevent redundant get_window_tree calls
- Inline autocomplete: Dismiss before pressing Enter/Return
- Workflow: Gracefully handle user cancellation in workflow execution
- CI: Resolve module resolution error in Node.js tests (#367)
- Formatting: Apply cargo fmt and fix all clippy warnings
- Maintenance release with dependency updates
- CI: Fixed bun install failing on optional dependencies (macOS packages on Windows) by adding
|| trueto continue on error - CI: Added ws module to devDependencies for extension bridge WebSocket test
- Browser scripts: Env variables now injected as single
envobject instead of separate const declarations - scripts access viaenv.variableName - CLI: Fixed version sync to update @mediar-ai/terminator-* optionalDependencies
- Package: Updated platform package optionalDependencies from 0.22.20 to 0.23.2
- Browser scripts: Env variable injection for file-based scripts - variables passed in
envoption are auto-injected asconstdeclarations - MCP: Cancellation support for execute_sequence workflows
- MCP: stop_execution tool for cancelling active workflows
- Extension Bridge: Proxy mode for subprocesses
- Subprocess: Inherit parent environment variables in commands
- Dependencies: Bump terminator platform dependencies to 0.22.20
- Logging: Remove verbose logging from Windows engine and element implementation
- Documentation: Emphasize always using ui_diff_before_after parameter
- Line endings: Normalize line endings in example files
- Minor version bump
- TypeScript: Use module augmentation instead of conflicting interface declarations to properly extend Desktop/Element classes
- TypeScript: Explicitly re-export Desktop and other classes in wrapper.d.ts to fix "only refers to a type" errors in workflow package
- Code quality: Run cargo fmt to fix formatting issues
- Build: Uncommented terminator-python in workspace members to fix Python wheels CI build
- CI: Ensure WebSocket module is available for extension bridge test
- CI: Move WebSocket test to separate script file to fix YAML syntax
- CI: Add WebSocket bridge connection test and extension wake-up steps
- CI: Add extension loading verification step
- CI: Fix Rust formatting issues and make browser extension tests continue-on-error
- Browser: Use Browser instead of BrowserType in tests
- Browser: Use Chrome browser explicitly in browser extension tests
- Windows: Prevent Chrome-based browsers from killing all windows on close
- Desktop: Use .first() instead of .wait() for desktop.locator() API
- Rust: Fix warnings in Windows applications module
- Browser: Improve Developer mode detection in Chrome extension install workflow
- CI: Launch Chrome before running extension install workflow
- CI: Launch Chrome with extension via command line instead of UI automation
- CI: Ignore checksums for Chrome install (updates frequently)
- Clippy: Inline format args to fix warnings
- Browser: Automatically recover from debugger detachment in browser extension (#354)
- Windows: Optimize Chrome detection to query only target process
- MCP: Remove get_focused_window_tree tool and add verification system to action tools
- MCP: Add verify_post_action helper for post-action verification
- Tests: Add test examples for parent chain, PID window, and verify window scope
- Screenshots: Add PID support and auto-resize to capture_element_screenshot
- Documentation: Update server instructions with new best practices
- Windows: Optimize Windows application lookup with EnumWindows API and caching
- Workflow SDK: Improved TypeScript workflow type safety and error handling
- Windows: Prevent wrapper from exiting when restarting crashed MCP server (#350)
- MCP: Remove unnecessary VC++ redistributables check (#351)
- MCP: Fixed compilation error by adding missing UINode import in helpers.rs
- MCP: Fixed TreeOutputFormat ownership issue in format_tree_string function
- MCP: Removed duplicate inputs_json serialization in workflow_typescript.rs
- Workflow SDK: Clean architecture refactor - eliminated ~100 lines of hardcoded JavaScript wrapper in MCP server
- Workflow SDK:
workflow.run()now accepts optional step control parameters (startFromStep,endAtStep) and automatically skipsonErrorhandlers during testing - MCP: Simplified TypeScript workflow execution by passing step control options directly to
workflow.run()
- CI: Removed all macOS runners from GitHub Actions workflows to reduce costs (ci-wheels, publish-npm, publish-mcp, publish-cli)
- Documentation: Fixed typo in README and revised project description
- Documentation: Added TypeScript workflow context.data integration notes
- MCP: TypeScript workflows now support context.data for passing execution results
- MCP: Multi-instance mode with smart parent process checking for running multiple MCP servers
- Workflow SDK: TypeScript workflows now have full feature parity with YAML workflows (partial execution, state restoration)
- Testing: TERMINATOR_MCP_BINARY env var support for local binary testing without publishing
- Workflow SDK: TypeScript workflow execution now properly uses WorkflowRunner for advanced features
- Tests: MCP integration test selectors fixed to use
role:Windowto avoid matching taskbar buttons - Workflow SDK: Made WorkflowExecutionResult fields optional to support both SDK and runner formats
- CLI: Automatic peerDependencies update for @mediar-ai/terminator in workflow package during version sync
- Workflow format detection: Added support for
terminator.tsas workflow entry file (alongside workflow.ts and index.ts)
- CI: Workflow package publish now waits for @mediar-ai/terminator to be available on NPM, preventing race condition errors
- CI: Added dependency sequencing between publish-npm and publish-workflow workflows with 10-minute timeout
- Workflow SDK: MCP integration tests refactored to use stdio transport with npx instead of hardcoded binary paths
- Documentation: Updated CLAUDE.md with CLI workflow execution examples and best practices
- CI: Upgraded macOS runners from macos-13/14 to macos-15
- CI: Removed x86_64 macOS builds (Intel) - only ARM64 (Apple Silicon) supported going forward
nativeid:selector depth limit increased from 50 to 500 for deep browser web applications - fixes element finding in complex web apps like Best Plan Pro running in Chrome where UI trees can be 100+ levels deep- Workflow SDK peer dependency updated to
^0.22.0for better compatibility
- Flaky browser wait test now ignored in CI to improve build reliability
- Chain selector parsing with outer parentheses - selectors like
(role:Window && name:Calculator) >> (role:Custom && nativeid:NavView)now parse correctly at runtime
- Separated selector tests into dedicated
selector_tests.rsfile for better code organization - Reduced
selector.rsfrom 1,129 to 621 lines (implementation only)
- Debug tests for selector functionality
- Cleanup of problematic selector tests
- Updated issue creation link in skill.md
- Boolean selectors handling
- UIA element capture timeout increased to 5s with automatic fallback
- Workflow recorder timeout improvements
- Initial CHANGELOG.md
- Release command for automated version management