Skip to content

feat: schema-driven LSP materialization with file_sets and include#81

Merged
jamestexas merged 2 commits intomainfrom
feat/schema-driven-lsp
Mar 12, 2026
Merged

feat: schema-driven LSP materialization with file_sets and include#81
jamestexas merged 2 commits intomainfrom
feat/schema-driven-lsp

Conversation

@jamestexas
Copy link
Copy Markdown
Contributor

Summary

  • Replace hardcoded materializeLSP() with schema-driven materializeContentSources() β€” LSP files are now declared via content_source on Leaf, not hardcoded in Go
  • Add file_sets / include to Topology / Node for reusable file set groups β€” eliminates duplication across construct types
  • Support 4 content sources: lsp_hover, lsp_diagnostics, lsp_defs, lsp_refs
  • Update go-schema.json and python-schema.json to use the new pattern

Test plan

  • 8 new tests covering all content sources, edge cases, and include expansion
  • Full test suite passes (task test)
  • Built, codesigned, installed (task install)
  • End-to-end: leyline lsp β†’ enriched .db β†’ mache serve with updated schema

πŸ€– Generated with Claude Code

jamestexas and others added 2 commits March 11, 2026 19:44
Replace hardcoded materializeLSP() with schema-driven
materializeContentSources(). LSP files (hover, diagnostics, defs, refs)
are now declared in the topology schema via content_source on Leaf,
not hardcoded in Go.

Add file_sets/include to reduce duplication: define reusable groups of
file definitions at the schema level, reference them from any node.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ames instead of IDs

Three bugs found during E2E dogfooding (mache build β†’ leyline lsp β†’ mache serve β†’ MCP):

1. buildServeGraph skipped materializeVirtuals for .db files, so content_source
   files (hover, diagnostics) were never created in the serve path
2. SQLiteGraph.ListChildren nodes-table path returned name instead of id,
   breaking GetNode lookups downstream (all children silently invisible)
3. list_directory duplicated callers/callees when both materialized in db
   and injected as virtual entries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jamestexas jamestexas merged commit a302747 into main Mar 12, 2026
13 checks passed
@jamestexas jamestexas deleted the feat/schema-driven-lsp branch March 12, 2026 03:02
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