Qoder is a fully supported provider, but a GUI-launched daemon could never
detect it. Two gaps, both in agent discovery:
- probeAgentCLIs called resolveAgentExecutablePath directly for qoder instead
of going through the shared probe() helper, so qoder was the only provider
with no login-shell fallback. A daemon started from Finder/Launchpad (the
apple.dmg desktop build) does not inherit the interactive shell PATH, so a
qodercli in an npm global prefix or any ~/.zshrc-added dir stayed invisible
no matter how often the daemon restarted.
- "qodercli" was missing from defaultAgentCommandNames, which is the only list
cachedShellResolvedAgents asks the login shell about. Even with the fallback
wired up, the resolver would not have looked for it.
TestDefaultAgentCommandNamesCoversAllProbes was supposed to catch exactly this,
but it parsed config.go for probe() calls and silently became a no-op when
probeAgentCLIs moved to agents_probe.go. It now parses agents_probe.go and
asserts it found at least one probe() per default command, so a future move
fails loudly instead of passing vacuously.
Pinned-path semantics are unchanged: an absolute/relative MULTICA_QODER_PATH
that does not exist stays a hard miss rather than silently resolving a
different binary.
Co-authored-by: Eve <eve@multica-ai.local>
Co-authored-by: multica-agent <github@multica.ai>