internal/tailcat/UPSTREAM.md
This directory vendors the networking core of
tailscale/tailcat at commit
c04c5afee401df40e620db8ae108e957ae07bcd9 (2026-08-27).
Imported upstream files:
LICENSEdisco.gopickregion.gopickregion_js.gotailcat.gowire.goexport_test.gotailcat_test.gowire_test.goThe CLI, SSH support, README embedding, web demo, image, Nix files, module files, and repository configuration are intentionally omitted. Croc uses the Tailcat networking and wire layers directly and does not expose Tailcat's standalone wire protocol.
tailcat.go: Server.StartContext is a minimal variant of Server.Start
that lets croc's coordinated 30-second setup deadline cancel DERP-map
discovery. Start retains upstream behavior by calling it with a background
context.croc_status.go: adds a client status accessor for direct/DERP path
transitions and final byte reporting.All other imported source and test files are unchanged. SOURCE_HASHES.sha256
records SHA-256 hashes of the exact upstream files before the local patch.
The resulting croc-patched tailcat.go has SHA-256
b3c60f2c0c89342d38e2d4b21af596c7867959551ca989fa05ccb7d16199c255.
Croc deliberately uses stable tailscale.com v1.102.3 instead of Tailcat's
pre-release Tailscale pseudo-version. The complete imported upstream test suite
passes with that stable release. The gVisor version remains Tailcat's pinned
v0.0.0-20260224225140-573d5e7127a8.
LICENSE.SOURCE_HASHES.sha256 from the unmodified upstream files.Server.StartContext change and keep
croc-only additions in croc_*.go where possible.go test ./internal/tailcat ./src/tailcattransport, the focused race
tests, go test ./..., and croc's release cross-build matrix.