Skip to content

Commit 92cbf73

Browse files
GenerQAQclaude
andcommitted
chore: bump package-openclaw to 0.1.6 and core to 0.1.9 (#403)
* fix(openclaw): persist message dedup state to prevent duplicate uploads (#399) capturedMessageCursor was a pure in-memory variable that reset to zero on process restart or compaction, causing the entire transcript to be re-sent to Acontext. This adds SHA-256-based dedup keyed by message index + content, persisted per session to dataDir/.sent-messages.json. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(openclaw): address 9 code review issues + 5 follow-up fixes (#401) * fix(openclaw): address 9 code review issues (3 critical, 6 important) Fix race conditions, unbounded growth, path traversal, and other issues identified during code review of the OpenClaw plugin. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(openclaw): fix init retry, load promise recovery, content encoding, and remove dead code - Clear initPromise on _init() failure so bridge can retry instead of being permanently broken - Clear sentMessagesLoadPromise/learnedSessionsLoadPromise on failure to allow retry - Handle resp.content.type encoding (base64 vs text) in downloadSkillFiles - Remove unused waitForProcessing method and messagesObservingStatus from interface - Add 7 new tests covering all fixes (87 total pass) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(openclaw): atomic writes, download retry, URL binary fetch, summary error boundary, name collision detection - downloadSkillFiles returns boolean success; failed skills preserve old updatedAt for retry - URL-fetched files written as binary Buffer instead of UTF-8 text - Each getSessionSummary call wrapped in try/catch so one failure doesn't abort the rest - Extracted atomicWriteFile helper (write-then-rename) for persistSentMessages, persistLearnedSessions, writeManifest - Sanitized name collisions detected and logged at sync time, second skill skipped - Removed unused initPromise assignment in test helper - Added 7 new tests covering all fixes (94 total) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(openclaw): fix concurrent retry, ENOENT handling, 3-way collision, and add 11 tests - ensureSession/ensureLearningSpace: use .catch()/.then() pattern so concurrent callers can independently retry on failure - loadSentMessages/loadLearnedSessions: distinguish ENOENT from corrupt JSON — warn on corruption instead of silently discarding dedup state - _doSync: two-pass collision detection fixes 3-way collision bug and avoids downloading skills before detecting collisions - _doSync: exclude colliding skill IDs from "deleted from remote" loop to prevent spurious warnings - Null sentMessagesLoadPromise/learnedSessionsLoadPromise on success for symmetry with error branch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(core): add "thinking" to Part.type Literal to match Go API schema (#402) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: bump package-openclaw to 0.1.6 and core to 0.1.9 - openclaw: update version in package.json, index.ts, and test - core: update version in pyproject.toml - AGENTS.md: document test version check for openclaw releases Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 18b3d15 commit 92cbf73

5 files changed

Lines changed: 5 additions & 5 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ When releasing a new version of an SDK or package, follow these steps in order:
4949
1. **Bump the version number** in the package manifest:
5050
- TypeScript SDK: update `"version"` in `src/client/acontext-ts/package.json`
5151
- Python SDK: update `version` in `src/client/acontext-py/pyproject.toml`
52-
- OpenClaw Plugin: update `"version"` in `src/packages/openclaw/package.json` **and** `version` in `src/packages/openclaw/index.ts` (the plugin object)
52+
- OpenClaw Plugin: update `"version"` in `src/packages/openclaw/package.json`, `version` in `src/packages/openclaw/index.ts` (the plugin object), **and** `expect(plugin.version)` in `src/packages/openclaw/tests/plugin.test.ts`
5353
- Sandbox Cloudflare: update `"version"` in `src/packages/sandbox-cloudflare/package.json`
5454
2. **Regenerate the lock file** so it stays in sync:
5555
- TypeScript SDK: run `npm install` in `src/client/acontext-ts/` (updates `package-lock.json`)

src/packages/openclaw/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,7 @@ export class AcontextBridge {
838838
const acontextPlugin = {
839839
id: "acontext",
840840
name: "Acontext Skill Memory",
841-
version: "0.1.5",
841+
version: "0.1.6",
842842
description:
843843
"Acontext skill memory — auto-capture, auto-learn, sync skills to OpenClaw native directory",
844844
kind: "memory" as const,

src/packages/openclaw/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@acontext/openclaw",
3-
"version": "0.1.5",
3+
"version": "0.1.6",
44
"type": "module",
55
"main": "./index.ts",
66
"description": "Acontext skill memory plugin for OpenClaw — auto-capture, auto-learn, native skill sync",

src/packages/openclaw/tests/plugin.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1994,7 +1994,7 @@ describe("plugin metadata", () => {
19941994
expect(plugin.id).toBe("acontext");
19951995
expect(plugin.kind).toBe("memory");
19961996
expect(plugin.name).toBe("Acontext Skill Memory");
1997-
expect(plugin.version).toBe("0.1.5");
1997+
expect(plugin.version).toBe("0.1.6");
19981998
});
19991999
});
20002000

src/server/core/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "acontext_core"
3-
version = "0.1.3"
3+
version = "0.1.9"
44
description = "Core for Acontext"
55
readme = "README.md"
66
requires-python = ">=3.11"

0 commit comments

Comments
 (0)