@esso0428/pi-subagents 0.17.11 → 0.17.13

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
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.17.13] - 2026-10-01
11
+
12
+ ### Fixed
13
+ - **Repaired the Agents widget lifecycle and interaction model**: runtime agent updates are cached and rendered without stale rows, modal history selectors suspend background widget input, and nested agents remain visible under their owning parent.
14
+ - **Preserved durable transcript-backed agents after runtime cleanup**, including model and accumulated-cost details for completed and historical rows.
15
+ - **Improved widget layout resilience** with correct scrollbar bounds and restoration of the v0.17.6 selector foundation across short and long terminal layouts.
16
+
17
+ ## [0.17.12] - 2026-09-30
18
+
19
+ ### Fixed
20
+ - **Agent history selectors now own arrow and Enter input while open**, preventing the background Agents widget from moving instead of the `/agents` history list.
21
+
10
22
  ## [0.17.11] - 2026-09-30
11
23
 
12
24
  ### Fixed
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAc,KAAK,YAAY,EAA8G,MAAM,iCAAiC,CAAC;AAC5L,OAAO,EAAE,SAAS,EAA2F,MAAM,wBAAwB,CAAC;AAyB5I,OAAO,EAAE,KAAK,WAAW,EAAuK,MAAM,YAAY,CAAC;AAEnN,OAAO,EAeL,KAAK,KAAK,EAEX,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAA2B,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAmBrG,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GACvB,SAAS,CAKX;AAgKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAatE;AAED,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAEvG,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAiuHxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAc,KAAK,YAAY,EAA8G,MAAM,iCAAiC,CAAC;AAC5L,OAAO,EAAE,SAAS,EAA2F,MAAM,wBAAwB,CAAC;AAyB5I,OAAO,EAAE,KAAK,WAAW,EAAuK,MAAM,YAAY,CAAC;AAEnN,OAAO,EAeL,KAAK,KAAK,EAEX,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAA2B,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAmBrG,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GACvB,SAAS,CAKX;AAgKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAatE;AAED,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAEvG,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QA+uHxC"}
package/dist/index.js CHANGED
@@ -2730,7 +2730,16 @@ Terse command-style prompts produce shallow, generic work.
2730
2730
  if (noAgentsMsg) {
2731
2731
  ctx.ui.notify(noAgentsMsg, "info");
2732
2732
  }
2733
- const choice = await ctx.ui.select("Agents", options);
2733
+ // The widget also listens through the global terminal-input hook. Pause it
2734
+ // while the top-level menu owns the same arrow/Enter keys.
2735
+ widget.suspendNavigation();
2736
+ let choice;
2737
+ try {
2738
+ choice = await ctx.ui.select("Agents", options);
2739
+ }
2740
+ finally {
2741
+ widget.resumeNavigation();
2742
+ }
2734
2743
  if (!choice)
2735
2744
  return;
2736
2745
  if (choice.startsWith("Running agents (")) {
@@ -2856,31 +2865,38 @@ Terse command-style prompts produce shallow, generic work.
2856
2865
  selection.index = index;
2857
2866
  }
2858
2867
  };
2859
- const choice = await ctx.ui.custom((_tui, _theme, _kb, done) => {
2860
- const list = new SelectList(options, Math.min(options.length, 10), getSelectListTheme());
2861
- list.setSelectedIndex(initialIndex);
2862
- const initialItem = options[initialIndex];
2863
- if (initialItem)
2864
- remember(initialItem.value);
2865
- list.onSelectionChange = item => remember(item.value);
2866
- list.onSelect = item => {
2867
- remember(item.value);
2868
- done(item.value);
2869
- };
2870
- list.onCancel = () => done(undefined);
2871
- const container = new Container();
2872
- container.addChild(new Text(title, 0, 0));
2873
- container.addChild(new Spacer(1));
2874
- container.addChild(list);
2875
- return {
2876
- render: (width) => container.render(width),
2877
- invalidate: () => container.invalidate(),
2878
- handleInput: (data) => {
2879
- if (!isKeyRelease(data))
2880
- list.handleInput(data);
2881
- },
2882
- };
2883
- });
2868
+ widget.suspendNavigation();
2869
+ let choice;
2870
+ try {
2871
+ choice = await ctx.ui.custom((_tui, _theme, _kb, done) => {
2872
+ const list = new SelectList(options, Math.min(options.length, 10), getSelectListTheme());
2873
+ list.setSelectedIndex(initialIndex);
2874
+ const initialItem = options[initialIndex];
2875
+ if (initialItem)
2876
+ remember(initialItem.value);
2877
+ list.onSelectionChange = item => remember(item.value);
2878
+ list.onSelect = item => {
2879
+ remember(item.value);
2880
+ done(item.value);
2881
+ };
2882
+ list.onCancel = () => done(undefined);
2883
+ const container = new Container();
2884
+ container.addChild(new Text(title, 0, 0));
2885
+ container.addChild(new Spacer(1));
2886
+ container.addChild(list);
2887
+ return {
2888
+ render: (width) => container.render(width),
2889
+ invalidate: () => container.invalidate(),
2890
+ handleInput: (data) => {
2891
+ if (!isKeyRelease(data))
2892
+ list.handleInput(data);
2893
+ },
2894
+ };
2895
+ });
2896
+ }
2897
+ finally {
2898
+ widget.resumeNavigation();
2899
+ }
2884
2900
  if (!choice)
2885
2901
  return undefined;
2886
2902
  return pairs.find(({ record }) => record.id === choice)?.record;