Follow-up: scripts/build.sh requires outbound network for a full browse build
Summary
browse/scripts/build-node-server.sh only produces server-node.mjs (the Node.js
server bundle). The runnable browse executable is a compiled artifact produced by
the root scripts/build.sh via bun build --compile. That script also runs
prep steps that need outbound network access:
vendor:xterm (npm install of the xterm dependency)
gen:skill-docs (generates skill documentation, fetches remote sources)
Impact
On a machine with no outbound network (or a flaky registry), a bare
rm -rf browse/dist && bash browse/scripts/build-node-server.sh regenerates the
server bundle but leaves no browse CLI binary. Running ./browse/dist/browse
then fails with a cryptic ENOENT instead of an actionable message.
PR #2260 added a Step-5 guard to build-node-server.sh that detects the missing
binary and prints remediation. This issue tracks the root cause — making the
network-dependent steps resilient or clearly documented.
Suggested fixes
- Document the network requirement in
scripts/build.sh header / README.
- Make
vendor:xterm and gen:skill-docs skippable via an env var
(e.g. GSTACK_OFFLINE=1) so the compiled binary can still be produced from a
cached vendor tree.
- Have
build-node-server.sh optionally invoke the compile step itself when the
binary is absent and a suitable toolchain is present.
Verification note
The full pipeline (server start + Chromium navigation) was confirmed working via a
loopback http://127.0.0.1:8099/ test; external-URL navigation is only blocked by
sandbox DNS policy, not by this issue.
Follow-up:
scripts/build.shrequires outbound network for a fullbrowsebuildSummary
browse/scripts/build-node-server.shonly producesserver-node.mjs(the Node.jsserver bundle). The runnable
browseexecutable is a compiled artifact produced bythe root
scripts/build.shviabun build --compile. That script also runsprep steps that need outbound network access:
vendor:xterm(npm install of the xterm dependency)gen:skill-docs(generates skill documentation, fetches remote sources)Impact
On a machine with no outbound network (or a flaky registry), a bare
rm -rf browse/dist && bash browse/scripts/build-node-server.shregenerates theserver bundle but leaves no
browseCLI binary. Running./browse/dist/browsethen fails with a cryptic
ENOENTinstead of an actionable message.PR #2260 added a Step-5 guard to
build-node-server.shthat detects the missingbinary and prints remediation. This issue tracks the root cause — making the
network-dependent steps resilient or clearly documented.
Suggested fixes
scripts/build.shheader / README.vendor:xtermandgen:skill-docsskippable via an env var(e.g.
GSTACK_OFFLINE=1) so the compiled binary can still be produced from acached vendor tree.
build-node-server.shoptionally invoke the compile step itself when thebinary is absent and a suitable toolchain is present.
Verification note
The full pipeline (server start + Chromium navigation) was confirmed working via a
loopback
http://127.0.0.1:8099/test; external-URL navigation is only blocked bysandbox DNS policy, not by this issue.