pixivflow 2.12.2 → 2.13.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.
Files changed (131) hide show
  1. package/README.md +12 -4
  2. package/dist/commands/DoctorCommand.d.ts +20 -0
  3. package/dist/commands/DoctorCommand.d.ts.map +1 -0
  4. package/dist/commands/DoctorCommand.js +107 -0
  5. package/dist/commands/DoctorCommand.js.map +1 -0
  6. package/dist/commands/ReconcileCommand.d.ts +24 -0
  7. package/dist/commands/ReconcileCommand.d.ts.map +1 -0
  8. package/dist/commands/ReconcileCommand.js +70 -0
  9. package/dist/commands/ReconcileCommand.js.map +1 -0
  10. package/dist/commands/SchedulerCommand.d.ts.map +1 -1
  11. package/dist/commands/SchedulerCommand.js +5 -0
  12. package/dist/commands/SchedulerCommand.js.map +1 -1
  13. package/dist/commands/SchedulerRunOnceCommand.d.ts.map +1 -1
  14. package/dist/commands/SchedulerRunOnceCommand.js +6 -0
  15. package/dist/commands/SchedulerRunOnceCommand.js.map +1 -1
  16. package/dist/commands/index.d.ts +3 -1
  17. package/dist/commands/index.d.ts.map +1 -1
  18. package/dist/commands/index.js +7 -1
  19. package/dist/commands/index.js.map +1 -1
  20. package/dist/commands/scheduler-runtime.d.ts +10 -1
  21. package/dist/commands/scheduler-runtime.d.ts.map +1 -1
  22. package/dist/commands/scheduler-runtime.js +169 -47
  23. package/dist/commands/scheduler-runtime.js.map +1 -1
  24. package/dist/config/types.d.ts +10 -1
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/delivery/DeliveryAck.d.ts +70 -0
  27. package/dist/delivery/DeliveryAck.d.ts.map +1 -0
  28. package/dist/delivery/DeliveryAck.js +72 -0
  29. package/dist/delivery/DeliveryAck.js.map +1 -0
  30. package/dist/delivery/DeliveryDispatcher.js +1 -1
  31. package/dist/delivery/DeliveryDispatcher.js.map +1 -1
  32. package/dist/delivery/DeliveryService.d.ts +74 -0
  33. package/dist/delivery/DeliveryService.d.ts.map +1 -0
  34. package/dist/delivery/DeliveryService.js +207 -0
  35. package/dist/delivery/DeliveryService.js.map +1 -0
  36. package/dist/delivery/HttpMultipartDelivery.d.ts +10 -1
  37. package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
  38. package/dist/delivery/HttpMultipartDelivery.js +40 -65
  39. package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
  40. package/dist/delivery/LegacyOutboxMigration.d.ts +21 -0
  41. package/dist/delivery/LegacyOutboxMigration.d.ts.map +1 -0
  42. package/dist/delivery/LegacyOutboxMigration.js +125 -0
  43. package/dist/delivery/LegacyOutboxMigration.js.map +1 -0
  44. package/dist/delivery/OutboxWorker.d.ts +69 -0
  45. package/dist/delivery/OutboxWorker.d.ts.map +1 -0
  46. package/dist/delivery/OutboxWorker.js +194 -0
  47. package/dist/delivery/OutboxWorker.js.map +1 -0
  48. package/dist/delivery/types.d.ts +11 -0
  49. package/dist/delivery/types.d.ts.map +1 -1
  50. package/dist/download/DownloadManager.d.ts +17 -12
  51. package/dist/download/DownloadManager.d.ts.map +1 -1
  52. package/dist/download/DownloadManager.js +31 -53
  53. package/dist/download/DownloadManager.js.map +1 -1
  54. package/dist/download/NovelDownloader.d.ts +3 -1
  55. package/dist/download/NovelDownloader.d.ts.map +1 -1
  56. package/dist/download/NovelDownloader.js +30 -2
  57. package/dist/download/NovelDownloader.js.map +1 -1
  58. package/dist/download/handlers/IllustrationTargetHandler.d.ts +18 -8
  59. package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
  60. package/dist/download/handlers/IllustrationTargetHandler.js +100 -74
  61. package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
  62. package/dist/download/handlers/NovelTargetHandler.d.ts +8 -8
  63. package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
  64. package/dist/download/handlers/NovelTargetHandler.js +64 -83
  65. package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
  66. package/dist/download/plan/DownloadPlanner.d.ts +6 -1
  67. package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
  68. package/dist/download/plan/DownloadPlanner.js +28 -5
  69. package/dist/download/plan/DownloadPlanner.js.map +1 -1
  70. package/dist/notification/NotificationPolicy.d.ts +38 -0
  71. package/dist/notification/NotificationPolicy.d.ts.map +1 -0
  72. package/dist/notification/NotificationPolicy.js +89 -0
  73. package/dist/notification/NotificationPolicy.js.map +1 -0
  74. package/dist/package.json +1 -1
  75. package/dist/pixiv/PixivClient.d.ts +4 -0
  76. package/dist/pixiv/PixivClient.d.ts.map +1 -1
  77. package/dist/pixiv/PixivClient.js +15 -2
  78. package/dist/pixiv/PixivClient.js.map +1 -1
  79. package/dist/pixiv/RateLimitCoordinator.d.ts +30 -0
  80. package/dist/pixiv/RateLimitCoordinator.d.ts.map +1 -0
  81. package/dist/pixiv/RateLimitCoordinator.js +66 -0
  82. package/dist/pixiv/RateLimitCoordinator.js.map +1 -0
  83. package/dist/pixiv/client/PixivApiCore.d.ts +5 -0
  84. package/dist/pixiv/client/PixivApiCore.d.ts.map +1 -1
  85. package/dist/pixiv/client/PixivApiCore.js +31 -9
  86. package/dist/pixiv/client/PixivApiCore.js.map +1 -1
  87. package/dist/scheduler/ScheduleTriggerServer.d.ts +7 -0
  88. package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -1
  89. package/dist/scheduler/ScheduleTriggerServer.js +17 -0
  90. package/dist/scheduler/ScheduleTriggerServer.js.map +1 -1
  91. package/dist/scheduler/SlotCoordinator.d.ts +15 -0
  92. package/dist/scheduler/SlotCoordinator.d.ts.map +1 -1
  93. package/dist/scheduler/SlotCoordinator.js +74 -0
  94. package/dist/scheduler/SlotCoordinator.js.map +1 -1
  95. package/dist/scheduler/SlotStateMachine.d.ts +32 -0
  96. package/dist/scheduler/SlotStateMachine.d.ts.map +1 -0
  97. package/dist/scheduler/SlotStateMachine.js +65 -0
  98. package/dist/scheduler/SlotStateMachine.js.map +1 -0
  99. package/dist/scheduler/TargetOutcome.d.ts +63 -0
  100. package/dist/scheduler/TargetOutcome.d.ts.map +1 -0
  101. package/dist/scheduler/TargetOutcome.js +28 -0
  102. package/dist/scheduler/TargetOutcome.js.map +1 -0
  103. package/dist/storage/Database.d.ts +16 -0
  104. package/dist/storage/Database.d.ts.map +1 -1
  105. package/dist/storage/Database.js +29 -0
  106. package/dist/storage/Database.js.map +1 -1
  107. package/dist/storage/DatabaseMigration.d.ts.map +1 -1
  108. package/dist/storage/DatabaseMigration.js +66 -0
  109. package/dist/storage/DatabaseMigration.js.map +1 -1
  110. package/dist/storage/repositories/DeliveryRepository.d.ts +73 -0
  111. package/dist/storage/repositories/DeliveryRepository.d.ts.map +1 -0
  112. package/dist/storage/repositories/DeliveryRepository.js +148 -0
  113. package/dist/storage/repositories/DeliveryRepository.js.map +1 -0
  114. package/dist/storage/repositories/MetadataRepository.d.ts +27 -0
  115. package/dist/storage/repositories/MetadataRepository.d.ts.map +1 -0
  116. package/dist/storage/repositories/MetadataRepository.js +58 -0
  117. package/dist/storage/repositories/MetadataRepository.js.map +1 -0
  118. package/dist/storage/repositories/OutboxRepository.d.ts +70 -0
  119. package/dist/storage/repositories/OutboxRepository.d.ts.map +1 -0
  120. package/dist/storage/repositories/OutboxRepository.js +187 -0
  121. package/dist/storage/repositories/OutboxRepository.js.map +1 -0
  122. package/dist/storage/repositories/SlotRepository.d.ts +26 -1
  123. package/dist/storage/repositories/SlotRepository.d.ts.map +1 -1
  124. package/dist/storage/repositories/SlotRepository.js +76 -2
  125. package/dist/storage/repositories/SlotRepository.js.map +1 -1
  126. package/dist/webui/package.json +1 -1
  127. package/package.json +1 -1
  128. package/dist/delivery/DeliveryOutbox.d.ts +0 -43
  129. package/dist/delivery/DeliveryOutbox.d.ts.map +0 -1
  130. package/dist/delivery/DeliveryOutbox.js +0 -293
  131. package/dist/delivery/DeliveryOutbox.js.map +0 -1
