MentorAgent Docs
Menu

ReferencePackages: Novior.MentorAgent, Novior.MentorAgent.Abstractions, Novior.MentorAgent.Blazor, Novior.MentorAgent.Declarative, Novior.MentorAgent.Server

MentorAgent 1.0.0 release notes

MentorAgent 1.0.0, the first stable version: the new Novior.MentorAgent package IDs, how to move from the release candidates, and its fixes.

View as Markdown
On this page

MentorAgent 1.0.0 was published on NuGet on 13 October 2026 (UTC). It is the first stable version, and the first published as Novior.MentorAgent: it follows the release candidates, which ended with 1.0.0-rc.15. From this version the packages follow Semantic Versioning, so a 1.x version does not break code built against 1.0.0: see Versioning and support.

The five packages require each other at exactly this version: upgrade them together. MentorAgent 1.0.0 runs on .NET 10.

This version adds no features: it is 1.0.0-rc.15 under the new package IDs, with the fixes below.

  • One version for the family. The five packages depend on each other at their exact version, so a project cannot mix two versions by accident.

Each defect has a severity from S1, the most severe, to S4: see Versioning and support.

Breaking. Severity S3 (BUG-153). AddMentorAgentMcp() or AddMentorAgentA2A() registered nothing and said nothing in two cases: when the call came before AddMentorAgent(), and when McpServerEnabled or A2AServerEnabled was turned on after AddMentorAgent() had read it, with a Configure or PostConfigure of MentorOptions. The map call then failed later, and in the second case the error named a call that the host had made. Now the host stops at startup with the reason and the fix.

What to do. Call AddMentorAgentMcp() and AddMentorAgentA2A() after AddMentorAgent(), and turn the servers on in the options that AddMentorAgent() reads. See MCP server and A2A server.

Severity S3 (BUG-152). Four warnings outside the tool gate still carried a whole exception, whose text comes from your code: a UI action that threw, with a ChatClient or with a prebuilt Agent, and an OnToolResult or a McpCallerPrincipal that threw on the Model Context Protocol (MCP) server. As in the gate, the warnings now name the type of the exception. The whole exception is logged at Debug.

Fixes in the README and the XML documentation

Section titled “Fixes in the README and the XML documentation”
  • BUG-154 (S3): the warning about writes that run without confirmation comes the first time the actions are read, not always at startup: at startup only with WarmUpAtStartup or MapMentorAgentA2A(). With only [Description], it also names the methods that only read, until IsReadOnlyAction or [MentorAction(ReadOnly = true)] declares them.
  • BUG-155 (S3): the README's minimal SignalR client called Stop, the confirmations and the session save and restore without the hub's credentials, so with cookies from another origin or a bearer token those calls did nothing. It now sends them, like the complete components.
  • BUG-156 (S4): only AppName is read when AddMentorAgent() registers the services, as the name of the MCP server. The Agent-to-Agent (A2A) card is built from the real options when MapMentorAgentA2A() runs.
  • BUG-157 (S3): the README's MAUI step 3 now names the two using lines and the Microsoft.Extensions.Configuration.UserSecrets package that it needs, and says that AddUserSecrets finds the secrets only on the development machine.
  • BUG-158 (S3): the Novior.MentorAgent.Abstractions README now says that the core package references ModelContextProtocol, and that the ModelContextProtocol.AspNetCore transport is in the Server package.

This version fixes no security advisory.

  • Previous behavior: the packages were MentorAgent, MentorAgent.Abstractions, MentorAgent.Blazor, MentorAgent.Declarative and MentorAgent.Server, with namespaces such as MentorAgent.Extensions.
  • New behavior: the packages and the namespaces start with Novior., the widget's static files are served from _content/Novior.MentorAgent.Abstractions/, and the log categories start with Novior.MentorAgent.
  • Reason: from the first stable version, the packages are published under the Novior. prefix, and the namespaces follow the package IDs.
  • What to do: follow Move to the Novior.MentorAgent packages.
  • APIs affected: every namespace. The types and methods keep their names.

MCP and A2A servers registered in the wrong order

Section titled “MCP and A2A servers registered in the wrong order”

A host that registered the servers in the wrong order no longer starts: see The MCP and A2A servers stop at startup.

The MentorAgent.* package IDs end with 1.0.0-rc.15, and nothing newer is published under them.

CHANGELOG.md lists no dependency update for this version.

At release, 1.0.0 had the known issues of 1.0.0-rc.15:

  • BUG-074 (S3): with MentorshipLevel.Proactive, the agent can suggest next steps that the application does not have. Closed by default from 1.2.0: see Known issues.
  • BUG-118 (S2): without RequireActionForChangeRequests, the model can describe an action that it never performed. Still open: see Known issues.
  • BUG-106 (S2): without RequireLookupForRecordQuestions, the model can offer to look up a value that a read action could give. Still open: see Known issues.
  • Snapshots after Stop with Native confirmations: with HitlMode.Native, a snapshot saved while a confirmation was still open made the later turns fail after a restore. Fixed in 1.1.0 (BUG-187).

