documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF

This commit is contained in:
master
2026-02-25 01:24:07 +02:00
parent b07d27772e
commit 4db038123b
9090 changed files with 4836 additions and 2909 deletions

View File

@@ -0,0 +1,133 @@
{
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-001",
"capturedAtUtc": "2026-02-11T22:01:04.7033190Z",
"filesChecked": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyPluginRegistry.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs"
],
"fileChecks": [
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyPluginRegistry.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"exists": true
},
{
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs",
"exists": true
}
],
"classChecks": {
"DisassemblyService": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\DisassemblyService.cs:11:public sealed partial class DisassemblyService : IDisassemblyService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\DisassemblyService.LoadBinary.cs:7:public sealed partial class DisassemblyService"
],
"HybridDisassemblyService": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\HybridDisassemblyService.cs:12:public sealed partial class HybridDisassemblyService : IDisassemblyService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\HybridDisassemblyService.PluginSelection.cs:7:public sealed partial class HybridDisassemblyService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\HybridDisassemblyService.Quality.cs:8:public sealed partial class HybridDisassemblyService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\HybridDisassemblyService.LoadBinaryWithQuality.cs:7:public sealed partial class HybridDisassemblyService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\HybridDisassemblyService.QualityThresholds.cs:5:public sealed partial class HybridDisassemblyService"
],
"DisassemblyPluginRegistry": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\DisassemblyPluginRegistry.cs:11:public sealed class DisassemblyPluginRegistry : IDisassemblyPluginRegistry",
"BinaryFormatDetector": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly\\BinaryFormatDetector.cs:7:internal static class BinaryFormatDetector",
"B2R2DisassemblyPlugin": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.OperandParsing.Memory.cs:7:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.OperandParsing.cs:8:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.cs:12:public sealed partial class B2R2DisassemblyPlugin : IDisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.LoadBinary.cs:10:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.ArchitectureMapping.cs:8:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.InstructionMapping.cs:8:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.OperandParsing.Split.cs:7:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.Disassemble.cs:8:public sealed partial class B2R2DisassemblyPlugin",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2DisassemblyPlugin.RegionsAndSymbols.cs:5:public sealed partial class B2R2DisassemblyPlugin"
],
"B2R2LowUirLiftingService": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.cs:16:public sealed partial class B2R2LowUirLiftingService : IIrLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.Fallback.cs:8:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.CfgEdges.cs:8:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.InstructionKinds.cs:7:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.IsaMapping.cs:7:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.BlockBuilder.cs:10:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.LiftToIr.cs:8:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.LowUirLift.cs:11:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.LowUirMapping.cs:8:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.SsaBlocks.cs:8:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.SsaStatements.cs:7:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.TransformToSsa.cs:9:public sealed partial class B2R2LowUirLiftingService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LowUirLiftingService.LowUirOperands.cs:8:public sealed partial class B2R2LowUirLiftingService"
],
"B2R2LifterPool": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LifterPool.cs:19:public sealed partial class B2R2LifterPool : IDisposable",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LifterPool.StatsAndWarm.cs:8:public sealed partial class B2R2LifterPool",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2\\B2R2LifterPool.Helpers.cs:12:public sealed partial class B2R2LifterPool"
],
"IcedDisassemblyPlugin": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced\\IcedDisassemblyPlugin.cs:16:public sealed class IcedDisassemblyPlugin : IDisassemblyPlugin",
"GhidraDisassemblyPlugin": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra\\Services\\GhidraDisassemblyPlugin.cs:23:public sealed class GhidraDisassemblyPlugin : IDisassemblyPlugin, IDisposable",
"GhidraDecompilerAdapter": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler\\GhidraDecompilerAdapter.Helpers.cs:7:public sealed partial class GhidraDecompilerAdapter",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler\\GhidraDecompilerAdapter.cs:12:public sealed partial class GhidraDecompilerAdapter : IDecompilerService",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler\\GhidraDecompilerAdapter.Decompile.cs:8:public sealed partial class GhidraDecompilerAdapter",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler\\GhidraDecompilerAdapter.Compare.cs:7:public sealed partial class GhidraDecompilerAdapter"
]
},
"found": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyPluginRegistry.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs"
],
"missing": [
],
"missingDeclarations": [
],
"verdict": "pass"
}

