pi-roundtable-sandbox 0.31.4 → 0.31.6

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,14 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.31.6] - 2026-11-02
6
+
7
+ - Release in lockstep with pi-roundtable 0.31.6: the `channelContext` option takes `peerMessageChars` (an integer from 1 to 4000), where a peer bot's message is cut; a listed peer's messages read up to 4000 characters by default instead of 80.
8
+
9
+ ## [0.31.5] - 2026-11-02
10
+
11
+ - Release in lockstep with pi-roundtable 0.31.5; no package-specific behavior changes.
12
+
5
13
  ## [0.31.4] - 2026-11-02
6
14
 
7
15
  - Release in lockstep with pi-roundtable 0.31.4; no package-specific behavior changes.
package/README.md CHANGED
@@ -213,7 +213,7 @@ The sandbox calls `DISCORD.channelContext` with the addressed message, which rea
213
213
  Core's defaults and caps apply (the newest 15 messages, 500 characters each, other bots 80), and so do the host's `discord.channelContext` settings, which the option overrides key by key; a host `channelContext: false` turns it off and the option then does nothing. `attachments` is ignored, because the sealed worker has no image input.
214
214
  The addressed message (with its quote) comes first and the block follows it, framed as untrusted public text, not instructions, so the worker's saved history, which keeps the head of an entry, keeps the message. The framing says the addressed message is only the text before the block.
215
215
  It is cut oldest first so the whole stays within `runTurn`'s 32,000 characters and the worker's current-message budget; the addressed message is never cut, and when no context fits, the turn is sent as before.
216
- Options are validated at startup with core's bounds (`keep`, `fetch` at most 100; `messageChars`, `botMessageChars` at most 4000; unknown keys refused), and the option needs the Discord plugin.
216
+ Options are validated at startup with core's bounds (`keep`, `fetch` at most 100; `messageChars`, `botMessageChars`, `peerMessageChars` at most 4000; unknown keys refused), and the option needs the Discord plugin.
217
217
  A failed read is logged as a warning and the turn runs without it.
218
218
  `replyText` works unchanged.
219
219
  It is host-only: no worker protocol change and no image rebuild.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-roundtable-sandbox",
3
- "version": "0.31.4",
3
+ "version": "0.31.6",
4
4
  "description": "Sealed guest channels and an allow-listed credential broker for pi-roundtable",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -52,7 +52,7 @@
52
52
  "@biomejs/biome": "2.5.15",
53
53
  "@types/bun": "1.4.3",
54
54
  "discord.js": "14.27.0",
55
- "pi-roundtable": "0.31.4",
55
+ "pi-roundtable": "0.31.6",
56
56
  "typebox": "1.3.37",
57
57
  "typescript": "7.0.2"
58
58
  }
@@ -43,6 +43,7 @@ const KEYS = [
43
43
  "similarity",
44
44
  "messageChars",
45
45
  "botMessageChars",
46
+ "peerMessageChars",
46
47
  "foreignWebhook",
47
48
  "attachments",
48
49
  ];
@@ -70,6 +71,7 @@ export function resolveChannelContextOptions(
70
71
  bounded("keep", given.keep, 100);
71
72
  bounded("messageChars", given.messageChars, 4000);
72
73
  bounded("botMessageChars", given.botMessageChars, 4000);
74
+ bounded("peerMessageChars", given.peerMessageChars, 4000);
73
75
  if (
74
76
  given.similarity !== undefined &&
75
77
  !(