package/README.md CHANGED
@@ -151,9 +151,15 @@ pixivflow scheduler # 按 cron 配置长期挂机自动收集
151
151
 
152
152
  `headers` 和 `url` 里可用 `${环境变量名}` 引用环境变量(Token 别写死进配置)。
153
153
 
154
- 投递是「发件箱」式的,进程重启也不丢:失败的文件和待投清单保存在数据库同级的
155
- `delivery-outbox/`,下次运行先补投,按「5 分钟起步、最长 6 小时」指数退避重试,
156
- 成功后才清理。「今天没有可投稿内容」这类通知也走同一个 outbox,审核端暂时挂掉也能继续重试。
154
+ 投递是**事务发件箱(SQLite outbox)**式的,at-least-once 执行、effectively-once
155
+ 可见效果:每个外部副作用(一次内容投递、一条通知)在 `outbox` 表落一行,带幂等键和
156
+ 行级租约,独立 worker 立即泵送、指数退避重试(默认 5 分钟起步、最长 6 小时),超过
157
+ `maxAttempts` 进 dead 状态并在投递账记 `failed`。进程崩溃 / 机器挂起后重启,残留的
158
+ `processing` 租约过期即被新进程接管,重试同一个幂等意图——下游按
159
+ `idempotent_replay`(同键,ACK 丢失重试)或 `duplicate_existing`(历史重复)收敛,
160
+ 频道里仍然只有一条消息。旧版文件型 `delivery-outbox/*.json` 清单在启动时自动一次性
161
+ 迁移进 SQLite,迁移幂等。「今天没有可投稿内容」这类通知与内容投递走同一张表、独立泵送,
162
+ 审核端暂时挂掉不会互相阻塞。
157
163
 
