diff --git a/docs/client-configuration.md b/docs/client-configuration.md index 5123a4efac..3461bd6855 100644 --- a/docs/client-configuration.md +++ b/docs/client-configuration.md @@ -283,8 +283,9 @@ patterns. A provider being unavailable does not discard its selected paths; doctor reports its readiness separately. Explicit selections override discovered defaults, including when setup runs again with a changed selection. Unrelated environment variables, process ownership tokens and one-shot target paths are not -copied. Existing client environment overrides remain intact unless setup supplies -the same key. +copied. For an explicitly configured startup target, see the +[initial-target settings](mcp-contracts.md#initial-target-at-startup). Existing +client environment overrides remain intact unless setup supplies the same key. You can edit `startupTimeoutMs` and `toolTimeoutMs` there; doctor keeps positive caller-selected values aligned and reports a non-blocking advisory when a tool timeout is shorter than the known provider allowance. diff --git a/docs/installation.md b/docs/installation.md index fcf661da4c..2b0ab76286 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -928,7 +928,12 @@ selected only when it is the arm64 family's only candidate. REA checks the entire source's SHA-256 while copying the slice; source identity and reported offsets still refer to the original container. Any other ambiguous architecture subtype requires an explicitly extracted thin image; REA does not guess. -Configured loader arguments remain explicit overrides. +Set `HOPPER_LOADER_ARGS_JSON` in REA's launch environment to a JSON array of +strings to override the derived Hopper loader arguments, for example +`["-l","Mach-O"]`. Empty string elements are preserved; NUL bytes are not +accepted. An omitted setting or empty array uses the derived arguments. `rea +setup` forwards an explicitly selected setting to supported registrations; +restart the MCP server to apply a change. These arguments are Hopper-specific. FAT64 is distinct from the CPU architecture: FAT32 containers can contain 64-bit executable images. This preparation avoids the Raw Binary loader dialog observed with native FAT64 loading on Hopper 6.1.0-demo. diff --git a/docs/mcp-contracts.md b/docs/mcp-contracts.md index d143409fb3..4b5dd9e09b 100644 --- a/docs/mcp-contracts.md +++ b/docs/mcp-contracts.md @@ -800,6 +800,22 @@ inspection fails or is cancelled before a provider client exists. If no client remains, no provider run or health observation is available; follow the cleanup error's reported resources. +## Initial target at startup + +MCP normally starts without a target; use `open_binary` to select one during the +session. To open a target before serving MCP, set `HOPPER_TARGET_PATH` to the +selected path in REA's launch environment. `HOPPER_TARGET_KIND` accepts +`executable` (the default) or `database`. Despite the names, these are initial +session settings; the configured provider still determines how the target is +opened. If the initial open fails, REA reports the failure and exits with code 1 +without serving MCP. Shutdown during startup cancels and cleans up the open as +described below. + +The source-checkout helper `node scripts/print-mcp-config.mjs /path/to/target` +prints a registration containing these settings; `--kind database` selects the +database kind. The helper is not part of the installed npm package. `rea setup` +does not copy these one-shot target settings into generated registrations. + ## Transports The eager stdio runtime owns SIGINT, SIGTERM and stdin EOF before opening an