pixivflow 2.22.0 → 2.22.1

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.
@@ -256,13 +256,12 @@ class OutboxWorker {
256
256
  }
257
257
  catch (error) {
258
258
  const message = (0, redact_1.redactError)(error).slice(0, 1000);
259
- const { errorClass } = (0, errorClass_1.classifyError)(error);
260
- // A local configuration error is deterministic: every attempt re-reads the
261
- // same config, so retrying only parks the row in `retry_wait` until its
262
- // attempt budget runs out. Dead-letter it now so it is visible instead.
263
- if (errorClass === 'configuration_error') {
259
+ const { errorClass, retryable } = (0, errorClass_1.classifyError)(error);
260
+ // Deterministic failures cannot improve under the same idempotent intent.
261
+ // Retrying them only leaves the owning Slot running until the budget expires.
262
+ if (!retryable) {
264
263
  this.database.outbox.markDead(row.id, message);
265
- this.deadLetter(row, `${message} (configuration error)`, errorClass);
264
+ this.deadLetter(row, message, errorClass);
266
265
  return 'dead';
267
266
  }
268
267
  // Transport-level error (fetch threw) or ack-classified failure: retryable.
@@ -336,8 +335,7 @@ class OutboxWorker {
336
335
  this.onDeliveryTerminal?.(row.deliveryId, ack, payload);
337
336
  break;
338
337
  case 'permanent_failure':
339
- // Deterministic rejection: still retry a couple times to survive a
340
- // misconfigured blip, the outbox max-attempts then dead-letters it.
338
+ // Deterministic rejection: the same idempotent intent cannot recover.
341
339
  throw new Error(`permanent delivery failure: ${ack.error}`);
342
340
  case 'retryable_failure':
343
341
  throw new Error(`retryable delivery failure: ${ack.error}`);
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "pixivflow",
4
- "version": "2.22.0",
4
+ "version": "2.22.1",
5
5
  "private": true
6
6
  }
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BUILD = void 0;
4
4
  // GENERATED by scripts/write-version.js — do not edit manually.
5
- exports.BUILD = { version: '2.22.0', commit: 'e6cd6211dba7' };
5
+ exports.BUILD = { version: '2.22.1', commit: 'd7d248938926' };
6
6
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "pixivflow-webui-backend",
4
- "version": "2.22.0",
4
+ "version": "2.22.1",
5
5
  "description": "PixivFlow WebUI Backend - CommonJS module"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixivflow",
3
- "version": "2.22.0",
3
+ "version": "2.22.1",
4
4
  "description": "🎨 Pixiv 下载、筛选与自动收集工具 - 批量下载插画和小说、按标签/热度/日期筛选、定时任务与可靠 HTTP 交付 | Pixiv downloader and automation toolkit with filtering, scheduling and reliable HTTP delivery",
5
5
  "repository": {
6
6
  "type": "git",