@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 +5 -0
- package/CHANGELOG.zh-CN.md +5 -0
- package/README.md +1 -0
- package/README.zh-CN.md +1 -0
- package/cordis.patch.yml +0 -1
- package/lib/index.js +0 -8
- package/lib/types/index.d.ts +0 -1
- package/lib/types/service.d.ts +0 -1
- package/package.json +1 -1
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`.
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -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
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
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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;
|
package/lib/types/service.d.ts
CHANGED
|
@@ -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;
|