pendingyou 0.35.0 → 0.35.1
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 +8 -0
- package/dist/herdr/answer.js +28 -3
- package/dist/version.js +1 -1
- package/mod/.claude-plugin/plugin.json +1 -1
- package/mod/README.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.35.1 (2026-10-11)
|
|
4
|
+
|
|
5
|
+
- Fixed: the Pending You popup in Herdr no longer breaks on a kind of card it doesn't know yet (or a grouped card with
|
|
6
|
+
a question of such a kind). It shows the card and says "Answer this one in Pending You: o opens it."; reply, Later,
|
|
7
|
+
hand over and open still work.
|
|
8
|
+
- The person API client inside the command line follows the SDK's 0.2.0 types: the enums in what /v1 sends are open
|
|
9
|
+
(any string beside the known values), since /v1 adds values over time.
|
|
10
|
+
|
|
3
11
|
## 0.35.0 (2026-10-09)
|
|
4
12
|
|
|
5
13
|
- Claude Code hears a question handed to it within seconds. When you delegate a card to one of your Claude Code agents
|
package/dist/herdr/answer.js
CHANGED
|
@@ -22,6 +22,25 @@ export const askerOf = (card) => `${card.asker.agent?.name ?? card.asker.assista
|
|
|
22
22
|
const askerName = (card) => card.asker.agent?.name ?? card.asker.assistant.name;
|
|
23
23
|
export const HIGH_STAKES = 'High stakes: answer it in Pending You, where you hold to approve. o opens it.';
|
|
24
24
|
export const NOT_HERE = 'Answer this one in Pending You: o opens it.';
|
|
25
|
+
const KINDS = [
|
|
26
|
+
'choice',
|
|
27
|
+
'multi',
|
|
28
|
+
'approve',
|
|
29
|
+
'text',
|
|
30
|
+
'review',
|
|
31
|
+
'action',
|
|
32
|
+
'fyi',
|
|
33
|
+
'group',
|
|
34
|
+
];
|
|
35
|
+
const QUESTION_KINDS = [
|
|
36
|
+
'choice',
|
|
37
|
+
'multi',
|
|
38
|
+
'approve',
|
|
39
|
+
'text',
|
|
40
|
+
];
|
|
41
|
+
const answersHere = (card) => card.actions.includes('answer') &&
|
|
42
|
+
KINDS.includes(card.kind) &&
|
|
43
|
+
(card.questions ?? []).every((question) => QUESTION_KINDS.includes(question.kind));
|
|
25
44
|
const NO_WORDS = 'Pending You takes no words on this card from Herdr: o opens it.';
|
|
26
45
|
const NO_LATER = 'This card can’t go to Later from Herdr: o opens it.';
|
|
27
46
|
const NO_HANDING = 'This card can’t be handed over from Herdr: o opens it.';
|
|
@@ -126,7 +145,7 @@ function listKey(state, key, now) {
|
|
|
126
145
|
{ kind: 'targets', card },
|
|
127
146
|
];
|
|
128
147
|
}
|
|
129
|
-
if (!card
|
|
148
|
+
if (!answersHere(card))
|
|
130
149
|
return [{ ...state, note: NOT_HERE }, NONE];
|
|
131
150
|
return answerKey(state, card, key);
|
|
132
151
|
}
|
|
@@ -211,6 +230,8 @@ function answerKey(state, card, key) {
|
|
|
211
230
|
return [{ ...state, note: 'y: got it.' }, NONE];
|
|
212
231
|
case 'group':
|
|
213
232
|
return groupKey(state, card, key, send);
|
|
233
|
+
default:
|
|
234
|
+
return [{ ...state, note: NOT_HERE }, NONE];
|
|
214
235
|
}
|
|
215
236
|
}
|
|
216
237
|
const toggled = (chosen, id) => chosen.includes(id) ? chosen.filter((each) => each !== id) : [...chosen, id];
|
|
@@ -289,6 +310,8 @@ function groupKey(state, card, key, send) {
|
|
|
289
310
|
const suggestion = n ? question.text?.suggestions?.[n - 1] : undefined;
|
|
290
311
|
return suggestion ? answered({ text: suggestion }) : [state, NONE];
|
|
291
312
|
}
|
|
313
|
+
default:
|
|
314
|
+
return [{ ...state, note: NOT_HERE }, NONE];
|
|
292
315
|
}
|
|
293
316
|
}
|
|
294
317
|
function writeKey(state, screen, key) {
|
|
@@ -564,7 +587,7 @@ function askLines(card, state, room, now) {
|
|
|
564
587
|
lines.push(DIM(fit(`If you don’t answer ${fromNow(card.fallback.at, now)}: ${card.fallback.text}`)));
|
|
565
588
|
if (card.highStakes)
|
|
566
589
|
lines.push(...wrap(HIGH_STAKES, room, 2));
|
|
567
|
-
else if (!card
|
|
590
|
+
else if (!answersHere(card))
|
|
568
591
|
lines.push(...wrap(NOT_HERE, room, 2));
|
|
569
592
|
return lines;
|
|
570
593
|
}
|
|
@@ -603,6 +626,8 @@ function answerKeys(card, state) {
|
|
|
603
626
|
: [`1–${count(question?.options)}`];
|
|
604
627
|
return [...own, 'Tab next question', 'Enter send all'];
|
|
605
628
|
}
|
|
629
|
+
default:
|
|
630
|
+
return [];
|
|
606
631
|
}
|
|
607
632
|
}
|
|
608
633
|
export function keysLine(state, now) {
|
|
@@ -632,7 +657,7 @@ export function keysLine(state, now) {
|
|
|
632
657
|
if (card) {
|
|
633
658
|
const busy = state.sent?.cardId === card.id && now < state.sent.until;
|
|
634
659
|
if (!card.highStakes && !busy) {
|
|
635
|
-
if (card
|
|
660
|
+
if (answersHere(card))
|
|
636
661
|
keys.push(...answerKeys(card, state));
|
|
637
662
|
if (card.actions.includes('reply'))
|
|
638
663
|
keys.push('r reply');
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.35.
|
|
1
|
+
export const VERSION = '0.35.1';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pendingyou-wake",
|
|
3
3
|
"displayName": "Pending You",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.52.0",
|
|
5
5
|
"description": "Wakes Claude Code when your person answers a Pending You card it posted, even while it sits idle. Installed by `npx pendingyou init`.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "RecordPlane",
|
package/mod/README.md
CHANGED
|
@@ -4,4 +4,4 @@ The pendingyou command line’s copy of the Pending You plugin’s wake mod, for
|
|
|
4
4
|
|
|
5
5
|
In each session it learns the cards the session posts to Pending You, checks them through the session’s own Pending You connection, and starts a turn when your person answers, writes back or a fallback comes due, or hands the session a question from another of their assistants (CLI 0.14.0), even while it sits idle. It answers `npx pendingyou hold` itself, so nothing waits in the background, and shows “2 waiting on you” under the prompt, after the plugin’s name. With the Pending You plugin installed too, only one copy acts.
|
|
6
6
|
|
|
7
|
-
Generated from recordplane/pendingyou (packages/claude-plugin/src/wake) with Pending You’s guide 2.
|
|
7
|
+
Generated from recordplane/pendingyou (packages/claude-plugin/src/wake) with Pending You’s guide 2.52.0; send changes there.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pendingyou",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.1",
|
|
4
4
|
"description": "Pending You for your coding agents: one command sets up Claude Code, Codex, OpenCode and Pi to ask you through Pending You and hear your answers, even while they sit idle.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://www.pendingyou.com",
|