View File

@@ -0,0 +1,115 @@
{
"type": "build",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-001",
"capturedAtUtc": "2026-02-11T22:03:32.6015430Z",
"projects": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/StellaOps.BinaryIndex.Disassembly.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/StellaOps.BinaryIndex.Disassembly.B2R2.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/StellaOps.BinaryIndex.Disassembly.Iced.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/StellaOps.BinaryIndex.Ghidra.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/StellaOps.BinaryIndex.Decompiler.csproj",
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Disassembly.Tests/StellaOps.BinaryIndex.Disassembly.Tests.csproj",
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Ghidra.Tests/StellaOps.BinaryIndex.Ghidra.Tests.csproj",
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Decompiler.Tests/StellaOps.BinaryIndex.Decompiler.Tests.csproj"
],
"buildSteps": [
{
"result": "pass",
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/StellaOps.BinaryIndex.Disassembly.csproj",
"log": "tier1-build-disassembly.log"
},
{
"result": "pass",
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/StellaOps.BinaryIndex.Disassembly.B2R2.csproj",
"log": "tier1-build-disassembly-b2r2.log"
},
{
"result": "pass",
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/StellaOps.BinaryIndex.Disassembly.Iced.csproj",
"log": "tier1-build-disassembly-iced.log"
},
{
"result": "pass",
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/StellaOps.BinaryIndex.Ghidra.csproj",
"log": "tier1-build-ghidra.log"
},
{
"result": "pass",
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/StellaOps.BinaryIndex.Decompiler.csproj",
"log": "tier1-build-decompiler.log"
}
],
"testSteps": [
{
"testsTotal": 45,
"log": "tier1-test-disassembly.log",
"testsPassed": 45,
"testsSkipped": 0,
"result": "pass",
"testsFailed": 0,
"project": "src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Disassembly.Tests/StellaOps.BinaryIndex.Disassembly.Tests.csproj"
},
{
"testsTotal": 122,
"log": "tier1-test-ghidra-retest.log",
"testsPassed": 122,
"testsSkipped": 0,
"result": "pass",
"testsFailed": 0,
"project": "src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Ghidra.Tests/StellaOps.BinaryIndex.Ghidra.Tests.csproj"
},
{
"testsTotal": 35,
"log": "tier1-test-decompiler-retest.log",
"testsPassed": 35,
"testsSkipped": 0,
"result": "pass",
"testsFailed": 0,
"project": "src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Decompiler.Tests/StellaOps.BinaryIndex.Decompiler.Tests.csproj"
}
],
"codeReview": {
"reviewedFiles": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs"
],
"checklist": [
{
"evidence": "DisassemblyService + HybridDisassemblyService + DisassemblyPluginRegistry contain concrete orchestration and backend selection paths.",
"result": "pass",
"item": "Core disassembly orchestrator and plugin registry are implemented."
},
{
"evidence": "BinaryFormatDetector, B2R2DisassemblyPlugin, B2R2LowUirLiftingService, B2R2LifterPool, and IcedDisassemblyPlugin provide concrete format/arch/lifting handling.",
"result": "pass",
"item": "Format/architecture/lifting capabilities are implemented across B2R2 and Iced backends."
},
{
"evidence": "GhidraDisassemblyPlugin and GhidraDecompilerAdapter implement plugin + AST/decompilation integration contracts.",
"result": "pass",
"item": "Ghidra and decompiler integration exists."
},
{
"evidence": "Disassembly/Ghidra/Decompiler suites pass with backend and pipeline behavior checks.",
"result": "pass",
"item": "Test suites assert meaningful behavior."
}
],
"notes": [
"Initial `--no-build` runs for Ghidra/Decompiler tests produced Invalid TargetPath; rerun with build succeeded and supplied final Tier1 evidence."
],
"codeReviewResult": "pass"
},
"buildResult": "pass",
"testResult": "pass",
"verdict": "pass"
}

