release orchestrator v1 draft and build fixes
This commit is contained in:
@@ -72,6 +72,11 @@ public sealed record DeltaSignatureRequest
|
||||
/// </summary>
|
||||
public sealed record DeltaSignature
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique identifier for this signature.
|
||||
/// </summary>
|
||||
public string SignatureId { get; init; } = Guid.NewGuid().ToString("N");
|
||||
|
||||
/// <summary>
|
||||
/// Schema identifier for this signature format.
|
||||
/// </summary>
|
||||
@@ -278,6 +283,79 @@ public sealed record SymbolMatchResult
|
||||
/// Match confidence (0.0 - 1.0).
|
||||
/// </summary>
|
||||
public double Confidence { get; init; }
|
||||
|
||||
// ====== CHANGE TRACKING FIELDS ======
|
||||
|
||||
/// <summary>
|
||||
/// Type of change detected.
|
||||
/// </summary>
|
||||
public SymbolChangeType ChangeType { get; init; } = SymbolChangeType.Unchanged;
|
||||
|
||||
/// <summary>
|
||||
/// Size delta in bytes (positive = larger, negative = smaller).
|
||||
/// </summary>
|
||||
public int SizeDelta { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// CFG basic block count delta (if available).
|
||||
/// </summary>
|
||||
public int? CfgBlockDelta { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Indices of chunks that matched (for partial match analysis).
|
||||
/// </summary>
|
||||
public ImmutableArray<int> MatchedChunkIndices { get; init; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Human-readable explanation of the change.
|
||||
/// </summary>
|
||||
public string? ChangeExplanation { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Hash of the "from" version (before change).
|
||||
/// </summary>
|
||||
public string? FromHash { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Hash of the "to" version (after change).
|
||||
/// </summary>
|
||||
public string? ToHash { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Method used for matching (CFGHash, InstructionHash, SemanticHash, ChunkHash).
|
||||
/// </summary>
|
||||
public string? MatchMethod { get; init; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Type of symbol change detected.
|
||||
/// </summary>
|
||||
public enum SymbolChangeType
|
||||
{
|
||||
/// <summary>
|
||||
/// No change detected.
|
||||
/// </summary>
|
||||
Unchanged,
|
||||
|
||||
/// <summary>
|
||||
/// Symbol was added (not present in "from" version).
|
||||
/// </summary>
|
||||
Added,
|
||||
|
||||
/// <summary>
|
||||
/// Symbol was removed (not present in "to" version).
|
||||
/// </summary>
|
||||
Removed,
|
||||
|
||||
/// <summary>
|
||||
/// Symbol was modified (hash changed).
|
||||
/// </summary>
|
||||
Modified,
|
||||
|
||||
/// <summary>
|
||||
/// Symbol was patched (security fix applied, verified).
|
||||
/// </summary>
|
||||
Patched
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -310,3 +388,75 @@ public sealed record AuthoringResult
|
||||
/// </summary>
|
||||
public string? Error { get; init; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Result of comparing two delta signatures.
|
||||
/// </summary>
|
||||
public sealed record DeltaComparisonResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Identifier for the "from" signature.
|
||||
/// </summary>
|
||||
public required string FromSignatureId { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Identifier for the "to" signature.
|
||||
/// </summary>
|
||||
public required string ToSignatureId { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Individual symbol comparison results.
|
||||
/// </summary>
|
||||
public ImmutableArray<SymbolMatchResult> SymbolResults { get; init; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Summary of the comparison.
|
||||
/// </summary>
|
||||
public required DeltaComparisonSummary Summary { get; init; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Summary of a delta comparison between two signatures.
|
||||
/// </summary>
|
||||
public sealed record DeltaComparisonSummary
|
||||
{
|
||||
/// <summary>
|
||||
/// Total number of symbols compared.
|
||||
/// </summary>
|
||||
public int TotalSymbols { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of unchanged symbols.
|
||||
/// </summary>
|
||||
public int UnchangedSymbols { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of added symbols.
|
||||
/// </summary>
|
||||
public int AddedSymbols { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of removed symbols.
|
||||
/// </summary>
|
||||
public int RemovedSymbols { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of modified symbols.
|
||||
/// </summary>
|
||||
public int ModifiedSymbols { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of patched symbols (security fixes).
|
||||
/// </summary>
|
||||
public int PatchedSymbols { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Average confidence across all symbol comparisons.
|
||||
/// </summary>
|
||||
public double AverageConfidence { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Total size delta in bytes.
|
||||
/// </summary>
|
||||
public int TotalSizeDelta { get; init; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user