@esso0428/pi-subagents 0.17.12 → 0.17.14

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,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.17.14] - 2026-10-01
11
+
12
+ ### Fixed
13
+ - **Restored focus-gated selector routing** so agent history selectors receive navigation input without suspending the background Agents widget.
14
+ - **Moved `@sinclair/typebox` to peerDependencies** to prevent duplicate-package metadata warnings while retaining it for development and testing.
15
+
16
+ ## [0.17.13] - 2026-09-30
17
+
18
+ ### Fixed
19
+ - **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.
20
+ - **Preserved durable transcript-backed agents after runtime cleanup**, including model and accumulated-cost details for completed and historical rows.
21
+ - **Improved widget layout resilience** with correct scrollbar bounds and restoration of the v0.17.6 selector foundation across short and long terminal layouts.
22
+
10
23
  ## [0.17.12] - 2026-09-30
11
24
 
12
25
  ### 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,QA+uHxC"}
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"}
package/dist/index.js CHANGED
@@ -2730,16 +2730,7 @@ Terse command-style prompts produce shallow, generic work.
2730
2730
  if (noAgentsMsg) {
2731
2731
  ctx.ui.notify(noAgentsMsg, "info");
2732
2732
  }
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
- }
2733
+ const choice = await ctx.ui.select("Agents", options);
2743
2734
  if (!choice)
2744
2735
  return;
2745
2736
  if (choice.startsWith("Running agents (")) {
@@ -2865,38 +2856,31 @@ Terse command-style prompts produce shallow, generic work.
2865
2856
  selection.index = index;
2866
2857
  }
2867
2858
  };
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
- }
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
+ });
2900
2884
  if (!choice)
2901
2885
  return undefined;
2902
2886
  return pairs.find(({ record }) => record.id === choice)?.record;