158
164
  运维通知可直接把 `notificationUrl` 指向 [Apprise API](docs/APPRISE.md),由 Apprise 统一发送
159
165
  Email、Telegram、Discord、ntfy 等渠道;PixivFlow 不实现这些通知协议。
@@ -174,6 +180,8 @@ Email、Telegram、Discord、ntfy 等渠道;PixivFlow 不实现这些通知协
174
180
  | `pixivflow config` | 配置管理(查看 / 编辑 / 备份 / 恢复) |
175
181
  | `pixivflow status` | 下载统计与最近记录 |
176
182
  | `pixivflow health` | 健康检查:配置、目录可写性、连通性 |
183
+ | `pixivflow doctor` | 可靠性体检:卡住的 slot/outbox 租约、pending 投递、dead 行;`--repair` 收敛 |
184
+ | `pixivflow reconcile` | 把下游已确认的历史重复登记进投递账本(默认 dry-run,`--repair` 落库) |
177
185
  | `pixivflow tags discover <词>` | 发现相关 Tag(Pixiv 联想 + 作品标签共现),只列候选不改配置 |
178
186
  | `pixivflow tags apply <清单> --target <id> --select <tag1,tag2>` | 人工确认后把所选 Tag 原子写入配置并触发热重载 |
179
187
  | `pixivflow topic resolve <主题>` | 查看自动推导出的相关 Tag 空间(`--type illustration\|novel`、`--refresh`) |
@@ -221,4 +229,4 @@ Bug 与功能建议请提交到
221
229
 
222
230
  ## 许可证
223
231
 
