feat(llm): openai-cli backend — semantic extraction through the locally authenticated Codex CLI - #2981
feat(llm): openai-cli backend — semantic extraction through the locally authenticated Codex CLI#2981Azeem1985 wants to merge 17 commits into
Graphify — worth a look
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 5 advisory finding(s) below merit a look before merge.
Details
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 5 advisory finding(s) below merit a look before merge.
Graphify review — findings
Adds an openai-cli backend that runs semantic extraction and community labeling through the locally authenticated Codex CLI (stdin-fed prompts, read-only sandbox, per-server MCP disabling, turn.completed usage parsing, forced-serial by default), and gates it on a present codex binary like claude-cli. Adds graphify extract --fallback-backend/GRAPHIFY_FALLBACK_BACKEND for a one-shot retry of failed chunks on a second backend, and makes extract hold the per-repo rebuild lock across its whole pipeline. Extends graphify watch --semantic to auto-run extraction as a locked subprocess on doc/image changes, and batches export neo4j|falkordb --push into UNWIND queries with a --batch-size flag (default 100).
Worth a look
- --no-cluster path now builds and writes clustered graph —
graphify/cli.py· Escalate · high- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- --global-merge no longer merges into global graph —
graphify/cli.py· Escalate · high- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- AST extraction and downstream logic moved under
if needs_llm:block —graphify/cli.py· Escalate · high- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- Default extract no longer writes analysis/manifest or final output —
graphify/cli.py· Escalate · high- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
- Extract finalization is guarded by global_merge —
graphify/cli.py· Escalate · high- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 1356 functions depend on the 617 functions this change touches.
Health — this change adds coupling hotspots:
- new:
_rebuild_code()— 98 callers, 50 callees - new:
deduplicate_entities()— 63 callers, 21 callees - new:
build_merge()— 46 callers, 14 callees - new:
extract_files_direct()— 17 callers, 21 callees - new:
extract_corpus_parallel()— 26 callers, 11 callees - new:
_call_claude_cli()— 31 callers, 9 callees - new:
dispatch_command()— 2 callers, 121 callees - new:
_call_llm()— 11 callers, 21 callees - …and 24 more — each is listed as a finding
Verification — 1356 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 1292 function(s) in the blast radius were not formally verified this run