feat: close builder mutation and roundtrip evidence gaps
This commit is contained in:
@@ -102,6 +102,8 @@ let missingEvidenceStages = 0
|
||||
let nativeEvidenceValidatedStages = 0
|
||||
let nativeMappedNameStages = 0
|
||||
let nativeIndexedNameStages = 0
|
||||
let indexedNameOnlyStages = 0
|
||||
let privateTokenEvidenceRequiredStages = 0
|
||||
let privateTokenEvidenceCompleteStages = 0
|
||||
let internalBuilderEvidenceStages = 0
|
||||
let internalBuilderEvidenceMissingStages = 0
|
||||
@@ -122,6 +124,8 @@ for (const fixture of composite.cases) {
|
||||
if (stage.nativeEvidence?.stageId === stage.name && stage.nativeEvidence?.resultObjectId === stage.name && stage.nativeEvidence?.status === stage.namingEvidenceStatus) nativeEvidenceValidatedStages += 1
|
||||
if (stage.nativeEvidence?.mappedNameApiEntries > 0) nativeMappedNameStages += 1
|
||||
if (stage.nativeEvidence?.indexedNameApiEntries > 0) nativeIndexedNameStages += 1
|
||||
if (stage.nativeEvidence?.indexedNameOnly === true) indexedNameOnlyStages += 1
|
||||
if (stage.nativeEvidence?.privateTokenEvidenceRequired === true) privateTokenEvidenceRequiredStages += 1
|
||||
if (stage.nativeEvidence?.privateTokenEvidenceComplete === true) privateTokenEvidenceCompleteStages += 1
|
||||
if (builderStageType.test(stage.typeId || '')) {
|
||||
if (stage.nativeEvidence?.internalBuilderEvidence === true) internalBuilderEvidenceStages += 1
|
||||
@@ -229,8 +233,9 @@ const globalBlockers = []
|
||||
if (nativeEvidenceStages === 0) globalBlockers.push('composite oracle has no native-evidence stage; native topology identity remains unavailable')
|
||||
if (nativeEvidenceValidatedStages !== nativeEvidenceStages) globalBlockers.push(`${nativeEvidenceStages - nativeEvidenceValidatedStages} native-evidence stages failed runtime evidence identity validation`)
|
||||
if (nativeIndexedNameStages !== nativeEvidenceStages) globalBlockers.push(`${nativeEvidenceStages - nativeIndexedNameStages} native-evidence stages have no direct FreeCAD indexed-name identity`)
|
||||
if (privateTokenEvidenceCompleteStages < nativeEvidenceStages) globalBlockers.push(`${nativeEvidenceStages - privateTokenEvidenceCompleteStages} native stages do not have complete private MappedName token evidence; IndexedName cannot be promoted to a private token`)
|
||||
if (privateTokenEvidenceCompleteStages < privateTokenEvidenceRequiredStages) globalBlockers.push(`${privateTokenEvidenceRequiredStages - privateTokenEvidenceCompleteStages} native builder stages do not have complete private MappedName token evidence`)
|
||||
if (internalBuilderEvidenceMissingStages > 0) globalBlockers.push(`${internalBuilderEvidenceMissingStages} composite builder stages have no native intermediate builder evidence; final geometry cannot reconstruct private intermediate history`)
|
||||
globalBlockers.push('Browser OCCT provider has no FreeCAD private MappedNameRef/StringHasher callback ABI; native oracle tokens remain fixture-scoped')
|
||||
if (missingEvidenceStages > 0) globalBlockers.push(`${missingEvidenceStages} composite stages have missing naming evidence status`)
|
||||
if (elementMapResources === 0) globalBlockers.push('composite oracle has no ElementMap2 resources')
|
||||
if (stringHasherResources === 0) globalBlockers.push('composite oracle has no StringHasher resources')
|
||||
@@ -253,7 +258,8 @@ const result = {
|
||||
nativeEvidenceValidatedStages,
|
||||
nativeIndexedNameStages,
|
||||
nativeMappedNameStages,
|
||||
indexedOnlyStages: nativeIndexedNameStages - nativeMappedNameStages,
|
||||
indexedOnlyStages: indexedNameOnlyStages,
|
||||
privateTokenEvidenceRequiredStages,
|
||||
privateTokenEvidenceCompleteStages,
|
||||
internalBuilderEvidenceStages,
|
||||
internalBuilderEvidenceMissingStages,
|
||||
|
||||
Reference in New Issue
Block a user