fix(coding-agent): use dynamic paths in error messages (#887)

Error messages for missing credentials and shell config now use
getAuthPath() and getSettingsPath() instead of hardcoded ~/.pi/agent/
paths, so they correctly reflect PI_CODING_AGENT_DIR when set.
This commit is contained in:
Aliou Diallo 2026-01-21 23:21:10 +01:00 committed by GitHub
parent 620239bd3f
commit 69d02b8a5f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 6 additions and 4 deletions

View file

@ -23,7 +23,7 @@
import { Agent, type AgentMessage, type AgentTool, type ThinkingLevel } from "@mariozechner/pi-agent-core";
import type { Message, Model } from "@mariozechner/pi-ai";
import { join } from "path";
import { getAgentDir } from "../config.js";
import { getAgentDir, getAuthPath } from "../config.js";
import { AgentSession } from "./agent-session.js";
import { AuthStorage } from "./auth-storage.js";
import { createEventBus, type EventBus } from "./event-bus.js";
@ -401,7 +401,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
}
} else {
// No models available - set message so user knows to /login or configure keys
modelFallbackMessage = "No models available. Use /login or set an API key environment variable.";
modelFallbackMessage = `No models available. Use /login, set an API key environment variable, or create ${getAuthPath()}`;
}
}

View file

@ -1,5 +1,6 @@
import { existsSync } from "node:fs";
import { spawn, spawnSync } from "child_process";
import { getSettingsPath } from "../config.js";
import { SettingsManager } from "../core/settings-manager.js";
let cachedShellConfig: { shell: string; args: string[] } | null = null;
@ -45,7 +46,7 @@ export function getShellConfig(): { shell: string; args: string[] } {
return cachedShellConfig;
}
throw new Error(
`Custom shell path not found: ${customShellPath}\nPlease update shellPath in ~/.pi/agent/settings.json`,
`Custom shell path not found: ${customShellPath}\nPlease update shellPath in ${getSettingsPath()}`,
);
}
@ -79,7 +80,7 @@ export function getShellConfig(): { shell: string; args: string[] } {
`No bash shell found. Options:\n` +
` 1. Install Git for Windows: https://git-scm.com/download/win\n` +
` 2. Add your bash to PATH (Cygwin, MSYS2, etc.)\n` +
` 3. Set shellPath in ~/.pi/agent/settings.json\n\n` +
` 3. Set shellPath in ${getSettingsPath()}\n\n` +
`Searched Git Bash in:\n${paths.map((p) => ` ${p}`).join("\n")}`,
);
}