Budgetsperre sichtbar machen (#608), Gedaechtnisabruf kuerzt statt wegzulassen (#607)

#608: Ein wegen erschoepften Budgets abgelehnter Lauf hinterlaesst jetzt einen Beleg
(Status BudgetExceeded) an Aufgabe und Verlauf; die Log-Warnung kommt einmal je Agent,
Grenze und Tag. Die Kostenprognose zaehlt Ablehnungen nicht als Lauf und warnt, wenn die
geplanten Aufgaben eines Agenten sein Tagesbudget uebersteigen (API + Verbrauchsansicht).

#607: Passt schon der erste Treffer nicht in den Abruf, wird er gekuerzt (Anfang und Ende
bleiben) statt ganz zu fehlen. remember weist auf gleichnamige Eintraege ohne Schluessel und
auf Eintraege nahe der Abrufgrenze hin.

Version 0.1.9.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-15 18:59:14 +02:00
co-authored by Claude Opus 5
parent b0997b5334
commit f5731c50f8
12 changed files with 408 additions and 22 deletions
@@ -1,3 +1,4 @@
using ClawdDotNet.Core.Accounting;
using ClawdDotNet.Core.Audit;
using ClawdDotNet.Core.Config;
using ClawdDotNet.Core.Engine;
@@ -23,7 +24,9 @@ internal sealed class EngineFixture
/// <summary>Die registrierten Agenten — für Tests, die einen Dispatcher selbst bauen.</summary>
public IReadOnlyList<AgentConfig> Agents => _agents;
public EngineFixture(IAuditRepository? audit = null, StagingGate? staging = null, TimeProvider? clock = null)
public EngineFixture(
IAuditRepository? audit = null, StagingGate? staging = null, TimeProvider? clock = null,
IUsageRepository? usage = null)
{
Engine = new AgentEngine(
Client,
@@ -31,6 +34,7 @@ internal sealed class EngineFixture
new PermissionGate(),
StateStore,
TestLogging.Factory,
usageRepository: usage,
auditRepository: audit,
stagingGate: staging,
clock: clock);