The AI scan (crates/ai) needs to read OpenCode's settings, and ai can't depend on setup (same layer). The parser has no I/O and no workspace dependencies, so it moves to formats unchanged; setup uses it from there.
engines_list, doctor, capabilities and Requires::Engine share Settings::engine_path, which honours the Ghidra folder setting, and locate() finds an engine unpacked into a versioned sub-folder.
* Explain failed agent runs, keep a log to open, and stop offering git servers as computers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Fix a lock-up: the build's agent setup took the session lock twice in one statement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
A native, pure-Rust app that shows anyone how a piece of software works, with
evidence-backed answers, then helps them rebuild it. It ships a desktop app, a
CLI and an MCP server, all driven by one engine.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>