@lmzhen/dsh-evolution-activity 0.8.0 → 0.10.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.
package/README.md CHANGED
@@ -15,6 +15,7 @@ durability lives here; a storage-domain table is deferred until a consumer needs
15
15
 
16
16
  ## Configuration
17
17
 
18
+ - Payload fields it folds: `sessionId`, `planId`, `policyFingerprint`, `memoryApplied`, `skillApplied`, `rejectedOps`, `skippedUnread`, `executionFailures`, `executionError` and `evidenceClassReports` (ops whose whole evidence list cites a turn/step boundary — the plan path's report-only phase-1 dimension; they are counted, never refused, so the field is not a "work not done" cause). Fields the fold does not name are ignored, so the payload can gain dimensions without a schema migration here.
18
19
  - `maxItems` (default `DEFAULT_MAX_ITEMS = 200`): bound on the retained sidecar; a non-finite value falls back to the default, a non-positive value fails loud at the schema.
19
20
 
20
21
  ## Known limitations
package/lib/index.js CHANGED
@@ -41,6 +41,7 @@ function applyActivityEvent(items, event, maxItems, at = Date.now()) {
41
41
  ...event.executionError !== void 0 ? { executionError: event.executionError } : {},
42
42
  ...event.evidenceQuotes !== void 0 ? { evidenceQuotes: event.evidenceQuotes } : {},
43
43
  ...event.estimatedInputChars !== void 0 ? { estimatedInputChars: event.estimatedInputChars } : {},
44
+ ...event.evidenceClassReports !== void 0 ? { evidenceClassReports: event.evidenceClassReports } : {},
44
45
  at
45
46
  };
46
47
  const cap = Number.isFinite(maxItems) ? Math.max(1, maxItems) : 200;
@@ -63,7 +64,7 @@ function parseActivityContent(raw) {
63
64
  const isOptionalCount = (value) => value === void 0 || isCount(value);
64
65
  try {
65
66
  const parsed = JSON.parse(raw);
66
- return (typeof parsed === "object" && parsed !== null && Array.isArray(parsed.items) ? parsed.items : []).filter((item) => typeof item === "object" && item !== null && typeof item.planId === "string" && typeof item.sessionId === "string" && isCount(item.memoryApplied) && isCount(item.skillApplied) && isCount(item.rejectedOps) && isTimestampEpochMs(item.at) && isOptionalCount(item.skippedUnread) && isOptionalCount(item.executionFailures) && isOptionalCount(item.evidenceQuotes) && isOptionalCount(item.estimatedInputChars));
67
+ return (typeof parsed === "object" && parsed !== null && Array.isArray(parsed.items) ? parsed.items : []).filter((item) => typeof item === "object" && item !== null && typeof item.planId === "string" && typeof item.sessionId === "string" && isCount(item.memoryApplied) && isCount(item.skillApplied) && isCount(item.rejectedOps) && isTimestampEpochMs(item.at) && isOptionalCount(item.skippedUnread) && isOptionalCount(item.executionFailures) && isOptionalCount(item.evidenceQuotes) && isOptionalCount(item.estimatedInputChars) && isOptionalCount(item.evidenceClassReports));
67
68
  } catch {
68
69
  return [];
69
70
  }
@@ -36,6 +36,10 @@ export interface EvolutionActivityRecord {
36
36
  executionError?: string | undefined;
37
37
  evidenceQuotes?: number | undefined;
38
38
  estimatedInputChars?: number | undefined;
39
+ /** Batch D (2026-09-27): ops whose whole evidence list cites a turn/step boundary
40
+ * (the plan path's report-only phase-1 dimension). NOT a "work not done" cause —
41
+ * those ops executed. Optional so sidecars written before the dimension parse. */
42
+ evidenceClassReports?: number | undefined;
39
43
  at: number;
40
44
  }
41
45
  /** Version of the `activity.json` shape; writers always emit the current one. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-activity",
3
3
  "description": "Durable activity store for self-evolution plan outcomes (community build)",
4
- "version": "0.8.0",
4
+ "version": "0.10.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -27,15 +27,15 @@
27
27
  "license": "MIT",
28
28
  "dependencies": {
29
29
  "@deepseek-ai/schemastery": "^3.18.1",
30
- "@lmzhen/dsh-evolution-core": "^0.8.0"
30
+ "@lmzhen/dsh-evolution-core": "^0.10.0"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@deepseek-ai/cordis": "^4.0.1"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@deepseek-ai/cordis": "^4.0.1",
37
- "@lmzhen/dsh-evolution-core": "^0.8.0",
38
- "@lmzhen/dsh-evolution-io": "^0.8.0",
39
- "@lmzhen/dsh-evolution-io-node": "^0.8.0"
37
+ "@lmzhen/dsh-evolution-core": "^0.10.0",
38
+ "@lmzhen/dsh-evolution-io": "^0.10.0",
39
+ "@lmzhen/dsh-evolution-io-node": "^0.10.0"
40
40
  }
41
41
  }