openclaw/src/config
Jefferson Warrior c851bdd47a feat: add Tailscale binary detection, IP binding modes, and health probe password fix
This PR includes three main improvements:

1. Tailscale Binary Detection with Fallback Strategies
   - Added findTailscaleBinary() with multi-strategy detection:
     * PATH lookup via 'which' command
     * Known macOS app path (/Applications/Tailscale.app/Contents/MacOS/Tailscale)
     * find /Applications for Tailscale.app
     * locate database lookup
   - Added getTailscaleBinary() with caching
   - Updated all Tailscale operations to use detected binary
   - Added TUI warning when Tailscale binary not found for serve/funnel modes

2. Custom Gateway IP Binding with Fallback
   - New bind mode "custom" allowing user-specified IP with fallback to 0.0.0.0
   - Removed "tailnet" mode (folded into "auto")
   - All modes now support graceful fallback: custom (if fail → 0.0.0.0), loopback (127.0.0.1 → 0.0.0.0), auto (tailnet → 0.0.0.0), lan (0.0.0.0)
   - Added customBindHost config option for custom bind mode
   - Added canBindTo() helper to test IP availability before binding
   - Updated configure and onboarding wizards with new bind mode options

3. Health Probe Password Auth Fix
   - Gateway probe now tries both new and old passwords
   - Fixes issue where password change fails health check if gateway hasn't restarted yet
   - Uses nextConfig password first, falls back to baseConfig password if needed

Files changed:
- src/infra/tailscale.ts: Binary detection + caching
- src/gateway/net.ts: IP binding with fallback logic
- src/config/types.ts: BridgeBindMode type + customBindHost field
- src/commands/configure.ts: Health probe dual-password try + Tailscale detection warning + bind mode UI
- src/wizard/onboarding.ts: Tailscale detection warning + bind mode UI
- src/gateway/server.ts: Use new resolveGatewayBindHost
- src/gateway/call.ts: Updated preferTailnet logic (removed "tailnet" mode)
- src/commands/onboard-types.ts: Updated GatewayBind type
- src/commands/onboard-helpers.ts: resolveControlUiLinks updated
- src/cli/*.ts: Updated bind mode casts
- src/gateway/call.test.ts: Removed "tailnet" mode test
2026-01-13 05:20:02 +00:00
..
agent-dirs.ts feat: wire multi-agent config and routing 2026-01-09 12:48:42 +00:00
cache-utils.ts fix: persist topic session files 2026-01-07 22:56:50 +00:00
commands.ts docs: clarify sandbox bind mounts (#790) 2026-01-12 22:06:35 +00:00
config-paths.test.ts feat: improve gateway services and auto-reply commands 2026-01-11 02:27:16 +01:00
config-paths.ts style: fix biome formatting 2026-01-10 02:11:43 +00:00
config.test.ts feat: add Tailscale binary detection, IP binding modes, and health probe password fix 2026-01-13 05:20:02 +00:00
config.ts feat: add /debug runtime overrides 2026-01-09 16:55:16 +01:00
defaults.ts feat: wire multi-agent config and routing 2026-01-09 12:48:42 +00:00
group-policy.ts Move provider to a plugin-architecture (#661) 2026-01-11 11:45:25 +00:00
includes.test.ts test: fix includes tests on windows 2026-01-12 00:39:14 +00:00
includes.ts fix: guard config includes (#731) (thanks @pasogott) 2026-01-12 00:12:03 +00:00
io.ts Add Synthetic provider support 2026-01-13 03:36:53 +00:00
legacy-migrate.ts chore: rename project to clawdbot 2026-01-04 14:38:51 +00:00
legacy.ts feat: add Tailscale binary detection, IP binding modes, and health probe password fix 2026-01-13 05:20:02 +00:00
merge-config.ts style: lint cleanup 2026-01-08 08:40:02 +01:00
model-alias-defaults.test.ts feat: wire multi-agent config and routing 2026-01-09 12:48:42 +00:00
normalize-paths.test.ts test: add normalizeConfigPaths unit test 2026-01-12 01:55:55 +00:00
normalize-paths.ts fix: normalize ~ in path config 2026-01-12 01:53:42 +00:00
paths.test.ts fix(ci): stabilize windows tests 2026-01-08 02:44:19 +00:00
paths.ts fix: normalize ~ in path config 2026-01-12 01:53:42 +00:00
port-defaults.ts feat: add --dev/--profile CLI profiles 2026-01-05 01:27:13 +01:00
provider-capabilities.test.ts feat(telegram): inline keyboard buttons (#491) 2026-01-09 20:47:03 +01:00
provider-capabilities.ts Move provider to a plugin-architecture (#661) 2026-01-11 11:45:25 +00:00
runtime-overrides.test.ts feat: improve gateway services and auto-reply commands 2026-01-11 02:27:16 +01:00
runtime-overrides.ts style: fix biome formatting 2026-01-10 02:11:43 +00:00
schema.test.ts test: plugin install + docker e2e 2026-01-12 01:16:42 +00:00
schema.ts feat: add configurable bootstrap truncation 2026-01-13 04:27:03 +00:00
sessions.cache.test.ts fix: harden session caching and topic transcripts 2026-01-07 22:51:26 +00:00
sessions.test.ts fix: route subagent transcripts and keep tool action enums (#708) (thanks @xMikeMickelson) 2026-01-11 11:19:38 +00:00
sessions.ts feat: add pre-compaction memory flush 2026-01-12 05:29:18 +00:00
talk.ts refactor: split config module 2026-01-04 07:05:17 +01:00
types.ts feat: add Tailscale binary detection, IP binding modes, and health probe password fix 2026-01-13 05:20:02 +00:00
ui-seam-color.test.ts feat: add ui.seamColor accent 2025-12-30 04:14:36 +01:00
validation.ts feat: wire multi-agent config and routing 2026-01-09 12:48:42 +00:00
zod-schema.ts feat: add configurable bootstrap truncation 2026-01-13 04:27:03 +00:00