pendingyou 0.34.1 → 0.34.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
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.34.2 (2026-10-09)
4
+
5
+ - Fixed: in bypassPermissions or dontAsk mode, a Claude Code dialog for a tool its agent had used before (a subagent's
6
+ second Bash) could get no card. Claude Code writes a prompted call to its transcript only once its dialog is
7
+ answered, so 20 seconds in the check for an unanswered call found the agent's earlier call of the same tool,
8
+ answered, and settled the prompt. Now only the prompt's own call counts: not in the transcript yet, it's still
9
+ waiting and its card goes up; the same command answered before the prompt was asked is an earlier call and doesn't
10
+ count; a call Claude Code denied by itself is written with its refusal at once, so it still gets no card. A
11
+ Notification picks the prompt it shows the same way, so it names the second call rather than putting up a card in
12
+ Claude Code's words.
13
+
3
14
  ## 0.34.1 (2026-10-09)
4
15
 
5
16
  - Fixed: a Claude Code permission prompt answered through the permission channel (`npx pendingyou claude`) could get
@@ -740,8 +740,7 @@ async function callState(calls, prompt) {
740
740
  const size = (await file.stat()).size;
741
741
  let position = size;
742
742
  let carry = Buffer.alloc(0);
743
- const results = new Set();
744
- let sameTool = null;
743
+ const results = new Map();
745
744
  let found = null;
746
745
  const read = (line) => {
747
746
  if (!line.includes('tool_'))
@@ -762,13 +761,16 @@ async function callState(calls, prompt) {
762
761
  continue;
763
762
  const id = text(block.tool_use_id) || text(block.id);
764
763
  if (block.type === 'tool_result' && id)
765
- results.add(id);
766
- else if (block.type === 'tool_use' && entry.type === 'assistant' && found === null) {
767
- const tool = text(block.name);
768
- if (promptKey(tool, block.input, prompt.agent) === prompt.key)
769
- found = results.has(id) ? 'answered' : 'waiting';
770
- else if (sameTool === null && prompt.tool && tool === prompt.tool)
771
- sameTool = id;
764
+ results.set(id, Date.parse(text(entry.timestamp)));
765
+ else if (block.type === 'tool_use' &&
766
+ entry.type === 'assistant' &&
767
+ found === null &&
768
+ promptKey(text(block.name), block.input, prompt.agent) === prompt.key) {
769
+ const answered = results.get(id);
770
+ if (answered === undefined)
771
+ found = 'waiting';
772
+ else if (!(answered < prompt.at))
773
+ found = 'answered';
772
774
  }
773
775
  }
774
776
  };
@@ -788,11 +790,7 @@ async function callState(calls, prompt) {
788
790
  }
789
791
  if (found === null && position === 0)
790
792
  read(carry.toString('utf8'));
791
- if (found !== null)
792
- return found;
793
- if (sameTool !== null)
794
- return results.has(sameTool) ? 'answered' : 'waiting';
795
- return 'waiting';
793
+ return found ?? 'waiting';
796
794
  }
797
795
  catch {
798
796
  return null;
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.34.1';
1
+ export const VERSION = '0.34.2';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pendingyou",
3
- "version": "0.34.1",
3
+ "version": "0.34.2",
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",