fix: allow extension to load when offline
The model fetch at startup throws and blocks pi from starting when there's no network. Catch the error and register the provider with an empty model list instead.
This commit is contained in:
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
- Allow pi to start when the model list fetch fails due to no network connectivity. Command Code models are fetched live when online; if the provider starts offline, run `/reload` once connected to refresh the model catalog.
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
|
||||||
|
- @k3-2o — reported that the model-list fetch blocked pi startup when offline.
|
||||||
|
|
||||||
## 0.4.2 - 2026-07-05
|
## 0.4.2 - 2026-07-05
|
||||||
|
|
||||||
- Fix Oh My Pi extension validation by avoiding the missing `calculateCost` export from OMP's legacy `pi-ai` shim.
|
- Fix Oh My Pi extension validation by avoiding the missing `calculateCost` export from OMP's legacy `pi-ai` shim.
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"
|
|||||||
|
|
||||||
import { COMMAND_CODE_CLI_VERSION, createStreamCommandCode, DEFAULT_API_BASE } from "./src/core.ts"
|
import { COMMAND_CODE_CLI_VERSION, createStreamCommandCode, DEFAULT_API_BASE } from "./src/core.ts"
|
||||||
import { calculateCommandCodeCost } from "./src/cost.ts"
|
import { calculateCommandCodeCost } from "./src/cost.ts"
|
||||||
import { DEFAULT_MODELS_URL, fetchCommandCodeModels } from "./src/models.ts"
|
import { DEFAULT_MODELS_URL, fetchCommandCodeModels, type CommandCodeModel } from "./src/models.ts"
|
||||||
import { getApiKey, login, refreshToken } from "./src/oauth.ts"
|
import { getApiKey, login, refreshToken } from "./src/oauth.ts"
|
||||||
|
|
||||||
const API_BASE = process.env.COMMANDCODE_API_BASE ?? DEFAULT_API_BASE
|
const API_BASE = process.env.COMMANDCODE_API_BASE ?? DEFAULT_API_BASE
|
||||||
@@ -79,7 +79,12 @@ const streamCommandCode = createStreamCommandCode({
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
export default async function (pi: ExtensionAPI) {
|
export default async function (pi: ExtensionAPI) {
|
||||||
const models = await fetchCommandCodeModels({ url: MODELS_URL })
|
let models: readonly CommandCodeModel[]
|
||||||
|
try {
|
||||||
|
models = await fetchCommandCodeModels({ url: MODELS_URL })
|
||||||
|
} catch {
|
||||||
|
models = []
|
||||||
|
}
|
||||||
|
|
||||||
pi.registerProvider("commandcode", {
|
pi.registerProvider("commandcode", {
|
||||||
name: "Command Code",
|
name: "Command Code",
|
||||||
|
|||||||
Reference in New Issue
Block a user