I read this as a read-only H4/runtime investigation - I’ll trace configuration resolution, reproduce it with the specified environment and exact installed bytes without service/network/profile mutation, then report the split-brain finding, redacted locations, minimal fix, and regression seam.


The installed Hermes wheel matches the current gateway source for the configuration path, while `checkin_cli` is independently editable-bound into the live profile workspace. I’m now reproducing the constructor-level resolution under the unit’s exact cwd/home and tracing whether that mixed import topology changes the result.


I read this as a read-only H4/runtime investigation - I reproduced the exact service context and traced the failure without starting services, networking, edits, or profile mutation.

## Verdict

**H4 is refuted. The editable `checkin_cli` does not currently cause split-brain.**

The failure is the reset-baseline shape: `<PROFILE>/customers/registry.json` is absent. The gateway resolves the correct root and configured path, then rejects it because `_configured_nutrition_registry()` requires the registry to already be a regular file.

The emitted error, `configured registry path is outside the profile authority`, is misleading: the failing condition is `not registry_path.is_file()`, not root escape.

## Exact runtime reproduction

Redacted runtime:

- Working directory: `<PROFILE>`
- `HERMES_HOME`: `<PROFILE>`
- Service Python: `<REPO>/.venv/bin/python`
- Hermes modules: `<SITE>/gateway/...`
- Editable package: `<PROFILE>/workspace/checkin_cli/checkin_cli/...`
- Config: `<PROFILE>/config.yaml`, SHA-256 `f93106b16643227e2ef9dec67a5bbd497e1d353e779da62287898a087071af87`

Current resolved configuration:

- Telegram enabled: `true`
- Nutrition coaching enabled: `true`
- Registry path: `customers/registry.json`
- Operator card route: present and valid
- Adaptive nutrition enabled: `true`
- Review operator: present and valid
- Delivery enabled: `false`
- Constructor configuration errors: none

Resolution then fails because:

- `<PROFILE>/customers/registry.json`: **absent**
- `<PROFILE>/registry.json`: **absent**
- Resolved candidate remains `<PROFILE>/customers/registry.json`
- Root is correctly `<PROFILE>`

## Byte provenance

Installed Hermes files exactly match candidate wheel `af4a9d0...`:

- `gateway/config.py`: `a8191eed...`
- `gateway/platforms/telegram.py`: `b41060de...`
- `gateway/platforms/nutrition_coaching_config.py`: `849791bc...`
- `gateway/platforms/nutrition_coaching.py`: `07f868ad...`
- `hermes_cli/config.py`: `2bcecdc0...`

The editable profile package also matches its pinned package wheel exactly:

- 45/45 `checkin_cli` members matched
- 0 mismatches
- 0 missing
- Package wheel SHA-256: `e568d1f6...`

Thus the import mechanism is mixed, but the executable bytes are coherent.

## Stack location

Installed stack:

1. `telegram.py:624` — `NutritionCoachingConfig.from_extra(...)`
2. `nutrition_coaching_config.py:78` — configuration parses successfully
3. `telegram.py:4678` — `_get_nutrition_coaching()` requests registry resolution
4. `telegram.py:4426` — `_configured_nutrition_registry(...)`
5. `telegram.py:4491` — raises the misleading authority error
6. `telegram.py:4767` — catches and logs initialization failure

## Minimal safe fix

Change the archive-first reset terminal baseline to **retain, or atomically install, the authenticated canonical empty `customers/registry.json`** before gateway startup.

Do not loosen gateway containment checks or create authority from the gateway read/start path. The retained file should remain a regular, non-symlink, private file with the canonical empty-registry schema.

## Failing regression seam

Add an integration regression around the reset output:

1. Run the reset against a disposable populated profile.
2. Assert terminal baseline contains canonical empty `customers/registry.json` with private mode and zero customers.
3. Load the real current config under that profile’s `HERMES_HOME`.
4. Instantiate `TelegramAdapter`.
5. Assert `_configured_nutrition_registry()` succeeds and `load_committed_customer_registry()` returns the same path with zero customers.

That seam fails on the present reset baseline because the registry is absent.

Post-investigation hashes remained unchanged, and the registry remained absent.