@esso0428/pi-subagents 0.17.29 → 0.17.31

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,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.17.31] - 2026-10-04
11
+
12
+ ### Changed
13
+ - **Kept the steer composer open after sending**: `Enter` now sends the message and clears the input but leaves the composer in place, so consecutive steers need no reopen between them and `Alt+Up` recalls into the same composer. `Esc` is the only key that closes it; an empty submit sends nothing and likewise keeps it open.
14
+
15
+ ## [0.17.30] - 2026-10-04
16
+
17
+ ### Changed
18
+ - **Let `Alt+Up` open the steer composer and recall in one press**: recalling a queued steer previously required pressing `e` first, because the key was bound only on the composer branch. With the composer closed, `Alt+Up` now opens it and pulls the pending queue into it, matching how the key behaves in pi's own prompt. It stays inert when nothing is queued, so it cannot open an empty composer and shadow an unrelated binding.
19
+
10
20
  ## [0.17.29] - 2026-10-02
11
21
 
12
22
  > **Breaking: Agent calls are always detached.** `Agent` now returns an ID immediately for every call; retrieve results after completion notifications with `get_subagent_result`. `run_in_background` remains accepted but has no effect.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esso0428/pi-subagents",
3
- "version": "0.17.29",
3
+ "version": "0.17.31",
4
4
  "description": "A pi extension that brings smart Claude Code-style autonomous sub-agents to pi, with npm:pi-subagents-style JSON agent overrides.",
5
5
  "author": "ESSO0428",
6
6
  "repository": {
@@ -313,6 +313,19 @@ export class ConversationViewer implements Component {
313
313
  this.handleSearchInput(data);
314
314
  return;
315
315
  }
316
+ // Without the composer open there is nowhere to put a recalled steer, so
317
+ // `alt+up` opens the composer first and then recalls into it — one keypress
318
+ // instead of "press e, then press alt+up". It stays inert when nothing is
319
+ // queued so it cannot shadow an unrelated binding by opening an empty
320
+ // composer, and it yields to the composer once that is open.
321
+ if (this.canSteer()
322
+ && this.pendingSteers.length > 0
323
+ && (matchesKey(data, Key.alt("up")) || data === "a-up" || data === "alt+up")) {
324
+ this.openComposer();
325
+ this.recallSteerDraft();
326
+ this.tui.requestRender();
327
+ return;
328
+ }
316
329
  if (matchesKey(data, "escape") || matchesKey(data, "q")) {
317
330
  this.closed = true;
318
331
  this.done(undefined);
@@ -1057,7 +1070,10 @@ export class ConversationViewer implements Component {
1057
1070
  this.steerHistoryDraft = "";
1058
1071
  input.onSubmit = (value: string) => {
1059
1072
  const message = value.trim();
1060
- this.composer = undefined;
1073
+ // Submitting sends and clears but keeps the composer open, so consecutive
1074
+ // steers do not need a reopen between them and `Alt+Up` can recall into
1075
+ // the same composer. `Esc` is the only thing that closes it.
1076
+ input.setText("");
1061
1077
  this.steerHistoryIndex = -1;
1062
1078
  this.steerHistoryDraft = "";
1063
1079
  if (message) {