Commit 71316da
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 b587030 commit 71316da
10 files changed
Lines changed: 1561 additions & 113 deletions
File tree
- src
- packages/openclaw
- tests
- __mocks__
- server/core
- acontext_core/schema/orm
- tests/schema
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
0 commit comments