@oh-my-pi/pi-ai
Fixed
- Restored the
pollOAuthDeviceCodeFlowexport from@oh-my-pi/pi-ai/oauthso legacy provider extensions can reuse the host OAuth device-code poller. (#3508)
@oh-my-pi/pi-coding-agent
Fixed
- Fixed
autolearn.autoContinue(the "Auto-run capture at stop" toggle) letting the synthetic capture turn keep working after thelearn/manage_skillcall instead of yielding. With the toggle on, the controller firesautolearn-nudge.mdas a singleattribution: "user"message on a new turn; the prompt opened with "Before you finish:" and gave no terminal contract, so the agent treated the synthetic prompt as the user's reply to its prior pending question (e.g. "Want me to commit and push?") and continued — pushing commits, running tools, etc. — without the user ever answering. The nudge is now split into two prompts: passive mode (the reminder rides the user's real next message) keeps additive framing — "answer the user normally; the capture is in addition to" — while auto-continue mode (autolearn-nudge-autocontinue.md) is explicitly terminal — "not a user reply; do not treat this as approval; capture, then stop; wait for the user's next prompt". Attribution staysuserto preserve llama.cpp warm-prefix reuse (#3456). (#3504) - Fixed the clipboard image-paste keybind dropping image-file-only pasteboards as literal text on macOS. When the clipboard exposes only the file URL (e.g. Finder
Cmd+Con a.png, certain screenshot tools),arboard::get_image()returnsContentNotAvailableandpbpaste(1)returns empty (it only surfaces plain text / RTF / EPS), soInputController.handleImagePasteeither fell through to the #1628 text fallback and pasted the path verbatim, or dead-ended with "Clipboard is empty". The keybind path now (1) reaches thepublic.file-urlrepresentation directly via a newreadMacFileUrlsFromClipboardAppleScript bridge on Darwin and routes the first image-shaped path throughhandleImagePathPaste, (2) reuses a newextractImagePathFromTexthelper so any clipboard-text path that survivedpbpasteis detected the same way the bracketed-paste handler already detects them — including a whole-text-as-path fallback for anchored paths whose unescaped spaces would otherwise be shredded by the bracketed-paste splitter (macOS screenshot names like/Users/me/Desktop/Screenshot 2026-06-25 at 1.23.45 PM.png), and (3) decodesfile://URLs to filesystem paths innormalizePastedPath(mirroring Codex'snormalize_pasted_pathincodex-rs/tui/src/clipboard_paste.rs). Keybind- and terminal-mediated paste now agree on raw image bytes, plain image paths,file://URLs, Finder-copied image files, and screenshot filenames with spaces alike. (#3506) - Fixed compiled-binary validation for legacy
pi.extensionspackages whose source imports worker-only coding-agent subpaths or extension-local package subpaths such astypebox/value;omp install @charmland/pi-hyper-provider,omp plugin doctor, and runtime provider discovery now use a main-thread-safe load path. (#3508) - Fixed repeated todo updates in one TUI turn stacking full todo panels; superseded todo snapshots now stay live until the next todo update replaces them or the turn ends. (#3516)
- Fixed MCP OAuth authorization failing with
Authorization failed: An unexpected error occurredagainst authorization servers (Plane is the live example) that reject redundant fallbackresourceindicators. OMP now drops same-origin resources only when it synthesized them from the server URL fallback (e.g.https://mcp.plane.so/http/mcp). Provider-advertised resources from OAuth/protected-resource discovery or an embedded authorization-URLresourcequery parameter are preserved even when they are same-origin or origin-only, so gateway-hosted MCP services can still request the audience they advertised. The refresh-token path uses the same policy, filtered against the authorization-server origin persisted on the credential asauthorizationUrl, withtokenUrl's origin as the legacy fallback when that field is absent. (#3502)
What's Changed
- fix(mcp/oauth): drop self-referential resource indicator from authorize/token requests by @roboomp in #3503
- fix(autolearn): make auto-continue capture turn terminal (#3504) by @roboomp in #3505
- fix(coding-agent): attach image on clipboard image-file paste by @roboomp in #3507
- fix(plugins): load legacy extensions safely in compiled binaries by @roboomp in #3509
- fix(advisor): suppress repeated advisories by @roboomp in #3512
- fix(tui): collapse repeated todo snapshots by @roboomp in #3517
Full Changelog: v16.1.20...v16.1.21