pi-edit-session-in-place 0.1.14 → 0.1.16

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
@@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## [0.1.16] - 2026-06-04
8
+
9
+ ### Fixed
10
+ - fixed `Ctrl+Shift+E` after the Pi 0.78.1 update by removing the registered shortcut handler that consumed the key and only showed the placeholder notification
11
+ - added regression coverage that verifies the extension no longer registers a conflicting shortcut handler and still installs the custom editor hotkey path
12
+
13
+ ### Changed
14
+ - removed the custom main-editor wrapper path and returned to the focused custom-editor hotkey path used by the working releases
15
+
16
+ ## [0.1.15] - 2026-06-04
17
+
18
+ ### Changed
19
+ - updated the local pi development baseline to `@earendil-works/pi-coding-agent` / `@earendil-works/pi-tui` `0.78.1` and regenerated the npm lockfile
20
+ - refreshed README compatibility notes and the fleet-tested pi marker for `0.78.1` without pinning pi `0.78.1` as a hard runtime requirement
21
+ - changed the main-editor integration to wrap any previously configured custom editor instead of replacing it
22
+
23
+ ### Compatibility
24
+ - reviewed the pi `0.78.1` changelog and current extension, TUI, custom editor, mode, session, and package guidance; the extension now guards custom TUI behavior with `ctx.mode === "tui"` and keeps existing custom editors composed
25
+ - confirmed the new `ctx.getSystemPromptOptions()` command API, provider additions, package-install hardening, and security fixes do not require additional runtime changes for this package
26
+
7
27
  ## [0.1.14] - 2026-05-29
8
28
 
9
29
  ### Changed
package/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  # pi edit-session-in-place
2
2
 
3
- A [pi](https://github.com/badlogic/pi-mono) extension that lets you rewind to an earlier user message in the current branch, then either **edit it in place** or **delete it and continue from there**.
3
+ A [pi](https://github.com/earendil-works/pi-mono) extension that lets you rewind to an earlier user message in the current branch, then either **edit it in place** or **delete it and continue from there**.
4
4
 
5
5
  ## Compatibility
6
6
 
7
7
  Tested with:
8
8
 
9
- - `@earendil-works/pi-coding-agent` `0.78.0`
10
- - `@earendil-works/pi-tui` `0.78.0`
9
+ - `@earendil-works/pi-coding-agent` `0.78.1`
10
+ - `@earendil-works/pi-tui` `0.78.1`
11
11
  - Node.js `>=22 <25`
12
12
 
13
- Local development and verification in this repo target pi `0.78.0`. `@earendil-works/pi-coding-agent` and `@earendil-works/pi-tui` stay in `devDependencies` for local typechecking and tests, while pi core packages are declared as optional wildcard peers and the extension relies on pi's bundled runtime packages at execution time. That keeps installs forward-open for future pi releases: npm peer ranges should not block users from trying a newer pi, though runtime behavior is only verified against the tested baseline until a follow-up package release confirms it.
13
+ Local development and verification in this repo target pi `0.78.1` as the suggested minimum tested baseline. `@earendil-works/pi-coding-agent` and `@earendil-works/pi-tui` stay in `devDependencies` for local typechecking and tests, while pi core packages are declared as optional wildcard peers and the extension relies on pi's bundled runtime packages at execution time. That keeps installs forward-open for future pi releases: npm peer ranges should not block users from trying a newer pi, though runtime behavior is only verified against the tested baseline until a follow-up package release confirms it.
14
14
 
15
15
  ## What it does
16
16
 
@@ -76,11 +76,12 @@ If you clear the message and submit an empty value, the selected message is effe
76
76
 
77
77
  ## Behavior notes
78
78
 
79
- - Works in interactive mode; non-interactive modes do not show the picker/editor UI
79
+ - Works in interactive TUI mode; non-interactive and RPC modes do not show the picker/editor UI
80
80
  - Later messages on the abandoned branch are not deleted from the session file; they remain reachable through `/tree`
81
81
  - If the selected message contains images, the extension warns that re-editing or deleting it will drop the images and keep only text behavior
82
82
  - The extension only offers text-bearing user messages for editing; image-only or whitespace-only user messages are skipped
83
83
  - Queued messages must be cleared before using the command
84
+ - The `Ctrl+Shift+E` hotkey is handled by this extension's main-editor component so Pi's registered shortcut dispatcher does not consume it first
84
85
 
85
86
  ## Development
86
87
 
@@ -503,7 +503,10 @@ const clearSavedDraft = () => {
503
503
  };
504
504
 
505
505
  const handleEditTurn = async (ctx: ExtensionCommandContext) => {
506
- if (!ctx.hasUI) {
506
+ if (ctx.mode !== "tui") {
507
+ if (ctx.hasUI) {
508
+ ctx.ui.notify("/edit-turn requires interactive TUI mode.", "warning");
509
+ }
507
510
  clearSavedDraft();
508
511
  return;
509
512
  }
@@ -587,28 +590,14 @@ export default function editSessionInPlace(pi: ExtensionAPI) {
587
590
  },
588
591
  });
589
592
 
590
- // Shortcut handlers receive ExtensionContext, so the custom editor hotkey path performs
591
- // the command execution while this registration keeps the hotkey discoverable.
592
- pi.registerShortcut(HOTKEY, {
593
- description: `Edit a previous user message (${HOTKEY_LABEL})`,
594
- handler: (ctx) => {
595
- if (!ctx.hasUI) {
596
- return;
597
- }
598
-
599
- ctx.ui.notify(`Press ${HOTKEY_LABEL} in the main editor to edit a previous message.`, "info");
600
- },
601
- });
602
-
603
- pi.on("session_start", async () => {
593
+ pi.on("session_start", (_event, ctx) => {
604
594
  clearSavedDraft();
595
+ if (ctx.mode === "tui") {
596
+ ctx.ui.setEditorComponent((tui, theme, keybindings) => new EditSessionInPlaceEditor(tui, theme, keybindings));
597
+ }
605
598
  });
606
599
 
607
600
  pi.on("session_shutdown", async () => {
608
601
  clearSavedDraft();
609
602
  });
610
-
611
- pi.on("session_start", (_event, ctx) => {
612
- ctx.ui.setEditorComponent((tui, theme, keybindings) => new EditSessionInPlaceEditor(tui, theme, keybindings));
613
- });
614
603
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-edit-session-in-place",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "pi extension that lets you re-edit or delete an earlier user message in the current session branch",
5
5
  "author": "Mitch Fultz (https://github.com/fitchmultz)",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  "node": ">=22 <25"
46
46
  },
47
47
  "devDependencies": {
48
- "@earendil-works/pi-coding-agent": "^0.78.0",
49
- "@earendil-works/pi-tui": "^0.78.0",
48
+ "@earendil-works/pi-coding-agent": "^0.78.1",
49
+ "@earendil-works/pi-tui": "^0.78.1",
50
50
  "@types/node": "^25.9.1",
51
51
  "typescript": "^6.0.3"
52
52
  },