documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF
This commit is contained in:
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user