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
@@ -4,12 +4,12 @@ using ClawdDotNet.Core.Tests.Infrastructure;
|
||||
namespace ClawdDotNet.Core.Tests.Engine;
|
||||
|
||||
/// <summary>
|
||||
/// Was ein Abbruch mitten im Zug mit dem Gesprächskontext macht.
|
||||
/// What an abort in the middle of a turn does to the conversation context.
|
||||
///
|
||||
/// Der Kontext ist eine geteilte, an Ort und Stelle veränderte Liste. Bricht ein Lauf
|
||||
/// zwischen dem Werkzeugaufruf und seiner Antwort ab, bleibt eine assistant-Nachricht
|
||||
/// mit tool_calls stehen, auf die keine Antwort folgt — eine Nachrichtenfolge, die die
|
||||
/// Schnittstelle nicht annimmt.
|
||||
/// The context is a shared list, changed in place. If a run aborts
|
||||
/// between the tool call and its answer, an assistant message
|
||||
/// with tool_calls remains that no answer follows — a message sequence the
|
||||
/// interface does not accept.
|
||||
/// </summary>
|
||||
public class AbbruchKontextTests
|
||||
{
|
||||
@@ -27,7 +27,7 @@ public class AbbruchKontextTests
|
||||
|
||||
var lauf = fixture.Engine.ChatAsync(agent, "Los", "inst", CancellationToken.None);
|
||||
|
||||
// Warten, bis der Aufruf sicher steht und das Werkzeug läuft.
|
||||
// Wait until the call is surely in place and the tool is running.
|
||||
await Task.Delay(300);
|
||||
fixture.Engine.AbortChat("a1");
|
||||
|
||||
@@ -48,8 +48,8 @@ public class AbbruchKontextTests
|
||||
"Eine solche Folge lehnt die Schnittstelle mit HTTP 400 ab — der Agent ist " +
|
||||
"danach dauerhaft blockiert.");
|
||||
|
||||
// Die Ersatzantwort sagt auch, was passiert ist. Eine leere Antwort wäre formal
|
||||
// gültig, ließe das Modell aber rätseln, warum sein Aufruf nichts ergab.
|
||||
// The substitute answer also says what happened. An empty answer would be formally
|
||||
// valid, but would leave the model puzzling why its call yielded nothing.
|
||||
var ersatz = kontext.Last(m => m.Role == "tool");
|
||||
Assert.Contains("abgebrochen", ersatz.Content, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
@@ -57,8 +57,8 @@ public class AbbruchKontextTests
|
||||
[Fact]
|
||||
public async Task Nach_einem_Abbruch_laesst_sich_der_Agent_wieder_ansprechen()
|
||||
{
|
||||
// Der eigentliche Punkt: Nicht die Form des Kontexts zählt, sondern ob der
|
||||
// Agent danach noch arbeitet. Ein zweiter Chat muss durchlaufen.
|
||||
// The actual point: not the form of the context counts, but whether the
|
||||
// agent still works afterwards. A second chat has to run through.
|
||||
var fixture = new EngineFixture().WithTool(
|
||||
FakeTool.Slow(TimeSpan.FromSeconds(5), name: "LangsamTool"));
|
||||
|
||||
@@ -78,7 +78,7 @@ public class AbbruchKontextTests
|
||||
Assert.Equal(AgentRunStatus.Completed, zweiter.Status);
|
||||
Assert.Equal("Zweite Antwort.", zweiter.FinalMessage);
|
||||
|
||||
// Und die Folge, die dabei gesendet wurde, war vollständig beantwortet.
|
||||
// And the sequence that was sent in doing so was completely answered.
|
||||
var gesendet = fixture.Client.ReceivedRequests[^1].Messages;
|
||||
var offen = gesendet
|
||||
.Where(m => m.Role == "assistant" && m.ToolCalls is { Count: > 0 })
|
||||
|
||||
Reference in New Issue
Block a user