View File

@@ -0,0 +1,50 @@
[
{
"command": "dotnet build \"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/StellaOps.BinaryIndex.Disassembly.csproj\" -c Release",
"log": "tier1-build-disassembly.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:01:28.8904277Z"
},
{
"command": "dotnet build \"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/StellaOps.BinaryIndex.Disassembly.B2R2.csproj\" -c Release",
"log": "tier1-build-disassembly-b2r2.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:01:30.9964223Z"
},
{
"command": "dotnet build \"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/StellaOps.BinaryIndex.Disassembly.Iced.csproj\" -c Release",
"log": "tier1-build-disassembly-iced.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:01:32.6814732Z"
},
{
"command": "dotnet build \"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/StellaOps.BinaryIndex.Ghidra.csproj\" -c Release",
"log": "tier1-build-ghidra.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:01:34.5559496Z"
},
{
"command": "dotnet build \"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/StellaOps.BinaryIndex.Decompiler.csproj\" -c Release",
"log": "tier1-build-decompiler.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:01:36.5702659Z"
},
{
"command": "dotnet test \"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Disassembly.Tests/StellaOps.BinaryIndex.Disassembly.Tests.csproj\" -c Release --no-build",
"log": "tier1-test-disassembly.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:01:38.4278605Z"
},
{
"command": "dotnet test \"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Ghidra.Tests/StellaOps.BinaryIndex.Ghidra.Tests.csproj\" -c Release --no-build",
"log": "tier1-test-ghidra.log",
"exitCode": 1,
"capturedAtUtc": "2026-02-11T22:01:39.2723456Z"
},
{
"command": "dotnet test \"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Decompiler.Tests/StellaOps.BinaryIndex.Decompiler.Tests.csproj\" -c Release --no-build",
"log": "tier1-test-decompiler.log",
"exitCode": 1,
"capturedAtUtc": "2026-02-11T22:01:40.1717431Z"
}
]

View File

@@ -0,0 +1,20 @@
[
{
"command": "dotnet test \"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Disassembly.Tests/StellaOps.BinaryIndex.Disassembly.Tests.csproj\" -c Release --no-build",
"log": "tier2-test-disassembly.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:02:30.3326958Z"
},
{
"command": "dotnet test \"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Ghidra.Tests/StellaOps.BinaryIndex.Ghidra.Tests.csproj\" -c Release",
"log": "tier2-test-ghidra.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:02:39.8714843Z"
},
{
"command": "dotnet test \"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Decompiler.Tests/StellaOps.BinaryIndex.Decompiler.Tests.csproj\" -c Release",
"log": "tier2-test-decompiler.log",
"exitCode": 0,
"capturedAtUtc": "2026-02-11T22:02:51.2802027Z"
}
]

View File

@@ -0,0 +1,28 @@
{
"type": "tier2-e2e-check",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-001",
"capturedAtUtc": "2026-02-11T22:03:32.7168416Z",
"steps": [
{
"evidence": "tier2-test-disassembly.log",
"description": "Execute Disassembly behavior suite",
"result": "pass"
},
{
"evidence": "tier2-test-ghidra.log",
"description": "Execute Ghidra behavior suite",
"result": "pass"
},
{
"evidence": "tier2-test-decompiler.log",
"description": "Execute Decompiler behavior suite",
"result": "pass"
}
],
"screenshots": [
],
"verdict": "pass"
}

View File

