pi-plus 0.2.14 → 0.2.15

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
@@ -16,6 +16,7 @@
16
16
 
17
17
  ### Changed
18
18
 
19
+ - **The resume session list hides headless transcripts** (`src/coding-agent/ui/session-selector.ts` wrapper, redirected for `packages/coding-agent/src/modes/interactive/components/session-selector.ts`): `pipi --resume`, `pipi -r` and the TUI `/resume` share one picker component, so the wrapper filters its session loaders before `super()` starts loading, and headless runs (SDK hosts, automation) no longer crowd out interactive chats. Only transcripts whose header says `interactive: false` (stamped by the plus session-manager overlay) are dropped; the filter applies to the resolved list and to the partial lists published while a large directory is still scanning, and leaves `resolveSessionPath` alone so `--session <id>` / `-r <id>` still reach a headless transcript. Unmarked sessions (pre-marker, or hosts that never declare a mode) stay listed. Side effect: a headless session cannot be renamed or deleted from the picker.
19
20
  - **The repository split the pi-plus sources into three packages**: the shared override core (context/compaction/reasoning + the seven non-TUI extensions + the core redirect wrappers) stays in `packages/plus`, all CLI logic (hub dispatch, completion, usage print, banner/vim/tab-title/plain-tools/`/cd`, the main wrapper, the source-mode loader) moved to `packages/plus-cli`, and the programmatic entry moved to `packages/plus-api`. The published `pi-plus` package is now **CLI-only**: `api.js`/`api.d.ts` are gone from the artifact, the `exports` map has no `.` entry (so `import "pi-plus"` fails by design), and the `@earendil-works/pi-coding-agent` types dependency is dropped. Library hosts should depend on the new **`pi-plus-sdk`** package instead, published from `packages/plus-api`.
20
21
  - The `/cd` working-directory switch extension moved to the shared core (`packages/plus/src/extensions/cd/`) so the `pi-plus-sdk` artifact registers it too; it is no longer CLI-only.
21
22
  - Launching under a hub profile now layers settings at runtime instead of baking them at launch: pipi sets `PI_PLUS_BASE_AGENT_DIR` to the plain agent dir before pointing `PI_CODING_AGENT_DIR` at the profile dir, so the session reads `~/.pi/agent/settings.json` deep-merged under the profile `settings.json` (profile wins) and general writes land in the agent file live. With general keys — including `packages` — now written straight to the base file, the old exit hook that synced the profile copy's `packages` back to the agent settings at process exit was dropped (it could only clobber the base after the layering change).
package/README.md CHANGED
@@ -26,6 +26,7 @@ The context-detection/compaction/reasoning overrides and the eleven non-TUI exte
26
26
  9. **Fancy content-change diffs** (`src/extensions/fancy-diff/`) — takes over the TUI rendering of `edit` and `write`: syntax-highlighted diff bodies, colored +/- markers, a dim line-number gutter, `+N −M` change stats with a language badge, bold word-level emphasis on modified lines, and a ⋮ separator for elided context. A `write` that overwrites an existing file renders as an old-vs-new diff (the pre-image is captured in a `tool_call` handler before execution; new files keep the streaming content preview). No background fills, consistent with plain tool blocks.
27
27
  10. **Session change report** (`src/extensions/changes/`) — `/changes` prints the cumulative content diff of every file the agent changed this session, including files git cannot show: brand-new (untracked) files render as all-added diffs and deletions as all-removed. A `tool_call` handler snapshots each file's original content at the agent's first touch; the command diffs those baselines against the current files on disk and appends the report as a custom transcript entry (never in LLM context, re-rendered with the fancy-diff styling, persists across session restore). Optional argument filters paths by substring (`/changes src/foo`). Changes made through the `bash` tool are not tracked. TUI only.
28
28
  11. **Auto-fold history** (`src/coding-agent/ui/auto-fold-history.ts`) — rolling fold of the transcript: as the agent starts each new assistant message mid-run, the previous step's thinking and finished tool rows collapse (thinking to the "Thinking... (ctrl+o to expand)" hint label, tools back to their standard preview), and a new user message folds all previous turns. The live step (streaming assistant message + in-flight tools) is always excluded, so output stays open while it's still relevant; resume and compaction replays fold everything before the last user turn. thinking folds and unfolds **exactly like tool output**: the fold syncs both flags (`toolOutputExpanded` false, `hideThinkingBlock` true — so neither ctrl+o nor ctrl+t ever dead-presses), new components inherit them (after a fold a fresh tool row starts collapsed **and** a fresh assistant message starts with hidden thinking, mid-run included — reveal via ctrl+o, ctrl+t or a click), and ctrl+o sweeps the whole transcript for both kinds, streaming component included, like upstream's tool sweep; clicking re-opens a single folded block. With `PI_AUTO_FOLD_HISTORY=0` the whole feature is off and ctrl+o behaves exactly like upstream (tool output only); verbose startup never folds. CLI-only — `pi-plus-sdk` hosts (e.g. the desktop app) do their own folding.
29
+ 12. **Resume list hides headless sessions** (`src/coding-agent/ui/session-selector.ts` wrapper) — the session picker reached by `pipi --resume`, `pipi -r` and the TUI `/resume` drops transcripts the host marked `interactive: false` (the marker itself lives in `../plus/src/coding-agent/core/session-manager.ts`), so SDK and automation runs stop crowding out the chats you actually had. Unmarked sessions stay listed, and `--session <id>` / `-r <id>` still resolve a headless transcript: only the display list is filtered, applied to the resolved list *and* to the partial lists rendered while a scan is still running. Side effect: a headless session cannot be renamed or deleted from the picker.
29
30
 
30
31
  The CLI identifies as **`pipi`** (pi-plus) in CLI text via the shared config wrapper's
31
32
  `APP_NAME` shadow; the terminal tab title brands as **`pi+`** via `APP_TITLE`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-plus",
3
- "version": "0.2.14",
3
+ "version": "0.2.15",
4
4
  "description": "pi coding agent with the pi-plus override layer (pipi CLI)",
5
5
  "type": "module",
6
6
  "piConfig": {