Skip to content

[Bug] China-version Tabbit Browser 1.9.22.0: tabbit-playwright-cli cannot discover the Runtime endpoint (INVALID_ENDPOINT_PATH) #7

Description

@GameKingdomNatives

Environment

  • OS: Windows (mainland China network)
  • Tabbit Browser China version 1.9.22.0 (verified with a fresh reinstall)
  • Install path: %LOCALAPPDATA%\Tabbit Browser\Application\1.9.22.0\
  • CLI: ...\TabbitDance\tabbit-playwright-cli.exe (self-identifies as tabbit-cli) + tabbit-playwright-launcher.exe

Symptom

The official CLI cannot discover the Runtime endpoint; every subcommand fails:

> tabbit-playwright-cli.exe nodejs --task connect-probe
{"error":{"code":"INVALID_ENDPOINT_PATH","message":"Tabbit endpoint metadata path is invalid","name":"TypeError"}}

> tabbit-playwright-launcher.exe nodejs --task connect-probe
(silent exit code 69, no output)

Meanwhile the Runtime itself is completely healthy:

  • TabbitDance\node.exe runtime\src\browser-runtime-service.mjs is running
  • the public pipe \\.\pipe\tabbit-public-* exists
  • %LOCALAPPDATA%\Tabbit Browser\User Data\LocalAgent\endpoint.json is valid (address/token/generation all present)
  • Talking to the public pipe directly with the protocol (auth frame {"version":1,"token":...,"generation":...} + request frame {"op":"ping"}) returns {"ok":true,"value":{"running":true,...}} — the server side is fully functional; the failure is in the CLI client's endpoint discovery.

Hypotheses already ruled out

  1. Fresh reinstall of 1.9.22.0 → still fails
  2. --endpoint=<path> / --browser=<path> / --user-data-dir=<path> switches → INVALID_ARGUMENTS when provided (these switches do exist in the binary)
  3. Env vars TABBIT_ENDPOINT_PATH / TABBIT_ENDPOINT / TABBIT_USER_DATA_DIR → no effect
  4. A copy of endpoint.json placed at %LOCALAPPDATA%\Tabbit\LocalAgent\endpoint.json → no effect
  5. A full junction layout %LOCALAPPDATA%\Tabbit\Application + %LOCALAPPDATA%\Tabbit\User Data pointing at the real directories → no effect
  6. Junction %LOCALAPPDATA%\TabbitBrowser\Application → no effect
  7. Changing the working directory → no effect

Clues from the binary (for maintainers)

The CLI is a Chromium-based binary. It contains this error-code chain:

  • BROWSER_NOT_FOUND: "Cannot resolve Tabbit Browser executable"
  • INVALID_USER_DATA_DIR: "Tabbit user data directory is invalid"
  • INVALID_ENDPOINT_PATH: "Tabbit endpoint metadata path is invalid"

Also present in the binary: LocalAgent, endpoint.json, --endpoint=, --browser=.

The CLI appears to resolve a chain of "browser executable → user data directory → endpoint.json", but the China version's actual layout (%LOCALAPPDATA%\Tabbit Browser\User Data\LocalAgent\endpoint.json) does not match its resolution logic; the --endpoint= switch, which should bypass discovery, is rejected by the argument parser.

Additional findings (dsh-plugin side, FYI)

  • detectCli hardcodes the international path %LOCALAPPDATA%\Tabbit\LocalAgent\bin\tabbit-cli.exe, which does not exist on a China-version install → the environment check misreports restart-required
  • The plugin's downloader requests tabbit.com/api/v0/upgrade/installer without a browser User-Agent → blocked by the WAF with HTTP 403; with a browser User-Agent the same request returns 200 (an 11 MB installer downloads fine)

Expected behavior

  1. The China-version CLI should discover %LOCALAPPDATA%\Tabbit Browser\User Data\LocalAgent\endpoint.json (or derive it from its own executable location)
  2. The --endpoint= switch should work (currently rejected)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions