save checkpoint: save features
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"type": "source",
|
||||
"module": "binaryindex",
|
||||
"feature": "binary-symbol-table-diff-engine",
|
||||
"runId": "run-001",
|
||||
"capturedAtUtc": "2026-02-11T20:41:29.3159790Z",
|
||||
"filesChecked": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiffAnalyzer.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/VersionMapDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/AbiCompatibility.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/DynamicLinkingDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/NameDemangler.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/ISymbolTableDiffAnalyzer.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolDiffServiceExtensions.cs"
|
||||
],
|
||||
"found": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiffAnalyzer.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/VersionMapDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/AbiCompatibility.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/DynamicLinkingDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/NameDemangler.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/ISymbolTableDiffAnalyzer.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolDiffServiceExtensions.cs"
|
||||
],
|
||||
"missing": [
|
||||
|
||||
],
|
||||
"declarations": [
|
||||
{
|
||||
"type": "class",
|
||||
"name": "SymbolTableDiffAnalyzer",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiffAnalyzer.cs",
|
||||
"exists": true,
|
||||
"declarationFound": true,
|
||||
"result": "pass"
|
||||
},
|
||||
{
|
||||
"type": "class",
|
||||
"name": "SymbolTableDiff",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiff.cs",
|
||||
"exists": true,
|
||||
"declarationFound": false,
|
||||
"result": "fail"
|
||||
},
|
||||
{
|
||||
"type": "class",
|
||||
"name": "VersionMapDiff",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/VersionMapDiff.cs",
|
||||
"exists": true,
|
||||
"declarationFound": false,
|
||||
"result": "fail"
|
||||
},
|
||||
{
|
||||
"type": "enum",
|
||||
"name": "AbiCompatibility",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/AbiCompatibility.cs",
|
||||
"exists": true,
|
||||
"declarationFound": false,
|
||||
"result": "fail"
|
||||
},
|
||||
{
|
||||
"type": "class",
|
||||
"name": "DynamicLinkingDiff",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/DynamicLinkingDiff.cs",
|
||||
"exists": true,
|
||||
"declarationFound": false,
|
||||
"result": "fail"
|
||||
},
|
||||
{
|
||||
"type": "class",
|
||||
"name": "NameDemangler",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/NameDemangler.cs",
|
||||
"exists": true,
|
||||
"declarationFound": true,
|
||||
"result": "pass"
|
||||
},
|
||||
{
|
||||
"type": "interface",
|
||||
"name": "ISymbolTableDiffAnalyzer",
|
||||
"file": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/ISymbolTableDiffAnalyzer.cs",
|
||||
"exists": true,
|
||||
"declarationFound": true,
|
||||
"result": "pass"
|
||||
}
|
||||
],
|
||||
"verdict": "partial"
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"type": "build",
|
||||
"module": "binaryindex",
|
||||
"feature": "binary-symbol-table-diff-engine",
|
||||
"runId": "run-001",
|
||||
"capturedAtUtc": "2026-02-11T20:43:25.5451851Z",
|
||||
"projects": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/StellaOps.BinaryIndex.Builders.csproj",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/StellaOps.BinaryIndex.Builders.Tests.csproj"
|
||||
],
|
||||
"buildSteps": [
|
||||
{
|
||||
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/StellaOps.BinaryIndex.Builders.csproj",
|
||||
"result": "pass",
|
||||
"log": "tier1-build-builders.log"
|
||||
},
|
||||
{
|
||||
"project": "src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/StellaOps.BinaryIndex.Builders.Tests.csproj",
|
||||
"result": "pass",
|
||||
"log": "tier1-build-builders-tests.log"
|
||||
}
|
||||
],
|
||||
"testSteps": [
|
||||
{
|
||||
"project": "src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/StellaOps.BinaryIndex.Builders.Tests.csproj",
|
||||
"command": "dotnet test -c Release --no-build --filter \"FullyQualifiedName~SymbolDiff|FullyQualifiedName~NameDemangler\"",
|
||||
"filterBehavior": "Microsoft.Testing.Platform ignored VSTest filter and executed full suite (MTP0001 warning).",
|
||||
"result": "pass",
|
||||
"testsPassed": 53,
|
||||
"testsFailed": 0,
|
||||
"testsSkipped": 0,
|
||||
"testsTotal": 53,
|
||||
"log": "tier1-test-symboldiff.log"
|
||||
}
|
||||
],
|
||||
"codeReview": {
|
||||
"reviewedFiles": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiffAnalyzer.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/SymbolTableDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/VersionMapDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/DynamicLinkingDiff.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/AbiCompatibility.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Builders/SymbolDiff/NameDemangler.cs",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff/SymbolTableDiffAnalyzerTests.cs",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff/NameDemanglerTests.cs"
|
||||
],
|
||||
"checklist": [
|
||||
{
|
||||
"item": "Main analyzer implementation is non-trivial and not placeholder.",
|
||||
"result": "pass",
|
||||
"evidence": "ComputeDiffAsync, AssessAbiCompatibility, version/dynamic diff and deterministic diff-id logic are implemented."
|
||||
},
|
||||
{
|
||||
"item": "Feature logic matches documented behavior claims.",
|
||||
"result": "pass",
|
||||
"evidence": "Symbol add/remove/modify/rename handling, version-map diff, GOT/PLT diff, demangling, and DI extension wiring are present."
|
||||
},
|
||||
{
|
||||
"item": "Tests exercise core behavior.",
|
||||
"result": "pass",
|
||||
"evidence": "Analyzer tests cover add/remove/modify/rename, deterministic diff id, and ABI compatibility assessments."
|
||||
},
|
||||
{
|
||||
"item": "Tests assert meaningful outcomes.",
|
||||
"result": "pass",
|
||||
"evidence": "Assertions validate concrete symbol sets, counts, compatibility levels, and deterministic ID prefix/equality."
|
||||
}
|
||||
],
|
||||
"notes": [
|
||||
"Type declarations are primarily records (`record`) and `AbiCompatibilityLevel` enum naming differs from feature markdown phrasing but behavior surface remains aligned."
|
||||
],
|
||||
"codeReviewResult": "pass"
|
||||
},
|
||||
"buildResult": "pass",
|
||||
"testResult": "pass",
|
||||
"verdict": "pass",
|
||||
"logs": [
|
||||
{
|
||||
"name": "tier1-build-builders.log",
|
||||
"snippet": " Determining projects to restore...\r\n All projects are up-to-date for restore.\r\nC:\\Program Files\\dotnet\\sdk\\10.0.200-preview.0.26103.119\\Sdks\\Microsoft.NET.Sdk\\targets\\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Builders\\StellaOps.BinaryIndex.Builders.csproj]\r\nC:\\Program Files\\dotnet\\sdk\\10.0.200-preview.0.26103.119\\Sdks\\Microsoft.NET.Sdk\\targets\\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Contracts\\StellaOps.BinaryIndex.Contracts.csproj]\r\nC:\\Program Files\\dotnet\\sdk\\10.0.200-preview.0.26103.119\\Sdks\\Microsoft.NET.Sdk\\targets\\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): m"
|
||||
},
|
||||
{
|
||||
"name": "tier1-build-builders-tests.log",
|
||||
"snippet": " Determining projects to restore...\r\n All projects are up-to-date for restore.\r\nC:\\Program Files\\dotnet\\sdk\\10.0.200-preview.0.26103.119\\Sdks\\Microsoft.NET.Sdk\\targets\\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Tests\\StellaOps.BinaryIndex.Builders.Tests\\StellaOps.BinaryIndex.Builders.Tests.csproj]\r\nC:\\Program Files\\dotnet\\sdk\\10.0.200-preview.0.26103.119\\Sdks\\Microsoft.NET.Sdk\\targets\\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Semantic\\StellaOps.BinaryIndex.Semantic.csproj]\r\nC:\\Program Files\\dotnet\\sdk\\10.0.200-preview.0.26103.119\\Sdks\\Microsoft.NET.Sdk\\targets\\Microsoft.NET.RuntimeIdentifierInference.targets(383"
|
||||
},
|
||||
{
|
||||
"name": "tier1-test-symboldiff.log",
|
||||
"snippet": "C:\\dev\\New folder\\git.stella-ops.org\\.nuget\\packages\\microsoft.testing.platform.msbuild\\1.9.1\\buildMultiTargeting\\Microsoft.Testing.Platform.MSBuild.targets(376,5): warning MTP0001: VSTest-specific properties are set but will be ignored when using Microsoft.Testing.Platform. The following properties are set: VSTestTestCaseFilter; . [C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Tests\\StellaOps.BinaryIndex.Builders.Tests\\StellaOps.BinaryIndex.Builders.Tests.csproj]\r\n Run tests: \u0027C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Tests\\StellaOps.BinaryIndex.Builders.Tests\\bin\\Release\\net10.0\\StellaOps.BinaryIndex.Builders.Tests.dll\u0027 [net10.0|x64]\r\n Passed! - Failed: 0, Passed: 53, Skipped: 0, Total: 53, Duration: 579ms - StellaOps.BinaryIndex.Builders.Tests.dll (net10.0|x64)\r\n Tests succeeded: \u0027C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Tests\\StellaOps.BinaryIndex.Builders.Tests\\bin\\Release\\net10.0\\StellaOps.BinaryIndex.Builders.Tests.dll\u0027 [net10.0|x64]\r\n"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"type": "tier2-e2e-check",
|
||||
"module": "binaryindex",
|
||||
"feature": "binary-symbol-table-diff-engine",
|
||||
"runId": "run-001",
|
||||
"capturedAtUtc": "2026-02-11T20:45:06.3395681Z",
|
||||
"steps": [
|
||||
{
|
||||
"description": "Execute binary symbol diff behavioral test suite",
|
||||
"result": "pass",
|
||||
"evidence": "See tier2-integration-test.log and tier2-integration-check.json for fresh run evidence."
|
||||
}
|
||||
],
|
||||
"screenshots": [
|
||||
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"module": "binaryindex",
|
||||
"feature": "binary-symbol-table-diff-engine",
|
||||
"runId": "run-001",
|
||||
"capturedAtUtc": "2026-02-11T20:45:06.2854148Z",
|
||||
"testCommand": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/StellaOps.BinaryIndex.Builders.Tests.csproj -c Release --no-build",
|
||||
"testsRun": 53,
|
||||
"testsPassed": 53,
|
||||
"testsFailed": 0,
|
||||
"testsSkipped": 0,
|
||||
"checks": [
|
||||
{
|
||||
"description": "Symbol diff behavior tests executed",
|
||||
"assertion": "SymbolDiff test suite runs and passes for current build.",
|
||||
"result": "pass",
|
||||
"evidence": " Run tests: \u0027C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Tests\\StellaOps.BinaryIndex.Builders.Tests\\bin\\Release\\net10.0\\StellaOps.BinaryIndex.Builders.Tests.dll\u0027 [net10.0|x64]\r\n Passed! - Failed: 0, Passed: 53, Skipped: 0, Total: 53, Duration: 758ms - StellaOps.BinaryIndex.Builders.Tests.dll (net10.0|x64)\r\n Tests succeeded: \u0027C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Tests\\StellaOps.BinaryIndex.Builders.Tests\\bin\\Release\\net10.0\\StellaOps.BinaryIndex.Builders.Tests.dll\u0027 [net10.0|x64]\r\n"
|
||||
},
|
||||
{
|
||||
"description": "Feature-claim test presence",
|
||||
"assertion": "Tests cover add/remove/deterministic-id/ABI compatibility and demangling behaviors.",
|
||||
"result": "pass",
|
||||
"evidence": [
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\SymbolTableDiffAnalyzerTests.cs:36: public async Task ComputeDiffAsync_DetectsAddedSymbols()",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\SymbolTableDiffAnalyzerTests.cs:60: public async Task ComputeDiffAsync_DetectsRemovedSymbols()",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\SymbolTableDiffAnalyzerTests.cs:135: public async Task ComputeDiffAsync_ComputesDiffId_Deterministically()",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\SymbolTableDiffAnalyzerTests.cs:159: public void AssessAbiCompatibility_FullyCompatible_WhenNoBreakingChanges()",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\SymbolTableDiffAnalyzerTests.cs:177: public void AssessAbiCompatibility_Incompatible_WhenSymbolsRemoved()",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\SymbolTableDiffAnalyzerTests.cs:196: public void AssessAbiCompatibility_WarningsForAddedSymbols()",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Builders.Tests/SymbolDiff\\NameDemanglerTests.cs:14:public sealed class NameDemanglerTests"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Symbol diff implementation paths present",
|
||||
"assertion": "Analyzer contains version-map, dynamic-linking, diff-id, and ABI assessment paths.",
|
||||
"result": "pass",
|
||||
"evidence": [
|
||||
"67: var versions = ComputeVersionDiff(baseTable, targetTable);",
|
||||
"73: dynamic = ComputeDynamicLinkingDiff(baseTable, targetTable);",
|
||||
"100: var abiCompatibility = AssessAbiCompatibility(diffWithoutId);",
|
||||
"103: var diffId = ComputeDiffId(baseTable.Binary, targetTable.Binary, exports, imports);",
|
||||
"129: public AbiCompatibility AssessAbiCompatibility(SymbolTableDiff diff)",
|
||||
"312: private VersionMapDiff ComputeVersionDiff(SymbolTable baseTable, SymbolTable targetTable)",
|
||||
"378: private DynamicLinkingDiff ComputeDynamicLinkingDiff(SymbolTable baseTable, SymbolTable targetTable)",
|
||||
"547: private string ComputeDiffId("
|
||||
]
|
||||
}
|
||||
],
|
||||
"behaviorVerified": [
|
||||
"ComputeDiffAsync symbol add/remove/modify/rename and deterministic diff-id behavior validated by SymbolTableDiffAnalyzer tests.",
|
||||
"AssessAbiCompatibility downgrade path and warning behavior validated by analyzer compatibility tests.",
|
||||
"NameDemangler behavior validated by NameDemanglerTests, with implementation callsites in analyzer."
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user