@pi-unipi/unipi 2.19.2 → 2.19.3

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
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.19.3] — 2026-09-16
10
+
11
+ ### Fixed
12
+
13
+ - `fusion`: **sidekick blocks get the standard tool highlight again.** Both fusion tools declared `renderShell: "self"`, which routes `renderCall`/`renderResult` into a bare `Container` and bypasses `ToolExecutionComponent`'s `toolPendingBg`/`toolSuccessBg`/`toolErrorBg` box. Once the `customMessageBg` frame was removed in 2.19.1, sidekick activity rendered as unhighlighted plain text — plainer than the lead's own tool calls. Dropping the self shell lets pi wrap the transcript in the same tinted block every other tool gets, with the normal pending → success/error repaint.
14
+
9
15
  ## [2.19.2] — 2026-09-16
10
16
 
11
17
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/unipi",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "All-in-one extension suite for Pi coding agent",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -84,29 +84,29 @@
84
84
  "typebox": "^1.1.38"
85
85
  },
86
86
  "dependencies": {
87
- "@pi-unipi/ask-user": "2.19.2",
88
- "@pi-unipi/background-tasks": "2.19.2",
89
- "@pi-unipi/btw": "2.19.2",
90
- "@pi-unipi/command-enchantment": "2.19.2",
91
- "@pi-unipi/compactor": "2.19.2",
92
- "@pi-unipi/core": "2.19.2",
93
- "@pi-unipi/footer": "2.19.2",
94
- "@pi-unipi/image": "2.19.2",
95
- "@pi-unipi/fusion": "2.19.2",
96
- "@pi-unipi/info-screen": "2.19.2",
97
- "@pi-unipi/input-shortcuts": "2.19.2",
98
- "@pi-unipi/kanboard": "2.19.2",
99
- "@pi-unipi/mcp": "2.19.2",
100
- "@pi-unipi/memory": "2.19.2",
101
- "@pi-unipi/milestone": "2.19.2",
102
- "@pi-unipi/notify": "2.19.2",
103
- "@pi-unipi/ralph": "2.19.2",
104
- "@pi-unipi/subagents": "2.19.2",
105
- "@pi-unipi/trajectory": "2.19.2",
106
- "@pi-unipi/updater": "2.19.2",
107
- "@pi-unipi/utility": "2.19.2",
108
- "@pi-unipi/web-api": "2.19.2",
109
- "@pi-unipi/workflow": "2.19.2"
87
+ "@pi-unipi/ask-user": "2.19.3",
88
+ "@pi-unipi/background-tasks": "2.19.3",
89
+ "@pi-unipi/btw": "2.19.3",
90
+ "@pi-unipi/command-enchantment": "2.19.3",
91
+ "@pi-unipi/compactor": "2.19.3",
92
+ "@pi-unipi/core": "2.19.3",
93
+ "@pi-unipi/footer": "2.19.3",
94
+ "@pi-unipi/image": "2.19.3",
95
+ "@pi-unipi/fusion": "2.19.3",
96
+ "@pi-unipi/info-screen": "2.19.3",
97
+ "@pi-unipi/input-shortcuts": "2.19.3",
98
+ "@pi-unipi/kanboard": "2.19.3",
99
+ "@pi-unipi/mcp": "2.19.3",
100
+ "@pi-unipi/memory": "2.19.3",
101
+ "@pi-unipi/milestone": "2.19.3",
102
+ "@pi-unipi/notify": "2.19.3",
103
+ "@pi-unipi/ralph": "2.19.3",
104
+ "@pi-unipi/subagents": "2.19.3",
105
+ "@pi-unipi/trajectory": "2.19.3",
106
+ "@pi-unipi/updater": "2.19.3",
107
+ "@pi-unipi/utility": "2.19.3",
108
+ "@pi-unipi/web-api": "2.19.3",
109
+ "@pi-unipi/workflow": "2.19.3"
110
110
  },
