Skip to content

macOS 下 browser 模式一直报 "[timeout] Daemon did not become ready within 10s",已安装扩展但 daemon/extension 都未就绪 #5

@xluos

Description

@xluos

问题描述

在 macOS 上,opencli-rs CLI 本体安装成功,公开站点/非浏览器模式可以用,但所有需要浏览器链路的命令都会报:

[timeout] Daemon did not become ready within 10s

我已经安装了 Chrome 扩展,但 opencli-rs doctor 仍然显示:

opencli-rs diagnostics

  ✓ Chrome/Chromium
  ✗ Daemon running
  ✗ Chrome extension connected

所以目前看起来不是 CLI 没装好,而是浏览器链路没有建立成功。


运行环境

  • 系统:macOS
  • 架构:arm64
  • opencli-rs 版本:0.1.1
  • 安装方式:安装脚本 / GitHub release 二进制
  • Chrome 扩展:已从 release 下载 opencli-rs-chrome-extension.zip 并手动安装

复现步骤

1. 安装 CLI

curl -fsSL https://raw.githubusercontent.com/nashsu/opencli-rs/main/scripts/install.sh | sh

由于 /usr/local/bin 需要 sudo,我实际是手动安装到 ~/.local/bin/opencli-rs

2. 安装 Chrome 扩展

按照 README 操作:

  1. 下载 opencli-rs-chrome-extension.zip
  2. 解压
  3. 打开 chrome://extensions
  4. 开启开发者模式
  5. 选择“加载已解压的扩展程序”

3. 运行诊断

opencli-rs doctor

输出:

opencli-rs diagnostics

  ✓ Chrome/Chromium
  ✗ Daemon running
  ✗ Chrome extension connected

4. 执行浏览器模式命令

例如:

opencli-rs twitter timeline --format json

返回:

[timeout] Daemon did not become ready within 10s

期望结果

执行 browser 模式命令时,daemon 应自动就绪,扩展应连上,命令正常返回结果。


实际结果

  • CLI 主进程会运行约 10 秒
  • 但 daemon 没有 ready
  • 命令超时报错
  • 没有返回任何浏览器数据

已排查内容

1. 不是端口冲突

我检查过 19824 是否被占用:

lsof -nP -iTCP:19824
netstat -anv | grep 19824

结果都是空,没有任何进程监听或占用这个端口。

所以目前看起来不像是端口冲突

2. 观察启动过程

我在执行下面命令时持续观察:

OPENCLI_VERBOSE=1 opencli-rs twitter timeline --format json

现象是:

  • opencli-rs 进程会存活大约 10 秒
  • 但在这 10 秒里,始终没有看到任何进程监听 19824
  • 最后退出并报:
[timeout] Daemon did not become ready within 10s

这更像是:

  1. daemon 根本没有成功启动监听
  2. 或者 “daemon ready” 依赖扩展握手,而扩展没有连上

一个可疑线索

我检查了一下扩展包内容,发现扩展默认似乎使用的是 localhost

const DAEMON_HOST = "localhost";

而 CLI/二进制里又能看到 127.0.0.1 相关字符串。

在 macOS 上,localhost / IPv4 / IPv6 有时会导致连接行为不一致,所以这里怀疑可能存在:

  • daemon 绑定地址
  • 扩展连接地址
  • CLI 期待地址

三者之间不一致的问题。


想确认的问题

  1. 安装扩展后,除了 “加载已解压扩展” 之外,是否还需要额外步骤?
  2. browser 模式下 daemon 是否应该由 CLI 自动拉起,还是需要手动启动?
  3. 扩展是否固定连接 localhost?能否改成 127.0.0.1
  4. 是否有推荐的方式查看 daemon 与扩展之间的握手日志?
  5. 在 macOS 上,这种现象是否已知?有没有推荐排查方式?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions