Skip to content

refactor: rename runtime env vars to CUTTLE_*; drop cuttleserve shim#6

Open
tenequm wants to merge 1 commit into
mainfrom
refactor/scrub-cloakserve-naming
Open

refactor: rename runtime env vars to CUTTLE_*; drop cuttleserve shim#6
tenequm wants to merge 1 commit into
mainfrom
refactor/scrub-cloakserve-naming

Conversation

@tenequm

@tenequm tenequm commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What

Two cloakserve/cloakbrowser leftovers survived the earlier attribution scrub because that pass targeted branding text, not functional identifiers. Both are self-inflicted and fully in-repo, so this cleans them up.

1. Env-var contract -> clean CUTTLE_* namespace

The names were a mechanical s/cloak/cuttle/ that kept the meaningless serve infix, and one that was never renamed at all (CLOAKSERVE_IDLE_TIMEOUT):

Before After
CUTTLESERVE_PROXY CUTTLE_PROXY
CUTTLESERVE_HOST CUTTLE_HOST
CUTTLESERVE_EPHEMERAL CUTTLE_EPHEMERAL
CLOAKSERVE_IDLE_TIMEOUT CUTTLE_IDLE_TIMEOUT
CLOAKBROWSER_BINARY_PATH CUTTLE_BROWSER_BINARY

2. Drop the cuttleserve shim

The Dockerfile carried a shim script (exec cuttle serve "$@") that existed only because the host CLI hardcoded serveCommand = "cuttleserve" as the container command. The CLI now invokes cuttle serve directly and the image CMD is cuttle serve, so the shim is gone.

Blast radius

Every producer/consumer is inside this repo (host CLI, serve daemon, fingerprint pkg, Dockerfile, helm chart, docs). The image is version-pinned by the CLI default, so a new image only ever pairs with a matching CLI. No golden regen needed.

Verification

  • just check - 176 tests pass, lint + fmt clean
  • just build-image (cuttle:local) - CMD baked as ["cuttle","serve","--headless=false"], CUTTLE_BROWSER_BINARY=/opt/clark/chrome
  • Live container (amd64 under emulation): cuttle up / status / down lifecycle green; CDP up (Chrome/148.0.7778.96, clark engine via the new env var)
  • CDP smoke harness: 4/4 - per-seed fingerprint isolation, coherent stealth (webdriver=false, Win32, distinct per-seed WebGL/canvas)
  • Confirmed the version-skew boundary is honest: an old (v0.4.0) CLI against the new shim-less image fails fast with cuttleserve: not found, exactly as the version pin intends.

The env-var contract and the container entrypoint carried leftover names
from the upstream cloakserve/cloakbrowser project (a mechanical s/cloak/
cuttle/ that kept the meaningless 'serve' infix, plus one CLOAKSERVE_ that
was never renamed). All producers and consumers are in-repo, so rename to a
clean CUTTLE_* namespace:

  CUTTLESERVE_PROXY      -> CUTTLE_PROXY
  CUTTLESERVE_HOST       -> CUTTLE_HOST
  CUTTLESERVE_EPHEMERAL  -> CUTTLE_EPHEMERAL
  CLOAKSERVE_IDLE_TIMEOUT-> CUTTLE_IDLE_TIMEOUT
  CLOAKBROWSER_BINARY_PATH -> CUTTLE_BROWSER_BINARY

Also drop the cuttleserve compatibility shim: the host CLI now invokes
'cuttle serve' directly and the image CMD is 'cuttle serve', removing the
self-referential shim script the Dockerfile carried only to satisfy the
CLI's own hardcoded 'cuttleserve' command.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant