@oh-my-pi/pi-agent-core
Fixed
- Fixed Codex-compatible V2 remote compaction with an explicit
v2Endpointby sending the required feature-negotiation header (#8524).
@oh-my-pi/pi-ai
Fixed
- Fixed
omp usage invalidateto discard stale OAuth and API-key usage snapshots, then force a cache-bypassing, per-provider serialized refresh with a broker request budget sized for the full unfiltered account batch, so upgraded subscriptions do not silently retain pre-change quota data. - Fixed quota reporting and Cookie capture guidance for China (Beijing) Alibaba Token Plan credentials (#8509).
@oh-my-pi/pi-catalog
Added
- Added wire constants for Codex V2 remote-compaction feature negotiation.
Fixed
- Fixed raw
COPILOT_GITHUB_TOKENcredentials skipping plan-specific endpoint discovery, which routed GitHub Copilot Business model requests to the personal endpoint and returned HTTP 403. The GitHub Copilot model cache is now scoped per credential, so switching the token no longer serves another account's stale endpoint for the cache TTL (#8507). - Fixed the OpenRouter
deepseek/deepseek-v4-pro-0813route silently clamping the reasoning effort tohigh: the dated SKU advertises (and accepts) the wire-exactlow/high/maxladder, so its effort override no longer collapses tohigh-only. The undateddeepseek/deepseek-v4-proOpenRouter route stayshigh-only. (#8517)
@oh-my-pi/pi-coding-agent
Changed
- Replaced the MuPDF-WASM PDF document backend with
pdf-inspectorthrough@oh-my-pi/pi-natives, preserving cached text conversion and PDF line selectors while reporting pages that need OCR. - Restored
read <pdf>:andread <pdf>:<image>.pngpage rendering by automatically capturing PDF pages through the headless Chromium browser tool.
Fixed
- Fixed Streamable HTTP MCP sessions being invalidated by opening the optional GET SSE stream before sending
notifications/initialized, which prevented Figma Dev Mode MCP from connecting (#8514). - Fixed the
/hotkeystable describing Ctrl+D (app.exit) as "Exit (when editor is empty)" when it actually exits unconditionally and saves the current prompt as a resumable draft (#8530). - Fixed Ctrl+G external editors failing to launch on Windows because Bun re-quoted the embedded
cmd.exe /ccommand line (#8544).
@oh-my-pi/pi-mnemopi
Fixed
- Fixed
recall()silently droppingscope='global'rows whenever achannelIdfilter was active:buildWhere()appended a redundant hardchannel_id = ?clause on top of the(session_id = ? OR scope = 'global' OR channel_id = ?)visibility clause, so global rows whosechannel_iddidn't match (e.g. imported rows withchannel_id NULL) were excluded. Channel isolation is preserved by the visibility clause alone. This made imported/global episodic memory permanently unrecallable through callers that always pass a channel (such as the coding-agent memory backend). (#8525)
@oh-my-pi/pi-natives
Added
- Added the async
pdfToMarkdownnative API backed bypdf-inspector, with page numbering, page-count, OCR-needed-page, and encoding-issue metadata.
Changed
- Docker images (
Dockerfile,scripts/install-tests/*.dockerfile) build the native addon through the cargo/napi-rs backend (OMP_NATIVE_BUILD_BACKEND=cargo) instead of Bazel: a single fixed host target gains nothing from hermetic cross toolchains, and none of those images shipped bazelisk.OMP_NATIVE_CARGO_PROFILEpicks the profile for that path (images useci, local default stayslocal).
Fixed
- Fixed the root Cargo workspace failing to load when a stale directory exists under
crates/— e.g. a deleted crate whose directory survivedgit reset --hard.membersno longer globscrates/pi-*, so a directory without aCargo.tomlcan no longer break every cargo and Bazel build. - Fixed Docker build contexts shipping nested build output:
.dockerignorepatterns are anchored at the context root, so baretarget/anddist/matched neithergo-port/*/target(~1.4 GB) norpackages/*/dist(~600 MB). - Fixed
deviceCheckGenerateTokenaborting the whole process withSIGTRAPwhen called from a macOS session without GUI/graphic access (SSH, a launchdLaunchDaemon, a CI runner, a service account, a sandbox), which made everyopenai-codex/*OAuth model unusable for such accounts.-[DCDevice isSupported]synchronously opens an XPC connection to the per-user DeviceCheck metadata daemon, which exists only in an interactive GUI login session; without one the connection setup hits_xpc_api_misuseand traps before any completion handler runs, so the promise never rejects. The binding now checks the caller's security session for thesessionHasGraphicAccessattribute first and resolves{ supported: false, error: … }instead of touching DeviceCheck when it is absent (#8353).
@oh-my-pi/pi-tui
Fixed
- Fixed a terminal Device-Attributes reply leaking into the composer as literal text (e.g.
1;22;…;52c) when it arrived after the startup capability-probe sentinel FIFO drained, a race made observable by the added latency of an SSH/zmx PTY chain. DA1 replies (CSI ? … c) and split private-CSI responses are now consumed for the whole session lifetime, not only while a probe sentinel is outstanding (#8542).
What's Changed
- fix(catalog): discover Copilot endpoint for env tokens by @roboomp in #8510
- fix(ai): restore Beijing Token Plan quota reporting by @roboomp in #8513
- fix(mcp): initialize sessions before opening sse stream by @roboomp in #8515
- fix(catalog): grant low/high/max to OpenRouter deepseek-v4-pro-0813 by @roboomp in #8519
- fix(mnemopi): keep global rows recallable under channelId filter by @roboomp in #8526
- fix(agent): add Codex V2 compaction feature header by @roboomp in #8527
- docs: correct /hotkeys Ctrl+D copy to match save-draft-and-exit by @roboomp in #8531
- fix(pi-natives): guard DeviceCheck token generation on GUI session by @roboomp in #8533
- fix(tui): swallow late DA responses for the whole session by @roboomp in #8543
- fix(coding-agent): restore Windows external editor launch by @roboomp in #8546
Full Changelog: v17.3.3...v17.3.4