jackwener
59c0d639a5
refactor: fix 9 issues from round 2 code review
...
Bug fixes:
- #1 /logs?level=error returned 404 — use pathname for route matching
- #2 Duplicate initialization — added 'initialized' guard flag
Should fix:
- #4 Added screenshot() to IPage interface
- #5 Graceful shutdown rejects pending requests before exit
- #6 Use process.execPath instead of 'npx tsx' for faster daemon spawn
Cleanup:
- #7 Removed duplicate 'browser' keyword in package.json
- #8 Removed unused normalizeEvaluateSource import from browser.ts
- #9 Changed dynamic import to static import in intercept.ts
- #10 Added explicit throw at end of sendCommand for clarity
61 tests pass (4 test files). Extension: 10.55KB.
2026-03-19 16:36:06 +08:00
jackwener
b2fa7daf57
feat: replace @playwright/mcp with lightweight daemon + Chrome Extension
...
Architecture:
- Micro-daemon (HTTP + WebSocket bridge, ~190 lines, auto-start/idle-exit)
- Chrome MV3 Extension using chrome.debugger CDP (10KB build)
- 5 protocol actions: exec, navigate, tabs, cookies, screenshot
- All DOM ops via JS evaluate — no extension update needed for new features
Key features:
- CDP Runtime.evaluate for JS execution in page context
- Tab management, cookie access via Chrome APIs
- Auto-start daemon on cold boot, idle auto-exit (5min)
- Minimal permissions: debugger, tabs, cookies, activeTab, alarms
Tested: zhihu hot (14.3s), twitter timeline (9.3s)
2026-03-19 16:21:17 +08:00
jackwener
c3efc5b492
0.9.8
2026-03-19 01:38:55 +08:00
jackwener
f85464c1aa
0.9.7
2026-03-19 01:38:49 +08:00
dependabot[bot]
1d871b35f0
chore(deps): bump commander from 13.1.0 to 14.0.3 ( #67 )
...
Bumps [commander](https://github.com/tj/commander.js ) from 13.1.0 to 14.0.3.
- [Release notes](https://github.com/tj/commander.js/releases )
- [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tj/commander.js/compare/v13.1.0...v14.0.3 )
---
updated-dependencies:
- dependency-name: commander
dependency-version: 14.0.3
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-19 00:03:01 +08:00
AlexYue
515ce75f3b
ci: add Dependabot, security audit, release-please, and CI optimization ( #64 )
...
* chore(ci): add Dependabot for npm and GitHub Actions updates
- Weekly npm dependency updates with PR limit of 10
- Weekly GitHub Actions version updates with PR limit of 5
- Conventional commit prefixes (chore(deps), chore(ci))
* ci: add security audit workflow
- Run npm audit on push/PR and weekly schedule
- Fail on high-severity vulnerabilities using audit-ci
- Only audit production dependencies
* ci: add release-please for automated changelog and versioning
- Auto-generate CHANGELOG.md from Conventional Commits
- Create version bump PRs on push to main
- Works alongside existing release.yml for npm publish
* ci: add concurrency controls and Node.js version matrix
- Add concurrency groups to ci, e2e-headed, security workflows
to cancel duplicate runs on the same branch
- Test unit tests across Node 18/20/22 with fail-fast: false
- Update test step name to show Node version
* chore: bump minimum Node.js version from 18 to 20
- Update engines.node in package.json to >=20.0.0
- Update prerequisites in README.md and README.zh-CN.md
- Remove Node 18 from CI test matrix
* review: fix release token and prod-only audit scope
* docs: align Node 20 troubleshooting guidance
---------
Co-authored-by: jackwener <jakevingoo@gmail.com >
2026-03-18 23:52:49 +08:00
stometaverse
c370bd0582
feat(xiaohongshu): add 4 creator analytics commands (creator-profile, creator-stats, creator-notes, creator-note-detail) ( #49 )
...
* feat(xiaohongshu): add 4 creator analytics commands
Add creator backend support for Xiaohongshu (小红书), enabling
creators to access their analytics data from the command line.
New commands:
- creator-profile: account info (followers, likes, creator level)
- creator-stats: 7-day/30-day overview (views, likes, collects,
comments, shares, new followers) with daily trend data
- creator-notes: note list with per-note metrics from note manager
- creator-note-detail: single note analytics breakdown
(organic vs promoted vs video traffic)
API discovery:
- /api/galaxy/creator/home/personal_info (cookie auth, 200 OK)
- /api/galaxy/creator/data/note_detail_new (cookie auth, 200 OK)
- /api/galaxy/creator/data/note_detail?note_id=xxx (cookie auth, 200 OK)
- Note manager DOM extraction for note list (bypasses v2 signature)
All endpoints verified working with real creator account.
Screenshots (redacted) included in docs/screenshots/.
Requires: Chrome logged into creator.xiaohongshu.com
* chore: remove screenshots from repo (will host externally for PR)
* review: fix creator analytics CLI integration
Co-authored-by: stone16 <stone2paul@gmail.com >
* test: add site-scoped test runner
Co-authored-by: stone16 <stone2paul@gmail.com >
* review: ignore publish timestamps in creator note metrics
---------
Co-authored-by: jackwener <jakevingoo@gmail.com >
2026-03-18 22:27:25 +08:00
jackwener
e76de39f42
feat: desktop adapter improvements — bug fixes + 9 new commands
...
P0 Bug Fixes:
- codex: add missing args/IPage imports, add wait(0.5) before Enter in send
- cursor: new.ts uses Meta+N shortcut (more robust), composer.ts simplified
- chatgpt: send.ts now backs up and restores clipboard
- antigravity: send.ts/model.ts columns unified to PascalCase
- codex: read.ts column renamed Thread_Content → Content
P1 New Features:
- ask: one-shot send+wait+read for cursor, codex, chatgpt (send → poll DOM → return response)
- screenshot: DOM + accessibility snapshot export for cursor, codex
P2 New Features:
- history: list sidebar chat sessions for cursor, codex
- export: save full conversation as Markdown for cursor, codex
Total: 26 sites · 128 commands
2026-03-18 19:52:39 +08:00
jackwener
2afbb99660
feat: add ChatGPT Desktop native support + Cursor/Codex advanced commands
...
- Add ChatGPT macOS Desktop adapter (status, new, send, read) via AppleScript
- Add Cursor composer, model, extract-code commands via CDP
- Add Codex model command via CDP
- Create adapter READMEs for ChatGPT (EN+ZH) and Cursor (EN+ZH)
- Fix README.md duplicate table rows (6 sites were listed twice)
- Update command count: 26 sites · 119 commands
- Bump version to 0.9.5
2026-03-18 19:40:08 +08:00
jackwener
aa55c88069
0.9.4
2026-03-18 17:41:41 +08:00
jackwener
b32fe1cbc3
feat: add advanced cursor and codex capabilities
2026-03-18 17:41:41 +08:00
jackwener
cd63231b7e
chore(release): 0.9.2
2026-03-18 17:15:01 +08:00
jackwener
4ce0345c9a
chore(release): 0.9.1
2026-03-18 17:06:47 +08:00
jackwener
79fbac844e
chore(release): 0.9.0
2026-03-18 16:44:36 +08:00
jackwener
64e3a2d627
0.8.0
2026-03-18 15:25:51 +08:00
jackwener
f102501e4a
chore(release): bump version to v0.7.11
2026-03-18 13:35:13 +08:00
jackwener
4c8c6e8be7
fix(twitter): migrate bookmarks to direct GraphQL
...
chore: bump version to 0.7.10
2026-03-17 17:30:01 +08:00
jackwener
1e34e7e6d3
chore: bump version to 0.7.9
2026-03-17 17:11:13 +08:00
jackwener
612c0ab1af
v0.7.8: P0 architecture refactor - split browser.ts, unified errors, strict mode
2026-03-17 17:02:03 +08:00
jackwener
68840fc85c
refactor: P0 architecture improvements
...
- Split browser.ts (700 lines) into src/browser/ module (page, mcp, errors, discover, tabs, index)
- Add unified error handling: CliError base class + logger module
- Enable TypeScript strict mode, fix 12 type errors
- Extract inline build scripts to scripts/clean-yaml.cjs and copy-yaml.cjs
- All 178 unit tests pass, build produces 83 entries across 19 sites
2026-03-17 17:01:51 +08:00
jackwener
43ed0ace59
0.7.6
2026-03-17 16:35:20 +08:00
jackwener
de962eb5fb
feat: support commands completion ( #32 )
...
Add full shell tab-completion for opencli, supporting Bash, Zsh, and Fish.
Co-authored-by: RinChanNOWWW <rin_chan_now@outlook.com >
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-17 16:33:19 +08:00
jackwener
d1da293ef9
0.7.5
2026-03-17 16:14:02 +08:00
jackwener
0fe3b9b921
0.7.4
2026-03-17 14:55:54 +08:00
jackwener
2463689105
0.7.3
2026-03-17 13:34:34 +08:00
jackwener
59de5fb3f5
0.7.2
2026-03-17 01:38:29 +08:00
jackwener
2652fa40e5
chore: change license from BSD-3-Clause to Apache-2.0
2026-03-17 01:34:51 +08:00
jackwener
fbec2f6f5d
feat(snapshot): filter contentinfo subtrees, bilibili ad URLs, boilerplate buttons
...
- Add contentinfo to subtree-level noise filtering (biggest single win)
- Reuters: 51% → 62%, Google: 57% → 70%, Netflix: 48% → 60%
- Add cm.bilibili.com/cm/api/fees/ ad URL pattern
- Add 广告 keyword to ad detection
- Add back-to-top / 回到顶部 boilerplate button filtering
- Unify ad/boilerplate/contentinfo into single subtree-skip mechanism
- Add vitest config and comprehensive test suite (33 tests)
- Fixture tests skip gracefully when snapshot files are absent
Bump to v0.7.1
2026-03-17 01:26:49 +08:00
jackwener
c2a5cbe90e
chore(release): 0.7.0
2026-03-16 20:29:27 +08:00
jackwener
1576396a21
0.6.3
2026-03-16 19:33:25 +08:00
jackwener
9889a6db11
v0.6.2
2026-03-16 18:14:34 +08:00
jackwener
61ea05bff7
fix: URL injection, strictNullChecks, cross-platform build, +34 tests
...
Security:
- Fix URL injection in fetch.ts and bilibili.ts (JSON.stringify instead of string interpolation)
- Fix unused scroll() amount parameter
TypeScript:
- Enable strictNullChecks in tsconfig
- Change CliCommand.func signature to IPage (non-null) for browser adapters
- Fix 93 compile errors across all adapters
Build:
- Remove || true from build-manifest (report failures instead of silencing)
- Replace Unix shell commands with Node.js scripts for cross-platform builds
Code quality:
- Remove error-object special detection from pipeline executor
- Unify error handling to throw pattern
Tests:
- New interceptor.test.ts (11 tests)
- New executor.test.ts (13 tests)
- Rewrite output.test.ts with comprehensive coverage (10 tests)
2026-03-16 18:14:27 +08:00
jackwener
433ad3a56a
0.6.1
2026-03-16 14:20:22 +08:00
jackwener
cd186bddd3
0.6.0
2026-03-16 14:05:58 +08:00
jackwener
9e024d4e46
0.5.2
2026-03-16 13:22:18 +08:00
jackwener
141c2cf7d5
0.5.1
2026-03-16 12:54:45 +08:00
jackwener
5a1581e67a
0.5.0
2026-03-16 12:46:16 +08:00
jackwener
7a24e8d74b
fix: add engines field for Node badge, sync SKILL.md version, fix zh-CN intro
2026-03-16 12:46:15 +08:00
jackwener
67d50191af
fix: CDP mode hanging when using chrome://inspect remote debugging
...
- Add isCdpApiAvailable() to verify CDP HTTP JSON API before using endpoint
- Chrome's chrome://inspect#remote-debugging writes DevToolsActivePort but
its CDP endpoint is incompatible with Playwright connectOverCDP (init
succeeds but all tool calls hang silently)
- Add CDP readiness probe in connect() to catch unresponsive endpoints
- Skip tab cleanup in close() for CDP mode (no bridge tabs to clean)
- Add PlaywrightMCPMode tracking for extension vs CDP lifecycle policy
2026-03-16 02:28:28 +08:00
jackwener
61a62f80c4
0.4.5
2026-03-16 01:51:27 +08:00
jackwener
4ec454530a
0.4.4
2026-03-15 23:58:15 +08:00
jackwener
797a392250
0.4.3
2026-03-15 21:53:43 +08:00
jackwener
9c78ffdd39
chore: change license to BSD-3-Clause
2026-03-15 19:54:34 +08:00
jackwener
9a45988197
v0.4.2
2026-03-15 19:00:15 +08:00
jackwener
2fdab085a7
chore: release v0.4.1
2026-03-15 18:41:14 +08:00
jackwener
ad9e9605fc
feat: extreme architectural optimizations
...
Phase 1: Smart autoScroll with MutationObserver (single IPC, instant DOM change detection)
Phase 2: Build-time CLI manifest compiler + lazy-loading engine (instant cold start)
Phase 3: Batch IPC fetch (N browser fetches in single evaluate() call)
2026-03-15 18:25:58 +08:00
jackwener
0e1cea84b6
chore: release v0.4.0
2026-03-15 18:16:27 +08:00
jackwener
a47d687513
perf: extreme architectural optimizations
...
Phase 1: Smart autoScroll with MutationObserver (single IPC, instant DOM change detection)
Phase 2: Build-time CLI manifest compiler + lazy-loading engine (instant cold start)
Phase 3: Batch IPC fetch (N browser fetches in single evaluate() call)
2026-03-15 18:12:36 +08:00
jackwener
4e6d6bb81d
chore: release v0.3.0
2026-03-15 16:04:40 +08:00
jackwener
70863fbdec
Release v0.2.0
2026-03-15 08:54:35 +08:00