111
111
  "devDependencies": {
112
112
  "@earendil-works/pi-agent-core": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/ask-user",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Structured user input tool for Pi coding agent — single-select, multi-select, freeform",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -40,7 +40,7 @@
40
40
  "access": "public"
41
41
  },
42
42
  "dependencies": {
43
- "@pi-unipi/core": "2.19.2"
43
+ "@pi-unipi/core": "2.19.3"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/command-enchantment",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Enhanced TUI autocomplete for /unipi:* commands — colored, sorted, and grouped by package",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/background-tasks",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Background tasks for UniPi — durable shell jobs and delegated background agents with a footer dock",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@earendil-works/pi-ai": "^0.84.0",
13
- "@pi-unipi/core": "2.19.2",
13
+ "@pi-unipi/core": "2.19.3",
14
14
  "turndown": "^7.2.4"
15
15
  },
16
16
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/btw",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "A pi extension for parallel side conversations with /unipi:btw — part of the Unipi suite",
5
5
  "type": "module",
6
6
  "main": "extensions/btw.ts",
@@ -37,7 +37,7 @@
37
37
  "@earendil-works/pi-tui": "^0.84.0"
38
38
  },
39
39
  "dependencies": {
40
- "@pi-unipi/core": "2.19.2"
40
+ "@pi-unipi/core": "2.19.3"
41
41
  },
42
42
  "pi": {
43
43
  "extensions": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/compactor",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Context engine for Pi — zero-LLM compaction, session continuity, sandbox execution, and tool display optimization",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -34,8 +34,8 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@pi-unipi/core": "2.19.2",
38
- "@pi-unipi/info-screen": "2.19.2",
37
+ "@pi-unipi/core": "2.19.3",
38
+ "@pi-unipi/info-screen": "2.19.3",
39
39
  "@earendil-works/pi-agent-core": "^0.84.0"
40
40
  },
41
41
  "peerDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/core",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Shared utilities, event types, and constants for Unipi extension suite",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/footer",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Persistent status bar for Unipi — subscribes to UNIPI_EVENTS and renders key stats from all unipi packages",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -32,8 +32,8 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@pi-unipi/core": "2.19.2",
36
- "@pi-unipi/background-tasks": "2.19.2"
35
+ "@pi-unipi/core": "2.19.3",
36
+ "@pi-unipi/background-tasks": "2.19.3"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/fusion",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Devin-style model picker, fusion presets (lead + sidekick), and Local Fusion runtime for UniPi",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -32,8 +32,8 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@pi-unipi/core": "2.19.2",
36
- "@pi-unipi/subagents": "2.19.2"
35
+ "@pi-unipi/core": "2.19.3",
36
+ "@pi-unipi/subagents": "2.19.3"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@earendil-works/pi-ai": "^0.84.0",
@@ -178,7 +178,6 @@ export function registerFusionTools(pi: ExtensionAPI, deps: FusionToolDeps): voi
178
178
  label: "Sidekick",
179
179
  description: "Hand off work to your persistent sidekick subagent (one per session; context and shells persist across handoffs; runs on the same machine). block:true (default) waits and returns the report. block:false returns immediately and the report arrives later as a <subagent_completion_notification>. Calling again while a handoff is running injects the message as an interrupt rather than starting a second sidekick.",
180
180
  parameters: SidekickParams,
181
- renderShell: "self",
182
181
  renderCall: (args, theme) => new Text(`${theme.fg("toolTitle", theme.bold("◆ sidekick"))} ${theme.fg("dim", firstLine(String(args.message)).slice(0, 100))}`, 0, 0),
183
182
  renderResult: (result, options, theme) => renderToolTranscript(result, options, theme as unknown as ThemeLike, "sidekick"),
