Skip to content

fix: preserve builder sources and Go receiver method symbols - #423

Merged
Helweg merged 1 commit into
mainfrom
fix/source-exclusion-go-method-symbols-20261006
Oct 6, 2026
Merged

Helweg merged 1 commit into
mainfrom
fix/source-exclusion-go-method-symbols-20261006

Conversation

@Helweg

@Helweg Helweg commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Fix two demonstrated acquisition/declaration defects

Separate from the completed exploratory study in #422; this branch starts at its frozen candidate commit 969fd34. No study tasks, configurations, scores or evidence artifacts are changed, and the consumed cohort was not rerun.

Source policy

  • Replace arbitrary build substring matching with a dash/underscore-delimited build token.
  • Share the generated-directory pattern catalog across default excludes and Git-ignore-style automatic filtering.
  • Preserve clap_builder/, builder/, rebuild/, build.rs and build.gradle; retain build/, _build/, app-build/, cmake-build-debug/ and mixed-delimiter output directories.
  • Keep dependency/cache/hidden guards, upstream .gitignore, explicit user exclusions and opt-in boundaries effective for indexing and watcher filters. An explicitly configured **/*build*/** remains authoritative.

Go declaration extraction and cached upgrade

  • Recognize Go grammar field_identifier method names in the existing extractor; no additional parsing/allocations or other-language widening.
  • Correct value/pointer/generic receiver methods with void, scalar, slice, map/compound and named returns, rather than storing return-type names or omitting methods.
  • Upgrade the existing symbol-extractor version so ordinary non-forced indexing reparses unchanged cached declarations/chunks. No new persistence format or migration abstraction.
  • Regression coverage checks exact declaration names/ranges and meaningful chunks, plus reopening/upgrading a previous-version catalog in both hybrid and structural modes. Remove incidental current-version-number assertions rather than re-pin them.

Runtime verification

Before the fix, a fresh synthetic collector omitted builder/rebuild sources and native receiver symbols contained int/error instead of method names.

After rebuilding, an actual SDK client launched the built MCP CLI on another fresh synthetic project. implementation_lookup resolved Rust WidgetBlueprint under clap_builder/ and Go Flush, Size, Check, List under rebuild/ with correct files/source. Generated/hidden/dependency and Git-ignored sentinels returned not_found, as did the false int alias. After seeding a previous-version Size -> int catalog, ordinary index_codebase(force:false) repaired the unchanged source and removed the false alias.

Checks

  • npm run build — passed, including rebuilt Rust/NAPI and built-CLI smoke.
  • npm run typecheck — passed.
  • npm run lint — passed.
  • npx vitest run — 142 test files passed, 1 skipped; 2,638 tests passed, 6 skipped.
  • Fresh synthetic built-MCP SDK smoke — passed for discovery, exact lookup, exclusions and non-forced cached migration.

No Kotlin support, retrieval-ranking tuning, embedding replacement or fresh competitive claim is included.

@Helweg Helweg added bug Bug fix semver:patch Bug fix or patch labels Oct 6, 2026
@Helweg
Helweg merged commit 6347b02 into main Oct 6, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Bug fix semver:patch Bug fix or patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant