@lmzhen/dsh-evolution-maintenance 0.18.1 → 0.19.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.
package/README.md CHANGED
@@ -16,6 +16,7 @@ chain behind `/evolution maintain` (`evolution-core` `drift-signals`).
16
16
  ## Known limitations
17
17
 
18
18
  - Phase 1-2 expose no service beyond the command surface: the chain (scan → render → subagent → validate) is wired through `/evolution maintain`.
19
+ - **The scan's lifetime is the RUN's, not the request's (0.19.0).** `/evolution maintain` starts a run through `evolution-core`'s run registry and answers with a pointer; `evolution-commands` writes the resulting plan to `<evolutionHome>/reports/maintain-<runId>.{json,md}` — this package persists no report of its own. Measured: 949.7 s end to end on the web plane, ~305 s of REQUEST lifetime on the desktop shell (which used to abort the scan; it no longer does). `maintainTimeoutMs` (default 600000) bounds the run, and a run that produced nothing is recorded as such rather than as an empty plan. The published inventory of long runs is `packages/README.md` §"Long-running work", rendered from `evolution-core/src/long-runs.ts`.
19
20
  - **Plan validation is instance-granular (§3 completeness).** Notes stay id-level: one mention explains away every instance of that id.
20
21
  - **A budget-capped dedup scan is reported, never silently shortened.**
21
22
  - `maintenance_probe` is readable by every session; maintenance subagents reach it through the orchestrate `toolFilter` allow-list.
package/lib/index.js CHANGED
@@ -428,7 +428,7 @@ async function runMaintain(runtime, options = {}) {
428
428
  return {
429
429
  ok: true,
430
430
  recommendationCount: 0,
431
- runId: randomUUID(),
431
+ runId: options.runId ?? randomUUID(),
432
432
  verdict: "no_issues",
433
433
  text: "Maintenance scan: empty skill library. Nothing to do."
434
434
  };
@@ -554,7 +554,7 @@ ${MAINTAIN_OUTPUT_INSTRUCTION}`;
554
554
  recommendationCount: 0,
555
555
  error: `Maintain plan rejected by validator: ${validated.errors.slice(0, 5).join("; ")}`
556
556
  };
557
- const runId = randomUUID();
557
+ const runId = options.runId ?? randomUUID();
558
558
  return {
559
559
  ok: true,
560
560
  runId,
@@ -86,6 +86,10 @@ export interface MaintainRuntime {
86
86
  }
87
87
  export interface MaintainOptions {
88
88
  timeoutMs?: number;
89
+ /** 0.19.0 (S2): the run id chosen by the run registry, so the registry record,
90
+ * the persisted event and the report file all name ONE run. Absent under the
91
+ * legacy synchronous call sites, which keep generating their own. */
92
+ runId?: string | undefined;
89
93
  /** E-6 (v18): external cancel signal (session/UI); combined with timeoutMs. */
90
94
  signal?: AbortSignal | undefined;
91
95
  maxDepth?: number;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-maintenance",
3
3
  "description": "Deterministic maintenance-scan surface: skill-library snapshot assembly, drift signals and mechanical-facts rendering (design 011) (community build)",
4
- "version": "0.18.1",
4
+ "version": "0.19.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -31,7 +31,7 @@
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
33
  "@deepseek-ai/schemastery": "^3.18.4",
34
- "@lmzhen/dsh-evolution-core": "^0.18.1"
34
+ "@lmzhen/dsh-evolution-core": "^0.19.1"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@deepseek-ai/dsh-agent": "^0.2.0-rc.1",