@pi-unipi/unipi 2.20.2 → 2.20.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.20.3] — 2026-09-17
10
+
11
+ ### Fixed
12
+
13
+ - `background-tasks`: **distinguish persistent dev servers from finite jobs in `bg_run` prompt guidelines.** The prompt guidance previously grouped dev servers and test suites under the same "do not set `triggerOnCompletion:false`" rule. For persistent servers and watchers (e.g. `npm run dev`, `vite`), `triggerOnCompletion: true` caused the UI to show an indefinite "waiting on 1 bg task" spinner and caused `SidekickRuntime` in Fusion to hang waiting for `openBgTasks` to reach zero. `BgRunParams` and `promptGuidelines` in `packages/background-tasks/src/tools.ts` now explicitly instruct agents to set `triggerOnCompletion: false` for long-running servers/daemons so neither the harness nor sidekicks wait indefinitely for exit.
14
+
9
15
  ## [2.20.2] — 2026-09-17
10
16
 
11
17
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/unipi",
3
- "version": "2.20.2",
3
+ "version": "2.20.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.20.2",
88
- "@pi-unipi/background-tasks": "2.20.2",
89
- "@pi-unipi/btw": "2.20.2",
90
- "@pi-unipi/command-enchantment": "2.20.2",
91
- "@pi-unipi/compactor": "2.20.2",
92
- "@pi-unipi/core": "2.20.2",
93
- "@pi-unipi/footer": "2.20.2",
94
- "@pi-unipi/image": "2.20.2",
95
- "@pi-unipi/fusion": "2.20.2",
96
- "@pi-unipi/info-screen": "2.20.2",
97
- "@pi-unipi/input-shortcuts": "2.20.2",
98
- "@pi-unipi/kanboard": "2.20.2",
99
- "@pi-unipi/mcp": "2.20.2",
100
- "@pi-unipi/memory": "2.20.2",
101
- "@pi-unipi/milestone": "2.20.2",
102
- "@pi-unipi/notify": "2.20.2",
103
- "@pi-unipi/ralph": "2.20.2",
104
- "@pi-unipi/subagents": "2.20.2",
105
- "@pi-unipi/trajectory": "2.20.2",
106
- "@pi-unipi/updater": "2.20.2",
107
- "@pi-unipi/utility": "2.20.2",
108
- "@pi-unipi/web-api": "2.20.2",
109
- "@pi-unipi/workflow": "2.20.2"
87
+ "@pi-unipi/ask-user": "2.20.3",
88
+ "@pi-unipi/background-tasks": "2.20.3",
89
+ "@pi-unipi/btw": "2.20.3",
90
+ "@pi-unipi/command-enchantment": "2.20.3",
91
+ "@pi-unipi/compactor": "2.20.3",
92
+ "@pi-unipi/core": "2.20.3",
93
+ "@pi-unipi/footer": "2.20.3",
94
+ "@pi-unipi/image": "2.20.3",
95
+ "@pi-unipi/fusion": "2.20.3",
96
+ "@pi-unipi/info-screen": "2.20.3",
97
+ "@pi-unipi/input-shortcuts": "2.20.3",
98
+ "@pi-unipi/kanboard": "2.20.3",
99
+ "@pi-unipi/mcp": "2.20.3",
100
+ "@pi-unipi/memory": "2.20.3",
101
+ "@pi-unipi/milestone": "2.20.3",
102
+ "@pi-unipi/notify": "2.20.3",
103
+ "@pi-unipi/ralph": "2.20.3",
104
+ "@pi-unipi/subagents": "2.20.3",
105
+ "@pi-unipi/trajectory": "2.20.3",
106
+ "@pi-unipi/updater": "2.20.3",
107
+ "@pi-unipi/utility": "2.20.3",
108
+ "@pi-unipi/web-api": "2.20.3",
109
+ "@pi-unipi/workflow": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
43
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
13
+ "@pi-unipi/core": "2.20.3",
14
14
  "turndown": "^7.2.4"
15
15
  },
