@michengai/dsh-automation 0.1.38 → 0.1.39

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
@@ -4,6 +4,11 @@
4
4
 
5
5
  The five most recent published versions are listed below. Git tags and GitHub Releases now mirror these entries; historical sections retain links to their original release commits.
6
6
 
7
+ ## 0.1.39 - 2026-09-12
8
+
9
+ - Remove the global concurrency cap for different automations, including those in the same directory, so they no longer wait for one of the previous two execution slots.
10
+ - The legacy `maxConcurrentRuns` setting no longer takes effect. Duplicate-run protection remains for each automation: an existing queued or running record blocks another manual start, and overlapping scheduled occurrences are still skipped.
11
+
7
12
  ## 0.1.38 - 2026-09-11
8
13
 
9
14
  - Add support for DSH `0.1.5-rc.2`, retaining compatibility with `0.1.0-rc.8`, `0.1.1-rc.2`, `0.1.2-rc.1`, and `0.1.5-rc.1`.
@@ -4,6 +4,11 @@
4
4
 
5
5
  以下记录最近发布的五个版本。Git 标签与 GitHub Release 现已和这些条目同步;历史条目继续保留原始发布提交链接。
6
6
 
7
+ ## 0.1.39 - 2026-09-12
8
+
9
+ - 取消不同自动化任务的全局并发上限,同一目录下的不同任务也可同时运行,无需等待原有的两个运行名额。
10
+ - 旧配置 `maxConcurrentRuns` 不再生效。同一自动化仍保留重复运行保护:已有排队或运行记录时,不能再次手动启动,重叠的定时触发仍会跳过。
11
+
7
12
  ## 0.1.38 - 2026-09-11
8
13
 
9
14
  - 支持 DSH `0.1.5-rc.2`,继续兼容 `0.1.0-rc.8`、`0.1.1-rc.2`、`0.1.2-rc.1` 和 `0.1.5-rc.1`。
package/README.md CHANGED
@@ -130,6 +130,7 @@ Each dispatched run uses the saved prompt, workspace, model, and permission boun
130
130
  | Approval | Chat create follows the session policy. Full access (`never`) proceeds; Workspace Write / Read Only (`ask`) shows the official card. Unattended runs stay fail-closed `never`. |
131
131
  | Retry | No automatic retry after a started run. |
132
132
  | Host restart | Leftover `queued` / `running` records become `failed(host_interrupted)`. |
133
+ | Concurrency | Different automations have no plugin-level global concurrency cap, including those in the same directory. The legacy `maxConcurrentRuns` setting no longer takes effect. |
133
134
  | Overlap | One active run per rule. A colliding occurrence is recorded as `skipped(overlap)`. |
134
135
 
135
136
  A schedule stores future intent. It is not a cached permission grant.
package/README.zh-CN.md CHANGED
@@ -130,6 +130,7 @@ dsh --profile web --dump-config
130
130
  | 审批 | 对话创建跟随当前会话策略。Full access(`never`)直接创建;Workspace Write / Read Only(`ask`)走官方授权卡。无人值守运行仍是 fail-closed 的 `never`。 |
131
131
  | 重试 | 已经开始的运行不会自动重试。 |
132
132
  | Host 重启 | 遗留的 `queued` / `running` 会变成 `failed(host_interrupted)`。 |
133
+ | 并发 | 不同自动化任务不设插件级全局并发上限,同一目录下也可同时运行。旧配置 `maxConcurrentRuns` 不再生效。 |
133
134
  | 重叠 | 同一规则同时最多一个 active run。冲突 occurrence 记为 `skipped(overlap)`。 |
134
135
 
135
136
  计划只表达未来意图,不是缓存下来的授权。
package/cordis.patch.yml CHANGED
@@ -10,7 +10,6 @@
10
10
  - id: dsh-automation
11
11
  name: '@michengai/dsh-automation'
12
12
  config:
13
- maxConcurrentRuns: 2
14
13
  runTimeoutMinutes: 60
15
14
  misfireGraceMinutes: 15
16
15
  historyLimit: 200
package/lib/index.js CHANGED
@@ -22378,11 +22378,6 @@ var AutomationService = class _AutomationService {
22378
22378
  }
22379
22379
  async startQueuedRuns() {
22380
22380
  if (this.stopping) return;
22381
- const capacity = Math.max(
22382
- 0,
22383
- this.config.maxConcurrentRuns - this.active.size
22384
- );
22385
- if (capacity === 0) return;
22386
22381
  const activeAutomationIds = new Set(
22387
22382
  [...this.active.keys()].map((id) => this.runs.get(id)?.automationId).filter((id) => id !== void 0)
22388
22383
  );
@@ -22394,7 +22389,6 @@ var AutomationService = class _AutomationService {
22394
22389
  if (activeAutomationIds.has(run.automationId)) continue;
22395
22390
  activeAutomationIds.add(run.automationId);
22396
22391
  queued.push(run);
22397
- if (queued.length === capacity) break;
22398
22392
  }
22399
22393
  for (const run of queued) this.startRun(run);
22400
22394
  }
@@ -23466,7 +23460,6 @@ var inject = [
23466
23460
  "webServer"
23467
23461
  ];
23468
23462
  var Config = z2.object({
23469
- maxConcurrentRuns: z2.number().step(1).min(1).max(32).default(2),
23470
23463
  runTimeoutMinutes: z2.number().step(1).min(1).max(1440).default(60),
23471
23464
  misfireGraceMinutes: z2.number().step(1).min(0).max(10080).default(15),
23472
23465
  historyLimit: z2.number().step(1).min(1).max(5e3).default(200)
@@ -23504,7 +23497,6 @@ async function apply(ctx, rawConfig) {
23504
23497
  await ctx.effect(async () => {
23505
23498
  let alive = true;
23506
23499
  const service = await AutomationService.open(ctx, {
23507
- maxConcurrentRuns: config2.maxConcurrentRuns,
23508
23500
  runTimeoutMs: config2.runTimeoutMinutes * 6e4,
23509
23501
  misfireGraceMs: config2.misfireGraceMinutes * 6e4,
23510
23502
  historyLimit: config2.historyLimit
@@ -3,7 +3,6 @@ import type { Context } from '@deepseek-ai/cordis';
3
3
  export declare const name = "dsh-automation";
4
4
  export declare const inject: string[];
5
5
  export interface Config {
6
- readonly maxConcurrentRuns?: number;
7
6
  readonly runTimeoutMinutes?: number;
8
7
  readonly misfireGraceMinutes?: number;
9
8
  readonly historyLimit?: number;
@@ -4,7 +4,6 @@ import { type PermissionOption } from "./permission-presets.ts";
4
4
  import type { AutomationDefinition, AutomationRun, AutomationSchedule, PermissionPreset, UpdateAutomationInput } from "./types.ts";
5
5
  export declare const AUTOMATION_SESSION_PREFIX = "dsh-automation-session-";
6
6
  export interface AutomationConfig {
7
- readonly maxConcurrentRuns: number;
8
7
  readonly runTimeoutMs: number;
9
8
  readonly misfireGraceMs: number;
10
9
  readonly historyLimit: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michengai/dsh-automation",
3
- "version": "0.1.38",
3
+ "version": "0.1.39",
4
4
  "description": "在独立 DSH Session 中按计划执行编码任务,支持 Web 设置页与 Agent 双入口管理。",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.22.0",