224
- [MIT](LICENSE)
232
+ [MIT](LICENSE)
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Doctor: cold-start / crash / suspend consistency diagnostics for the
3
+ * reliability subsystem. Read-only by default; --repair applies safe,
4
+ * idempotent convergence actions. Uses only SQLite - no external services.
5
+ */
6
+ import { BaseCommand } from './Command';
7
+ import { CommandCategory } from './metadata';
8
+ import { CommandArgs, CommandContext, CommandResult } from './types';
9
+ export declare class DoctorCommand extends BaseCommand {
10
+ readonly name = "doctor";
11
+ readonly description = "Diagnose and (with --repair) converge slots, deliveries and outbox";
12
+ readonly metadata: {
13
+ category: CommandCategory;
14
+ requiresAuth: boolean;
15
+ longRunning: boolean;
16
+ };
17
+ readonly requiresToken = false;
18
+ execute(context: CommandContext, args: CommandArgs): Promise<CommandResult>;
19
+ }
20
+ //# sourceMappingURL=DoctorCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoctorCommand.d.ts","sourceRoot":"","sources":["../../src/commands/DoctorCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAYrE,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,wEAAwE;IAC5F,QAAQ,CAAC,QAAQ;;;;MAAoF;IACrG,QAAQ,CAAC,aAAa,SAAS;IAEzB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CA0FlF"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DoctorCommand = void 0;
4
+ /**
5
+ * Doctor: cold-start / crash / suspend consistency diagnostics for the
6
+ * reliability subsystem. Read-only by default; --repair applies safe,
7
+ * idempotent convergence actions. Uses only SQLite - no external services.
8
+ */
9
+ const Command_1 = require("./Command");
10
+ const metadata_1 = require("./metadata");
11
+ const Database_1 = require("../storage/Database");
12
+ const OutboxWorker_1 = require("../delivery/OutboxWorker");
13
+ const DeliveryDispatcher_1 = require("../delivery/DeliveryDispatcher");
14
+ const LegacyOutboxMigration_1 = require("../delivery/LegacyOutboxMigration");
15
+ class DoctorCommand extends Command_1.BaseCommand {
16
+ name = 'doctor';
17
+ description = 'Diagnose and (with --repair) converge slots, deliveries and outbox';
18
+ metadata = { category: metadata_1.CommandCategory.MONITORING, requiresAuth: true, longRunning: false };
19
+ requiresToken = false;
20
+ async execute(context, args) {
21
+ const repair = Boolean(args.options.repair);
22
+ const dbPath = context.config.storage?.databasePath ?? './data/pixiv-downloader.db';
23
+ const findings = [];
24
+ const fixed = [];
25
+ const db = new Database_1.Database(dbPath);
26
+ try {
27
+ db.migrate();
28
+ findings.push({ level: 'info', code: 'schema', message: 'Schema migrations applied / current' });
29
+ const mig = (0, LegacyOutboxMigration_1.migrateLegacyOutbox)(db);
30
+ if (mig.imported || mig.delivered || mig.failed) {
31
+ findings.push({
32
+ level: mig.failed ? 'warn' : 'info',
33
+ code: 'legacy-outbox',
34
+ message: 'legacy manifests scanned=' + mig.scanned + ' imported=' + mig.imported + ' delivered=' + mig.delivered + ' failed=' + mig.failed,
35
+ });
36
+ }
37
+ const deliveries = db.deliveries.countByStatus();
38
+ const pendingDelivery = deliveries.pending ?? 0;
39
+ if (pendingDelivery > 0) {
40
+ findings.push({ level: 'warn', code: 'deliveries-pending', message: pendingDelivery + ' delivery intent(s) not yet confirmed by the downstream' });
41
+ }
42
+ if (deliveries.failed) {
43
+ findings.push({ level: 'warn', code: 'deliveries-failed', message: deliveries.failed + ' delivery intent(s) marked failed' });
44
+ }
45
+ const counts = db.outbox.counts();
46
+ if (counts.dead > 0) {
47
+ findings.push({ level: 'critical', code: 'outbox-dead', message: counts.dead + ' outbox row(s) dead after exhausting retries (manual reconciliation required)' });
48
+ }
49
+ const stale = db.outbox.staleProcessing();
50
+ if (stale.length > 0) {
51
+ findings.push({ level: repair ? 'info' : 'warn', code: 'outbox-stale-processing', message: stale.length + ' row(s) stuck in processing from a crashed/killed run' });
52
+ if (repair) {
53
+ for (const row of stale)
54
+ db.outbox.release(row.id);
55
+ fixed.push('released ' + stale.length + ' stale processing row(s) back for retry');
56
+ }
57
+ }
58
+ const staleLeases = db.slots.slotsWithStaleLease();
59
+ if (staleLeases.length > 0) {
60
+ findings.push({ level: repair ? 'info' : 'warn', code: 'slot-stale-lease', message: staleLeases.length + ' slot(s) carry an expired lease from a crashed worker: ' + staleLeases.slice(0, 5).join(', ') });
61
+ if (repair) {
62
+ for (const id of staleLeases)
63
+ db.slots.releaseSlotLease(id, 'doctor-repair');
64
+ fixed.push('released ' + staleLeases.length + ' stale slot lease(s)');
65
+ }
66
+ }
67
+ let unfinishedCells = 0;
68
+ for (const slot of db.slots.getRecentSlots(50)) {
69
+ if (slot.status === 'running' || slot.status === 'failed') {
70
+ for (const cell of db.slots.getCells(slot.id)) {
71
+ if (cell.status === 'delivery_pending')
72
+ unfinishedCells++;
73
+ }
74
+ }
75
+ }
76
+ if (unfinishedCells > 0) {
77
+ findings.push({ level: 'info', code: 'cells-delivery-pending', message: unfinishedCells + ' cell(s) waiting on durable delivery confirmation (outbox converges them)' });
78
+ }
79
+ if (repair) {
80
+ const worker = new OutboxWorker_1.OutboxWorker(db, new DeliveryDispatcher_1.DeliveryDispatcher(context.config.delivery));
81
+ const res = await worker.drainOnce(20);
82
+ if (res.done > 0)
83
+ fixed.push('outbox pump delivered/confirmed ' + res.done + ' row(s)');
84
+ if (res.dead > 0)
85
+ fixed.push('outbox pump marked ' + res.dead + ' row(s) dead');
86
+ }
87
+ const critical = findings.filter((f) => f.level === 'critical');
88
+ const warns = findings.filter((f) => f.level === 'warn');
89
+ for (const f of findings) {
90
+ const icon = f.level === 'critical' ? 'CRIT' : f.level === 'warn' ? 'WARN' : 'OK';
91
+ context.logger.info('[' + icon + '] [' + f.code + '] ' + f.message);
92
+ }
93
+ for (const x of fixed)
94
+ context.logger.info('repaired: ' + x);
95
+ return this.success(critical.length
96
+ ? 'doctor found ' + critical.length + ' critical, ' + warns.length + ' warning(s)'
97
+ : warns.length
98
+ ? 'doctor found ' + warns.length + ' warning(s)'
99
+ : 'doctor: all reliability state healthy', { findings, repaired: fixed, deliveryCounts: deliveries, outboxCounts: counts });
100
+ }
101
+ finally {
102
+ db.close();
103
+ }
104
+ }
105
+ }
106
+ exports.DoctorCommand = DoctorCommand;
107
+ //# sourceMappingURL=DoctorCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoctorCommand.js","sourceRoot":"","sources":["../../src/commands/DoctorCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * reconcile: accept a downstream-confirmed historical duplicate as fact.
3
+ *
4
+ * This is the ONLY way a post-lock historical duplicate enters the ledger.
5
+ * Default mode is a dry-run (prints what would change); --repair applies it.
6
+ *
7
+ * pixivflow reconcile --target bot1 --type illustration --pixiv-id 123 \
8
+ * --remote-id 987 --reason "found in channel history" [--repair]
9
+ */
10
+ import { BaseCommand } from './Command';
11
+ import { CommandCategory } from './metadata';
12
+ import { CommandArgs, CommandContext, CommandResult } from './types';
13
+ export declare class ReconcileCommand extends BaseCommand {
14
+ readonly name = "reconcile";
15
+ readonly description = "Reconcile a downstream-confirmed historical duplicate (dry-run unless --repair)";
16
+ readonly metadata: {
17
+ category: CommandCategory;
18
+ requiresAuth: boolean;
19
+ longRunning: boolean;
20
+ };
21
+ readonly requiresToken = false;
22
+ execute(context: CommandContext, args: CommandArgs): Promise<CommandResult>;
23
+ }
24
+ //# sourceMappingURL=ReconcileCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconcileCommand.d.ts","sourceRoot":"","sources":["../../src/commands/ReconcileCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIrE,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,qFAAqF;IACzG,QAAQ,CAAC,QAAQ;;;;MAAoF;IACrG,QAAQ,CAAC,aAAa,SAAS;IAEzB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAiDlF"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReconcileCommand = void 0;
4
+ /**
5
+ * reconcile: accept a downstream-confirmed historical duplicate as fact.
6
+ *
7
+ * This is the ONLY way a post-lock historical duplicate enters the ledger.
8
+ * Default mode is a dry-run (prints what would change); --repair applies it.
9
+ *
10
+ * pixivflow reconcile --target bot1 --type illustration --pixiv-id 123 \
11
+ * --remote-id 987 --reason "found in channel history" [--repair]
12
+ */
13
+ const Command_1 = require("./Command");
14
+ const metadata_1 = require("./metadata");
15
+ const Database_1 = require("../storage/Database");
16
+ const DeliveryService_1 = require("../delivery/DeliveryService");
17
+ class ReconcileCommand extends Command_1.BaseCommand {
18
+ name = 'reconcile';
19
+ description = 'Reconcile a downstream-confirmed historical duplicate (dry-run unless --repair)';
20
+ metadata = { category: metadata_1.CommandCategory.MONITORING, requiresAuth: true, longRunning: false };
21
+ requiresToken = false;
22
+ async execute(context, args) {
23
+ const target = String(args.options.target ?? '').trim();
24
+ const workType = String(args.options.type ?? '').trim();
25
+ const pixivId = String(args.options['pixiv-id'] ?? args.options.pixivId ?? '').trim();
26
+ const remoteId = args.options['remote-id'] ? String(args.options['remote-id']) : undefined;
27
+ const reason = String(args.options.reason ?? 'manual reconciliation').trim();
28
+ const repair = Boolean(args.options.repair);
29
+ if (!target || !workType || !pixivId) {
30
+ return this.failure('Usage: reconcile --target <name> --type <illustration|novel> --pixiv-id <id> [--remote-id <id>] [--reason <text>] [--repair]');
31
+ }
32
+ if (workType !== 'illustration' && workType !== 'novel') {
33
+ return this.failure('--type must be illustration or novel');
34
+ }
35
+ const dbPath = context.config.storage?.databasePath ?? './data/pixiv-downloader.db';
36
+ const db = new Database_1.Database(dbPath);
37
+ try {
38
+ db.migrate();
39
+ const service = new DeliveryService_1.DeliveryService(db);
40
+ const already = service.isAlreadyDelivered(target, workType, pixivId);
41
+ if (already) {
42
+ context.logger.info('Already recorded as delivered/duplicate; nothing to reconcile', { target, workType, pixivId });
43
+ return this.success('already reconciled', { target, workType, pixivId, noop: true });
44
+ }
45
+ if (!repair) {
46
+ context.logger.info('DRY RUN (pass --repair to apply)', { target, workType, pixivId, remoteId, reason });
47
+ return this.success('dry-run: would record historical duplicate', { dryRun: true, target, workType, pixivId, remoteId, reason });
48
+ }
49
+ const res = service.reconcileHistoricalDuplicate({
50
+ deliveryTarget: target,
51
+ workType,
52
+ pixivId,
53
+ remoteId,
54
+ reason,
55
+ });
56
+ return this.success('historical duplicate reconciled into ledger', {
57
+ deliveryId: res.deliveryId,
58
+ created: res.created,
59
+ target,
60
+ workType,
61
+ pixivId,
62
+ });
63
+ }
64
+ finally {
65
+ db.close();
66
+ }
67
+ }
68
+ }
69
+ exports.ReconcileCommand = ReconcileCommand;
70
+ //# sourceMappingURL=ReconcileCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconcileCommand.js","sourceRoot":"","sources":["../../src/commands/ReconcileCommand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,oDAAoD;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAS;IACnC,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAkJjF,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,IAAI,MAAM;CAYnB"}
1
+ {"version":3,"file":"SchedulerCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,oDAAoD;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAS;IACnC,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAwJjF,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,IAAI,MAAM;CAYnB"}
@@ -58,6 +58,10 @@ class SchedulerCommand extends Command_1.BaseCommand {
58
58
  },
