@totalreclaw/totalreclaw 3.3.12-rc.1 → 3.3.12-rc.2

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
@@ -4,6 +4,35 @@ All notable changes to `@totalreclaw/totalreclaw` (the OpenClaw plugin) are docu
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [3.3.12-rc.2] — 2026-05-08
8
+
9
+ Hot-fix on rc.1's F flip. Pair flow regression: rc.1 set `pairRelayUrl`'s default to `wss://api.totalreclaw.xyz` (production) independently of `serverUrl`. RC users who set `TOTALRECLAW_SERVER_URL=https://api-staging.totalreclaw.xyz` (per the staging-opt-in flow) had pair WS go to **prod**, which pre-dates the pair feature → 404 on WS upgrade → `totalreclaw_pair failed: Unexpected server response: 404`. End-to-end blocker: pair never completed → no credentials → no memories.
10
+
11
+ ### Fixed
12
+
13
+ - **`config.ts pairRelayUrl` now derives from `TOTALRECLAW_SERVER_URL`** when `TOTALRECLAW_PAIR_RELAY_URL` is not explicitly set. Pair WS endpoint lives on the SAME relay as the rest of the API; previous independent default broke staging users.
14
+
15
+ ### Verified
16
+
17
+ - WS upgrade to `wss://api-staging.totalreclaw.xyz/pair/session/open` returns 101 (real ws lib; curl with manual headers gets blocked by Cloudflare, irrelevant to plugin).
18
+ - VPS install via `openclaw plugins install /tmp/totalreclaw-totalreclaw-3.3.12-rc.2.tgz` clean.
19
+ - `totalreclaw_pair` tool now returns staging URL (`https://api-staging.totalreclaw.xyz/pair/p/<token>#pk=...`) + 6-digit PIN, 0 failures.
20
+
21
+ ## [3.3.12-rc.1] — 2026-05-07
22
+
23
+ Install-flow architectural fix. Three changes:
24
+
25
+ ### Changed
26
+
27
+ - **Prose-rewrite public quickstart guide** — drop LLM-imperative tone, all behavioral rules stay in bundled SKILL.md (loads via trusted skill-loader path, no WebFetch, no PI flag).
28
+ - **F flip — RC + stable both default to prod URL.** Source default flipped from `api-staging.totalreclaw.xyz` → `api.totalreclaw.xyz`. Staging access via `TOTALRECLAW_SERVER_URL=https://api-staging.totalreclaw.xyz` env override. Removes "RC users land on staging chain with stranded memories" footgun.
29
+ - **Compat bump** `>=2026.5.5` (peer-link reassertion fix in upstream OpenClaw).
30
+ - **`skill.json` reconciled** — dropped stale `openclaw.minVersion: 0.1.0 / maxVersion: 1.0.0`; aligned with `package.json` compat range.
31
+
32
+ ### Known issue (fixed in rc.2)
33
+
34
+ - Pair URL didn't follow `TOTALRECLAW_SERVER_URL` env. Staging users got pair WS to prod → 404. See rc.2 entry above.
35
+
7
36
  ## [3.3.11-rc.6] — 2026-05-07
8
37
 
9
38
  UX fix: mandatory ack-before-first-tool-call on install. Pedro's rc.5 user QA found the agent went silent for ~60 s while running `openclaw plugins install` before emitting the first user-visible line. From the user's POV the prompt looked unanswered. This RC strengthens SKILL.md + the quickstart guide to require line 1 BEFORE the first shell tool call, with reassuring wait-time copy.
package/SKILL.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: totalreclaw
3
3
  description: "Install + set up TotalReclaw encrypted memory for OpenClaw, then use tr CLI for remember / recall. Trigger on 'install TotalReclaw', 'set up TotalReclaw', 'restore my recovery phrase', or any remember / recall request."
4
- version: 3.3.12-rc.1
4
+ version: 3.3.12-rc.2
5
5
  author: TotalReclaw Team
6
6
  license: MIT
7
7
  homepage: https://totalreclaw.xyz
package/config.ts CHANGED
@@ -170,8 +170,20 @@ export const CONFIG = {
170
170
  })() as 'relay' | 'local',
171
171
  // 3.3.1-rc.11 — relay base URL for the WebSocket-brokered pair flow.
172
172
  // `wss://` preferred; `https://` is rewritten in the remote-client.
