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.
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)
is accepted but produces the identical error for every value tested, including a nonexistent path (so it does not drive endpoint resolution); --browser= likewise.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=
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.