59
59
  });
60
60
  const status = manager.start(runtime.config);
61
+ // Independent outbox pump: deliveries/notifications retry promptly on a
62
+ // timer and resume after crash/machine-stop without waiting for the next
63
+ // scheduled run. It never gates Telegram/scheduler readiness.
64
+ runtime.startOutboxWorker();
61
65
  // Authenticated HTTP trigger. Mounted in external mode (the external clock
62
66
  // wakes the machine here) and, opt-in, in internal mode for manual/ops
63
67
  // triggers. Business logic lives in runJob/SlotCoordinator; this handler
@@ -122,6 +126,7 @@ class SchedulerCommand extends Command_1.BaseCommand {
122
126
  inFlight.set(key, promise);
123
127
  return promise;
124
128
  },
129
+ drainOutbox: () => runtime.drainOutbox(),
125
130
  status: (scheduleId) => {
126
131
  const cfg = resolveConfig();
127
132
  const plan = findPlan(cfg, scheduleId);
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uCAAwC;AACxC,yCAA6C;AAE7C,sCAAwE;AACxE,4EAAyE;AACzE,8EAA6F;AAC7F,kEAA+D;AAE/D,2DAA6D;AAE7D;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAAwB;IAC9C,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAa,gBAAiB,SAAQ,qBAAW;IACtC,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAAG,gDAAgD,CAAC;IAC/D,OAAO,GAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,GAAG;QAClB,QAAQ,EAAE,0BAAe,CAAC,QAAQ;QAClC,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,IAAiB;QACtD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,MAA4B,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,IAAA,0CAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,MAA4B,CAAC,CAAC;YACxF,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE1E,MAAM,OAAO,GAAG,IAAI,2CAAoB,CAAC;gBACvC,UAAU;gBACV,UAAU,EAAE,GAAG,EAAE;oBACf,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,oBAAoB,EAAE,CAAC;wBAChE,MAAM,IAAI,KAAK,CACb,iIAAiI,CAClI,CAAC;oBACJ,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,qBAAqB;gBACxC,SAAS,EAAE;oBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,cAAc;oBAClE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,cAAc;oBAChE,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;iBACxD;aACF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE7C,2EAA2E;YAC3E,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,+DAA+D;YAC/D,IAAI,aAAa,GAAiC,IAAI,CAAC;YACvD,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAiB,CAAC;gBAC5C,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM,aAAa,GAAG,GAAqB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;gBACxF,MAAM,QAAQ,GAAG,CAAC,GAAqB,EAAE,UAAkB,EAAE,EAAE,CAC7D,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;gBAEzE,oEAAoE;gBACpE,gEAAgE;gBAChE,iEAAiE;gBACjE,sBAAsB;gBACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;gBAE9D,aAAa,GAAG,IAAI,6CAAqB,CACvC,6CAAqB,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EACrD;oBACE,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC1C,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;wBACzC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;wBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;wBACvC,IAAI,CAAC,IAAI;4BAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;wBAC5E,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;wBAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO;4BAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,8BAA8B,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;wBAC1H,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACvC,CAAC;oBACD,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE;wBAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;wBAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACnC,IAAI,QAAQ;4BAAE,OAAO,QAAQ,CAAC;wBAC9B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;wBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;wBACvC,MAAM,OAAO,GAAG,CAAC,KAAK,IAA+B,EAAE;4BACrD,IAAI,CAAC;gCACH,IAAI,CAAC,IAAI;oCAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;gCACpG,4DAA4D;gCAC5D,2DAA2D;gCAC3D,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,MAAuB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gCAC3F,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gCAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oCACxE,QAAQ,EAAE,CAAC,CAAC,QAAQ;oCACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oCAChB,MAAM,EAAE,CAAC,CAAC,MAAM;oCAChB,KAAK,EAAE,CAAC,CAAC,SAAS;iCACnB,CAAC,CAAC,CAAC;gCACJ,OAAO;oCACL,UAAU;oCACV,MAAM,EAAE,OAAO,CAAC,MAAM;oCACtB,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,QAAQ;oCAC/B,gBAAgB,EAAE,GAAG,EAAE,MAAM,KAAK,SAAS,IAAI,GAAG,EAAE,MAAM,KAAK,SAAS;oCACxE,KAAK;iCACN,CAAC;4BACJ,CAAC;oCAAS,CAAC;gCACT,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BACvB,CAAC;wBACH,CAAC,CAAC,EAAE,CAAC;wBACL,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAC3B,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE;wBACrB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;wBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;wBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC9F,MAAM,GAAG,GAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;wBACxE,OAAO;4BACL,UAAU;4BACV,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,UAAU;4BAC3B,UAAU,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI;yBAChC,CAAC;oBACJ,CAAC;iBACF,CACF,CAAC;gBACF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;gBACpE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;gBACzD,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,EAAE,CAAC,IAAI,KAAK,UAAU;oBACpB,CAAC,CAAC,2FAA2F;oBAC7F,CAAC,CAAC,iEAAiE,EACrE,EAAE,IAAI,EAAE,CACT,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC/C,aAAa,EAAE,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAC1E,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACvC,OAAO,EAAE,sFAAsF;gBAC/F,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBAC3D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7E,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,EAAE,KAAK,EAAE,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,MAAwB;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO;;;;;;;;;iEASsD,CAAC;IAChE,CAAC;CACF;AAhLD,4CAgLC"}
1
+ {"version":3,"file":"SchedulerCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerRunOnceCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,2DAA2D;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAChD,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAyDjF,QAAQ,IAAI,MAAM;CAiBnB"}
1
+ {"version":3,"file":"SchedulerRunOnceCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,2DAA2D;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAChD,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DjF,QAAQ,IAAI,MAAM;CAiBnB"}
@@ -55,8 +55,14 @@ class SchedulerRunOnceCommand extends Command_1.BaseCommand {
55
55
  // occurrence complete nor be resumed as one. Explicit replacement.
56
56
  runtime.runJob(runtime.config, plan, { adhoc: true, triggerSource: 'manual', onlyTarget: targetFilter }), timeoutMs, () => runtime.cancelActive(`run timeout after ${timeoutMs}ms`), `plan ${plan.id}`);
57
57
  }
