agenr 1.9.2 → 1.9.3

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
@@ -2,6 +2,21 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.9.3] - 2026-04-12
6
+
7
+ Supersession sweep-exhaustion and plugin-manifest alignment patch release.
8
+
9
+ ### Fixed
10
+
11
+ - **Supersession claim-key sweeps no longer strand the pass in a false remaining-work state.** Exhausted claim-key pages now record the actual unpaged remainder, which lets same-run subject review unblock correctly instead of tripping the autonomous semantic-stall guard.
12
+ - **OpenClaw plugin manifests stay version-aligned across release artifacts.** The shared adapter manifest now tracks the published package/plugin version again, avoiding package-metadata skew during validation and release packaging.
13
+
14
+ ### Validation
15
+
16
+ Changes since last push to `origin/master`:
17
+
18
+ - Fix supersession claim-key sweep exhaustion
19
+
5
20
  ## [1.9.2] - 2026-04-12
6
21
 
7
22
  Surgeon proposal-resolution hardening and claim-key progress-output patch release.
@@ -1055,7 +1055,7 @@ function registerAgenrOpenClawTools(api, servicesPromise, logger) {
1055
1055
  var openclaw_plugin_default = {
1056
1056
  id: "agenr",
1057
1057
  name: "agenr",
1058
- version: "1.9.1",
1058
+ version: "1.9.3",
1059
1059
  description: "agenr memory plugin for OpenClaw",
1060
1060
  kind: "memory",
1061
1061
  contracts: {
package/dist/cli.js CHANGED
@@ -9689,9 +9689,9 @@ function createSupersessionReviewTracker(input) {
9689
9689
  progress = createEmptySupersessionProgress(input);
9690
9690
  entryToClusterKeys = /* @__PURE__ */ new Map();
9691
9691
  },
9692
- recordPage({ scope, claimKeyTotal, subjectTotal, clusters }) {
9693
- const normalizedClaimKeyRemaining = normalizeCount(claimKeyTotal);
9694
- const normalizedSubjectRemaining = normalizeCount(subjectTotal);
9692
+ recordPage({ scope, claimKeyRemaining, subjectRemaining, clusters }) {
9693
+ const normalizedClaimKeyRemaining = normalizeCount(claimKeyRemaining);
9694
+ const normalizedSubjectRemaining = normalizeCount(subjectRemaining);
9695
9695
  const nextClaimKeyViewed = new Set(progress.claimKeyViewedKeys);
9696
9696
  const nextSubjectViewed = new Set(progress.subjectViewedKeys);
9697
9697
  const nextEntryMap = cloneEntryClusterMap(entryToClusterKeys);
@@ -11519,10 +11519,13 @@ function createQuerySupersessionCandidatesTool(deps) {
11519
11519
  const subjectClusterCount = scope === "claim_key" ? progress?.subjectClustersRemaining ?? counts.subjectCount : pendingSubjectClusters.length;
11520
11520
  const allClusters = scope === "claim_key" ? pendingClaimKeyClusters : scope === "subject" ? pendingSubjectClusters : [...pendingClaimKeyClusters, ...pendingSubjectClusters];
11521
11521
  const clusters = allClusters.slice(offset, offset + limit);
11522
+ const remainingClusters = allClusters.slice(Math.min(allClusters.length, offset + clusters.length));
11523
+ const claimKeyRemaining = scope === "subject" ? claimKeyClusterCount : countClustersByGrouping(remainingClusters, "claim_key");
11524
+ const subjectRemaining = scope === "claim_key" ? subjectClusterCount : countClustersByGrouping(remainingClusters, "subject");
11522
11525
  deps.completionGuards?.supersession.recordPage({
11523
11526
  scope,
11524
- claimKeyTotal: claimKeyClusterCount,
11525
- subjectTotal: subjectClusterCount,
11527
+ claimKeyRemaining,
11528
+ subjectRemaining,
11526
11529
  clusters
11527
11530
  });
11528
11531
  if (clusters.length === 0) {
@@ -11590,6 +11593,15 @@ function normalizeOptionalString11(value) {
11590
11593
  const normalized = value?.trim();
11591
11594
  return normalized ? normalized : void 0;
11592
11595
  }
11596
+ function countClustersByGrouping(clusters, groupedBy) {
11597
+ let count = 0;
11598
+ for (const cluster of clusters) {
11599
+ if (cluster.groupedBy === groupedBy) {
11600
+ count += 1;
11601
+ }
11602
+ }
11603
+ return count;
11604
+ }
11593
11605
 
11594
11606
  // src/app/surgeon/tools/supersession-validity.ts
11595
11607
  import { randomUUID as randomUUID7 } from "crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agenr",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "description": "Agent memory - local-first knowledge infrastructure for AI agents",
5
5
  "type": "module",
6
6
  "bin": {