Development
# Run Go unit testsgo test ./...
# Run Go E2E testsgo test ./tests/e2e/...
# Lint and format TypeScript client and scriptsbun lint
# Type-check TypeScript client and scriptsbun typecheck
# Full check (lint + typecheck + tests + compile)bun check
# Build / compile binariesbun compileDevelopment HTTP Proxy
Section titled “Development HTTP Proxy”Set DEV_PROXY to a port to run a command through the built-in HTTP caching proxy, so repeated installs against GitHub and other rate-limited APIs are answered locally:
# Run CLI commands through the proxyDEV_PROXY=3128 go run ./cmd/dotfiles --config test-project/dotfiles.config.ts tool install batThe CLI starts the proxy on 127.0.0.1:<port> for the duration of the command and stops it on exit. While it runs, every outbound request of the installers (release API lookups and asset downloads for github-release, gitea-release, cargo, dmg, pkg, curl-tar, curl-binary, curl-script), of dotfiles self upgrade, and of the dashboard’s README fetch goes through it. Each request is logged on stderr as [MISS] (fetched from the origin) or [HIT] (served from the cache).
- Every 2xx and 3xx response is cached for 24 hours, regardless of the origin’s cache headers; error responses are not cached.
- The cache lives in
.tmp/http-proxy-cacheunder the working directory. Delete that directory to clear it. DEV_PROXYmust be an integer between 1 and 65535 and the port must be free; otherwise the command fails immediately rather than running without the proxy.- The installers’ own caches under
.generated/cacheare checked before any request is made, so a repeated install can complete without reaching the proxy at all;install --forcebypasses the release-metadata cache.
DEV_PROXY is the only way to enable the proxy; there is no proxy key in dotfiles.config.ts.