Skip to content

docs(competitive): add CodeGraphContext as Tier 1 competitor#675

Open
carlos-alm wants to merge 9 commits intomainfrom
perf/native-roles-edges-6.12
Open

docs(competitive): add CodeGraphContext as Tier 1 competitor#675
carlos-alm wants to merge 9 commits intomainfrom
perf/native-roles-edges-6.12

Conversation

@carlos-alm
Copy link
Copy Markdown
Contributor

Summary

Test plan

  • Verify CGC row inserted at correct position (feat(mcp): complete MCP server + CLI smoke tests (roadmap 2.2–2.3) #11) in Tier 1 table
  • Verify scoring breakdown row added with correct dimensions
  • Verify "vs CodeGraphContext" section added between axon and glimpse
  • Verify all subsequent entries renumbered consistently (tables + scoring + vs headers)
  • Verify header date and scope count updated

…nsertion (6.12)

Roles: move classifyNodeRolesFull/Incremental SQL + classification logic
to Rust (roles_db.rs). Single rusqlite connection runs fan-in/fan-out
queries, computes medians, classifies roles, and batch-updates nodes —
eliminates ~10 JS<->SQLite round-trips.

Edges: add bulk_insert_edges (edges_db.rs) that writes computed edges
directly to SQLite via rusqlite instead of marshaling back to JS.
Restructure buildEdges to run edge computation in better-sqlite3
transaction, then native insert outside to avoid connection contention.

1-file regression fix: skip native call-edge path for small incremental
builds (≤3 files) where napi-rs marshaling overhead exceeds savings.

Both paths fall back gracefully to JS when native is unavailable.
…th (#658)

The comment claimed barrel-edge deletion and re-insertion were atomic,
but with the native rusqlite path the insertion happens in Phase 2 on a
separate connection. Updated the comment to accurately describe the
atomicity guarantee: JS path is fully atomic; native path has a transient
gap that self-heals on next incremental rebuild.
…aram safety (#658)

200 rows × 5 params = 1000 bind parameters, which exceeds the legacy
SQLITE_MAX_VARIABLE_NUMBER default of 999. While bundled SQLite 3.43+
raises the limit, reducing to 199 (995 params) removes the risk for
any SQLite build with the old default.
#658)

The native edge insert fallback path was silent, making it hard to
diagnose when the native path fails. Added a debug() call so the
fallback is visible in verbose/debug output.
…re 3.8)

Add CodeGraphContext/CodeGraphContext (2,664 stars, Python, MIT) to the
competitive analysis. Tree-sitter + graph DB (KuzuDB/FalkorDB/Neo4j),
14 languages, CLI + MCP, bundle registry, 10+ IDE setup wizard.
Strong community traction but shallow analysis depth vs codegraph.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant