hydro-ai-helper 2.0.6 → 2.0.7

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.
@@ -18,20 +18,32 @@ class BatchSummaryJobModel {
18
18
  * 唯一部分索引: 同一域+竞赛只能有一个非归档任务
19
19
  */
20
20
  async ensureIndexes() {
21
- // 清理旧版本索引(v1 使用了不被 partialFilterExpression 支持的 $ne)
22
- try {
23
- await this.collection.dropIndex('idx_domainId_contestId_active');
21
+ // 清理旧版本索引(两者都不被 partialFilterExpression 支持,曾导致创建失败):
22
+ // v1 用了 $ne;v2 用了 $in(MongoDB < 6.0 报 "unsupported expression in
23
+ // partial index")。逐个尝试删除,不存在则忽略。
24
+ for (const legacy of ['idx_domainId_contestId_active', 'idx_domainId_contestId_active_v2']) {
25
+ try {
26
+ await this.collection.dropIndex(legacy);
27
+ }
28
+ catch {
29
+ // 旧索引不存在,忽略
30
+ }
24
31
  }
25
- catch {
26
- // 旧索引不存在,忽略
27
- }
28
- // 清理重复的活跃任务(v1 索引从未生效,可能已存入重复数据导致 v2 唯一索引创建失败)
32
+ // 清理重复的活跃任务(旧唯一索引可能从未生效,存在重复数据会导致唯一索引创建失败)
29
33
  await this.deduplicateActiveJobs();
34
+ // partialFilterExpression 仅支持 等值/$exists/$gt/$gte/$lt/$lte/$type/$and,
35
+ // 不支持 $in 与 $ne。'archived' 在字典序上小于所有活跃状态,因此用
36
+ // { $gt: 'archived' } 即可精确选出活跃集(pending/running/completed/failed/
37
+ // stopped),且在所有 MongoDB 版本上都受支持。下面的不变式校验用于防止将来
38
+ // 新增的状态破坏该字典序假设。
39
+ if (exports.ACTIVE_JOB_STATUSES.some((s) => s <= 'archived')) {
40
+ console.warn('[BatchSummaryJobModel] 状态字典序不变式被破坏:存在 <= "archived" 的活跃状态,部分索引过滤器可能不正确');
41
+ }
30
42
  await this.collection.createIndex({ domainId: 1, contestId: 1 }, {
31
- name: 'idx_domainId_contestId_active_v2',
43
+ name: 'idx_domainId_contestId_active_v3',
32
44
  unique: true,
33
45
  partialFilterExpression: {
34
- status: { $in: [...exports.ACTIVE_JOB_STATUSES] },
46
+ status: { $gt: 'archived' },
35
47
  },
36
48
  });
37
49
  console.log('[BatchSummaryJobModel] Indexes created successfully');
@@ -1 +1 @@
1
- {"version":3,"file":"batchSummaryJob.js","sourceRoot":"","sources":["../../src/models/batchSummaryJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batchSummaryJob.js","sourceRoot":"","sources":["../../src/models/batchSummaryJob.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hydro-ai-helper",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "HydroOJ AI Learning Assistant - 一个教学优先的 AI 辅助学习插件",
5
5
  "main": "dist/index.js",
6
6
  "author": "Alture",