The MentorAgent.* IDs end with 1.0.0-rc.15. To move, you change four things: the packages, the namespaces, the paths of the static files and the log filters.

Up to 1.0.0-rc.15From 1.0.0
MentorAgentNovior.MentorAgent
MentorAgent.AbstractionsNovior.MentorAgent.Abstractions
MentorAgent.BlazorNovior.MentorAgent.Blazor
MentorAgent.ServerNovior.MentorAgent.Server
MentorAgent.DeclarativeNovior.MentorAgent.Declarative

If you upgrade from a version older than 1.0.0-rc.15, also read the Breaking entries in CHANGELOG.md (external site), for every version after yours up to and including 1.0.0-rc.15.

  1. Swap the packages in every project that references one, class libraries included. For example:

    Terminal
    dotnet remove package MentorAgent.Server
    dotnet add package Novior.MentorAgent.Server

    Novior.MentorAgent.Abstractions comes with the other packages, so a project that gets it only through them needs no line of its own.

  2. Check that no old package is left. If an old package stays, the build still succeeds and shows no error. Your using MentorAgent.* lines still reach the old package, and the application keeps running 1.0.0-rc.15. In every project, run:

    Terminal
    dotnet list package --include-transitive

    The list must show no package whose ID is MentorAgent or starts with MentorAgent..

  3. Change the namespaces. In every using and @using, _Imports.razor included, and in every fully qualified name, change MentorAgent.X to Novior.MentorAgent.X. The type names stay. Change only those lines, not every MentorAgent in your code: AddMentorAgent(), MapMentorAgent…(), [MentorAgent] and MentorAgentBlazorOptions keep their names.

    Program.cs
    // was MentorAgent.Extensions
    using Novior.MentorAgent.Extensions;
    // was MentorAgent.Abstractions.Models
    using Novior.MentorAgent.Abstractions.Models;
  4. Change the path of the static files in a page you wrote. The widget's stylesheet and script are served under the package ID: _content/Novior.MentorAgent.Abstractions/. On a Blazor Server or Blazor Web App page, <ChatWidget /> adds them for you, so nothing changes. If a page links the files by hand, change the path. This applies to the wwwroot/index.html of a Blazor WebAssembly client or of a .NET MAUI app:

    HTML
    <link rel="stylesheet"
      href="_content/Novior.MentorAgent.Abstractions/css/MentorAgent.css" />
    <script
      src="_content/Novior.MentorAgent.Abstractions/js/MentorAgent.js"></script>

    The old path answers 404, and nothing else complains: the widget shows without its styles and without voice. The file names do not change.

  5. Change the log filters. The log categories follow the namespaces: MentorAgent.Core.MentorOrchestrator is now Novior.MentorAgent.Core.MentorOrchestrator. A filter on "MentorAgent" no longer matches any log category. The Debug lines that it turned on disappear, and no warning tells you. Filter on the new prefix:

    appsettings.Development.json
    { "Logging": { "LogLevel": { "Novior.MentorAgent": "Debug" } } }
  6. Upgrade the five packages together. Each package requires the others at exactly its own version. For example, Novior.MentorAgent.Server 1.0.0 needs exactly Novior.MentorAgent 1.0.0. A later version does not satisfy it.

These stay the same:

  • the methods, types and attributes that you call, for example AddMentorAgent(), AddMentorAgentServer(), MapMentorAgent…(), MentorOptions, [MentorAgent] and [MentorAction];
  • the "MentorAgent" configuration section;
  • the routes (/mentor-hub, /mentor/…, /mcp, /a2a), the CSS classes and what the widget keeps in the browser;
  • the names of the telemetry: the MentorAgent source and meter (ObservabilitySourceName) and the mentoragent.* metrics;
  • session snapshots: one saved by 1.0.0-rc.15 is restored by 1.0.0;
  • the MentorAgentMcp Cross-Origin Resource Sharing policy, the MentorAgent.css and MentorAgent.js files, and window.MentorAgent.

Every entry of this version is in the 1.0.0 section of CHANGELOG.md (external site), which is also the release notes on NuGet (external site).

  • Release notes — Every stable MentorAgent version, newest first, with its date and what it brings; how versions are numbered and supported, and how dependencies are followed.
  • MentorAgent 1.1.0 release notes — What MentorAgent 1.1.0 adds and fixes: your own confirmation text, rules per method, safer page changes and team approval, and how to upgrade.
  • Choose your packages — Which MentorAgent package to install for Blazor, MAUI, or a backend for React, Angular, Vue and mobile apps, and what each one contains.