Skip to content

Releases: zeshuochen/nekoro-browser

v0.2.2

Choose a tag to compare

@zeshuochen zeshuochen released this 15 Aug 21:07

域名白名单(--allow-domains / NEKORO_ALLOW_DOMAINS)+ 截图 CSS 尺寸出图(capture_screenshot scale="css")+ 页面级函数补齐 tab= 参数

v0.2.1

Choose a tag to compare

@zeshuochen zeshuochen released this 14 Aug 05:19

macOS / Linux 的数据目录落点修正。Windows 用户不受影响。

修了什么

data_dir() 原来三平台共用一条 LOCALAPPDATAXDG_CONFIG_HOME~ 的 or 链。
这两个变量在 macOS 上通常都不存在,多数 Linux 发行版也不设 XDG_CONFIG_HOME
于是 token / pid / port 落在家目录下一个可见的 ~/nekoro-browser/——既不合 XDG 规范
(规范要求退到 ~/.config),也不合 macOS 惯例。

平台 0.2.1 起
Windows %LOCALAPPDATA%\nekoro-browser(不变)
macOS ~/Library/Application Support/nekoro-browser
其余 POSIX $XDG_CONFIG_HOME/nekoro-browser~/.config/nekoro-browser

新增 NEKORO_DATA_DIR,任意平台可显式覆盖。

升级注意:macOS / Linux 用户升级后旧的 ~/nekoro-browser/ 不会自动迁移,
里面只有 token / pid / port 三个会自动重建的文件,直接删掉即可。

文档:README 开场重排(对比表前置、新增 AI 安装提示词)、补 Windows 下
PowerShell here-string 写法、SKILL.md 注明 macOS 快捷键走 Meta=4 而非 Ctrl=2

v0.2.0 — 三个从第一天起就不可用的功能

Choose a tag to compare

@zeshuochen zeshuochen released this 06 Aug 00:15

⚠️ 升级后必须重载扩展

这一版改了 background.jsuv tool upgrade nekoro-browser 只更新 Python 那一侧——Chrome 里已加载的扩展会继续跑旧代码,涉及扩展的改动静默停留在旧行为(不报错,只是新功能不生效)。

uv tool upgrade nekoro-browser
nekoro-browser --reload-ext     # 或在 chrome://extensions 点「重新加载」
nekoro-browser --doctor         # 确认 service worker 有响应

manifest.json 的版本号已同步,可以和 nekoro-browser --version 对照着看。

三个从第一个 commit 起就不可用的功能

都被 try/except 转成了正常返回值,所以一直没人发现:

功能 症状
capture_screenshot() helpers 传 format=/quality=Daemon.screenshot 的签名是 f=/q= → TypeError → 吞成 ok:false
iframe_target() Target.getTargets 是 browser-level 命令,chrome.debugger 的 tab attach 下恒返回 Not allowed → 读起来像「没这个 iframe」。改走 Page.getFrameTree 返回 frameId
click_text() 会选中 display:none 的元素(rect 0×0)→ 点在 (0,0) 什么也没点到,却返回 ok:true。改用 find_text 那套带可见性过滤的引擎

其余七个修复

  • nth:N;text:/index: 静默失效 —— 点第 1 个却让调用方以为点了第 2 个。现在直接报 permanent
  • 歧义判定不看可见性 —— 移动端+桌面端各一份导航(一个 display:none)被误判成歧义,逼调用方去数 nth
  • 视口外元素点空报成功 —— rect 是视口坐标,元素在视口外照着点等于点空。新旧两条路径都补了 scrollIntoViewIfNeeded
  • refs() 3×N 次串行往返 + RemoteObject 泄漏 —— 改并发 + 一条 Runtime.evaluate,同页实测 355ms → 116ms(3.1×),且不再产生 objectId
  • 异常分支缺 kind —— 最需要「该不该重试」信号的分支反而没有
  • 类型检查口径 —— strict 实测 2211 error,改挂 standard 并加 CI 门禁,让标准与现实一致
  • site_noteshelpers 循环导入、判空 x==0 误判等

新增

ensure_tab(url) 复用优先的导航,不用记 reuse=True
refs() / click_ref(ref) backendNodeId 稳定句柄,DOM 小变化后仍命中同一元素
wait_for_download() 等下载完成 → {url, filename, bytes}
click(loc, tab=id) 跨标签点击;指名却没 attach 会报错而不是悄悄打到活动标签

已知限制(新增两条说明)

  • 下载目录改不了。 Browser.setDownloadBehavior-32601)与已废弃的 Page.setDownloadBehavior-32000 Cannot not access browser-level commands)都是 browser-level 命令,chrome.debugger 的 tab attach 下一律被拒。请在 Chrome 自己的设置里改。
  • 16 个 helper 收 tab=id,其余 37 个恒跟随活动标签;仍不做并行会话。

完整对比: v0.1.2...v0.2.0