@inetafrica/open-claudia 3.5.62 → 3.5.63
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
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.5.63
|
|
4
|
+
|
|
5
|
+
3.5.62 plus a passive-group fix (APP-29; Sumeet, 14 Oct: "my chat with Judith Brenda and books bot ... doesn't seem to be auto waking yet it's definitely relevant"). Canary first.
|
|
6
|
+
|
|
7
|
+
- **A captioned screenshot or file is judged in a "reply when they can help" group.** The group gate only handed plain text to the passive check, so every message with an attachment was skipped, captioned or not. In Kazee Books update, Judith's three screenshots ("Add 'Transaction' under banking", the exchange rate, "Editing of Journal Entry missing") each logged `Kazee group gate: silent` and the books bot only answered when tagged. A photo or file with a caption now goes to the check, shown as `[photo] <caption>`, and if the bot replies the attachment rides along to the turn. Voice notes, words-less media, commands, cards and other bots' messages are still skipped.
|
|
8
|
+
|
|
9
|
+
Tests: `test-passive-replies.js` (captioned photo and file judged; a words-less voice note still skipped; the check's prompt reads `[photo] <caption>`).
|
|
10
|
+
|
|
3
11
|
## 3.5.62
|
|
4
12
|
|
|
5
13
|
3.5.61 plus spend split by part (APP-28; Sumeet, 14 Oct: "how much is used for memory? How much is used for work? How much is used for the dream?"). Canary first.
|
|
@@ -47,6 +47,9 @@ const CATCHUP_FETCH_TIMEOUT_MS = 15000;
|
|
|
47
47
|
const CONTEXT_MAX_MESSAGES = 40;
|
|
48
48
|
const CONTEXT_BODY_LIMIT = 280;
|
|
49
49
|
const COLD_START_WINDOW = 40;
|
|
50
|
+
// What a passive group's check reads (router types): text, and photos or
|
|
51
|
+
// files when they carry a caption. Voice notes have no words until heard.
|
|
52
|
+
const PASSIVE_JUDGED_TYPES = new Set(["text", "photo", "document"]);
|
|
50
53
|
|
|
51
54
|
// Chat threads ("reply in thread"). Button presses carry no thread, so the
|
|
52
55
|
// adapter remembers which thread each message it posted went into (and that
|
|
@@ -1091,10 +1094,13 @@ class KazeeAdapter {
|
|
|
1091
1094
|
}
|
|
1092
1095
|
|
|
1093
1096
|
// Whether an unaddressed message in a passive group is the bot's to judge:
|
|
1094
|
-
//
|
|
1095
|
-
//
|
|
1097
|
+
// words a person wrote, as plain text or as the caption on a photo or file
|
|
1098
|
+
// (14 Oct: Judith's Books screenshots captioned "Editing of Journal Entry
|
|
1099
|
+
// missing" never reached the check). Never another bot (no bot-to-bot
|
|
1100
|
+
// chatter), never a command, system notice, card, voice note or media
|
|
1101
|
+
// without words.
|
|
1096
1102
|
_passiveCandidate(msg, envelope, meta, senderId) {
|
|
1097
|
-
if (envelope.type
|
|
1103
|
+
if (!PASSIVE_JUDGED_TYPES.has(envelope.type) || !String(envelope.text || "").trim()) return false;
|
|
1098
1104
|
if (msg.type === "system" || msg.type === "interactive" || msg.card) return false;
|
|
1099
1105
|
if ((meta.botIds || []).includes(String(senderId))) return false;
|
|
1100
1106
|
return true;
|
package/core/passive-replies.js
CHANGED
|
@@ -196,7 +196,9 @@ function createPassiveGate(dependencies = {}) {
|
|
|
196
196
|
for (const item of batch) {
|
|
197
197
|
const id = String(item.envelope.messageId || "");
|
|
198
198
|
if (id && !seen.has(id)) {
|
|
199
|
-
|
|
199
|
+
// A captioned photo or file reads the way the room's history shows it.
|
|
200
|
+
const kind = item.envelope.media?.length ? `[${item.envelope.type}] ` : "";
|
|
201
|
+
list.push({ id, who: item.envelope.from?.name || "Someone", text: kind + (item.envelope.text || ""), ago: "just now" });
|
|
200
202
|
seen.add(id);
|
|
201
203
|
}
|
|
202
204
|
}
|
package/package.json
CHANGED
|
@@ -636,7 +636,10 @@ assert.match(pkg.description, /provider-agnostic coding-agent harness/i);
|
|
|
636
636
|
// 3.5.62 = 3.5.61 + every background call logged by purpose and priced from its tokens, the
|
|
637
637
|
// dream's cost line priced from tokens and split by part, under Sumeet's 2026-10-14 11:10 EAT
|
|
638
638
|
// "yes go ahead as you see fit" (to: shall I build the cost-by-part tracking?): canary first.
|
|
639
|
-
|
|
639
|
+
// 3.5.63 = 3.5.62 + passive groups judge captioned photos and files (APP-29), a proven bug
|
|
640
|
+
// (books bot logs, 14 Oct: Judith's captioned screenshots "group gate: silent") under
|
|
641
|
+
// Sumeet's standing clear-cut bug-fix rule (5 Oct 2026 12:08 EAT): canary first.
|
|
642
|
+
assert.strictEqual(pkg.version, "3.5.63", "release version must remain unchanged without explicit approval");
|
|
640
643
|
for (const keyword of ["claude", "codex", "coding-agent", "provider-agnostic"]) {
|
|
641
644
|
assert.ok(pkg.keywords.includes(keyword), `package keyword missing: ${keyword}`);
|
|
642
645
|
}
|