0.6.1 imported registerApiProvider from @earendil-works/pi-ai/compat as a named import. Oh My Pi maps that specifier onto its own pi-ai, which has no such export and instead registers custom APIs inside registerProvider, so omp plugin install rejected the extension with "Export named 'registerApiProvider' not found". Import the compat module as a namespace and call registerApiProvider only when the host provides it. pi keeps the sibling-extension fix from #68; omp loads again and its own custom-api registry covers that case. Verified with omp 18.1.2: plugin install of the linked checkout succeeds and tests/test-omp-compat.mjs passes; tests/test-pi-local.mjs still covers the compat registry path on pi. Closes #74
12 KiB
12 KiB
Changelog
Unreleased
- Fix
omp plugin installon Oh My Pi 18.x, which rejected 0.6.1 because its pi-ai lacks theregisterApiProviderexport; the compat registration now resolves at runtime and is skipped on hosts that register custom APIs themselves.
0.6.1 - 2026-09-01
- Expose selectable thinking levels (
minimal,low,medium,high,xhigh) formeta/muse-spark-1.1,meta/muse-spark-1.2, andmeta/muse-spark-1.2-contributorthrough a manual catalog override, so/thinkingandShift+Tabno longer stay locked onofffor these reasoning models. - Start from the cached model catalog and refresh it in the background instead of blocking host startup on the catalog request; a first start without a cache still waits for the live catalog.
- Register the
commandcode-customAPI in the@earendil-works/pi-ai/compatregistry so sibling extensions that stream with the active Command Code model no longer fail withNo API provider registered for api: commandcode-customon plain pi. - Assert structural catalog invariants in the model tests so the daily catalog sync no longer fails on every upstream change.
- Display the monthly renewal date and remaining days in
/commandcode-quota. - Stop silently dropping
role: "developer"messages (for example OMP advisor steering notes, reminders, and nudges)./alpha/generateonly acceptsuser,assistant, andtoolroles, so developer messages are now forwarded asusermessages with identical content in the same chronological position instead of disappearing from the request. - Add
Qwen/Qwen3.8-Flashandz-ai/glm-5.3-flashwith their verified reasoning efforts (low, medium, xhighandlow, high, max) and display pricing. - Refresh static model capabilities from
command-code@1.40.1, addingclaude-fable-5-1,deepseek/deepseek-v4-flash-fast, andtencent/hy4-previewwith their reasoning efforts, addingmoonshotai/Kimi-K3efforts and thez-ai/glm-5.3-flashoutput limit, and dropping the retiredstealth/ox-alphaandminimax/minimax-m3-free. - Refresh display pricing for the current 62-model catalog, adding
claude-fable-5-1,deepseek/deepseek-v4-flash-fast, andtencent/hy4-preview, removing the retiredstealth/ox-alpha,minimax/minimax-m3-free, andminimax/minimax-m2.7-free, and ending the expired Claude Sonnet 5 introductory and Gemini 3.7 Flash promotional windows. - Fix
npm run sync:commandcode-catalogandnpm run check:commandcode-catalogon Windows by spawning npm through the shell. - Add a
refresh-model-catalogagent skill with cross-platform helper scripts that snapshot the live model catalog and regenerate the pricing fixture fromMODEL_COSTS.
Contributors
- @warc0s — preserved developer messages on the
/alpha/generatetransport with OMP advisory coverage. - @jagaliano — added the quota renewal date and diagnosed the failing daily catalog sync.
- @ThomasByr — added GLM 5.3 Flash and Qwen 3.8 Flash and contributed the
refresh-model-catalogskill. - @hjshin-ubob — proposed selectable thinking levels for the Muse Spark models.
- @Sokoshy — analyzed the
commandcode-customcompat registry failure on plain pi. - @CoderTCY — measured and proposed the cache-first catalog startup.
- @MertSoylu — reported the missing GLM 5.3 Flash effort levels.
0.6.0 - 2026-08-25
- Allow switching from a vision-capable model to a text-only model by omitting historical image tool results while preserving their text output; direct image prompts still fail clearly.
- Stream incremental tool-call arguments from the
/alpha/generatetransport instead of waiting for the final complete tool-call event. - Add a daily GitHub Actions synchronization job that opens or updates a pull request for CLI version, image capability, reasoning, effort, and output-limit changes in the latest published Command Code catalog.
- Refresh static model capabilities from
command-code@1.32.2, separating reasoning support from selectable effort levels and honoring model-specific output limits. - Reject truncated, aborted, and network-failed generate streams instead of reporting partial responses as successful.
- Normalize malformed tool results and synthesize missing tool results so follow-up requests preserve valid tool-call history.
- Refresh display pricing for all 58 current models, including Gemini 3.7 Flash, Qwen 3.8 27B, Ox Alpha, Muse Spark 1.2, and Grok 4.6 long-context rates.
- Accept the official
COMMAND_CODE_API_KEYandCMD_ZDRenvironment variables while retaining legacy aliases. - Align generate request metadata with the CLI by forwarding stable session IDs, optional temperature, and the CLI user agent.
- Validate manually pasted API keys, use the CLI's two-minute browser timeout, and reject OAuth state mismatches without closing the callback server.
- Add
/commandcode-quotawith live credits, plan, usage totals, and rolling-limit diagnostics from Command Code's alpha usage endpoints. - Add
zai-org/GLM-5.3with its verified reasoning efforts and display pricing. - Prefer Command Code's Provider API (
/provider/v1/chat/completionsand/provider/v1/messages) and automatically fall back to the existing/alpha/generatetransport only when the Provider API returns403 upgrade_requiredfor a Go-plan account. - Remember the detected transport for the running process, re-detect it when credentials change, prevent stale in-flight requests from overwriting the new credential's transport, and never fall back for unrelated authentication, permission, rate-limit, network, or server failures.
- Use Pi's native OpenAI- and Anthropic-compatible providers for Provider API streaming, including adaptive thinking for current reasoning-capable Claude models, while preserving the existing hardened generate transport, dynamic model discovery, offline cache, refresh/status commands, pricing, and OAuth credentials.
- Let
/loginuse browser authentication, an explicit API-key prompt, or a directly pasted API key. - Add optional zero-data-retention headers through
CMD_ZDR=1and the legacyCOMMANDCODE_ZDR=1alias. - Refresh GPT-5.6 Terra and Luna display prices after their temporary 50% promotion ended, and display the current DeepSeek V4 off-peak rates for its time-dependent pricing.
- Add isolated live E2E profiles for separate Go-, GOAT-, and Provider-plan credentials, covering transport selection, reasoning across turns, quota identity, aborts, tools, GOAT vision, Go image rejection, and packed-package validation.
- Fix extension load failure on newer pi hosts that reject registering a custom API under a built-in name (
openai-completions); register undercommandcode-custominstead and restore the real wire API before native compat dispatch.
Contributors
- @jagaliano — added the live quota dashboard and hardened its integration.
- @omariqbalnaru — fixed custom API registration for Oh My Pi 17.4.0.
- @ThomasByr — added GLM-5.3 pricing and reasoning levels.
- @newCman1 — added DeepSeek V4 vision model support.
0.5.1 - 2026-08-11
- Add model-specific image input capabilities from the
command-code@1.15.1catalog and forward user and tool-result images using the current Command Code wire format. - Update the Command Code client version header to
1.15.1.
Contributors
- @DiyarD — reported missing vision support for GPT-5.6 Luna, Muse Spark 1.2, and other vision-capable models.
0.5.0 - 2026-08-07
- Stop replaying completed assistant reasoning traces to Command Code while preserving visible text and completed tool calls in follow-up request history.
- Add
/commandcode-refreshand/commandcode-statuscommands for safe model-catalog refreshes and redacted diagnostics. - Bound model discovery to a configurable 10-second timeout so a slow Provider API cannot block pi startup; timed-out discovery uses the validated cache when available.
- Normalize Command Code context overflow failures so pi can auto-compact and retry, while leaving unrelated rate-limit and capacity errors unchanged.
- Keep the legacy
/alpha/generateintegration explicitly text-only: image input and image tool results are rejected instead of being silently dropped, and models do not claim image capability until the protocol exposes documented support and limits. - Replace blanket reasoning metadata with model-specific Command Code effort support. Known models expose a
thinkingLevelMap, and selected supported Pi levels are forwarded asparams.reasoning_effort; unsupported or unknown models do not receive reasoning request fields. - Add repository commands for testing the current checkout either in a logged-out, automatically cleaned-up pi environment or with existing credentials and only Command Code models enabled.
- Refresh display pricing for the current Command Code model catalog, remove expired Qwen promotional rates, add current free and discounted models, and require review when temporary prices expire.
- Use the host-provided
pi-aiandpi-coding-agentcore packages instead of installing private runtime copies, including for local and out-of-store development checkouts. - Fix cached input tokens being counted twice.
Contributors
- @IfkumRfnl — fixed cached input token accounting.
0.4.3 - 2026-08-02
- Allow pi to start when model discovery is unavailable. The provider now caches the last successfully fetched model catalog so previously discovered Command Code models remain selectable offline; a first offline start without a cache keeps Command Code unavailable until
/reloadsucceeds.
Contributors
- @k3-2o — reported that the model-list fetch blocked pi startup when offline.
0.4.2 - 2026-07-05
- Fix Oh My Pi extension validation by avoiding the missing
calculateCostexport from OMP's legacypi-aishim. - Add a regression test that locks the local Command Code cost calculation to pi-ai's upstream
calculateCostbehavior.
Contributors
- @CoderTCY — reported the Oh My Pi installation failure.
0.4.1 - 2026-06-16
- Use the explicit
$COMMANDCODE_API_KEYprovider registration syntax expected by newer pi versions, removing the startup deprecation warning while keeping legacy placeholder compatibility. - Refresh development dependency lockfile entries to resolve npm audit findings for
tsx/esbuildandprotobufjs.
Contributors
- @plumj-am — fixed the pi provider
apiKeydeprecation warning. - @cad0p — reported retry/deprecation-related issues that helped validate the current behavior.
- @bl4zee1g — reported provider availability concerns that prompted additional local/live validation.
0.4.0 - 2026-06-02
- Add retry mechanism for transient HTTP errors (429, 5xx) and stream-level errors, configurable via pi
settings.jsonretry.providerfields (timeoutMs,maxRetries,maxRetryDelayMs). Supports exponential backoff with jitter andRetry-Afterheader.
0.3.1 - 2026-05-29
- Bump CLI version header to
0.29.0for Command Code API parity. - Harden PR security pipeline CI configuration.
0.3.0 - 2026-05-28
- Add OMP (Oh My Pi) provider compatibility: support
~/.omp/agent/auth.jsonauth path, handle OMP's env-var-name-as-apiKey quirk, convert OMP system prompt arrays to text. - Close open thinking blocks before starting text or tool output to prevent event ordering issues when upstream omits
reasoning-end. - Correct DeepSeek V4 Pro discount as permanent (no expiry), not time-limited.
- Correct DeepSeek V4 Flash cache-read rate to $0.028/M and add xiaomi/mimo models to pricing table.
- Upgrade pi dependencies from
@mariozechner0.72.0 to@earendil-works0.75.5. - Move
pi-coding-agentto optional peerDependencies.
0.2.0 - 2026-05-27
- Stream
reasoning-deltaevents incrementally instead of buffering the full thinking block untilreasoning-end. Emitsthinking_start,thinking_delta, andthinking_endevents as they arrive so the UI can show reasoning in real time. - Close open text blocks on
reasoning-startandreasoning-deltaso thinking and text never overlap in the output. - Add live display pricing (
MODEL_COSTS) for known Command Code models. Cost falls back to zero for models not yet in the price table until the Provider API exposes pricing directly. - Fetch models from the Command Code Provider API at startup (inherited from upstream 0.1.1) and overlay the static cost table.
0.1.1 - 2026-05-26
- Align Command Code generate requests with CLI
0.27.2headers and payload shape. - Support official Command Code CLI auth files using the
command-codecredential key. - Handle
reasoning-startand ignore streamedtool-resultevents. - Cap generated
max_tokensby the selected model and the Command Code output limit.
0.1.0 - 2026-05-05
- Initial public release.