Skip to content
Tracon

TraconDiagnosticsReport

Namespace Tracon · Assembly Tracon.Abstractions.dll

Reports the self-diagnostics of the installation.

public sealed record TraconDiagnosticsReport : IEquatable<TraconDiagnosticsReport>

objectTraconDiagnosticsReport

IEquatable<TraconDiagnosticsReport>

object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

This type does not carry a secret. It has no connection string, API key, or credential fields. It only carries whether configuration resolved.

TraconDiagnosticsCollector in Tracon.Core creates this report. It makes no model call and applies no migration. It only reads the current state.

public TraconDiagnosticsReport()

Gets the number of registered agents. Returns null when the catalog cannot be read.

public required int? AgentCount { get; init; }

int?

null and 0 are different. This report must describe a broken installation. A catalog query fails when AutoApplyMigrations=false and the schema is not applied yet. Returning 0 would incorrectly state that no agents exist; null states that counting failed. The remaining report, especially TraconDiagnosticsReport.PendingMigrations, is still populated.

Gets the agent sources registered in priority order.

public required IReadOnlyList<AgentSourceDiagnostic> AgentSources { get; init; }

IReadOnlyList<AgentSourceDiagnostic>

Gets whether the active SQL provider can connect. Returns true without an SQL provider.

public required bool CanConnect { get; init; }

bool

Gets the resolution status of configuration keys required by registered providers.

public required IReadOnlyList<ConfigurationDiagnostic> Configuration { get; init; }

IReadOnlyList<ConfigurationDiagnostic>

Gets the embedding points a host application binds to attach Tracon to its own tenancy, identity, authorization, eventing, and storage.

public required IReadOnlyList<ExtensionPointDiagnostic> ExtensionPoints { get; init; }

IReadOnlyList<ExtensionPointDiagnostic>

Fixed length: one entry per embedding point (ITenantContext, IRunAttributionContext, IToolAuthorizationHandler, IRunAuthorizationHandler, IRunEventSink, IAttachmentStorage, IToolApprovalPresenter), never more. Carries no secret: only the bound implementation’s type name and whether it is Tracon’s built-in default.

Gets whether no migrations are pending. Returns true without an SQL provider.

public required bool MigrationsUpToDate { get; init; }

bool

Gets the last known status of each registered model provider.

public required IReadOnlyList<ProviderDiagnostic> ModelProviders { get; init; }

IReadOnlyList<ProviderDiagnostic>

Gets the pending migration names. The list is empty when there is no SQL provider or all migrations are applied.

public required IReadOnlyList<string> PendingMigrations { get; init; }

IReadOnlyList<string>

Gets the name of the active persistence provider, for example PostgreSQL or InMemory.

public required string PersistenceProvider { get; init; }

string

Gets the number of registered SQL persistence providers. More than 1 indicates a setup defect: the last call wins and silently disables the others.

public required int RegisteredPersistenceProviders { get; init; }

int

Gets the number of registered tools.

public required int ToolCount { get; init; }

int

Gets whether the management UI has embedded assets.

public required bool UiEmbedded { get; init; }

bool

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(TraconDiagnosticsReport? other)

other TraconDiagnosticsReport?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(TraconDiagnosticsReport?, TraconDiagnosticsReport?)

Section titled “ operator ==(TraconDiagnosticsReport?, TraconDiagnosticsReport?)”
public static bool operator ==(TraconDiagnosticsReport? left, TraconDiagnosticsReport? right)

left TraconDiagnosticsReport?

right TraconDiagnosticsReport?

bool

operator !=(TraconDiagnosticsReport?, TraconDiagnosticsReport?)

Section titled “ operator !=(TraconDiagnosticsReport?, TraconDiagnosticsReport?)”
public static bool operator !=(TraconDiagnosticsReport? left, TraconDiagnosticsReport? right)

left TraconDiagnosticsReport?

right TraconDiagnosticsReport?

bool