Skip to content

[Bug] tabbit-playwright-cli.exe: INVALID_ENDPOINT_PATH on Windows (domestic 1.9.22.0) — CLI can never locate the LocalAgent endpoint #5

Description

@GameKingdomNatives

Plugin: Tabbit-Browser/dsh-plugin (b0438aa, master) Environment: Windows (NT 10.0.26200), Tabbit Browser 1.9.22.0 (domestic stable, installed both to D:\ and to default %LOCALAPPDATA% — same result), DeepSeek Harness web profile

Symptom
Every tabbit-cli nodejs --task ... invocation exits 64 with:

{"error":{"code":"INVALID_ENDPOINT_PATH","message":"Tabbit endpoint metadata path is invalid","name":"TypeError"}}
The Browser Runtime Service is healthy: %LOCALAPPDATA%\Tabbit Browser\User Data\LocalAgent\endpoint.json exists, both named pipes (tabbit-public-* and tabbit-runtime-*) exist and accept connections, and the endpoint is refreshed each launch with a matching live browserPid.

What I verified (exhaustive)
Browser restart — no change. The main browser process cmdline is launched by the installer as "...\Tabbit Browser.exe" --from-installer and carries no --user-data-dir flag (only the crashpad child has it).
Clean controlled launch — killed all instances; launched the ONLY instance with an explicit --user-data-dir="C:\Users\27194\AppData\Local\Tabbit Browser\User Data"; verified the main process cmdline carries the flag and endpoint.json was rewritten with browserPid = that process. CLI still returns INVALID_ENDPOINT_PATH. → The CLI does not read the browser process command line.
CLI flags — --endpoint= is rejected as INVALID_ARGUMENTS (unknown option) in both global and per-command positions; --user-data-dir=

is accepted but produces the identical error for every value tested, including a nonexistent path (so it does not drive endpoint resolution); --browser= likewise.
Layout probes — copied endpoint.json (and phase-0 marker .tabbit-playwright-phase0-state-root, and a CLI copy) into every plausible default layout:
%LOCALAPPDATA%\Tabbit\LocalAgent\endpoint.json (+ bin\tabbit-cli.exe)
%LOCALAPPDATA%\Tabbit\User Data\LocalAgent\endpoint.json (+ Runtime marker)
%LOCALAPPDATA%\TabbitBrowser{LocalAgent,User Data,UserData}\LocalAgent\endpoint.json
%APPDATA%\Tabbit[ Browser]\LocalAgent\endpoint.json
%LOCALAPPDATA%\Tabbit Browser\LocalAgent\endpoint.json All produce the identical INVALID_ENDPOINT_PATH.
Launcher (tabbit-playwright-launcher.exe nodejs --task ...) exits 69 silently.
Multi-instance vs single-instance — both fail.
cwd variations (LocalAgent dir, User Data dir, install dir, TabbitDance) — all fail.
Reinstall to default location (%LOCALAPPDATA%\Tabbit Browser\Application, 1.9.22.0, official installer from tabbit.com/api/v0/upgrade/installer) — the documented launcher %LOCALAPPDATA%\Tabbit\LocalAgent\bin\tabbit-cli.exe is never materialized, and the failure persists.
Binary string inspection shows the CLI contains --endpoint=, --browser=, --user-data-dir=kind, LocalAgent, endpoint.json, Cannot resolve Tabbit Browser executable, Tabbit user data directory is invalid, but no env-var override and no path template that matches this machine.
Root-cause hypothesis
The CLI's endpoint discovery is incompatible with how the domestic Windows build publishes its LocalAgent endpoint. On macOS the plugin works (demo video). On Windows the endpoint lives under %LOCALAPPDATA%<AppName>\User Data\LocalAgent\endpoint.json, but the CLI cannot derive that path from any available signal (process cmdline lacks the flag, no registry value, no env var, no default-layout match). Please publish the documented Windows launcher (%LOCALAPPDATA%\Tabbit\LocalAgent\bin\tabbit-cli.exe) as part of the browser install/start, or add a working --endpoint= override.

Secondary issue (same repo)
downloadInstaller() in installer.js uses the global fetch with the default UA; tabbit.com/api/v0/upgrade/installer returns HTTP 403 without a browser User-Agent. Adding User-Agent: Mozilla/5.0 ... makes it return 200. So the plugin's background-installer path fails on this machine too.

Repro notes
Launcher: %LOCALAPPDATA%\Tabbit Browser\Application\1.9.22.0\TabbitDance\tabbit-playwright-cli.exe
Endpoint: %LOCALAPPDATA%\Tabbit Browser\User Data\LocalAgent\endpoint.json → {"transport":"named_pipe","kind":"browser-runtime-service","version":2,...}
Pipe connect check: \.\pipe\tabbit-public-- connects fine.

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