- ClawdDotNet.Web: Kestrel im Prozess der Anwendung, Token-Absicherung (TokenGate mit FixedTimeEquals), Endpunkte unter /api, Ereignisstrom unter /events (Server-Sent Events) und fortlaufendes Log-Streaming. - Weboberflaeche (wwwroot/): Vollstaendiges Single-Page-Frontend mit nativem HTML5, CSS3 und ES-Modulen ohne Buildschritt (strikt textContent, #-Routing, sofortiger Login-Sprung bei fehlendem Token, Light/Dark-Theme, lokale Barlow-Schriften). - ClawdDotNet.App: Fachlogik aus den Avalonia-ViewModels in Dienste herausgeloest (AgentAdministration, JobAdministration, ServiceAdministration, RunCoordinator) und ueber InstanceChange synchronisiert. - Tests: ClawdDotNet.Web.Tests und ClawdDotNet.App.Tests hinzugefuegt, alle 684 Tests erfolgreich.
31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
namespace ClawdDotNet.App;
|
|
|
|
/// <summary>Welcher Teil der Instanzkonfiguration sich geändert hat.</summary>
|
|
public enum InstanceChangeKind
|
|
{
|
|
/// <summary>Ein Agent kam dazu, fiel weg oder wurde bearbeitet.</summary>
|
|
Agents,
|
|
|
|
/// <summary>Ein Dienst kam dazu, fiel weg oder wurde umgeschaltet.</summary>
|
|
Services,
|
|
|
|
/// <summary>Ein geplanter Lauf (Agent-Wakeup oder Tool-Job) hat sich geändert.</summary>
|
|
Jobs,
|
|
|
|
/// <summary>Etwas an der Instanz selbst — Budget, Grenzen, Weboberfläche.</summary>
|
|
Settings
|
|
}
|
|
|
|
/// <summary>
|
|
/// Eine Änderung an der Instanzkonfiguration, so grob, wie eine Oberfläche sie braucht,
|
|
/// um den richtigen Bereich neu zu laden.
|
|
///
|
|
/// <para>Bewusst ohne die geänderten Werte: Beide Oberflächen lesen ohnehin aus
|
|
/// <c>AppHost.Instance</c>, und ein zweiter Übertragungsweg für dieselben Daten wäre
|
|
/// eine zweite Wahrheit. <see cref="Id"/> ist ein Hinweis, keine Zusage — wer ihn nicht
|
|
/// auswerten will, lädt den ganzen Bereich neu.</para>
|
|
/// </summary>
|
|
/// <param name="Kind">Welcher Bereich betroffen ist.</param>
|
|
/// <param name="Id">Agent-, Dienst- oder Job-Kennung, sofern es genau eine gibt.</param>
|
|
public readonly record struct InstanceChange(InstanceChangeKind Kind, string? Id = null);
|