@sym-bot/mesh-channel 0.3.2 → 0.3.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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +26 -0
- package/package.json +1 -1
- package/server.js +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.3
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **Real-time duplex for CAT7 CMBs.** The `cmb-accepted` handler now
|
|
8
|
+
stores the rendered CMB body under an `[mNNN]` ID and includes that
|
|
9
|
+
ID in the channel notification, matching the contract stated in the
|
|
10
|
+
MCP instructions ("Messages arrive as compact headers with [mNNN] IDs
|
|
11
|
+
— use sym_fetch to read the full content") and the behaviour of the
|
|
12
|
+
raw-text `message` path.
|
|
13
|
+
|
|
14
|
+
Previously only the legacy raw-text `message` event persisted bodies
|
|
15
|
+
to `MESSAGE_STORE` — the primary `cmb-accepted` event (fired for
|
|
16
|
+
every structured CMB delivered via `sym_send` / `sym_observe`) pushed
|
|
17
|
+
a headline with no `[mNNN]` and left no retrievable body. Inbound
|
|
18
|
+
CMBs were admitted to the SVAF-backed memory store and surfaced by
|
|
19
|
+
`sym_recall` as compact headlines, but `sym_fetch` could not return
|
|
20
|
+
their content — the duplex was effectively headline-only for the 99%
|
|
21
|
+
case of real mesh traffic.
|
|
22
|
+
|
|
23
|
+
Symptom: after the 0.3.2 Mac↔Win fix restored bidirectional packet
|
|
24
|
+
flow, peers' structured replies appeared in `sym_recall` but returned
|
|
25
|
+
*"expired or invalid ID"* from `sym_fetch` — because `storeMessage()`
|
|
26
|
+
had never been called for them. Now both the raw-text and CAT7 paths
|
|
27
|
+
persist bodies identically.
|
|
28
|
+
|
|
3
29
|
## 0.3.2
|
|
4
30
|
|
|
5
31
|
### Fixed
|
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -240,7 +240,15 @@ function registerNodeHandlers(n) {
|
|
|
240
240
|
if (!isPeerAllowed(source)) return;
|
|
241
241
|
const focus = entry.cmb?.fields?.focus?.text || entry.content || '';
|
|
242
242
|
const mood = entry.cmb?.fields?.mood?.text || '';
|
|
243
|
-
|
|
243
|
+
const moodSuffix = mood && mood !== 'neutral' ? ` (mood: ${mood})` : '';
|
|
244
|
+
// Store the rendered CMB body so the agent can sym_fetch it by [mNNN] ID,
|
|
245
|
+
// matching the contract stated in the MCP instructions and the behaviour
|
|
246
|
+
// of the raw-text `message` path. Without this, CAT7 CMBs (the primary
|
|
247
|
+
// traffic — sym_send / sym_observe) arrive as headlines with no
|
|
248
|
+
// retrievable body, degrading real-time duplex to headline-only.
|
|
249
|
+
const body = entry.content || focus;
|
|
250
|
+
const msgId = storeMessage(source, body);
|
|
251
|
+
pushChannel('cmb', `[${source}] ${focus}${moodSuffix} [${msgId}]`);
|
|
244
252
|
});
|
|
245
253
|
|
|
246
254
|
n.on('message', (from, content) => {
|