pi-messenger 0.12.0 → 0.12.1

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
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.12.1] - 2026-02-22
4
+
5
+ ### Fixed
6
+ - **Wrong model resolved for `provider/model` format** - Worker spawn passed `--model zai/glm-5` as a single flag, which pi's model resolver matched as a literal model ID under `vercel-ai-gateway` instead of interpreting `zai` as the provider. Now splits `provider/model` into separate `--provider` and `--model` flags, matching the intended provider. Affects both task workers and lobby workers.
7
+
3
8
  ## [0.12.0] - 2026-02-21
4
9
 
5
10
  ### Added
package/README.md CHANGED
@@ -77,7 +77,7 @@ pi_messenger({ action: "review", target: "task-1" }) // Reviewer checks imple
77
77
 
78
78
  `/messenger` opens an interactive overlay with agent presence, activity feed, and chat:
79
79
 
80
- <img width="722" height="351" alt="pi-messenger chat overlay" src="https://github.com/user-attachments/assets/4d0f1db7-90dd-4ffb-9463-560426edebd9" />
80
+ <img width="1198" height="1020" alt="pi-messenger crew overlay" src="https://github.com/user-attachments/assets/d66e5d71-5ed9-4702-9f56-9ca3f0e9c584" />
81
81
 
82
82
  Chat input supports `@Name msg` for DMs and `@all msg` for broadcasts. Text without `@` broadcasts from the Agents tab or DMs the selected agent tab.
83
83
 
package/crew/agents.ts CHANGED
@@ -58,6 +58,15 @@ export function resolveModel(
58
58
  return taskModel ?? paramModel ?? configModel ?? agentModel;
59
59
  }
60
60
 
61
+ export function pushModelArgs(args: string[], model: string): void {
62
+ const slashIdx = model.indexOf("/");
63
+ if (slashIdx !== -1) {
64
+ args.push("--provider", model.substring(0, slashIdx), "--model", model.substring(slashIdx + 1));
65
+ } else {
66
+ args.push("--model", model);
67
+ }
68
+ }
69
+
61
70
  const THINKING_LEVELS = new Set(["off", "minimal", "low", "medium", "high", "xhigh"]);
62
71
 
63
72
  export function resolveThinking(
@@ -195,7 +204,7 @@ async function runAgent(
195
204
  // Build args for pi command
196
205
  const args = ["--mode", "json", "--no-session", "-p"];
197
206
  const model = task.modelOverride ?? agentConfig?.model;
198
- if (model) args.push("--model", model);
207
+ if (model) pushModelArgs(args, model);
199
208
 
200
209
  const thinking = resolveThinking(
201
210
  config.thinking?.[role],
package/crew/lobby.ts CHANGED
@@ -13,7 +13,7 @@ import * as path from "node:path";
13
13
  import { fileURLToPath } from "node:url";
14
14
  import { randomUUID } from "node:crypto";
15
15
  import { generateMemorableName } from "../lib.js";
16
- import { resolveThinking, modelHasThinkingSuffix } from "./agents.js";
16
+ import { resolveThinking, modelHasThinkingSuffix, pushModelArgs } from "./agents.js";
17
17
  import { discoverCrewAgents } from "./utils/discover.js";
18
18
  import { loadCrewConfig, type CrewConfig } from "./utils/config.js";
19
19
  import {
@@ -70,7 +70,7 @@ export function spawnLobbyWorker(cwd: string, promptOverride?: string): LobbyWor
70
70
 
71
71
  const args = ["--mode", "json", "--no-session", "-p"];
72
72
  const model = config.models?.worker ?? workerConfig.model;
73
- if (model) args.push("--model", model);
73
+ if (model) pushModelArgs(args, model);
74
74
 
75
75
  const thinking = resolveThinking(
76
76
  config.thinking?.worker,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-messenger",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Inter-agent messaging and file reservation system for pi coding agent",
5
5
  "type": "module",
6
6
  "author": "Nico Bailon",