- Ruff format all skill_cli and test files
- Fix type: get_config_value returns str|int|None, callers cast properly
- Fix type: BrowserWrapper.actions is non-optional (always provided)
- Fix type: config comparison uses 'is' not '=='
- Rewrite test_setup_command for new setup.handle(yes=True) API
- Add None guard in test_cli_lifecycle for state file
- agent.py: Move API key check inside remote mode block only, allowing
local mode to work with OPENAI/ANTHROPIC keys without BROWSER_USE_API_KEY
- tunnel_manager.py: Close log file handle on success path to prevent
file descriptor leak
- profile.py: Use stderr for progress messages when --json flag is set;
add cleanup_cloud_profile() to delete orphaned cloud profiles on sync failure
- install.sh: Add guard for --api-key requiring a value; warn on unknown
arguments instead of silently ignoring; fix read -p with < /dev/tty
for piped install (curl | bash)
- test_setup_command.py: Remove all unittest.mock usage per repo guidelines,
replace with real function calls that verify structure and logic
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>