Mengapa
Ditemukan saat brainstorming "dream tool" — dua masalah UX terkait, sama-sama soal "tool harus koreksi diam-diam ke arah salah, bukan agent yang harus tahu semua mode manual":
search punya 4 mode (semantic/symbol/regex/graph) yang harus dipilih manual via --mode. Kalau user/agent menulis Cypher query (MATCH (n) WHERE ...) tapi lupa --mode graph, hasilnya semantic search ngasal terhadap string Cypher itu — bukan error, cuma hasil aneh yang membingungkan.
search adalah SATU-SATUNYA umbrella command dengan urutan pattern dulu baru workspace (kebalikan semua command lain) — sudah diperbaiki dokumentasinya sesi lalu, tapi runtime-nya masih bisa salah arah SENYAP: kalau argumen ke-1 kebetulan berupa path direktori valid, itu langsung dianggap pattern literal "." atau semacamnya dan return kosong "ok" tanpa peringatan apapun.
Konteks
Ini BUKAN duplikat dari fix search docstring sesi lalu (yang cuma perbaiki teks --help) — ini soal runtime behavior: tool harus mendeteksi kemungkinan salah pakai dan memberi sinyal, bukan cuma dokumentasi yang benar.
Tujuan
- Kalau
pattern argumen terlihat seperti Cypher (mengandung keyword MATCH/RETURN di posisi awal) tapi --mode bukan graph → auto-route ke --mode graph ATAU minimal beri warning jelas di stderr + field _hint di JSON response.
- Kalau argumen pertama (
pattern) adalah path direktori yang valid di filesystem DAN argumen kedua (workspace) BUKAN path valid → beri warning "argumen tampak terbalik" di stderr + field _hint, jangan diam-diam return hasil kosong.
Constraint
- JANGAN blok eksekusi — ini heuristik bantu, bukan validasi keras. Kalau heuristik salah deteksi, command tetap jalan seperti biasa, cuma ada hint tambahan.
- Auto-route Cypher HANYA kalau confidence tinggi (pattern literally starts with
MATCH keyword) — jangan over-eager nebak mode untuk regex pattern yang kebetulan mirip.
Definition of Done
Mengapa
Ditemukan saat brainstorming "dream tool" — dua masalah UX terkait, sama-sama soal "tool harus koreksi diam-diam ke arah salah, bukan agent yang harus tahu semua mode manual":
searchpunya 4 mode (semantic/symbol/regex/graph) yang harus dipilih manual via--mode. Kalau user/agent menulis Cypher query (MATCH (n) WHERE ...) tapi lupa--mode graph, hasilnya semantic search ngasal terhadap string Cypher itu — bukan error, cuma hasil aneh yang membingungkan.searchadalah SATU-SATUNYA umbrella command dengan urutanpatterndulu baruworkspace(kebalikan semua command lain) — sudah diperbaiki dokumentasinya sesi lalu, tapi runtime-nya masih bisa salah arah SENYAP: kalau argumen ke-1 kebetulan berupa path direktori valid, itu langsung dianggap pattern literal "." atau semacamnya dan return kosong "ok" tanpa peringatan apapun.Konteks
Ini BUKAN duplikat dari fix search docstring sesi lalu (yang cuma perbaiki teks
--help) — ini soal runtime behavior: tool harus mendeteksi kemungkinan salah pakai dan memberi sinyal, bukan cuma dokumentasi yang benar.Tujuan
patternargumen terlihat seperti Cypher (mengandung keywordMATCH/RETURNdi posisi awal) tapi--modebukangraph→ auto-route ke--mode graphATAU minimal beri warning jelas di stderr + field_hintdi JSON response.pattern) adalah path direktori yang valid di filesystem DAN argumen kedua (workspace) BUKAN path valid → beri warning "argumen tampak terbalik" di stderr + field_hint, jangan diam-diam return hasil kosong.Constraint
MATCHkeyword) — jangan over-eager nebak mode untuk regex pattern yang kebetulan mirip.Definition of Done
search "MATCH (n) RETURN n" .tanpa--mode graph→ tetap dapat hasil graph query yang benar (auto-routed) ATAU hint jelas kalau tidak mau auto-routesearch . "some pattern"(argumen terbalik, "." adalah direktori valid) → response punya_hintfield yang jelas menjelaskan kemungkinan argumen terbalik