@plasius/schema 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -256,6 +256,11 @@ binding before materialization; the schema deliberately performs no
256
256
  environment-dependent hashing. See
257
257
  [ADR-0012](./docs/adrs/adr-0012-identifier-free-bug-health-metrics-projection.md).
258
258
 
259
+ Materialization manifests may identify a revision as a `metrics-source`
260
+ correction when an independently finalized identifier-free metric changed but
261
+ no packet arrived late. That reason requires `lateArrivalCount: 0`; ordinary
262
+ late-arrival corrections continue to require a positive late-arrival count.
263
+
259
264
  All feedback contracts opt in to recursive unknown-field rejection, including
260
265
  direct references and arrays of references. Unshaped references admit only
261
266
  `type` and `id`; shaped references admit only those keys plus their declared
package/dist/index.cjs CHANGED
@@ -4883,6 +4883,7 @@ var FeedbackMaterializationManifestSchema = createSchema(
4883
4883
  generatedAt: field.dateTimeISO(),
4884
4884
  sourcePacketCount: countField(),
4885
4885
  lateArrivalCount: countField(),
4886
+ correctionReason: field.string().enum(["late-arrival", "metrics-source"]).optional(),
4886
4887
  outputReportId: uuidField().optional(),
4887
4888
  status: field.string().enum(["published", "corrected", "no-op"])
4888
4889
  },
@@ -4894,9 +4895,9 @@ var FeedbackMaterializationManifestSchema = createSchema(
4894
4895
  return false;
4895
4896
  }
4896
4897
  if (value.processor === "commit-reconciliation") {
4897
- return value.status === "no-op" && value.revision >= 1 && value.outputReportId === void 0 && value.lateArrivalCount === 0;
4898
+ return value.status === "no-op" && value.revision >= 1 && value.outputReportId === void 0 && value.correctionReason === void 0 && value.lateArrivalCount === 0;
4898
4899
  }
4899
- return value.status === "published" && value.revision === 1 && value.lateArrivalCount === 0 && value.outputReportId !== void 0 || value.status === "corrected" && value.revision >= 2 && value.lateArrivalCount > 0 && value.outputReportId !== void 0;
4900
+ return value.status === "published" && value.revision === 1 && value.lateArrivalCount === 0 && value.correctionReason === void 0 && value.outputReportId !== void 0 || value.status === "corrected" && value.revision >= 2 && (value.correctionReason === "metrics-source" && value.lateArrivalCount === 0 || (value.correctionReason === void 0 || value.correctionReason === "late-arrival") && value.lateArrivalCount > 0) && value.outputReportId !== void 0;
4900
4901
  }
4901
4902
  }
4902
4903
  );