58
+ // Flush deliveries/notifications created by this one-shot before exit.
59
+ // A bounded drain: durable rows survive if they cannot finish now and the
60
+ // scheduler daemon (or a later run-once) retries them.
61
+ const drained = await runtime.drainOutbox();
62
+ context.logger.info('Outbox drain complete', drained);
58
63
  return this.success('Scheduled plans completed', {
59
64
  schedules: plans.map((plan) => plan.id),
65
+ outbox: drained,
60
66
  });
61
67
  }
62
68
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerRunOnceCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchedulerRunOnceCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ import { MigrateConfigCommand } from './MigrateConfigCommand';
14
14
  import { NormalizeCommand } from './NormalizeCommand';
15
15
  import { WebUICommand } from './WebUICommand';
16
16
  import { HealthCommand } from './HealthCommand';
17
+ import { DoctorCommand } from './DoctorCommand';
18
+ import { ReconcileCommand } from './ReconcileCommand';
17
19
  import { StatusCommand } from './StatusCommand';
18
20
  import { LogsCommand } from './LogsCommand';
19
21
  import { ConfigCommand } from './ConfigCommand';
@@ -32,5 +34,5 @@ export declare function registerAllCommands(registry: CommandRegistry): void;
32
34
  /**
33
35
  * Export all command classes
34
36
  */
