Sprints 273-276: Polyglot FFI Glue, Symbol Index, and LSP Proxy (steps 1893-1912)

Sprint 273 — PolyglotFFIGlueGenerator (steps 1893-1897):
  ABIBoundaryExtractor, CHeaderEmitter, RustPythonBindingEmitter,
  GoCppBindingEmitter. Extracts exported symbols from toComponent provider
  and emits C ABI + language-specific bindings.

Sprint 274 — More Binding Pairs + DWARF (steps 1898-1902):
  CppJSBindingEmitter (N-API), RustGoBindingEmitter (#[no_mangle]),
  DWARFBoundaryAnnotator (DW_TAG_* + crossLangBoundary),
  FFIGlueDispatcher (routes by fromLang→toLang pair),
  MCP tool whetstone_generate_ffi_glue (#92).

Sprint 275 — Cross-Language Symbol Index (steps 1903-1907):
  SCIPEmitter (SCIP JSON, one doc/language, caller+provider roles),
  CrossLanguageSymbolTable (byLangName_ + byScip_ dual index),
  SymbolIndexUpdater (nodeKey diff, clear-and-rebuild),
  SymbolIndexOrchestrator (orchestrate + update),
  MCP tool whetstone_emit_symbol_index (#93).

Sprint 276 — LSP Proxy Core (steps 1908-1912):
  LSPProxyServer (JSON-RPC 2.0 dispatcher),
  LanguageServerRouter (routeByUri/routeByLanguageId),
  CrossLanguageBoundaryDetector (detect/detectWithUri/detectInLanguage),
  CrossLanguageDefinitionResolver (resolve/resolveFromUri → DefinitionLocation).
  End-to-end: Python call site goto-def resolves to Rust sort-core provider.

100/100 tests passing across all four sprints. Architecture gate clean.
LoRA sessions recorded for all sprints (~14k tokens captured).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bill
2026-03-01 18:41:32 -07:00
parent 1f1234b28b
commit 94f61dc97c
47 changed files with 4577 additions and 6 deletions

View File

@@ -10859,3 +10859,84 @@ target_link_libraries(step1891_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1892_test tests/step1892_test.cpp)
target_include_directories(step1892_test PRIVATE src)
target_link_libraries(step1892_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1893_test tests/step1893_test.cpp)
target_include_directories(step1893_test PRIVATE src)
target_link_libraries(step1893_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1894_test tests/step1894_test.cpp)
target_include_directories(step1894_test PRIVATE src)
target_link_libraries(step1894_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1895_test tests/step1895_test.cpp)
target_include_directories(step1895_test PRIVATE src)
target_link_libraries(step1895_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1896_test tests/step1896_test.cpp)
target_include_directories(step1896_test PRIVATE src)
target_link_libraries(step1896_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1897_test tests/step1897_test.cpp)
target_include_directories(step1897_test PRIVATE src)
target_link_libraries(step1897_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1898_test tests/step1898_test.cpp)
target_include_directories(step1898_test PRIVATE src)
target_link_libraries(step1898_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1899_test tests/step1899_test.cpp)
target_include_directories(step1899_test PRIVATE src)
target_link_libraries(step1899_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1900_test tests/step1900_test.cpp)
target_include_directories(step1900_test PRIVATE src)
target_link_libraries(step1900_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1901_test tests/step1901_test.cpp)
target_include_directories(step1901_test PRIVATE src)
target_link_libraries(step1901_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1902_test tests/step1902_test.cpp)
target_include_directories(step1902_test PRIVATE src)
target_link_libraries(step1902_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1903_test tests/step1903_test.cpp)
target_include_directories(step1903_test PRIVATE src)
target_link_libraries(step1903_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1904_test tests/step1904_test.cpp)
target_include_directories(step1904_test PRIVATE src)
target_link_libraries(step1904_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1905_test tests/step1905_test.cpp)
target_include_directories(step1905_test PRIVATE src)
target_link_libraries(step1905_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1906_test tests/step1906_test.cpp)
target_include_directories(step1906_test PRIVATE src)
target_link_libraries(step1906_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1907_test tests/step1907_test.cpp)
target_include_directories(step1907_test PRIVATE src)
target_link_libraries(step1907_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1908_test tests/step1908_test.cpp)
target_include_directories(step1908_test PRIVATE src)
target_link_libraries(step1908_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1909_test tests/step1909_test.cpp)
target_include_directories(step1909_test PRIVATE src)
target_link_libraries(step1909_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1910_test tests/step1910_test.cpp)
target_include_directories(step1910_test PRIVATE src)
target_link_libraries(step1910_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1911_test tests/step1911_test.cpp)
target_include_directories(step1911_test PRIVATE src)
target_link_libraries(step1911_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step1912_test tests/step1912_test.cpp)
target_include_directories(step1912_test PRIVATE src)
target_link_libraries(step1912_test PRIVATE nlohmann_json::nlohmann_json)