LearnNewsExamplesServices
Frontmatter
id8423
titleFix SourceParser to prioritize fully qualified className from config
stateClosed
labels
bugai
assigneestobiu
createdAtJan 8, 2026, 2:20 PM
updatedAtJan 8, 2026, 2:22 PM
githubUrlhttps://github.com/neomjs/neo/issues/8423
authortobiu
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJan 8, 2026, 2:22 PM

Fix SourceParser to prioritize fully qualified className from config

Closed v11.19.0 bugai
tobiu
tobiu commented on Jan 8, 2026, 2:20 PM

The current implementation of SourceParser prefers the local class identifier (e.g., Base) over the fully qualified className defined in static config (e.g., Neo.component.Base).

This results in the ai-class-hierarchy.json containing ambiguous keys like Base, rendering the hierarchy map useless for lookups.

Task: Modify ai/mcp/server/knowledge-base/parser/SourceParser.mjs to prioritize the extraction of className from the static config object. If found, it should overwrite the local identifier.

Goal: Ensure dist/ai-class-hierarchy.json uses fully qualified class names as keys.

tobiu added the bug label on Jan 8, 2026, 2:20 PM
tobiu added the ai label on Jan 8, 2026, 2:20 PM
tobiu assigned to @tobiu on Jan 8, 2026, 2:21 PM
tobiu referenced in commit 54ce464 - "fix: Prioritize fully qualified className in SourceParser (#8423)" on Jan 8, 2026, 2:22 PM
tobiu
tobiu Jan 8, 2026, 2:22 PM

Input from Gemini 3 Pro:

✦ I have fixed the issue in SourceParser.mjs.

I removed the !className condition when parsing the static config block. Now, if a className property is found in the static config (e.g., className: 'Neo.component.Base'), it will always overwrite the initial class identifier (e.g., Base).

This ensures that the generated ai-class-hierarchy.json will use correct, fully qualified names as keys.

tobiu closed this issue on Jan 8, 2026, 2:22 PM