35
- export { HelpCommand, LoginCommand, LoginHeadlessCommand, RefreshCommand, DownloadCommand, RandomDownloadCommand, SchedulerCommand, SchedulerRunOnceCommand, MigrateConfigCommand, NormalizeCommand, WebUICommand, HealthCommand, StatusCommand, LogsCommand, ConfigCommand, BackupCommand, MaintainCommand, MonitorCommand, SetupCommand, DirsCommand, VersionCommand, TagsCommand, TopicCommand, };
37
+ export { HelpCommand, LoginCommand, LoginHeadlessCommand, RefreshCommand, DownloadCommand, RandomDownloadCommand, SchedulerCommand, SchedulerRunOnceCommand, MigrateConfigCommand, NormalizeCommand, WebUICommand, HealthCommand, DoctorCommand, ReconcileCommand, StatusCommand, LogsCommand, ConfigCommand, BackupCommand, MaintainCommand, MonitorCommand, SetupCommand, DirsCommand, VersionCommand, TagsCommand, TopicCommand, };
36
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAwBnE;AAED;;GAEG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CA0BnE;AAED;;GAEG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Command exports and registration
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TopicCommand = exports.TagsCommand = exports.VersionCommand = exports.DirsCommand = exports.SetupCommand = exports.MonitorCommand = exports.MaintainCommand = exports.BackupCommand = exports.ConfigCommand = exports.LogsCommand = exports.StatusCommand = exports.HealthCommand = exports.WebUICommand = exports.NormalizeCommand = exports.MigrateConfigCommand = exports.SchedulerRunOnceCommand = exports.SchedulerCommand = exports.RandomDownloadCommand = exports.DownloadCommand = exports.RefreshCommand = exports.LoginHeadlessCommand = exports.LoginCommand = exports.HelpCommand = void 0;
6
+ exports.TopicCommand = exports.TagsCommand = exports.VersionCommand = exports.DirsCommand = exports.SetupCommand = exports.MonitorCommand = exports.MaintainCommand = exports.BackupCommand = exports.ConfigCommand = exports.LogsCommand = exports.StatusCommand = exports.ReconcileCommand = exports.DoctorCommand = exports.HealthCommand = exports.WebUICommand = exports.NormalizeCommand = exports.MigrateConfigCommand = exports.SchedulerRunOnceCommand = exports.SchedulerCommand = exports.RandomDownloadCommand = exports.DownloadCommand = exports.RefreshCommand = exports.LoginHeadlessCommand = exports.LoginCommand = exports.HelpCommand = void 0;
7
7
  exports.registerAllCommands = registerAllCommands;