16
16
  "devDependencies": {
@@ -52,13 +52,13 @@ export const BgRunParams = Type.Object({
52
52
  notifyOnCompletion: Type.Optional(
53
53
  Type.Boolean({
54
54
  description:
55
- "Deliver a durable terminal notification when the task finishes. Default true. Do not disable unless opting out of completion handling.",
55
+ "Deliver a durable terminal notification when the task finishes. Default true for finite tasks. Set false or pair with triggerOnCompletion:false for persistent servers/daemons/watchers.",
56
56
  }),
57
57
  ),
58
58
  triggerOnCompletion: Type.Optional(
59
59
  Type.Boolean({
60
60
  description:
61
- "Start a follow-up agent turn on terminal notification. Default true for bg_run. Requires notifyOnCompletion.",
61
+ "Start a follow-up agent turn on terminal notification. Default true for finite tasks (tests, builds, exports). MUST set false for persistent background services/servers (e.g. dev servers, watchers) so the harness and subagents do not wait indefinitely for the server to finish. Requires notifyOnCompletion.",
62
62
  }),
63
63
  ),
64
64
  });
@@ -185,14 +185,14 @@ export function registerToolsAndCommands(options: RegisterSurfaceOptions): void
185
185
  promptSnippet:
186
186
  "Start a named long-running shell command; default terminal notification wakes a follow-up turn, so yield instead of polling",
187
187
  promptGuidelines: [
188
- "Use bg_run instead of bash for commands expected to run for a long time, such as test suites, dev servers, watchers, or builds.",
188
+ "Use bg_run instead of bash for commands expected to run in the background (test suites, builds, dev servers, watchers).",
189
+ "For FINITE tasks (tests, builds, exports, scripts): leave triggerOnCompletion:true and notifyOnCompletion:true (defaults) to automatically wake the agent when finished.",
190
+ "For PERSISTENT servers/daemons/watchers (e.g. 'npm run dev', vite, live dev servers, background listeners): MUST set triggerOnCompletion:false (and optionally notifyOnCompletion:false) so the agent and sidekick do not wait for the server to exit.",
189
191
  "Set isAgent:true only when the background task launches an LLM/agent process; false for scripts, tests, dev servers, sleeps.",
190
192
  "Always set name to a concise 2-6 word human-readable label; do not use the raw command as the name.",
191
- "bg_run returns immediately. With notifyOnCompletion:true and triggerOnCompletion:true (both defaults), completed, failed, or killed terminal state is delivered as <background-task-notification> and automatically starts a follow-up agent turn.",
192
- "After a default bg_run launch, continue only independent useful work that does not merely wait for the task; otherwise briefly acknowledge it if useful, then end the current turn. Do not call sleep, bg_status, or bg_logs merely to wait; the terminal notification will wake you.",
193
+ "bg_run returns immediately. For finite tasks with default wake-up, continue only independent useful work that does not merely wait for the task; otherwise end the current turn. Do not call sleep, bg_status, or bg_logs merely to wait; the terminal notification will wake you.",
193
194
  "A running result is not an instruction to poll again.",
194
195
  "Treat <background-task-notification> as durable terminal truth. Do not call bg_status to reconfirm it.",
195
- "Do not set notifyOnCompletion:false or triggerOnCompletion:false unless intentionally opting out.",
196
196
  ],
197
197
  parameters: BgRunParams,
198
198
  async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/btw",
3
- "version": "2.20.2",
3
+ "version": "2.20.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.20.2"
40
+ "@pi-unipi/core": "2.20.3"
41
41
  },