@@ -0,0 +1,42 @@
{
"type": "integration",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-001",
"capturedAtUtc": "2026-02-11T22:03:32.7168416Z",
"commands": [
"dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Disassembly.Tests/StellaOps.BinaryIndex.Disassembly.Tests.csproj -c Release --no-build",
"dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Ghidra.Tests/StellaOps.BinaryIndex.Ghidra.Tests.csproj -c Release",
"dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Decompiler.Tests/StellaOps.BinaryIndex.Decompiler.Tests.csproj -c Release"
],
"testsRun": 202,
"testsPassed": 202,
"testsFailed": 0,
"testsSkipped": 0,
"checks": [
{
"evidence": "tier2-test-disassembly.log: Passed 45, Failed 0, Skipped 0",
"description": "Disassembly backend behavior suite executes successfully",
"assertion": "Disassembly tests validate pipeline and backend behaviors (including hybrid orchestration surfaces).",
"result": "pass"
},
{
"evidence": "tier2-test-ghidra.log: Passed 122, Failed 0, Skipped 0",
"description": "Ghidra plugin behavior suite executes successfully",
"assertion": "Ghidra integration tests validate disassembly/decompiler plugin behavior and related integration contracts.",
"result": "pass"
},
{
"evidence": "tier2-test-decompiler.log: Passed 35, Failed 0, Skipped 0",
"description": "Decompiler AST comparison behavior suite executes successfully",
"assertion": "Decompiler tests validate AST comparison/decompilation adapter behavior paths.",
"result": "pass"
}
],
"behaviorVerified": [
"Hybrid and plugin-based disassembly paths execute successfully across disassembly test coverage.",
"Ghidra plugin integration and related analysis/decompilation behavior paths pass in dedicated test suite.",
"Decompiler adapter and AST comparison behavior pass in dedicated decompiler suite."
],
"verdict": "pass"
}

View File

@@ -0,0 +1,117 @@
{
"type": "source",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-002",
"capturedAtUtc": "2026-02-11T22:01:39.1160647Z",
"filesChecked": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyPluginRegistry.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs"
],
"found": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyPluginRegistry.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs"
],
"missing": [
],
"declarations": [
{
"type": "class",
"name": "DisassemblyService",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyService.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "HybridDisassemblyService",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/HybridDisassemblyService.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "DisassemblyPluginRegistry",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/DisassemblyPluginRegistry.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "BinaryFormatDetector",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/BinaryFormatDetector.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "B2R2DisassemblyPlugin",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2DisassemblyPlugin.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "B2R2LowUirLiftingService",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LowUirLiftingService.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "B2R2LifterPool",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "IcedDisassemblyPlugin",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "GhidraDisassemblyPlugin",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
},
{
"type": "class",
"name": "GhidraDecompilerAdapter",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/GhidraDecompilerAdapter.cs",
"exists": true,
"declarationFound": true,
"result": "pass"
}
],
"verdict": "pass"
}

View File

@@ -0,0 +1,73 @@
{
"type": "build_review",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-002",
"capturedAtUtc": "2026-02-11T22:06:43.0553243Z",
"projects": [
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly/StellaOps.BinaryIndex.Disassembly.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/StellaOps.BinaryIndex.Disassembly.B2R2.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/StellaOps.BinaryIndex.Disassembly.Iced.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/StellaOps.BinaryIndex.Ghidra.csproj",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Decompiler/StellaOps.BinaryIndex.Decompiler.csproj",
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Disassembly.Tests/StellaOps.BinaryIndex.Disassembly.Tests.csproj",
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Ghidra.Tests/StellaOps.BinaryIndex.Ghidra.Tests.csproj",
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Decompiler.Tests/StellaOps.BinaryIndex.Decompiler.Tests.csproj"
],
"buildResult": "pass",
"testResult": "pass",
"tests": [
{
"project": "StellaOps.BinaryIndex.Disassembly.Tests",
"passed": 45,
"failed": 0,
"skipped": 0,
"total": 45,
"log": "tier1-test-disassembly.log"
},
{
"project": "StellaOps.BinaryIndex.Ghidra.Tests",
"passed": 122,
"failed": 0,
"skipped": 0,
"total": 122,
"log": "tier1-test-ghidra.log"
},
{
"project": "StellaOps.BinaryIndex.Decompiler.Tests",
"passed": 35,
"failed": 0,
"skipped": 0,
"total": 35,
"log": "tier1-test-decompiler.log"
}
],
"codeReviewResult": "fail",
"codeReviewFindings": [
{
"severity": "high",
"category": "missing_code",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/GhidraDisassemblyPlugin.cs:355",
"evidence": "Plugin emits placeholder synthetic instructions and mnemonic \"GHIDRA\" instead of real exported instruction stream."
},
{
"severity": "high",
"category": "missing_code",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Ghidra/Services/BSimService.cs:180",
"evidence": "BSim ingest path throws NotImplementedException; query path returns empty until database setup."
},
{
"severity": "medium",
"category": "missing_code",
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.Iced/IcedDisassemblyPlugin.cs:423",
"evidence": "Mach-O code-region parsing is simplified to entire-binary fallback rather than structured section parsing."
},
{
"severity": "medium",
"category": "test_gap",
"file": "src/BinaryIndex/__Tests",
"evidence": "No direct tests found for BinaryFormatDetector, GhidraDisassemblyPlugin, or GhidraDecompilerAdapter classes despite being listed as core feature classes."
}
],
"verdict": "fail"
}