184
183
  async execute(_toolCallId, params, signal, onUpdate, ctx) {
@@ -214,7 +213,6 @@ export function registerFusionTools(pi: ExtensionAPI, deps: FusionToolDeps): voi
214
213
  label: "Read Sidekick",
215
214
  description: "Read a sidekick handoff report by agent_id (omit for the latest). block:true waits for completion (default timeout 2700s when omitted); block:false returns the current progress snapshot immediately.",
216
215
  parameters: ReadSubagentParams,
217
- renderShell: "self",
218
216
  renderCall: (args, theme) => new Text(`${theme.fg("toolTitle", theme.bold("◆ read_subagent"))} ${theme.fg("dim", args.block === false ? "· snapshot" : "· waiting")}`, 0, 0),
219
217
  renderResult: (result, options, theme) => renderToolTranscript(result, options, theme as unknown as ThemeLike, "read_subagent"),
220
218
  async execute(_toolCallId, params, signal, onUpdate, ctx) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/image",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Image generation and image recognition tools for the Pi coding agent",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -34,7 +34,7 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@pi-unipi/core": "2.19.2"
37
+ "@pi-unipi/core": "2.19.3"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@earendil-works/pi-ai": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/info-screen",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Dashboard and module registry for Unipi — configurable info overlay with tabbed groups",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -33,7 +33,7 @@
33
33
  "access": "public"
34
34
  },
35
35
  "dependencies": {
36
- "@pi-unipi/core": "2.19.2"
36
+ "@pi-unipi/core": "2.19.3"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/input-shortcuts",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Keyboard shortcuts for stash/restore, undo/redo, clipboard, and thinking toggle — chord-based overlay system",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -33,7 +33,7 @@
33
33
  "access": "public"
34
34
  },
35
35
  "dependencies": {
36
- "@pi-unipi/core": "2.19.2"
36
+ "@pi-unipi/core": "2.19.3"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/kanboard",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Visualization layer for unipi workflow — HTTP server with htmx/Alpine.js UI, modular parsers, TUI overlay, and kanban board",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -39,7 +39,7 @@
39
39
  "access": "public"
40
40
  },
41
41
  "dependencies": {
42
- "@pi-unipi/core": "2.19.2"
42
+ "@pi-unipi/core": "2.19.3"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/mcp",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "MCP server management extension for Pi coding agent — browse, add, configure, and use MCP servers",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -30,7 +30,7 @@
30
30
  "test": "npx tsx --test tests/**/*.test.ts"
31
31
  },
32
32
  "dependencies": {
33
- "@pi-unipi/core": "2.19.2"
33
+ "@pi-unipi/core": "2.19.3"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/memory",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Persistent cross-session memory with MemPalace backend (auto-installed) and SQLite fallback for Pi coding agent",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -39,8 +39,8 @@
39
39
  "README.md"
40
40
  ],
41
41
  "dependencies": {
42
- "@pi-unipi/core": "2.19.2",
43
- "@pi-unipi/info-screen": "2.19.2",
42
+ "@pi-unipi/core": "2.19.3",
43
+ "@pi-unipi/info-screen": "2.19.3",
44
44
  "js-yaml": "^4.1.0"
45
45
  },
46
46
  "peerDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/milestone",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Lifecycle layer for project-level goals — MILESTONES.md tracking, session hooks, auto-sync",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -32,7 +32,7 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@pi-unipi/core": "2.19.2"
35
+ "@pi-unipi/core": "2.19.3"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/notify",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Cross-platform notification extension for Pi — native OS, Gotify, and Telegram notifications for agent lifecycle events",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -34,7 +34,7 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@pi-unipi/core": "2.19.2",
37
+ "@pi-unipi/core": "2.19.3",
38
38
  "node-notifier": "^10.0.1"
39
39
  },
40
40
  "peerDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/ralph",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Long-running iterative development loops for Pi coding agent",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -31,8 +31,8 @@
31
31
  "test": "npx tsx --test reminder.test.ts"
32
32
  },
33
33
  "dependencies": {
34
- "@pi-unipi/core": "2.19.2",
35
- "@pi-unipi/info-screen": "2.19.2"
34
+ "@pi-unipi/core": "2.19.3",
35
+ "@pi-unipi/info-screen": "2.19.3"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@earendil-works/pi-ai": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/subagents",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Subagents for UniPi — parallel execution, file locking, workflow integration",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -9,7 +9,7 @@
9
9
  "test": "npx tsx --test src/__tests__/*.test.ts"
10
10
  },