42
42
  "pi": {
43
43
  "extensions": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/compactor",
3
- "version": "2.20.2",
3
+ "version": "2.20.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.20.2",
38
- "@pi-unipi/info-screen": "2.20.2",
37
+ "@pi-unipi/core": "2.20.3",
38
+ "@pi-unipi/info-screen": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
36
- "@pi-unipi/background-tasks": "2.20.2"
35
+ "@pi-unipi/core": "2.20.3",
36
+ "@pi-unipi/background-tasks": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
36
- "@pi-unipi/subagents": "2.20.2"
35
+ "@pi-unipi/core": "2.20.3",
36
+ "@pi-unipi/subagents": "2.20.3"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@earendil-works/pi-ai": "^0.84.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/image",
3
- "version": "2.20.2",
3
+ "version": "2.20.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.20.2"
37
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
36
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
36
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
42
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
33
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
43
- "@pi-unipi/info-screen": "2.20.2",
42
+ "@pi-unipi/core": "2.20.3",
43
+ "@pi-unipi/info-screen": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
35
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
37
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
35
- "@pi-unipi/info-screen": "2.20.2"
34
+ "@pi-unipi/core": "2.20.3",
35
+ "@pi-unipi/info-screen": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
12
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.3",
4
4
  "description": "Live UniPi trajectory inspector for Pi sessions",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -22204,12 +22204,12 @@ var BgRunParams = Type4.Object({
22204
22204
  ),
22205
22205
  notifyOnCompletion: Type4.Optional(
22206
22206
  Type4.Boolean({
22207
- description: "Deliver a durable terminal notification when the task finishes. Default true. Do not disable unless opting out of completion handling."
22207
+ description: "Deliver a durable terminal notification when the task finishes. Default true for finite tasks. Set false or pair with triggerOnCompletion:false for persistent servers/daemons/watchers."
22208
22208
  })
22209
22209
  ),
22210
22210
  triggerOnCompletion: Type4.Optional(
22211
22211
  Type4.Boolean({
22212
- description: "Start a follow-up agent turn on terminal notification. Default true for bg_run. Requires notifyOnCompletion."
22212
+ description: "Start a follow-up agent turn on terminal notification. Default true for finite tasks (tests, builds, exports). MUST set false for persistent background services/servers (e.g. dev servers, watchers) so the harness and subagents do not wait indefinitely for the server to finish. Requires notifyOnCompletion."
22213
22213
  })
22214
22214
  )
22215
22215
  });
@@ -22299,14 +22299,14 @@ Command: ${task.command}`,
22299
22299
  description: `Start a named long-running shell command in the background and return immediately with a task ID and output path. By default, terminal state is delivered automatically as <background-task-notification> and starts a follow-up agent turn; do not sleep or poll merely to wait. Output is written under the OS temp root and model-visible logs are bounded.`,
22300
22300
  promptSnippet: "Start a named long-running shell command; default terminal notification wakes a follow-up turn, so yield instead of polling",
22301
22301
  promptGuidelines: [
22302
- "Use bg_run instead of bash for commands expected to run for a long time, such as test suites, dev servers, watchers, or builds.",
22302
+ "Use bg_run instead of bash for commands expected to run in the background (test suites, builds, dev servers, watchers).",
22303
+ "For FINITE tasks (tests, builds, exports, scripts): leave triggerOnCompletion:true and notifyOnCompletion:true (defaults) to automatically wake the agent when finished.",
22304
+ "For PERSISTENT servers/daemons/watchers (e.g. 'npm run dev', vite, live dev servers, background listeners): MUST set triggerOnCompletion:false (and optionally notifyOnCompletion:false) so the agent and sidekick do not wait for the server to exit.",
22303
22305
  "Set isAgent:true only when the background task launches an LLM/agent process; false for scripts, tests, dev servers, sleeps.",
22304
22306
  "Always set name to a concise 2-6 word human-readable label; do not use the raw command as the name.",
22305
- "bg_run returns immediately. With notifyOnCompletion:true and triggerOnCompletion:true (both defaults), completed, failed, or killed terminal state is delivered as <background-task-notification> and automatically starts a follow-up agent turn.",
22306
- "After a default bg_run launch, continue only independent useful work that does not merely wait for the task; otherwise briefly acknowledge it if useful, then end the current turn. Do not call sleep, bg_status, or bg_logs merely to wait; the terminal notification will wake you.",
22307
+ "bg_run returns immediately. For finite tasks with default wake-up, continue only independent useful work that does not merely wait for the task; otherwise end the current turn. Do not call sleep, bg_status, or bg_logs merely to wait; the terminal notification will wake you.",
22307
22308
  "A running result is not an instruction to poll again.",
22308
- "Treat <background-task-notification> as durable terminal truth. Do not call bg_status to reconfirm it.",
22309
- "Do not set notifyOnCompletion:false or triggerOnCompletion:false unless intentionally opting out."
22309
+ "Treat <background-task-notification> as durable terminal truth. Do not call bg_status to reconfirm it."
22310
22310
  ],
22311
22311
  parameters: BgRunParams,
22312
22312
  async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/updater",
3
- "version": "2.20.2",
3
+ "version": "2.20.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.20.2"
37
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
39
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2",
34
+ "@pi-unipi/core": "2.20.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.20.2",
3
+ "version": "2.20.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.20.2"
33
+ "@pi-unipi/core": "2.20.3"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@earendil-works/pi-ai": "^0.84.0",