Releases: jackwener/opencli
Releases · jackwener/opencli
v1.5.3
What's Changed
- fix(network): honor proxy env for node requests by @WSL0809 in #512
- perf: smart-wait — waitForCapture, wait({ selector }), daemon backoff by @jackwener in #527
- refactor: slim CI matrix, shared utils, unified logging, remove test leak by @jackwener in #525
- fix(extension): change automation window state from minimized to normal by @Astro-Han in #531
- chore(release): 1.5.3 by @jackwener in #533
New Contributors
Full Changelog: v1.5.2...v1.5.3
v1.5.2
What's Changed
- fix(extension): minimize automation window + reduce idle timeout by @jackwener in #521
- fix: relax extension version check, enable all adapter tests by @jackwener in #520
- fix(weread): resolve shelf auth fallback by @Astro-Han in #518
- chore(extension): bump version to 1.5.1 by @jackwener in #519
- fix(ci): stabilize public command and plugin e2e checks by @jackwener in #522
- fix(browser): retry settle probe after SPA client-side redirect by @Astro-Han in #517
- perf: smart pre-navigation, DOM-stable waits, in-memory URL tracking by @jackwener in #524
- chore(release): 1.5.2 by @jackwener in #523
Full Changelog: v1.5.1...v1.5.2
v1.5.1
What's Changed
- fix(doctor): remove unused fix option and add release URL to extension install hint by @jackwener in #498
- fix(plugin): remove legacy LOCK_FILE/MONOREPOS_DIR constants by @ByteYue in #495
- feat(plugin): add 'plugin create ' scaffold command by @ByteYue in #494
- feat(plugin): support local path install via file:// and absolute path by @ByteYue in #491
- fix(xiaohongshu): adapt publish to new two-step creator center UI by @Astro-Han in #490
- fix(plugin): detect symlinked monorepo sub-plugins in discoverPlugins by @ByteYue in #487
- fix(twitter): use DOM-only scraping for trending to match page results by @Astro-Han in #486
- perf: parallel file discovery and external CLI caching by @jackwener in #501
- feat(xiaohongshu): add published_at to search results by @Astro-Han in #485
- fix(plugin): handle EXDEV cross-filesystem rename during install by @ByteYue in #488
- feat(bluesky): add Bluesky adapter with 9 commands by @0xsline in #215
- fix(execution): apply timeout to non-browser commands by @Astro-Han in #383
- fix(plugin): prevent raw .ts import crash when esbuild transpilation fails by @ByteYue in #503
- feat(plugin): support multi-source plugin install (ssh, git@, generic https) by @ByteYue in #504
- perf: smart pre-navigation — skip redundant nav + remove 2s wait by @jackwener in #507
- fix(v2ex): fetch hot topics through browser context by @huguoliang1314 in #493
- refactor(plugin): make plugin installs transactional by @jackwener in #509
- chore(release): 1.5.1 by @jackwener in #513
New Contributors
- @huguoliang1314 made their first contribution in #493
Full Changelog: v1.5.0...v1.5.1
v1.5.0
What's New
Features
- Plugin system: opencli-plugin.json manifest and monorepo plugin support (#475)
- Zero onboarding: extension version check and update notifier (#479)
- Smart error dispatch: inline Browser Bridge diagnosis with real-time status (#481)
- New adapters: paperreview.ai (#464), IMDb (#472), Product Hunt (#462), 36kr (#461)
- Adapter enhancements: douban photo commands (#474), twitter likes (#448), bilibili/xiaohongshu comments (#457), linux-do unified feed (#434), chatgpt model selection (#438)
- Runtime: Bun compatibility (#459)
Improvements
- Deduplicated code, improved type safety, simplified error classes (#480)
- Unified YAML args parsing, browser step constants, and CommandArgs type
- Hook dedup protection for plugins
- Safer output normalization
Fixes
- Extension release packaging validation (#470)
- Various adapter fixes (jd, xiaohongshu, weread, weixin)
- Stabilized http download temp file handling (#443)
- Restored executable permission on bin entries after tsc build (#446)
Full Changelog: v1.4.1...v1.5.0
v1.4.1
What's Changed
- ci: add cross-platform E2E and smoke test support (Linux/macOS/Windows) by @ByteYue in #411
- chore: release v1.4.0 by @jackwener in #413
- feat(extension): Chrome Web Store readiness — popup UI, privacy policy, CSP by @jackwener in #415
- feat: add filter option for twitter search by @stormslowly in #410
- feat: add url field to 9 search adapters (67% -> 97% coverage) by @AllenS0104 in #414
- feat(douyin): add Douyin creator center adapter (14 commands, 8-phase publish pipeline) by @nianyi778 in #416
- feat(weibo,youtube): add Weibo commands and YouTube channel/comments by @jackwener in #418
- fix: remove incorrect gws external CLI entry by @jackwener in #419
- fix: remove nonexistent readwise external CLI entry by @jackwener in #420
- chore: trim adapter test suite to bilibili, zhihu, v2ex by @jackwener in #421
- fix(test): gate extended browser e2e tests behind OPENCLI_E2E=1 by @jackwener in #423
- fix(extension): improve UX when daemon is not running by @jackwener in #424
- chore: release v1.4.1 by @jackwener in #425
New Contributors
- @stormslowly made their first contribution in #410
- @nianyi778 made their first contribution in #416
Full Changelog: v1.4.0...v1.4.1
v1.4.0
Highlights
New Adapters
- Pixiv — ranking, search, user illusts, detail, download
- JD.com — product details
- Web — generic
web readfor any URL → Markdown - Dictionary — search, synonyms, examples
- LinkedIn — timeline feed
Plugin System
- Lifecycle hooks API —
onStartup,onBeforeExecute,onAfterExecute - Plugin structure validation on install/update
- Windows path and symlink compatibility
Bug Fixes
- Fix
hasLimitanalysis bug (was using wrong parameter Set) - Fix template engine chained
||evaluation - Fix phantom
scrollpipeline step (declared but never registered) - Extension security hardening — tab isolation, URL validation, cookie scope
- HTTP status checking in fetch pipeline step
- Cookie scoping for downloads
- Natural numeric sort with
localeCompare - 17+ additional bug fixes from deep code reviews
Code Quality
- Replace all
catch (err: any)with typedgetErrorMessage()across 13 files - Adopt
CliErrorsubclasses across social and desktop adapters - Cross-platform CI matrix (Linux/macOS/Windows)
- Comprehensive documentation sync — SKILL.md, README, docs site
Full Changelog: v1.3.3...v1.4.0
v1.3.3
What's New
🛡️ Browser Stealth Anti-Detection
Automatic injection of 7 anti-detection patches when controlling browsers via CDP or daemon mode, preventing websites from detecting opencli's automation:
navigator.webdrivermaskingwindow.chromestub (headless only)navigator.plugins/languagesfallback (headless only)Permissions.querynormalization- Dynamic
cdc_*/__playwright/__puppeteerartifact cleanup - CDP stack trace sanitization via
Error.prototype.stackgetter override
Other Changes
- Docs sync with current command registry (#318)
- Extracted shared modules:
getErrorMessageandDEFAULT_DAEMON_PORT(#313)
What's Changed
- docs: clarify release follow-up steps by @jackwener in #279
- feat: add weixin article download adapter & abstract download helpers by @jackwener in #280
- feat(xiaohongshu): add publish command for 图文 note automation by @stone16 in #276
- feat: add Doubao browser adapter by @helloimcx in #277
- fix: add turndown dependency to package.json by @jackwener in #288
- feat(doubao-app): add Doubao AI desktop app CLI adapter by @jackwener in #289
- docs: sync adapter lists with codebase by @jackwener in #291
- feat(hackernews): add new, best, ask, show, jobs, search, user commands by @Astro-Han in #290
- fix(xiaohongshu): scope image selector to avoid downloading avatars by @jackwener in #293
- docs: add gws to External CLI Hub table in README by @Astro-Han in #286
- feat: add xianyu-cli (闲鱼) as external CLI by @donquijote2557-web in #292
- revert: remove xianyu-cli by @jackwener in #295
- fix: ensure standard PATH is available for external CLIs by @jicaiji1-max in #285
- fix(xiaohongshu): improve search login-wall handling and detail output by @xiaokuili in #298
- feat(v2ex): add node, user, member, replies, nodes commands by @Astro-Han in #282
- Add weibo search command by @caokaizz in #299
- docs: update xiaohongshu search description, fix unit test count 31→32 by @jackwener in #301
- fix(tests,docs): use positional arg syntax for search commands by @jackwener in #302
- feat(record): add live recording command for API capture by @yee94 in #300
- feat(yollomi): add new commands and update documentation in README files by @AniChikage in #235
- feat(plugin): add update command, hot reload after install, README section by @jackwener in #307
- feat: refine error handling with semantic error types by @jackwener in #312
- chore: pre-release cleanup — fix dependencies, sync docs, reduce code duplication by @jackwener in #311
- docs(SKILL.md): sync command reference — add missing sites and desktop adapters by @jackwener in #314
- fix(external): replace execSync with execFileSync to prevent command injection by @0xsline in #309
- fix: remove duplicate getErrorMessage import in discovery.ts by @jackwener in #315
- fix(e2e): broaden xiaoyuzhou skip logic for overseas CI runners by @jackwener in #316
- refactor: extract shared utilities to reduce code duplication by @shouldnotappearcalm in #313
- chore: release v1.3.2 by @jackwener in #317
- docs: sync command references with current registry by @jackwener in #318
- feat(browser): add stealth anti-detection for CDP and daemon modes by @jackwener in #319
- fix(stealth): review fixes — guard plugins, rewrite stack trace cleanup by @jackwener in #320
- chore: release v1.3.3 by @jackwener in #321
New Contributors
- @helloimcx made their first contribution in #277
- @donquijote2557-web made their first contribution in #292
- @jicaiji1-max made their first contribution in #285
- @xiaokuili made their first contribution in #298
- @caokaizz made their first contribution in #299
- @yee94 made their first contribution in #300
- @AniChikage made their first contribution in #235
- @shouldnotappearcalm made their first contribution in #313
Full Changelog: v1.3.1...v1.3.3
v1.3.2
chore: release v1.3.2
v1.3.1
What's Changed
- docs: clean up READMEs - remove redundant sections by @jackwener in #261
- refactor: deprecate opencli setup, enhance doctor with daemon auto-start by @jackwener in #262
- refactor: doctor defaults to live mode, remove setup entirely by @jackwener in #263
- chore: update package-lock.json by @jackwener in #264
- fix: update doctor tests for auto-start daemon and --no-live default by @jackwener in #265
- fix: remove duplicate horizontal rules in READMEs by @jackwener in #266
- docs: remove all --live references from markdown docs by @jackwener in #267
- ci: trigger website rebuild on release by @ByteYue in #269
- fix(daemon): harden security against browser CSRF attacks by @jackwener in #270
- docs: refresh testing guide by @yanCode in #223
- perf: smart page settle via DOM stability detection by @jackwener in #271
- chore: bump version to 1.3.0 by @jackwener in #272
- chore: release v1.3.1 by @jackwener in #273
Full Changelog: v1.2.6...v1.3.1
v1.3.0
What's Changed
- docs: clean up READMEs - remove redundant sections by @jackwener in #261
- refactor: deprecate opencli setup, enhance doctor with daemon auto-start by @jackwener in #262
- refactor: doctor defaults to live mode, remove setup entirely by @jackwener in #263
- chore: update package-lock.json by @jackwener in #264
- fix: update doctor tests for auto-start daemon and --no-live default by @jackwener in #265
- fix: remove duplicate horizontal rules in READMEs by @jackwener in #266
- docs: remove all --live references from markdown docs by @jackwener in #267
- ci: trigger website rebuild on release by @ByteYue in #269
- fix(daemon): harden security against browser CSRF attacks by @jackwener in #270
- docs: refresh testing guide by @yanCode in #223
- perf: smart page settle via DOM stability detection by @jackwener in #271
Full Changelog: v1.2.6...v1.3.0