You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
No toasts, and no functional semantic searching #2
There seems to be some sort of toast support to notify the user when something is awry, but I am not getting any in the TUI.
Searching is enabled in aft.jsonc and onnx is installed in /usr/local/lib, but aft_search is still not available
Is there anymore debugging available? Running opencode through strace, I don't see attempts to access anything "*onnx*" at all, but its possible strace -f didn't follow thru to the aft binary.
ls -1 /usr/local/lib/libonnx* ; echo; \
grep \"experimental ~/.config/opencode/aft.jsonc ; echo; \
pgrep -f aft && echo "AFT IS RUNNING"; echo; \
pgrep -f opencode && echo "OPENCODE IS RUNNING"
/usr/local/lib/libonnxruntime.so
/usr/local/lib/libonnxruntime.so.1
/usr/local/lib/libonnxruntime.so.1.24.4
/usr/local/lib/libonnxruntime_providers_shared.so
"experimental_search_index": true,
"experimental_semantic_search": true,
611718
AFT IS RUNNING
611603
OPENCODE IS RUNNING
I installed the package by just putting it in the plugins stanza of opencode.jsonc, not bunx. Regardless, I waddled through it and got further, but it still non-functional:
opencode's plugin stanza had @latest in the entry for AFT, but it wasn't actually pulling the latest, it was still on 0.9.x -- I had to explicitly tag a version to 0.11.x (doctor wasn't a valid command in 0.9.x)
I did not have bunx; installed via mise, then ran: cd ~/.cache/opencode && bunx @cortexkit/aft-opencode@latest doctor it discovered many issues.
a. Download the binary ONNX tarball from https://github.com/microsoft/onnxruntime/releases/tag/v1.24.4
b. the .so files were not installed properly, sudo ldconfig had to be run after moving them manually into /usr/local/lib
c. the aft cache had to be deleted: -rf ~/.cache/aft/bin/v0.9.1
The aft binary is now crashing (for at least aft_outline and ast_grep_search):
Thinking: The user wants me to use aft_outline on the python/rt_yaml package. Let me do that.
⚙ aft_outline [filePath=python/rt_yaml]
[aft-plugin] Binary crashed (restarts: 0)
It can be run manually:
> cd ~/.cache/opencode
> ./node_modules/@cortexkit/aft-linux-x64/bin/aft
[aft] started, pid 811218
Yes unfortunately opencode caches plugins aggressively. I think the issue is still onxx runtime. If that's the only problem aft_outline should work properly when you disable experimental_semantic_search. Before doing that, can you try this:
This should give us more detail about the crash and also if possible please check doctor output to see where the logs are and paste here the last 50 lines when that crash happens.
This is the same crash as #4 — the ort crate panics at lib.rs:191 when dlopen fails on an incompatible libonnxruntime.so, and v0.11.1's panic = "abort" turns that into a SIGABRT that kills the entire binary (not just semantic search).
Fixed in v0.11.2 (just released). Two layers of protection:
pre_validate_onnx_runtime() — raw dlopen probe catches broken .so files before ort touches them. Semantic search degrades gracefully instead of crashing.
panic = "unwind" in release profile — catch_unwind now works as a safety net.
To update:
# Clear stale plugin cache
rm -rf ~/.cache/opencode/packages/@cortexkit
# Restart OpenCode — it will pull v0.11.2
After restart, all tools (aft_outline, ast_grep_search, etc.) should work even if the ONNX Runtime at /usr/local/lib is incompatible. Semantic search will be disabled with a logged message instead of crashing.
About the ONNX Runtime itself:
Your doctor shows ONNX Runtime found at /usr/local/lib but the binary can't load it. The v0.11.2 doctor now does version-aware checking — run bunx @cortexkit/aft-opencode@latest doctor after updating and it will tell you if the version is incompatible and suggest the fix (usually: remove the old .so and let AFT auto-download v1.24.4).
Also noting: your direct binary test used "project_root" inside "params" but AFT expects project_root at the top level of the JSON object, not nested — that's why it returned missing required param. The plugin handles this translation automatically.
Activity
ualtinok commentedon Apr 10, 2026
Could you run:
bunx @cortexkit/aft-opencode@latest doctoror even better open new issue with, which will include all the needed information:
bunx @cortexkit/aft-opencode@latest doctor --issuedraxxris commentedon Apr 10, 2026
I installed the package by just putting it in the plugins stanza of opencode.jsonc, not bunx. Regardless, I waddled through it and got further, but it still non-functional:
doctorwasn't a valid command in 0.9.x)cd ~/.cache/opencode && bunx @cortexkit/aft-opencode@latest doctorit discovered many issues.a. Download the binary ONNX tarball from https://github.com/microsoft/onnxruntime/releases/tag/v1.24.4
b. the .so files were not installed properly,
sudo ldconfighad to be run after moving them manually into /usr/local/libc. the aft cache had to be deleted:
-rf ~/.cache/aft/bin/v0.9.1The aft binary is now crashing (for at least aft_outline and ast_grep_search):
It can be run manually:
ualtinok commentedon Apr 11, 2026
Yes unfortunately opencode caches plugins aggressively. I think the issue is still onxx runtime. If that's the only problem aft_outline should work properly when you disable experimental_semantic_search. Before doing that, can you try this:
This should give us more detail about the crash and also if possible please check doctor output to see where the logs are and paste here the last 50 lines when that crash happens.
Thanks
draxxris commentedon Apr 12, 2026
First terminal
Second terminal
Third terminal
Fourth terminal
Fifth terminal
ualtinok commentedon Apr 12, 2026
This is the same crash as #4 — the
ortcrate panics atlib.rs:191whendlopenfails on an incompatiblelibonnxruntime.so, and v0.11.1'spanic = "abort"turns that into a SIGABRT that kills the entire binary (not just semantic search).Fixed in v0.11.2 (just released). Two layers of protection:
pre_validate_onnx_runtime()— rawdlopenprobe catches broken.sofiles beforeorttouches them. Semantic search degrades gracefully instead of crashing.panic = "unwind"in release profile —catch_unwindnow works as a safety net.To update:
After restart, all tools (
aft_outline,ast_grep_search, etc.) should work even if the ONNX Runtime at/usr/local/libis incompatible. Semantic search will be disabled with a logged message instead of crashing.About the ONNX Runtime itself:
Your doctor shows
ONNX Runtime found at /usr/local/libbut the binary can't load it. The v0.11.2 doctor now does version-aware checking — runbunx @cortexkit/aft-opencode@latest doctorafter updating and it will tell you if the version is incompatible and suggest the fix (usually: remove the old.soand let AFT auto-download v1.24.4).Also noting: your direct binary test used
"project_root"inside"params"but AFT expectsproject_rootat the top level of the JSON object, not nested — that's why it returnedmissing required param. The plugin handles this translation automatically.fix: switch Linux builds from musl to gnu for dlopen support + fix OR…
fix(lsp): close v0.17.0 audit-3 supply-chain gaps
fix(plugins): Pi bash error guard, apply_patch move rollback, bridge …
fix(bash,imports): permission gate before bg, byte-safe truncate, ses…
fix(format): run auto_format on appendContent edits
fix(format): consolidate glob edit_match onto auto_format pipeline (Bug
fix(aft): require permission on bash parse failure (#2)
feat(doctor): auto-fix ONNX issues + binary cache clear + skip incomp…
fix(bash_background): v0.21.1 audit batch — IO+lock, GC, canonicaliza…
fix(tests): kill watcher-arming + bash-background + mtime races
fix(search): honest interpreted_as on fallback paths + drop hidden le…
fix(inspect,lsp): status-bar honesty — no fabricated zeros, full dele…
bench(codegraph-vs-aft-agent): fix transcript+config harness bugs, ad…
merge: cooperative grep caps + parallel cold index build + ignore-awa…
fix(search): don't falsely report engine_capped on uncapped parallel …
fix(subc): harden SubcTransport client/route lifecycle (audit B-#1..5,#7
fix(subc): close stale-generation + task-id-width holes (round-3 re-a…
fix(subc): close the stale-teardown class by construction (round-4 re…
mason: order indexed glob without per-match filesystem probes (cortex…