Skip to content

Warn at config load when an engine bin is not resolvable — PATH problems currently surface mid-run #43

Description

@mlava

Symptom

Engine bin resolution depends on whatever PATH launched ringer. A binary that works interactively (e.g. opencode in ~/.local/bin) can be invisible to ringer launched from a different context, and the same manifest then works or 127s based on invisible state. Hit twice in two days in the field (2026-07-13/14) — the second time because the fix lived in the operator's shell, not anywhere durable.

preflight_engine_bins catches the direct case at run start (and #36 adds a circuit breaker for the wrapper-script case it can't see), but the earliest, cheapest signal is config load itself.

Proposed fix

  1. When the config loader resolves an [engines.<name>] block whose bin is a bare name, warn immediately if shutil.which() can't resolve it — in lint, doctor-style output, and at run startup — printing the PATH searched and the config key to fix.
  2. Optional: a per-engine path_prepend key so an engine's PATH requirement lives in config (durable, versioned) instead of the launching shell.

Size: S.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions