save checkpoint: save features
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"approved": true,
|
||||
"reason": "Independent parity review aligns with triage and run evidence.",
|
||||
"revisedRootCause": "Implementation is partially complete (multi-format identity extraction and persistence paths) but misses key claim-parity behaviors around symbol-based fallback and ground-truth/SBOM validation semantics.",
|
||||
"capturedAtUtc": "2026-02-11T18:53:48.6216548Z"
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"type": "source",
|
||||
"capturedAtUtc": "2026-02-11T18:49:52.8682743Z",
|
||||
"filesChecked": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/BinaryIdentityService.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/ElfFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/PeFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/MachoFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/StreamGuard.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/IBinaryFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Models/BinaryIdentity.cs"
|
||||
],
|
||||
"found": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/BinaryIdentityService.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/ElfFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/PeFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/MachoFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/StreamGuard.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/IBinaryFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Models/BinaryIdentity.cs"
|
||||
],
|
||||
"missing": [
|
||||
|
||||
],
|
||||
"declarations": [
|
||||
{
|
||||
"symbol": "BinaryIdentityService",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Services\\BinaryIdentityService.cs:11:public sealed class BinaryIdentityService"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "ElfFeatureExtractor",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Services\\ElfFeatureExtractor.cs:11:public sealed class ElfFeatureExtractor : IBinaryFeatureExtractor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "PeFeatureExtractor",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Services\\PeFeatureExtractor.cs:20:public sealed class PeFeatureExtractor : IBinaryFeatureExtractor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "MachoFeatureExtractor",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Services\\MachoFeatureExtractor.cs:20:public sealed class MachoFeatureExtractor : IBinaryFeatureExtractor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "StreamGuard",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Services\\StreamGuard.cs:3:internal static class StreamGuard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "IBinaryFeatureExtractor",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Services\\IBinaryFeatureExtractor.cs:8:public interface IBinaryFeatureExtractor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "BinaryIdentity",
|
||||
"found": true,
|
||||
"matches": [
|
||||
"C:\\dev\\New folder\\git.stella-ops.org\\src\\BinaryIndex\\__Libraries\\StellaOps.BinaryIndex.Core\\Models\\BinaryIdentity.cs:6:public sealed record BinaryIdentity"
|
||||
]
|
||||
}
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"capturedAtUtc": "2026-02-11T18:53:48.6216548Z",
|
||||
"project": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/StellaOps.BinaryIndex.Core.csproj (+ Persistence/WebService test surfaces)",
|
||||
"buildResult": "pass",
|
||||
"testResult": "pass",
|
||||
"commandsFile": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\tier1-commands.json",
|
||||
"codeReview": {
|
||||
"verdict": "fail",
|
||||
"findings": [
|
||||
"Feature claim states binaries without Build-ID fall back to symbol-based identification, but extractor fallback path uses file hash only.",
|
||||
"Claimed ground-truth validation and SBOM stability verification are not implemented in the BinaryIdentity extraction path under the listed key classes.",
|
||||
"Behavioral coverage does not explicitly validate PE CodeView GUID or Mach-O LC_UUID extraction in focused assertions."
|
||||
],
|
||||
"evidence": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/ElfFeatureExtractor.cs:53-55",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/BinaryIdentityService.cs:27-75",
|
||||
"src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Core.Tests/FeatureExtractorTests.cs (no CodeView/LC_UUID assertion lines found via symbol scan)",
|
||||
"rg parity scan across Core/Persistence for symbol-observation fallback from identity extraction returned no integration in listed key classes."
|
||||
]
|
||||
},
|
||||
"errors": [
|
||||
|
||||
],
|
||||
"verdict": "fail"
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
[
|
||||
{
|
||||
"name": "build-core-lib",
|
||||
"command": "dotnet build src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/StellaOps.BinaryIndex.Core.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:51:06.5768701Z",
|
||||
"finishedAtUtc": "2026-02-11T18:51:07.9018879Z",
|
||||
"summary": "Build succeeded.",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\build-core-lib.log"
|
||||
},
|
||||
{
|
||||
"name": "build-persistence-lib",
|
||||
"command": "dotnet build src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Persistence/StellaOps.BinaryIndex.Persistence.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:51:07.9144202Z",
|
||||
"finishedAtUtc": "2026-02-11T18:51:10.0139237Z",
|
||||
"summary": "Build succeeded.",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\build-persistence-lib.log"
|
||||
},
|
||||
{
|
||||
"name": "test-core",
|
||||
"command": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Core.Tests/StellaOps.BinaryIndex.Core.Tests.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:51:10.0179298Z",
|
||||
"finishedAtUtc": "2026-02-11T18:51:18.2902632Z",
|
||||
"summary": " Passed! - Failed: 0, Passed: 50, Skipped: 0, Total: 50, Duration: 346ms - StellaOps.BinaryIndex.Core.Tests.dll (net10.0|x64)",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\test-core.log"
|
||||
},
|
||||
{
|
||||
"name": "test-persistence",
|
||||
"command": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Persistence.Tests/StellaOps.BinaryIndex.Persistence.Tests.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:51:18.2940494Z",
|
||||
"finishedAtUtc": "2026-02-11T18:51:33.2859046Z",
|
||||
"summary": " Passed! - Failed: 0, Passed: 21, Skipped: 0, Total: 21, Duration: 5s 527ms - StellaOps.BinaryIndex.Persistence.Tests.dll (net10.0|x64)",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\test-persistence.log"
|
||||
},
|
||||
{
|
||||
"name": "test-webservice",
|
||||
"command": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.WebService.Tests/StellaOps.BinaryIndex.WebService.Tests.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:51:33.2908298Z",
|
||||
"finishedAtUtc": "2026-02-11T18:51:48.9758023Z",
|
||||
"summary": " Passed! - Failed: 0, Passed: 40, Skipped: 0, Total: 40, Duration: 386ms - StellaOps.BinaryIndex.WebService.Tests.dll (net10.0|x64)",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\test-webservice.log"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"name": "tier2-core-behavior",
|
||||
"command": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Core.Tests/StellaOps.BinaryIndex.Core.Tests.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:52:31.3070761Z",
|
||||
"finishedAtUtc": "2026-02-11T18:52:40.9000137Z",
|
||||
"summary": " Passed! - Failed: 0, Passed: 50, Skipped: 0, Total: 50, Duration: 369ms - StellaOps.BinaryIndex.Core.Tests.dll (net10.0|x64)",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\tier2-core-behavior.log"
|
||||
},
|
||||
{
|
||||
"name": "tier2-persistence-behavior",
|
||||
"command": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Persistence.Tests/StellaOps.BinaryIndex.Persistence.Tests.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:52:40.9175033Z",
|
||||
"finishedAtUtc": "2026-02-11T18:52:57.5667879Z",
|
||||
"summary": " Passed! - Failed: 0, Passed: 21, Skipped: 0, Total: 21, Duration: 6s 697ms - StellaOps.BinaryIndex.Persistence.Tests.dll (net10.0|x64)",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\tier2-persistence-behavior.log"
|
||||
},
|
||||
{
|
||||
"name": "tier2-webservice-behavior",
|
||||
"command": "dotnet test src/BinaryIndex/__Tests/StellaOps.BinaryIndex.WebService.Tests/StellaOps.BinaryIndex.WebService.Tests.csproj -c Release --nologo",
|
||||
"exitCode": 0,
|
||||
"startedAtUtc": "2026-02-11T18:52:57.5705257Z",
|
||||
"finishedAtUtc": "2026-02-11T18:53:10.2571113Z",
|
||||
"summary": " Passed! - Failed: 0, Passed: 40, Skipped: 0, Total: 40, Duration: 501ms - StellaOps.BinaryIndex.WebService.Tests.dll (net10.0|x64)",
|
||||
"log": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\tier2-webservice-behavior.log"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-11T18:53:48.6216548Z",
|
||||
"commandsFile": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\tier2-commands.json",
|
||||
"tests": [
|
||||
{
|
||||
"name": "core",
|
||||
"log": "tier2-core-behavior.log",
|
||||
"result": "pass",
|
||||
"behaviorObserved": [
|
||||
"Cross-format extractor tests and non-seekable stream negative checks executed."
|
||||
],
|
||||
"behaviorGap": "No explicit assertion proving CodeView GUID/LC_UUID extraction outcomes."
|
||||
},
|
||||
{
|
||||
"name": "persistence",
|
||||
"log": "tier2-persistence-behavior.log",
|
||||
"result": "pass",
|
||||
"behaviorObserved": [
|
||||
"Binary identity repository upsert/query behavior verified against PostgreSQL testcontainer."
|
||||
],
|
||||
"behaviorGap": null
|
||||
},
|
||||
{
|
||||
"name": "webservice",
|
||||
"log": "tier2-webservice-behavior.log",
|
||||
"result": "pass",
|
||||
"behaviorObserved": [
|
||||
"Resolution webservice tests execute with build-id request paths."
|
||||
],
|
||||
"behaviorGap": "Does not demonstrate symbol-observation fallback when Build-ID is absent."
|
||||
}
|
||||
],
|
||||
"behaviorVerified": [
|
||||
"Binary identity persistence/query paths operate with passing integration tests.",
|
||||
"Extractor error handling for non-seekable streams is behaviorally exercised."
|
||||
],
|
||||
"behaviorMissing": [
|
||||
"No implemented symbol-observation fallback path for Build-ID-missing binaries in the listed identity extraction classes.",
|
||||
"Ground-truth/SBOM-stability validation semantics are not proven by the extraction service path."
|
||||
],
|
||||
"verdict": "fail"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-11T18:53:48.6216548Z",
|
||||
"commandsFile": "docs\\qa\\feature-checks\\runs\\binaryindex\\binary-identity-extraction\\run-001\\tier2-commands.json",
|
||||
"tests": [
|
||||
{
|
||||
"name": "core",
|
||||
"log": "tier2-core-behavior.log",
|
||||
"result": "pass",
|
||||
"behaviorObserved": [
|
||||
"Cross-format extractor tests and non-seekable stream negative checks executed."
|
||||
],
|
||||
"behaviorGap": "No explicit assertion proving CodeView GUID/LC_UUID extraction outcomes."
|
||||
},
|
||||
{
|
||||
"name": "persistence",
|
||||
"log": "tier2-persistence-behavior.log",
|
||||
"result": "pass",
|
||||
"behaviorObserved": [
|
||||
"Binary identity repository upsert/query behavior verified against PostgreSQL testcontainer."
|
||||
],
|
||||
"behaviorGap": null
|
||||
},
|
||||
{
|
||||
"name": "webservice",
|
||||
"log": "tier2-webservice-behavior.log",
|
||||
"result": "pass",
|
||||
"behaviorObserved": [
|
||||
"Resolution webservice tests execute with build-id request paths."
|
||||
],
|
||||
"behaviorGap": "Does not demonstrate symbol-observation fallback when Build-ID is absent."
|
||||
}
|
||||
],
|
||||
"behaviorVerified": [
|
||||
"Binary identity persistence/query paths operate with passing integration tests.",
|
||||
"Extractor error handling for non-seekable streams is behaviorally exercised."
|
||||
],
|
||||
"behaviorMissing": [
|
||||
"No implemented symbol-observation fallback path for Build-ID-missing binaries in the listed identity extraction classes.",
|
||||
"Ground-truth/SBOM-stability validation semantics are not proven by the extraction service path."
|
||||
],
|
||||
"verdict": "fail"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"rootCause": "Feature dossier overstates delivered behavior: current implementation extracts Build-ID/hash identities but does not implement claimed symbol-based fallback and ground-truth/SBOM stability verification in the documented identity extraction path.",
|
||||
"category": "missing_code",
|
||||
"affectedFiles": [
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/ElfFeatureExtractor.cs",
|
||||
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Services/BinaryIdentityService.cs",
|
||||
"docs/features/unchecked/binaryindex/binary-identity-extraction.md"
|
||||
],
|
||||
"confidence": 0.96,
|
||||
"evidence": [
|
||||
"Fallback binary key path is fileSha only when BuildId is null (no symbol-observation path).",
|
||||
"No code-path linkage from BinaryIdentityService to ground-truth observation/SBOM stability verification in listed implementation classes.",
|
||||
"Tier2 behavioral runs pass baseline tests but do not prove claimed fallback semantics."
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user