173
- pairRelayUrl: (process.env.TOTALRECLAW_PAIR_RELAY_URL
174
- || 'wss://api.totalreclaw.xyz').replace(/\/+$/, ''),
173
+ //
174
+ // 3.3.12-rc.2 fix: derive from `TOTALRECLAW_SERVER_URL` when
175
+ // `TOTALRECLAW_PAIR_RELAY_URL` is not explicitly set. Pair WS endpoint
176
+ // lives on the SAME relay as the rest of the API — RC users who set
177
+ // `TOTALRECLAW_SERVER_URL=https://api-staging.totalreclaw.xyz` (per F
178
+ // flip / staging-opt-in flow) need pair to follow. Previous behavior
179
+ // had pair default to prod independently, which 404'd on WS upgrade
180
+ // because production relay version pre-dates the pair feature.
181
+ pairRelayUrl: (
182
+ process.env.TOTALRECLAW_PAIR_RELAY_URL
183
+ || (process.env.TOTALRECLAW_SERVER_URL
184
+ ? process.env.TOTALRECLAW_SERVER_URL.replace(/^https?:\/\//, 'wss://').replace(/^http:/, 'ws:')
185
+ : 'wss://api.totalreclaw.xyz')
186
+ ).replace(/\/+$/, ''),
175
187
 
176
188
  // Chain — chainId is no longer user-configurable. It is auto-detected from
177
189
  // the relay billing response (free = Base Sepolia / 84532, Pro = Gnosis /
package/dist/config.js CHANGED
@@ -154,8 +154,18 @@ export const CONFIG = {
154
154
  })(),
155
155
  // 3.3.1-rc.11 — relay base URL for the WebSocket-brokered pair flow.
156
156
  // `wss://` preferred; `https://` is rewritten in the remote-client.
157
+ //
158
+ // 3.3.12-rc.2 fix: derive from `TOTALRECLAW_SERVER_URL` when
159
+ // `TOTALRECLAW_PAIR_RELAY_URL` is not explicitly set. Pair WS endpoint
160
+ // lives on the SAME relay as the rest of the API — RC users who set
161
+ // `TOTALRECLAW_SERVER_URL=https://api-staging.totalreclaw.xyz` (per F
162
+ // flip / staging-opt-in flow) need pair to follow. Previous behavior
163
+ // had pair default to prod independently, which 404'd on WS upgrade
164
+ // because production relay version pre-dates the pair feature.
157
165
  pairRelayUrl: (process.env.TOTALRECLAW_PAIR_RELAY_URL
158
- || 'wss://api.totalreclaw.xyz').replace(/\/+$/, ''),
166
+ || (process.env.TOTALRECLAW_SERVER_URL
167
+ ? process.env.TOTALRECLAW_SERVER_URL.replace(/^https?:\/\//, 'wss://').replace(/^http:/, 'ws:')
168
+ : 'wss://api.totalreclaw.xyz')).replace(/\/+$/, ''),
159
169
  // Chain — chainId is no longer user-configurable. It is auto-detected from
160
170
  // the relay billing response (free = Base Sepolia / 84532, Pro = Gnosis /
161
171
  // 100). The default here is used only before the first billing lookup
package/dist/tr-cli.js CHANGED
@@ -41,7 +41,7 @@ const STATE_PATH = CONFIG.onboardingStatePath;
41
41
  // Auto-synced by skill/scripts/sync-version.mjs from skill/plugin/package.json::version.
42
42
  // Do not edit by hand — running tests will catch drift but the publish workflow
43
43
  // rewrites this constant at the start of every npm/ClawHub publish.
44
- const PLUGIN_VERSION = '3.3.12-rc.1';
44
+ const PLUGIN_VERSION = '3.3.12-rc.2';
45
45
  function die(msg, code = 1) {
46
46
  process.stderr.write(`tr: ${msg}\n`);
47
47
  process.exit(code);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@totalreclaw/totalreclaw",
3
- "version": "3.3.12-rc.1",
3
+ "version": "3.3.12-rc.2",
4
4
  "description": "End-to-end encrypted, agent-portable memory for OpenClaw and any LLM-agent runtime. XChaCha20-Poly1305 with protobuf v4 + on-chain Memory Taxonomy v1 (claim / preference / directive / commitment / episode / summary).",
5
5
  "type": "module",
6
6
  "keywords": [
package/skill.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "totalreclaw",
3
- "version": "3.3.12-rc.1",
3
+ "version": "3.3.12-rc.2",
4
4
  "description": "End-to-end encrypted memory for AI agents — portable, yours forever. XChaCha20-Poly1305 E2EE: server never sees plaintext.",
5
5
  "author": "TotalReclaw Team",
6
6
  "license": "MIT",
package/tr-cli.ts CHANGED
@@ -52,7 +52,7 @@ const STATE_PATH = CONFIG.onboardingStatePath;
52
52
  // Auto-synced by skill/scripts/sync-version.mjs from skill/plugin/package.json::version.
53
53
  // Do not edit by hand — running tests will catch drift but the publish workflow
54
54
  // rewrites this constant at the start of every npm/ClawHub publish.
55
- const PLUGIN_VERSION = '3.3.12-rc.1';
55
+ const PLUGIN_VERSION = '3.3.12-rc.2';
56
56
 
57
57
  function die(msg: string, code = 1): never {
58
58
  process.stderr.write(`tr: ${msg}\n`);