11
11
  "dependencies": {
12
- "@pi-unipi/core": "2.19.2",
12
+ "@pi-unipi/core": "2.19.3",
13
13
  "@earendil-works/pi-agent-core": "^0.84.0",
14
14
  "acorn": "8.18.0"
15
15
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/trajectory",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Live UniPi trajectory inspector for Pi sessions",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -53939,7 +53939,6 @@ function registerFusionTools(pi, deps) {
53939
53939
  label: "Sidekick",
53940
53940
  description: "Hand off work to your persistent sidekick subagent (one per session; context and shells persist across handoffs; runs on the same machine). block:true (default) waits and returns the report. block:false returns immediately and the report arrives later as a <subagent_completion_notification>. Calling again while a handoff is running injects the message as an interrupt rather than starting a second sidekick.",
53941
53941
  parameters: SidekickParams,
53942
- renderShell: "self",
53943
53942
  renderCall: (args, theme) => new Text12(`${theme.fg("toolTitle", theme.bold("\u25C6 sidekick"))} ${theme.fg("dim", firstLine3(String(args.message)).slice(0, 100))}`, 0, 0),
53944
53943
  renderResult: (result2, options, theme) => renderToolTranscript(result2, options, theme, "sidekick"),
53945
53944
  async execute(_toolCallId, params, signal, onUpdate, ctx) {
@@ -53977,7 +53976,6 @@ ${progressText(runtime, handoff.id)}`, { progress: runtime.progress(handoff.id),
53977
53976
  label: "Read Sidekick",
53978
53977
  description: "Read a sidekick handoff report by agent_id (omit for the latest). block:true waits for completion (default timeout 2700s when omitted); block:false returns the current progress snapshot immediately.",
53979
53978
  parameters: ReadSubagentParams,
53980
- renderShell: "self",
53981
53979
  renderCall: (args, theme) => new Text12(`${theme.fg("toolTitle", theme.bold("\u25C6 read_subagent"))} ${theme.fg("dim", args.block === false ? "\xB7 snapshot" : "\xB7 waiting")}`, 0, 0),
53982
53980
  renderResult: (result2, options, theme) => renderToolTranscript(result2, options, theme, "read_subagent"),
53983
53981
  async execute(_toolCallId, params, signal, onUpdate, ctx) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/updater",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Auto-updater, changelog browser, and readme browser for Unipi — checks npm registry, renders CHANGELOG.md and README.md files in TUI overlays",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -34,7 +34,7 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@pi-unipi/core": "2.19.2"
37
+ "@pi-unipi/core": "2.19.3"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@earendil-works/pi-coding-agent": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/utility",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Utility commands and tools for Pi coding agent — lifecycle, diagnostics, cache, analytics, display, batch execution",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -36,7 +36,7 @@
36
36
  "access": "public"
37
37
  },
38
38
  "dependencies": {
39
- "@pi-unipi/core": "2.19.2"
39
+ "@pi-unipi/core": "2.19.3"
40
40
  },
41
41
  "devDependencies": {},
42
42
  "peerDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/web-api",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Web search, read, and summarize tools with provider-based backend selection for Pi coding agent",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -31,7 +31,7 @@
31
31
  "README.md"
32
32
  ],
33
33
  "dependencies": {
34
- "@pi-unipi/core": "2.19.2",
34
+ "@pi-unipi/core": "2.19.3",
35
35
  "defuddle": "^0.18.1",
36
36
  "linkedom": "^0.18.12",
37
37
  "wreq-js": "^2.3.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/workflow",
3
- "version": "2.19.2",
3
+ "version": "2.19.3",
4
4
  "description": "Structured development workflow commands for Pi coding agent",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -30,7 +30,7 @@
30
30
  "access": "public"
31
31
  },
32
32
  "dependencies": {
33
- "@pi-unipi/core": "2.19.2"
33
+ "@pi-unipi/core": "2.19.3"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@earendil-works/pi-ai": "^0.84.0",