View File

@@ -0,0 +1,31 @@
{
"type": "integration",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-002",
"capturedAtUtc": "2026-02-11T22:06:43.0553243Z",
"steps": [
{
"description": "Execute disassembly behavioral suite",
"expected": "All disassembly pipeline behaviors implemented as claimed",
"actual": "45/45 tests passed",
"result": "pass",
"evidence": "tier2-test-disassembly.log"
},
{
"description": "Execute ghidra behavioral suite",
"expected": "Ghidra integration behaviors fully implemented",
"actual": "122/122 tests passed but implementation includes placeholder instruction export and non-implemented BSim ingestion path",
"result": "fail",
"evidence": "GhidraDisassemblyPlugin.cs:355, BSimService.cs:180"
},
{
"description": "Execute decompiler behavioral suite",
"expected": "Ghidra decompiler adapter behavior fully covered for feature claims",
"actual": "35/35 tests passed, but no direct class-level test parity found for GhidraDecompilerAdapter claim surface",
"result": "fail",
"evidence": "rg no-match for GhidraDecompilerAdapter in test projects"
}
],
"verdict": "fail"
}

View File

@@ -0,0 +1,41 @@
{
"type": "integration",
"module": "binaryindex",
"feature": "disassembly-and-binary-analysis-pipeline",
"runId": "run-002",
"capturedAtUtc": "2026-02-11T22:06:43.0553243Z",
"testSuites": [
{
"name": "StellaOps.BinaryIndex.Disassembly.Tests",
"testsRun": 45,
"testsPassed": 45,
"testsFailed": 0,
"log": "tier2-test-disassembly.log"
},
{
"name": "StellaOps.BinaryIndex.Ghidra.Tests",
"testsRun": 122,
"testsPassed": 122,
"testsFailed": 0,
"log": "tier2-test-ghidra.log"
},
{
"name": "StellaOps.BinaryIndex.Decompiler.Tests",
"testsRun": 35,
"testsPassed": 35,
"testsFailed": 0,
"log": "tier2-test-decompiler.log"
}
],
"behaviorVerified": [
"Hybrid disassembly fallback logic and plugin registry behavior execute successfully in test harness.",
"B2R2 lifter-pool and low-UIR lifting helpers execute for covered scenarios.",
"Decompiler parser/comparison components execute for covered fixture scenarios."
],
"uncoveredClaims": [
"Ghidra disassembly instruction export remains placeholder-based in implementation.",
"BSim ingest/query persistence behavior is not fully implemented (NotImplemented/empty-result path).",
"No direct class-level behavioral tests found for BinaryFormatDetector, GhidraDisassemblyPlugin, or GhidraDecompilerAdapter."
],
"verdict": "fail"
}