From 2f0361278b5e12a34c0a1ba0cd60c2abe4c6db2c Mon Sep 17 00:00:00 2001 From: Richard Date: Sat, 19 Sep 2026 14:37:44 +0200 Subject: [PATCH] Freigaben buendeln statt Weckflut (#643), Freigabemodell ueber Werkzeugrechte (#641) #643: Entscheidungen wecken den Agenten nur noch bei Ablehnung oder gescheiterter Ausfuehrung, gesammelt in einer Aufgabe je Agent (5 min Ruhefenster), frisch per @new:agent statt im fortgefuehrten Chatverlauf. Eine einmalige Aufgabe, deren Lauf wegen Budget oder Herunterfahren gar nicht stattfand, bleibt faellig (Wiedervorlage nach 30 min) statt mit gesetztem Marker liegenzubleiben. #641: Rechte stehen in der Werkzeugkonfiguration des Agenten (erlaubt/verboten). Erlaubtes laeuft, Nicht-Erlaubtes wird einzeln vorgelegt statt verweigert, Verbotenes gar nicht erst. "Gleichartiges kuenftig erlauben" erteilt eine widerrufbare Dauerfreigabe je Agent/Werkzeug/Operation; nach drei gleichartigen Freigaben schlaegt die Oberflaeche sie vor. Aenderungen an Agenten bleiben ausnahmslos freigabepflichtig. Database: Operation ist das SQL-Schluesselwort; die eigene Zugriffspruefung greift nur noch ohne Freigabestelle (AgentToolContext.FreigabeGeprueft). WebUI: Rechte-Tabelle je Werkzeug, Dauerfreigaben mit Widerruf. Version 0.1.11. Co-Authored-By: Claude Opus 5 --- Directory.Build.props | 2 +- docs/ToolDevelopmentGuide.md | 32 +++ src/ClawdDotNet.App/AppHost.cs | 9 +- .../Services/AgentAdministration.cs | 51 +++++ src/ClawdDotNet.Core/Engine/AgentEngine.cs | 11 +- .../Staging/Dauerfreigaben.cs | 131 +++++++++++ .../Staging/SqliteStagingRepository.cs | 16 ++ src/ClawdDotNet.Core/Staging/StagingGate.cs | 37 ++- src/ClawdDotNet.Core/Staging/StagingModels.cs | 6 + src/ClawdDotNet.Core/Staging/StagingPolicy.cs | 16 +- .../Staging/StagingService.cs | 195 ++++++++++++++-- .../Staging/Werkzeugrechte.cs | 146 ++++++++++++ src/ClawdDotNet.Core/Storage/SqliteStorage.cs | 17 ++ .../Tasks/EngineTaskDispatcher.cs | 25 ++- src/ClawdDotNet.Core/Tasks/ITaskRepository.cs | 8 + .../Tasks/SqliteTaskRepository.cs | 19 ++ src/ClawdDotNet.Core/Tasks/TaskScanner.cs | 56 ++++- .../Tools/AgentToolContext.cs | 12 +- src/ClawdDotNet.Core/Tools/IAgentTool.cs | 13 ++ .../Tools/WerkzeugOperationen.cs | 27 +++ src/ClawdDotNet.Manager.Web/wwwroot/app.css | 40 ++++ .../wwwroot/views/agents.js | 128 ++++++++++- .../wwwroot/views/staging.js | 118 +++++++++- .../DatabaseTool.cs | 64 ++++-- src/ClawdDotNet.Tools.Database/SqlGuard.cs | 24 ++ src/ClawdDotNet.Web/Contracts/Dtos.cs | 42 +++- src/ClawdDotNet.Web/Contracts/Mapping.cs | 15 +- .../Contracts/WerkzeugrechteAnsicht.cs | 55 +++++ src/ClawdDotNet.Web/Endpoints/ApiEndpoints.cs | 52 ++++- .../Services/AdministrationTests.cs | 39 ++++ .../InMemoryStagingRepository.cs | 6 + .../Staging/StagingServiceTests.cs | 76 ++++++- .../Staging/WerkzeugrechteTests.cs | 212 ++++++++++++++++++ .../Tasks/TaskScannerTests.cs | 40 +++- .../Tasks/ToolJobDispatchTests.cs | 6 +- .../Database/DatabaseVorpruefungTests.cs | 78 +++++-- 36 files changed, 1687 insertions(+), 137 deletions(-) create mode 100644 src/ClawdDotNet.Core/Staging/Dauerfreigaben.cs create mode 100644 src/ClawdDotNet.Core/Staging/Werkzeugrechte.cs create mode 100644 src/ClawdDotNet.Core/Tools/WerkzeugOperationen.cs create mode 100644 src/ClawdDotNet.Web/Contracts/WerkzeugrechteAnsicht.cs create mode 100644 tests/ClawdDotNet.Core.Tests/Staging/WerkzeugrechteTests.cs diff --git a/Directory.Build.props b/Directory.Build.props index 4ecdb8b..87075d5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -18,7 +18,7 @@ ClawdDotNet.Core.BuildInfo bleibt daneben bestehen: das ist ein von Hand gefuehrter Zaehler mit Aenderungstext, keine Versionsangabe. --> - 0.1.10 + 0.1.11