@lmzhen/dsh-evolution-replay 0.17.1 → 0.18.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.
Files changed (2) hide show
  1. package/lib/index.js +6 -3
  2. package/package.json +6 -6
package/lib/index.js CHANGED
@@ -228,7 +228,7 @@ var EvolutionReplayDriver = class EvolutionReplayDriver {
228
228
  return {
229
229
  ...result,
230
230
  sourceCorrupt: true,
231
- report: "The activity sidecar could not be read as the current format (corrupt bytes or a newer writer) — this leaderboard is NOT the recorded history, and an empty list does not mean nothing happened.\n" + result.report
231
+ report: "The activity sidecar could not be read as an activity envelope (unparsable bytes, or no items array) — this leaderboard is NOT the recorded history, and an empty list does not mean nothing happened.\n" + result.report
232
232
  };
233
233
  }
234
234
  };
@@ -246,9 +246,12 @@ function apply(ctx, rawConfig = {}) {
246
246
  const io = evolutionIoAdapter(() => ioRegistry.provider());
247
247
  loadActivityState(evolutionHome(), io).then((loaded) => {
248
248
  if (loaded.corrupt) {
249
- ioCtx.logger.warn("evolution-replay: the activity sidecar could not be read as the current format (corrupt bytes or a newer writer) — the leaderboard backfilled from it is INCOMPLETE; the writer quarantines those bytes on its next append");
249
+ ioCtx.logger.warn("evolution-replay: the activity sidecar could not be read as an activity envelope (unparsable bytes, or no items array) — there is NO history to backfill; the writer quarantines those bytes on its next append");
250
250
  driver.markSourceUnreadable();
251
- } else driver.markSourceReadable();
251
+ } else {
252
+ if (loaded.foreignVersion) ioCtx.logger.warn("evolution-replay: the activity sidecar was written by a NEWER activity format than this build reads — its records were read as-is and unknown fields ignored, so the leaderboard is complete for the fields this build knows; the writer quarantines those bytes on its next append");
253
+ driver.markSourceReadable();
254
+ }
252
255
  driver.backfill(loaded.records);
253
256
  }).catch((error) => {
254
257
  ioCtx.logger.warn(`evolution-replay: activity sidecar backfill skipped (${error instanceof Error ? error.message : String(error)})`);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-replay",
3
3
  "description": "Replay/A-B evaluation primitives for evolution plans (community build)",
4
- "version": "0.17.1",
4
+ "version": "0.18.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -26,15 +26,15 @@
26
26
  ],
27
27
  "license": "MIT",
28
28
  "dependencies": {
29
- "@deepseek-ai/schemastery": "^3.18.1",
30
- "@lmzhen/dsh-evolution-activity": "^0.17.1",
31
- "@lmzhen/dsh-evolution-core": "^0.17.1"
29
+ "@deepseek-ai/schemastery": "^3.18.4",
30
+ "@lmzhen/dsh-evolution-activity": "^0.18.0",
31
+ "@lmzhen/dsh-evolution-core": "^0.18.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@deepseek-ai/cordis": "^4.0.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@lmzhen/dsh-evolution-activity": "^0.17.1",
38
- "@lmzhen/dsh-evolution-core": "^0.17.1"
37
+ "@lmzhen/dsh-evolution-activity": "^0.18.0",
38
+ "@lmzhen/dsh-evolution-core": "^0.18.0"
39
39
  }
40
40
  }