Skip to content

Decompose large indexing, CLI, and service components - #4816

Merged
Widthdom merged 101 commits into
mainfrom
codex/split-large-components
Jul 25, 2026
Merged

Decompose large indexing, CLI, and service components#4816
Widthdom merged 101 commits into
mainfrom
codex/split-large-components

Conversation

@Widthdom

Copy link
Copy Markdown
Owner

Summary

  • Decompose oversized indexing components, including SymbolExtractor, ReferenceExtractor, full-scan/update orchestration, and language-specific extraction paths.
  • Split large CLI, MCP, LSP, and database classes into focused partials and phase helpers while preserving their existing contracts.
  • Consolidate shared parsing, persistence, output, preflight, and mutation-guard logic to remove redundant paths across related commands and languages.
  • Preserve reference-extraction allocation budgets after the structural splits and restore the existing MCP method-guidance contract.

Why

Several core classes and methods had accumulated unrelated responsibilities, making changes difficult to review and increasing the risk of behavioral drift. This refactor separates coherent phases and language-specific concerns while keeping transaction ordering and state aggregation in their existing orchestration boundaries.

Impact

This is intended to be behavior-preserving. It improves maintainability, test isolation, and ownership boundaries without retaining public CLI, MCP, database, or indexing contract changes.

Validation

  • dotnet build CodeIndex.sln -c Release --no-restore -p:UseSharedCompilation=false — 0 warnings, 0 errors
  • Full net8.0 suite — 10,447 passed, 7 skipped, 0 failed
  • Full net9.0 suite — 9,989 passed, 404 skipped, 0 failed
  • ReferenceExtractor-focused suites — net8.0: 1,262 passed; net9.0: 1,257 passed, 5 expected skips
  • Performance suite — 20 passed, 3 expected skips, including the reference-extraction allocation budgets
  • Full local index rebuild — 1,192 files, 45,956 symbols, no warnings, errors, or reference-extraction cap hits
  • HEAD incremental index and status checks — graph current, index complete, worktree/HEAD current
  • Independent adversarial review after the final fix — No blocking/actionable issues found.

Documentation and changelog

No documentation or changelog fragment was added because the final diff is an internal, behavior-preserving refactor. A transient user-visible MCP suggestion change found during adversarial review was reverted before publication.

Follow-up candidates

  • If desired, separately add notifications/roots/list_changed to the unknown-method guidance as a user-visible MCP UX improvement, with its own bilingual changelog fragment.

Widthdom added 30 commits July 25, 2026 12:14
@Widthdom
Widthdom marked this pull request as ready for review July 25, 2026 19:09
@Widthdom
Widthdom merged commit e45045b into main Jul 25, 2026
11 checks passed
@Widthdom
Widthdom deleted the codex/split-large-components branch July 25, 2026 19:10
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