8
8
  const HelpCommand_1 = require("./HelpCommand");
9
9
  Object.defineProperty(exports, "HelpCommand", { enumerable: true, get: function () { return HelpCommand_1.HelpCommand; } });
@@ -29,6 +29,10 @@ const WebUICommand_1 = require("./WebUICommand");
29
29
  Object.defineProperty(exports, "WebUICommand", { enumerable: true, get: function () { return WebUICommand_1.WebUICommand; } });
30
30
  const HealthCommand_1 = require("./HealthCommand");
31
31
  Object.defineProperty(exports, "HealthCommand", { enumerable: true, get: function () { return HealthCommand_1.HealthCommand; } });
32
+ const DoctorCommand_1 = require("./DoctorCommand");
33
+ Object.defineProperty(exports, "DoctorCommand", { enumerable: true, get: function () { return DoctorCommand_1.DoctorCommand; } });
34
+ const ReconcileCommand_1 = require("./ReconcileCommand");
35
+ Object.defineProperty(exports, "ReconcileCommand", { enumerable: true, get: function () { return ReconcileCommand_1.ReconcileCommand; } });
32
36
  const StatusCommand_1 = require("./StatusCommand");
33
37
  Object.defineProperty(exports, "StatusCommand", { enumerable: true, get: function () { return StatusCommand_1.StatusCommand; } });
34
38
  const LogsCommand_1 = require("./LogsCommand");
@@ -67,6 +71,8 @@ function registerAllCommands(registry) {
67
71
  registry.register(new NormalizeCommand_1.NormalizeCommand());
68
72
  registry.register(new WebUICommand_1.WebUICommand());
69
73
  registry.register(new HealthCommand_1.HealthCommand());
74
+ registry.register(new DoctorCommand_1.DoctorCommand());
75
+ registry.register(new ReconcileCommand_1.ReconcileCommand());
70
76
  registry.register(new StatusCommand_1.StatusCommand());
71
77
  registry.register(new LogsCommand_1.LogsCommand());
72
78
  registry.register(new ConfigCommand_1.ConfigCommand());
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -27,10 +27,19 @@ export interface SchedulerRuntime {
27
27
  cancelActive(reason: string): void;
28
28
  /** Notify the affected review group after a failed scheduled run. */
29
29
  notifyScheduleFailure(snapshot: StandaloneConfig, schedule: ScheduleConfig, failure: JobFailure): Promise<void>;
30
+ /** Start the independent outbox pump (long-running daemon). */
31
+ startOutboxWorker(): void;
32
+ /** Drain due outbox rows once (run-once / watchdog wake). */
33
+ drainOutbox(): Promise<{
34
+ processed: number;
35
+ done: number;
36
+ retried: number;
37
+ dead: number;
38
+ }>;
30
39
  /** Stop token maintenance, cancel any in-flight download and close the DB. */
31
40
  close(): void;
32
41
  }
33
- export declare function notifyScheduleFailure(config: StandaloneConfig, databasePath: string, schedule: ScheduleConfig, failure: JobFailure): Promise<void>;
42
+ export declare function notifyScheduleFailure(config: StandaloneConfig, database: Database, schedule: ScheduleConfig, failure: JobFailure): Promise<void>;
34
43
  export declare function createSchedulerRuntime(configPathArg?: string): Promise<SchedulerRuntime>;
35
44
  /**
36
45
  * Watchdog for a single plan run (used by `run-once`; the daemon's cron runs
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA6B,cAAc,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AACtG,OAAO,EAAE,QAAQ,EAA0B,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAiB,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;IACnE,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,qBAAqB,CACnB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf;AAsGD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiN9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAcZ"}
1
+ {"version":3,"file":"scheduler-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA6B,cAAc,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AACtG,OAAO,EAAE,QAAQ,EAA0B,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAU3E,OAAO,EAAE,kBAAkB,EAAiB,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;IACnE,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,qBAAqB,CACnB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,+DAA+D;IAC/D,iBAAiB,IAAI,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3F,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf;AAiGD,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBjB;AAWD,wBAAsB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqS9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAcZ"}