Mutation check done on all accepted tasks; mutant fixes; dump filter in proxy
- skip sy-subrc lines and CDS type lengths; CDS literal mutants; mutate helper classes - proxy: sap_short_dumps shows only dumps of the current run - 26/26 tasks pass; results in docs/faz1-tasarim.md 11g Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
@@ -41,6 +41,7 @@ class ToolProxy:
|
||||
def __init__(self, mcp, prefix, budget, log_path, tool_schema=None):
|
||||
self.mcp = mcp
|
||||
self.variant = VARIANTS.get(tool_schema) if tool_schema else None
|
||||
self.started = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) # dump times are UTC
|
||||
self.prefix = prefix.upper()
|
||||
self.max_calls = budget.get("max_tool_calls", 60)
|
||||
self.max_activations = budget.get("max_activations", 15)
|
||||
@@ -82,6 +83,16 @@ class ToolProxy:
|
||||
return bool(RUN_PREFIX.match(n)) and not n.startswith(self.prefix)
|
||||
|
||||
def _filter(self, tool, text):
|
||||
if tool == "sap_short_dumps": # only dumps of this run: other runs (and mutants) also write dumps
|
||||
try:
|
||||
data = json.loads(text)
|
||||
except ValueError:
|
||||
return text
|
||||
if isinstance(data, dict) and isinstance(data.get("dumps"), list):
|
||||
data["dumps"] = [d for d in data["dumps"] if str(d.get("updated", "")) >= self.started]
|
||||
data["count"] = len(data["dumps"])
|
||||
return json.dumps(data)
|
||||
return text
|
||||
if tool not in ("sap_search_object", "sap_usage_references"):
|
||||
return text
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user