fix(runner): substitute acceptEdits for haiku's silent auto-mode downgrade, fail permission-denial-only runs

This commit is contained in:
mika kuns
2026-08-10 14:35:24 +02:00
parent 6a2a19cc9e
commit db50e710b9
10 changed files with 267 additions and 7 deletions
@@ -186,6 +186,41 @@ public sealed class StreamAnalyzerTests
Assert.Empty(result.Errors);
}
[Fact]
public void Extracts_Permission_Denials_From_Result_Event()
{
var analyzer = new StreamAnalyzer();
analyzer.ProcessLine("""
{"type":"result","result":"I need permission to edit the file.","session_id":"s1",
"permission_denials":[{"tool_name":"Edit","tool_use_id":"t1","tool_input":{}}]}
""");
var result = analyzer.GetResult();
Assert.Single(result.PermissionDenials);
Assert.Equal("Edit", result.PermissionDenials[0]);
}
[Fact]
public void No_Permission_Denials_Field_Means_Empty_List()
{
var analyzer = new StreamAnalyzer();
analyzer.ProcessLine("""{"type":"result","result":"done","session_id":"s1"}""");
Assert.Empty(analyzer.GetResult().PermissionDenials);
}
[Fact]
public void Multiple_Permission_Denials_Are_All_Collected()
{
var analyzer = new StreamAnalyzer();
analyzer.ProcessLine("""
{"type":"result","result":"blocked","session_id":"s1","permission_denials":[
{"tool_name":"Edit","tool_use_id":"t1","tool_input":{}},
{"tool_name":"Write","tool_use_id":"t2","tool_input":{}}
]}
""");
var result = analyzer.GetResult();
Assert.Equal(new[] { "Edit", "Write" }, result.PermissionDenials);
}
[Fact]
public void Duplicate_Marker_In_Assistant_And_Result_Is_Collected_Once()
{