---
tagName: 11.11.0
name: Neo.mjs v11.11.0 Release Notes
publishedAt: '2025-11-26T12:47:01Z'
isPrerelease: false
isDraft: false
---
# Neo.mjs v11.11.0 Release Notes

This release brings a major architectural refactoring to the **AI Knowledge Base**'s ingestion engine. We have transitioned the implementation from a monolithic `DatabaseService` to a modular, extensible design. By decomposing the system into specialized Parsers and Source Providers, we have significantly improved the platform's ability to ingest and index diverse content types.

## ✨ Highlights

### 🧠 Knowledge Base: Modular Architecture

The `DatabaseService`—previously a "God Class" handling everything from file crawling to embedding—has been refactored into a clean, domain-driven design:
-   **Parsers (`ai.mcp.server.knowledge_base.parser`):** Specialized singletons for understanding specific content formats (e.g., `TestParser` for Playwright files, `DocumentationParser` for markdown).
-   **Source Providers (`ai.mcp.server.knowledge_base.source`):** Dedicated classes responsible for crawling specific domains (e.g., `ApiSource`, `TicketSource`, `LearningSource`).
-   **Vector Service:** A dedicated service now handles the heavy lifting of embedding generation and vector database interactions.

This separation of concerns makes the AI infrastructure more robust and easier to extend with new knowledge sources in the future.

### 🎯 Granular Test Indexing

We have overhauled how automated tests are indexed. Instead of treating a test file as a single chunk of text, the new `TestParser` intelligently decomposes Playwright specs:
-   **Header Chunks:** Capture high-level context, imports, and `test.describe` blocks.
-   **Test Case Chunks:** Each `test()` function is indexed individually with precise line-number metadata.

This granularity allows AI agents to perform **semantic searches for specific test scenarios** (e.g., "How do I test grid filtering?") with much higher precision. Previously, an entire test file was indexed as a single monolithic chunk, diluting the semantic signal of individual test cases. Now, the vector search can identify and retrieve the exact test case that matches the query.

### ⚡ VDom Worker Stability

We resolved a race condition in the VDom worker initialization. Previously, the `Neo.vdom.Helper` could attempt to initialize its renderer before the global configuration was fully registered. This has been fixed by ensuring initialization waits for the `Neo.config` to be populated, improving startup stability.

## 📦 Full Changelog

### AI Knowledge Base & Infrastructure
-   **Split Playwright tests into granular knowledge base chunks for better retrieval** (Issue #7901)
-   **Refactor Knowledge Base parsing logic into domain-specific Singletons** (Issue #7902)
-   **Refactor Knowledge Base crawling logic into Source Providers** (Issue #7903)
-   **Refactor Knowledge Base embedding logic into Vector Service** (Issue #7904)
-   **ai.mcp.server.knowledge-base.source.Base: remove the singleton config** (Issue #7905)
-   **Refactor ApiSource hardcoded path to non-reactive config** (Issue #7906)

### Core Framework & Workers
-   **Fix race condition in VDom worker initialization** (Issue #7907)
-   **Refactor vdom.Helper initAsync to use optional chaining** (Issue #7908)

All changes in 1 commit: https://github.com/neomjs/neo/commit/491f87600877ca1cc5f564f613fa4d315c996bbc
