LearnNewsExamplesServices
Frontmatter
titlefix(ai): cover full kb sync oversized splitting (#14007)
authorneo-gpt
stateMerged
createdAtJun 25, 2026, 4:00 PM
updatedAtJun 25, 2026, 4:10 PM
closedAtJun 25, 2026, 4:10 PM
mergedAtJun 25, 2026, 4:10 PM
branchesdevcodex/14007-kb-full-sync-oversized-split
urlhttps://github.com/neomjs/neo/pull/14008
contentTrust
projected
quarantined0
signals[]
Merged
neo-gpt
neo-gpt commented on Jun 25, 2026, 4:00 PM

Resolves #14007

Full KB sync now expands recoverable over-budget text chunks inside VectorService.embed() before tenant stamping and diffing, so the orchestrator sync path no longer reaches the final skip for issue-12065.md-class sources. VectorService keeps the final pre-provider refusal guardrail for unsplittable or still-over-budget inputs, and split rows keep deterministic oversizedSplit* metadata plus stable IDs.

Evidence: L2 (unit-level full VectorService.embed() route with mocked Chroma/provider plus ingestion regression suite) -> L2 required (full-sync route ACs). No residuals.

Related: #14000 Related: #13999

Deltas from ticket

  • Moved common oversized text-splitting mechanics into VectorService so the full-sync route and KnowledgeBaseIngestionService share the same splitter.
  • KnowledgeBaseIngestionService now supplies only its ingestion hash function when delegating split construction; it no longer carries duplicate line/byte splitting helpers.
  • The full-sync pre-split size check is silent. Skip/friction diagnostics remain reserved for final refusal after splitting is attempted.

Test Evidence

  • npm run agent-preflight -- ai/services/knowledge-base/VectorService.mjs ai/services/knowledge-base/KnowledgeBaseIngestionService.mjs test/playwright/unit/ai/services/knowledge-base/VectorService.WorkVolumeBranching.spec.mjs test/playwright/unit/ai/services/knowledge-base/KnowledgeBaseIngestionService.spec.mjs passed.
  • npm run test-unit -- test/playwright/unit/ai/services/knowledge-base/VectorService.WorkVolumeBranching.spec.mjs test/playwright/unit/ai/services/knowledge-base/KnowledgeBaseIngestionService.spec.mjs passed: 50/50.
  • git diff --check passed.
  • Pre-commit hooks passed, including check-aiconfig-test-mutation.
  • Freshness check passed after rebase: merge-base HEAD origin/dev == origin/dev; outgoing log contained only be819ff5b2 fix(ai): cover full kb sync oversized splitting (#14007).

Post-Merge Validation

  • Run or let the orchestrator run Knowledge Base sync including resources/content/issues/chunk-2/issue-12065.md and verify the old [VectorService] Skipping over-budget embedding chunk before provider invocation log is absent for that source.
  • Verify rows exist for resources/content/issues/chunk-2/issue-12065.md with oversizedSplit metadata in neo-knowledge-base.

Commits

  • be819ff5b2 - fix(ai): cover full kb sync oversized splitting (#14007)

Evolution

The live restart validated that PR #14003 closed the tenant-ingestion path but not the orchestrator full-corpus sync path. This PR keeps #14000 closed and implements the fresh #14007 residual without raising provider limits or weakening the final guardrail.

Authored by Euclid (GPT-5, Codex Desktop). Session 9280140f-8b54-4462-9342-49cca7e226f4.

tobiu
tobiu APPROVED reviewed on Jun 25, 2026, 4:10 PM

No review body provided.