Stufe 4c (#764): Kommentare in C#, WebUI-Skripten, CSS und HTML auf Englisch
Rund 2.600 Kommentarblöcke in 310 C#-Dateien übersetzt, Begründungen vollständig erhalten: blockweise gleiche Anzahl wie vorher, kein Block unter 60 % seiner Länge, der Code außerhalb der Kommentare per Tokenizer byte-identisch geprüft. Zitate deutscher Oberflächentexte und Testdaten bleiben deutsch. WebUI: Kommentare in JS/CSS/HTML übersetzt, JSDoc-@param an die in 4b umbenannten Parameter angeglichen. Dabei behoben: - 4b hatte "tag" (HTML-Tag) als deutsches "Tag" gelesen und zu "dayValue" gemacht (makeElement, svg, Tagesübersicht) - zurück auf tag/day. - Aufgaben "InProgress" bekamen die Plakettenart "laufend", für die es nie eine CSS-Klasse gab - jetzt "success" wie laufende Instanzen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
da4ceac7d5
commit
837a634a22
@@ -17,98 +17,98 @@ public sealed class InstanceConfig
|
||||
public string WorkingDirectory { get; set; } = "./data/";
|
||||
|
||||
/// <summary>
|
||||
/// Wohin diese Instanz protokolliert. Leer heißt <c><Instanzverzeichnis>/Logs</c>.
|
||||
/// Where this instance logs to. Empty means <c><Instanzverzeichnis>/Logs</c>.
|
||||
///
|
||||
/// <para><b>Je Instanz und nicht anwendungsweit</b> (#528, Stufe 1). Vorher galt bei
|
||||
/// „leer" das Log-Verzeichnis aus den Anwendungseinstellungen — ein Ort für alle
|
||||
/// Instanzen. In <c>Startup.log</c> standen dann abwechselnd Zeilen zweier Instanzen
|
||||
/// ohne Kennzeichnung, welche gerade spricht; im Mehrinstanzbetrieb war jede
|
||||
/// Fehlersuche damit Ratearbeit.</para>
|
||||
/// <para><b>Per instance and not application-wide</b> (#528, stage 1). Previously, when
|
||||
/// "empty", the log directory from the application settings applied — one place for all
|
||||
/// instances. <c>Startup.log</c> then contained alternating lines of two instances
|
||||
/// without marking which one was speaking; in multi-instance operation every
|
||||
/// troubleshooting session was guesswork.</para>
|
||||
///
|
||||
/// <para>Ein relativer Wert zählt gegen das Instanzverzeichnis, nicht gegen das
|
||||
/// Arbeitsverzeichnis des Prozesses (siehe <c>AppHost.ResolveLogDirectory</c>).</para>
|
||||
/// <para>A relative value is resolved against the instance directory, not against the
|
||||
/// working directory of the process (see <c>AppHost.ResolveLogDirectory</c>).</para>
|
||||
/// </summary>
|
||||
[JsonPropertyName("logDirectory")]
|
||||
public string LogDirectory { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Ob der Instanzmanager diese Instanz am Laufen hält (#528).
|
||||
/// Whether the instance manager keeps this instance running (#528).
|
||||
///
|
||||
/// <para><b>Zwei Dinge in einem Schalter, weil es dieselbe Zusage ist:</b> Der Manager
|
||||
/// startet diese Instanz, wenn er selbst hochkommt, und er startet sie wieder, wenn
|
||||
/// sie abstürzt. Wer das nicht will, lässt ihn aus — dann startet sie nur, wenn jemand
|
||||
/// es verlangt.</para>
|
||||
/// <para><b>Two things in one switch, because it is the same promise:</b> the manager
|
||||
/// starts this instance when it comes up itself, and it starts it again when
|
||||
/// it crashes. Whoever does not want that leaves it off — then it only starts when someone
|
||||
/// asks for it.</para>
|
||||
///
|
||||
/// <para><b>Ausgeschaltet vorbelegt</b>, und das ist die vorsichtige Seite: Ein
|
||||
/// Manager, der nach einem Neustart der Maschine alles hochfährt, was er findet,
|
||||
/// startet auch das, was jemand mit Absicht angehalten hat.</para>
|
||||
/// <para><b>Pre-set to off</b>, and that is the cautious side: a
|
||||
/// manager that boots everything it finds after a restart of the machine
|
||||
/// also starts what someone stopped on purpose.</para>
|
||||
///
|
||||
/// <para>Der Neustart nach einem Absturz ist begrenzt: Nach mehreren Versuchen in
|
||||
/// kurzer Folge setzt der Manager aus und meldet es. Was an einer kaputten
|
||||
/// Konfiguration scheitert, scheitert beim zehnten Versuch genauso, und dann hat man
|
||||
/// statt einer toten Instanz eine tote Instanz und ein volles Protokoll.</para>
|
||||
/// <para>The restart after a crash is limited: after several attempts in
|
||||
/// quick succession the manager pauses and reports it. What fails because of a broken
|
||||
/// configuration fails the same way on the tenth attempt, and then instead
|
||||
/// of a dead instance you have a dead instance and a full log.</para>
|
||||
/// </summary>
|
||||
[JsonPropertyName("autostartByManager")]
|
||||
public bool AutostartByManager { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Wohin die Sicherungen dieser Instanz gehen. Leer heißt
|
||||
/// Where the backups of this instance go. Empty means
|
||||
/// <c><Instanzverzeichnis>/Backups</c>.
|
||||
///
|
||||
/// <para><b>Je Instanz</b> (#528, Stufe 1). Vorher lagen die Archive aller Instanzen
|
||||
/// in einem Ordner, und die Aufbewahrung (<see cref="BackupKeepCount"/>) räumt dort
|
||||
/// nach dem Präfix <c>backup_<Instanzname>_</c> auf. Liegen zwei Namen
|
||||
/// ineinander — <c>Test</c> und <c>Test_2</c> —, zählt die eine Instanz die Archive
|
||||
/// der anderen mit und wirft die überzähligen weg.</para>
|
||||
/// <para><b>Per instance</b> (#528, stage 1). Previously the archives of all instances lay
|
||||
/// in one folder, and retention (<see cref="BackupKeepCount"/>) cleans up there
|
||||
/// by the prefix <c>backup_<Instanzname>_</c>. If two names are nested
|
||||
/// in each other — <c>Test</c> and <c>Test_2</c> —, one instance counts the archives
|
||||
/// of the other too and throws away the surplus ones.</para>
|
||||
/// </summary>
|
||||
[JsonPropertyName("backupDirectory")]
|
||||
public string BackupDirectory { get; set; } = "";
|
||||
|
||||
/// <summary>Erstellt täglich zur eingestellten Uhrzeit eine Sicherung dieser Instanz.</summary>
|
||||
/// <summary>Creates a backup of this instance daily at the configured time.</summary>
|
||||
[JsonPropertyName("autoBackupEnabled")]
|
||||
public bool AutoBackupEnabled { get; set; }
|
||||
|
||||
/// <summary>Tageszeit der automatischen Sicherung, <c>HH:mm</c>.</summary>
|
||||
/// <summary>Time of day of the automatic backup, <c>HH:mm</c>.</summary>
|
||||
[JsonPropertyName("autoBackupTime")]
|
||||
public string AutoBackupTime { get; set; } = "03:00";
|
||||
|
||||
/// <summary>
|
||||
/// Wie viele Sicherungen dieser Instanz aufbewahrt werden. 0 = alle behalten.
|
||||
/// How many backups of this instance are kept. 0 = keep all.
|
||||
/// </summary>
|
||||
[JsonPropertyName("backupKeepCount")]
|
||||
public int BackupKeepCount { get; set; } = 14;
|
||||
|
||||
/// <summary>
|
||||
/// Port der Weboberfläche. Entfällt mit dem Instanzmanager (E-M5): Instanzen hören
|
||||
/// künftig ausschließlich auf ihrem Socket/Named Pipe; die Weboberfläche trägt der Manager.
|
||||
/// Port of the web UI. Goes away with the instance manager (E-M5): instances will
|
||||
/// listen exclusively on their socket/named pipe; the manager carries the web UI.
|
||||
///
|
||||
/// <para><b>Noch ohne <c>[Obsolete]</c>.</b> Das Attribut stand hier kurz und hat
|
||||
/// sechs Warnungen erzeugt, ohne dass eine davon jemand hätte abstellen können — der
|
||||
/// Port ist bis zum Abschluss von E-M5 der einzige Weg, auf dem eine eigenständige
|
||||
/// Instanz ihre Oberfläche anbietet. Eine Warnung, die nur wegsehen lässt, ist
|
||||
/// schlechter als keine; sie kommt zurück, wenn der Ersatz steht.</para>
|
||||
/// <para><b>Not yet <c>[Obsolete]</c>.</b> The attribute was here briefly and produced
|
||||
/// six warnings without anyone being able to fix any of them — until E-M5 is
|
||||
/// completed, the port is the only way a standalone instance
|
||||
/// offers its user interface. A warning that only teaches looking away is
|
||||
/// worse than none; it comes back when the replacement is in place.</para>
|
||||
/// </summary>
|
||||
[JsonPropertyName("webServerPort")]
|
||||
public int WebServerPort { get; set; } = 7001;
|
||||
|
||||
/// <summary>
|
||||
/// Ob die Weboberfläche mitläuft. Ausgeschaltet vorbelegt — sie macht aus einer
|
||||
/// lokalen Anwendung einen Netzwerkdienst, der Agenten mit Datei-, Mail- und
|
||||
/// FTP-Zugriff steuert. Das schaltet man bewusst ein.
|
||||
/// Whether the web UI runs along. Pre-set to off — it turns a
|
||||
/// local application into a network service that controls agents with file, mail and
|
||||
/// FTP access. That is something you switch on deliberately.
|
||||
/// </summary>
|
||||
[JsonPropertyName("webUiEnabled")]
|
||||
public bool WebUiEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// <c>loopback</c> (Vorgabe) oder <c>any</c>. Bei <c>any</c> ist
|
||||
/// <see cref="WebUiToken"/> Pflicht, sonst startet die Weboberfläche nicht.
|
||||
/// <c>loopback</c> (default) or <c>any</c>. With <c>any</c>
|
||||
/// <see cref="WebUiToken"/> is mandatory, otherwise the web UI does not start.
|
||||
/// </summary>
|
||||
[JsonPropertyName("webUiBinding")]
|
||||
public string WebUiBinding { get; set; } = "loopback";
|
||||
|
||||
/// <summary>
|
||||
/// Zugangstoken der Weboberfläche. Steht in <c>ConfigSecrets</c> und liegt damit
|
||||
/// geschützt in der Instanzdatei — wie der OpenRouter-Schlüssel daneben.
|
||||
/// Access token of the web UI. Listed in <c>ConfigSecrets</c> and thus stored
|
||||
/// protected in the instance file — like the OpenRouter key next to it.
|
||||
/// </summary>
|
||||
[JsonPropertyName("webUiToken")]
|
||||
public string WebUiToken { get; set; } = "";
|
||||
@@ -116,11 +116,11 @@ public sealed class InstanceConfig
|
||||
[JsonPropertyName("telegramClient")]
|
||||
public TelegramClientConfig? TelegramClient { get; set; }
|
||||
|
||||
/// <summary>Anbindung an das Watchdog-Modul des Deploymentcenters (Instanz-Heartbeat).</summary>
|
||||
/// <summary>Connection to the Deploymentcenter's watchdog module (instance heartbeat).</summary>
|
||||
[JsonPropertyName("watchdog")]
|
||||
public WatchdogConfig Watchdog { get; set; } = new();
|
||||
|
||||
/// <summary>Tagesgrenzen über alle Agenten der Instanz hinweg. 0 = keine Grenze.</summary>
|
||||
/// <summary>Daily limits across all agents of the instance. 0 = no limit.</summary>
|
||||
[JsonPropertyName("budget")]
|
||||
public InstanceBudget Budget { get; set; } = new();
|
||||
|
||||
@@ -132,12 +132,12 @@ public sealed class InstanceConfig
|
||||
public Transcripts.PromptHistorySettings PromptHistory { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Wie viele Weitergaben eine Delegationskette höchstens haben darf (B8, #206).
|
||||
/// A→B ist die Tiefe 1. Zyklen fängt die Kette selbst ab; dieser Wert begrenzt die
|
||||
/// Staffel A→B→C→D, die niemand beauftragt hat und die jeden Schritt einen vollen
|
||||
/// Lauf kostet.
|
||||
/// How many hand-offs a delegation chain may have at most (B8, #206).
|
||||
/// A→B is depth 1. The chain catches cycles itself; this value limits the
|
||||
/// relay A→B→C→D that nobody commissioned and that costs a full
|
||||
/// run at every step.
|
||||
///
|
||||
/// Instanzweit und nicht je Agent: Eine Kette gehört keinem der Beteiligten.
|
||||
/// Instance-wide and not per agent: a chain belongs to none of the participants.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// #689: Escalations and conflicts — how long the agents have to solve a case before a
|
||||
@@ -183,11 +183,11 @@ public sealed class InstanceConfig
|
||||
public int MaxDelegationDepth { get; set; } = 3;
|
||||
|
||||
/// <summary>
|
||||
/// Wie lange ein delegierter Aufruf höchstens auf einen belegten Zielagenten
|
||||
/// wartet, in Sekunden (#461). Danach kommt eine Absage statt weiterer Wartezeit.
|
||||
/// How long a delegated call waits at most for a busy target agent,
|
||||
/// in seconds (#461). After that a refusal comes instead of further waiting.
|
||||
///
|
||||
/// Gilt nur für Delegationen. Ein vom Menschen angestoßener Chat reiht sich
|
||||
/// weiterhin ein und wartet, so lange es dauert.
|
||||
/// Applies only to delegations. A chat triggered by a human still queues
|
||||
/// up and waits as long as it takes.
|
||||
/// </summary>
|
||||
[JsonPropertyName("delegationGateTimeoutSeconds")]
|
||||
public int DelegationGateTimeoutSeconds { get; set; } = 120;
|
||||
|
||||
Reference in New Issue
Block a user