@adobe/spacecat-shared-data-access 4.23.0 → 4.24.0

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [@adobe/spacecat-shared-data-access-v4.24.0](https://github.com/adobe/spacecat-shared/compare/@adobe/spacecat-shared-data-access-v4.23.0...@adobe/spacecat-shared-data-access-v4.24.0) (2026-09-02)
2
+
3
+ ### Features
4
+
5
+ * **data-access:** add GeoExperiment.allStuckImpactMeasurementChecks query ([#1905](https://github.com/adobe/spacecat-shared/issues/1905)) ([db0596b](https://github.com/adobe/spacecat-shared/commit/db0596b20807ae1ae6e5a9388eb68a62d8ab280b))
6
+
1
7
  ## [@adobe/spacecat-shared-data-access-v4.23.0](https://github.com/adobe/spacecat-shared/compare/@adobe/spacecat-shared-data-access-v4.22.1...@adobe/spacecat-shared-data-access-v4.23.0) (2026-08-28)
2
8
 
3
9
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/spacecat-shared-data-access",
3
- "version": "4.23.0",
3
+ "version": "4.24.0",
4
4
  "description": "Shared modules of the Spacecat Services - Data Access",
5
5
  "type": "module",
6
6
  "engines": {
@@ -60,6 +60,32 @@ class GeoExperimentCollection extends BaseCollection {
60
60
  },
61
61
  );
62
62
  }
63
+
64
+ /**
65
+ * Gets all geo experiments left at status COMPLETED / phase IMPACT_MEASUREMENT_STARTED — a
66
+ * combination that only arises when a manual impact-measurement re-trigger leaves the
67
+ * experiment COMPLETED (so it stays outside allActive()) but nobody has followed up with a
68
+ * check of the re-submitted Mystique task. Used by the experimentation engine's bounded
69
+ * stuck-check sweep to find and resolve abandoned re-triggers (see
70
+ * llmo-experimentation-engine/docs/decisions/007-manual-impact-measurement-check-completed-
71
+ * status.md). Same cost/indexing characteristic as allActive() above — a filtered query over
72
+ * all GeoExperiment records, not a dedicated secondary index.
73
+ *
74
+ * @param {object} [options={}] - Query options (limit, cursor, order).
75
+ * @returns {Promise<GeoExperiment[]>} Array of stuck experiments.
76
+ */
77
+ async allStuckImpactMeasurementChecks(options = {}) {
78
+ return this.all(
79
+ {},
80
+ {
81
+ ...options,
82
+ where: (attrs, op) => op.and(
83
+ op.eq(attrs.status, GeoExperiment.STATUSES.COMPLETED),
84
+ op.eq(attrs.phase, GeoExperiment.PHASES.IMPACT_MEASUREMENT_STARTED),
85
+ ),
86
+ },
87
+ );
88
+ }
63
89
  }
64
90
 
65
91
  export default GeoExperimentCollection;