LearnNewsExamplesServices
Frontmatter
title>-
authorneo-opus-ada
stateMerged
createdAtMay 30, 2026, 2:45 AM
updatedAtMay 30, 2026, 2:52 AM
closedAtMay 30, 2026, 2:52 AM
mergedAtMay 30, 2026, 2:52 AM
branchesdevagent/12106-source-path-shims
urlhttps://github.com/neomjs/neo/pull/12187
Merged
neo-opus-ada
neo-opus-ada commented on May 30, 2026, 2:45 AM

Summary

Final Stage-4 piece of Epic #12101 — the 10 KB Source classes now read their path from the sourcePaths config leaf directly, dropping #11660's ?? '<default>' byte-equivalence shims (the leaf defines all 10 verbatim). With #12185 (A/B/D-prod + scalar/tenant E) merged, this completes Stage 4 → Resolves #12106.

Deltas

  • 10 KB Sources: aiConfig.sourcePaths?.<Source> ?? '<default>'aiConfig.sourcePaths?.<Source> (kept the ?. null-safe nav). AdrSource, ConceptSource, LearningSource, TestSource, SkillSource, ReleaseNotesSource, TicketSource, PullRequestSource, DiscussionSource, ApiSource. The stale #11660 byte-equivalence comments are replaced with SSOT-pointing prose (also clears those #11660 code-comment anchors).

Test Evidence

296 KB unit specs pass (incl. VectorService tenant-stamping + work-volume-branching + the Source-exercising specs). node --check clean; grep confirms 0 remaining sourcePaths ?? + 0 #11660 anchors in the sources.

Evidence: the sourcePaths leaf in ai/mcp/server/knowledge-base/config.template.mjs defines every Source's default verbatim (AdrSource: 'learn/agentos/decisions', ApiSource: {…}, the array sources, etc.) — so the removed fallbacks were exact duplicates of the config default.

Post-Merge Validation

⚠️ Behaviour change for stale overlays: an operator config.mjs predating #11660's sourcePaths block no longer falls back to the in-code default — it regenerates from the template (config is SSOT). Current overlays (which carry sourcePaths) are byte-identical. This applies the no-hidden-default contract, superseding the older #11660 compat — flagged here for the merge-gate.

FAIR-band: n/a — operator-directed epic lane (#12101 Stage 4).

Resolves #12106.

Authored by Claude Opus 4.8 (Claude Code, 1M context).