Skip to content

feat(ai): Phase 6 — MEAI default-on cutover - #236

Merged
cursor[bot] merged 8 commits into
masterfrom
cursor/meai-phase6-cutover-5a04
Jul 14, 2026
Merged

feat(ai): Phase 6 — MEAI default-on cutover#236
cursor[bot] merged 8 commits into
masterfrom
cursor/meai-phase6-cutover-5a04

Conversation

@IanFrelinger

Copy link
Copy Markdown
Owner

Summary

Phase 6 MEAI cutover: the governed pipeline is on by default, IModel routes through MEAI, and VectorData is the default IRAGService.

Changes

  • Feature flag defaults ON; opt out with Nexo:UseMeaiPipeline=false / NEXO_USE_MEAI_PIPELINE=0
  • MeaiBackedModelIModel → governed / routed IChatClient
  • HotSwappableModel accepts any IModel agentic leaf (MEAI or legacy ProviderBackedModel)
  • Hosting registers MeaiVectorDataRagAdapter as default IRAGService
  • Operator doc: docs/governed-pipeline.md
  • CI: make meai-pipeline-gate included in make kernel-gate
  • Soft-gated: IProviderFactory / legacy RAG types remain for non-chat / opt-out callers

Stacking

Includes Phases 0–5. Prefer merge after #235 (or take this tip alone).

Testing

  • dotnet test src/Nexo.Tests.AI.Pipeline — 36 passed (net8 + net9)
  • make meai-pipeline-gate
  • dotnet build src/Nexo.Hosting
  • HotSwappableModel infrastructure tests
  • Full make kernel-gate in CI

Testing strategy (blast radius)

Change type Minimum proof
Hosting / pipeline / AddNexo make meai-pipeline-gate (now part of kernel-gate)
Infrastructure small adapter (HotSwappableModel) Focused unit tests — passed
  • Not a versioned release — skip
Open in Web Open in Cursor 

cursoragent and others added 8 commits July 14, 2026 17:59
Map current model invocation, sanitization, audit, policy packs, RAG,
and host DI seams to proposed Microsoft.Extensions.AI concepts for the
governed pipeline migration.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Add Nexo.AI.Pipeline with keyed local:ollama and local:onnx chat clients,
wire optional registration through hosting Phase 13b when
Nexo:UseMeaiPipeline is enabled (default off), and cover registration
with FakeChatClient tests. Legacy IProviderFactory path remains default.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Introduce UseNexoGovernance with fixed PolicyGate → Sanitizing → Auditing
order on every keyed IChatClient, plus unit tests for deny short-circuit,
PII redaction, audit outcomes, and composition/architecture guarantees.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Introduce policy × availability routing outside per-target governance
stacks, with audited route decisions and a table-driven matrix of
local/cloud fallback scenarios.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Register cloud:bedrock:{fast,balanced,heavy} with configurable model ids,
reuse the default AWS credential chain, keep Bedrock SDK clients out of DI,
and cover routing/sanitization/audit with fake-transport tests.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Introduce an in-process Microsoft.Extensions.VectorData store, sanitizing/
auditing embedding generators, VectorDataRagService, and a CLI reindex
command while leaving the legacy RAG path read-only. Align AWS SDK CPM
to v4 so Bedrock MEAI and DynamoDB co-restore cleanly.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Default Nexo:UseMeaiPipeline to on (opt out with 0/false). Wire IModel
through MeaiBackedModel over the governed IChatClient, make HotSwappableModel
accept any IModel agentic leaf, and register VectorData as the default
IRAGService. Add docs/governed-pipeline.md and make meai-pipeline-gate
part of kernel-gate. Keep IProviderFactory for non-chat callers.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Remove application/ CLI reindex wiring so master layer-boundary passes
(CLI belongs on an application/* PR). Add Nexo.AI.Pipeline to the
Hosting pack scripts, and cover default-on MEAI + VectorData RAG wiring
in HostingE2ESmoke ProdStyle tests.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
@cursor
cursor Bot marked this pull request as ready for review July 14, 2026 19:13
@cursor
cursor Bot merged commit 927e073 into master Jul 14, 2026
38 of 57 checks passed
@cursor
cursor Bot deleted the cursor/meai-phase6-cutover-5a04 branch July 14, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants