bulltrackers-module 1.0.659 → 1.0.660

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.
@@ -190,15 +190,25 @@ async function handleForceRun(config, dependencies, computationManifest, reqBody
190
190
  const hasFailedDep = report.failedDependency.some(t => normalizeName(t.name) === targetComputationNormalized);
191
191
  const isImpossible = report.impossible.some(t => normalizeName(t.name) === targetComputationNormalized);
192
192
  const isBlocked = report.blocked.some(t => normalizeName(t.name) === targetComputationNormalized);
193
+ const isSkipped = report.skipped.some(t => normalizeName(t.name) === targetComputationNormalized);
193
194
 
194
- if (isRunnable || needsReRun || hasFailedDep) {
195
- runnableDates.push(date);
196
- } else if (isImpossible) {
195
+ // For force runs: treat skipped computations (already stored with valid hash) as runnable
196
+ // They will overwrite with the same result, which is fine for testing
197
+ // Only mark as impossible if root data or dependencies don't exist at all
198
+ if (isImpossible) {
197
199
  skippedDates.push({ date, reason: report.impossible.find(t => normalizeName(t.name) === targetComputationNormalized)?.reason || 'Impossible' });
200
+ } else if (isRunnable || needsReRun || hasFailedDep || isSkipped) {
201
+ // Runnable, needs re-run, has failed deps (but not impossible), or skipped (already stored)
202
+ // All of these are runnable for force runs - will overwrite existing results if needed
203
+ runnableDates.push(date);
198
204
  } else if (isBlocked) {
199
- skippedDates.push({ date, reason: report.blocked.find(t => normalizeName(t.name) === targetComputationNormalized)?.reason || 'Blocked' });
205
+ // Blocked usually means waiting for data - for force runs, if root data exists, still runnable
206
+ // Only skip if truly impossible (handled above)
207
+ runnableDates.push(date);
200
208
  } else {
201
- skippedDates.push({ date, reason: 'Not runnable (unknown reason)' });
209
+ // Unknown state - for force runs, if root data exists (which it does, since result is not null), treat as runnable
210
+ logger.log('WARN', `[ForceRun] Computation ${computationName} in unknown state for ${date}, treating as runnable`);
211
+ runnableDates.push(date);
202
212
  }
203
213
  }
204
214
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bulltrackers-module",
3
- "version": "1.0.659",
3
+ "version": "1.0.660",
4
4
  "description": "Helper Functions for Bulltrackers.",
5
5
  "main": "index.js",
6
6
  "files": [