save checkpoint: save features

This commit is contained in:
master
2026-02-12 10:27:23 +02:00
parent dca86e1248
commit 5bca406787
8837 changed files with 1796879 additions and 5294 deletions

View File

@@ -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"
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}

View File

@@ -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"
}