integration: treat empty provider and HOME variables as unset (#67)

* integration: treat empty provider and HOME variables as unset

A pane launched with CODEX_HOME= (or CLAUDE_CONFIG_DIR=, OPENCODE_CONFIG_DIR=)
had its hook root resolved to the launch directory, so setup wrote
<project>/hooks.json or <project>/settings.json instead of the provider's
default file. Empty HOME/XDG_CONFIG_HOME in the server's own environment
likewise produced relative roots. Empty now means unset, matching paths.rs.

* server: do not retain empty provider dirs in config_env

pane.spawn with CODEX_HOME= (or CLAUDE_CONFIG_DIR=, OPENCODE_CONFIG_DIR=)
stored the launch cwd as that variable in AgentInfo.config_env, so
pane.resume relaunched with CODEX_HOME=<cwd> and wrote hooks.json into the
project again. Empty values now mean unset, as docs/02-data-model.md
already says (config_env keeps only explicit paths).

* cli: treat an empty HOME as unset

HOME= signaltty skill status resolved skill dirs relative to the cwd.
An empty HOME now gives the existing 'HOME is not set (use --home)' error.

* integration: describe what with_overrides keeps for empty values

An empty override keeps the root Hooks already has (the server's own
override if set, else the provider default); the child still sees the
empty value. The old comment said it kept 'the defaults'.

---------

Co-authored-by: Lucenx9 <185146821+Lucenx9@users.noreply.github.com>
fc530c7674Simone committed on 10/10/2026, 1:23:37 AM· committed by GitHubparentf3b549b
6 files changedLine totals unavailable