🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)
🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)

💾 Tools 🕛 kürzlich 35 Min Lesezeit
0

GitHub: v17.1.4

↗ Quelle (GitHub · github.com)
🗣️ Stimme:
📑 Inhaltsübersicht
🐙
$ git clone https://github.com/can1357/oh-my-pi.git

@oh-my-pi/pi-agent-core


Changed



  • Steering is now woken by an event instead of polled on a fixed interval while a tool batch runs. AgentLoopConfig.waitForSteeringMessages resolves when a steer is enqueued, so an interruption is observed as soon as it arrives rather than at the next tick, and idle batches stop burning wakeups. The interval timer remains for the IRC interrupt queue, which has no wake callback, and checks only IRC while the event watcher owns steering. Waits are raced against local abort, so a callback that does not observe its signal cannot hang batch teardown.


Fixed



  • Fixed a Cursor tool result being lost when a custom cursorOnToolResult transformer was still pending as the turn closed. The provider dispatches decoded messages without awaiting them, so a message_end from the same chunk could drain the buffer before the transformer resolved, dropping the result and leaving its toolCall block to be stripped as dangling on replay. The entry is now reserved synchronously and patched in place once the transformer resolves, preserving buffer order.

  • Fixed an async cursorOnToolResult transformer's rewrite being silently discarded when it resolved after the buffer drain. The reservation kept the call from dangling but the late patch mutated a detached entry, so the already-persisted message kept the pre-transform payload. The drain now awaits any transformer still in flight before persisting, matching the awaited exec-channel paths. A rejecting transformer is swallowed and the reserved payload stands in, so a failing hook cannot take the turn down or cost the result.

  • Fixed Cursor tool results being dropped for hosts that pass neither cursorExecHandlers nor cursorOnToolResult. Both are optional, but the Cursor provider resolves native todo calls server-side and synthesizes exec blocks regardless, marking both as resolved so no placeholder result is emitted for them. The result buffer callback was only installed when one of the options was present, so a bare SDK host discarded the provider's paired result and every rebuilt transcript stripped the interaction. It is now installed unconditionally.

  • Fixed an async cursorOnToolResult rewrite being lost when the provider errored mid-transform. The normal drain waits for a pending transformer, but the error path snapshotted the buffer without that await, so a transform still in flight patched an entry the catch path had already detached and the pre-transform payload was persisted. A provider error is exactly when a transform is most likely to be mid-flight.

  • Reduced oversized OpenAI native compaction requests by replacing only trailing tool-output bodies that exceed the model context window, while preserving calls, assistant history, and reasoning.


@oh-my-pi/pi-ai


Added



  • MiniMax Token Plan accounts now report quota in omp usage. GET /v1/token_plan/remains returns one bucket per plan quota, each carrying a rolling interval window and a weekly window, so minimax-code surfaces real remaining percentages instead of an empty report. A model the plan does not include comes back looking like an untouched quota; those buckets are dropped from the report and named in its metadata. The mainland id minimax-code-cn is untouched.

  • OAuth logins now stamp authorizedAt (epoch ms of the interactive login) on the stored credential, and every refresh-persist path preserves it. Anthropic expires the whole OAuth grant family ~30 days after authorization regardless of refresh-token rotation (observed as invalid_grant: "Refresh token expired" on the latest rotated token, exactly 30 days after login, across four production accounts), so the login anchor is what makes re-login deadlines computable. Exported ANTHROPIC_OAUTH_GRANT_TTL_MS alongside the anthropic OAuth flow.

  • Added GET /v1/credentials/disabled to the auth broker and AuthBrokerClient.listDisabledCredentials: disabled-credential tombstones (DisabledCredentialSummary — identity, verbatim disable cause, disable timestamp; never token material) so auto-disabled accounts stay visible to clients instead of silently vanishing from the snapshot. AuthStorage.listDisabledCredentials serves the same data locally from SQLite; clients of brokers predating the endpoint get an empty list (404 mapped, no error).

  • Added AuthStorage.revalidateCredentials() and the optional AuthCredentialStore.refreshSnapshot hook: remote broker stores re-fetch GET /v1/snapshot on demand so callers pairing live per-credential data with stored identities (omp usage) never render against the up-to-an-hour-stale disk-cached snapshot; local SQLite stores are always current and only reload.

  • Added an optional per-request codexSseMaxAttempts stream option to bound Codex SSE pre-response retries while preserving the six-attempt default when omitted.

  • Fixed Cursor requests failing with Connect error internal: Unable to parse image: ... whenever the session history contained an image: rootPromptMessagesJson image parts now embed a data:<mime>;base64, URI instead of bare base64, matching the convention used by the OpenAI-completions provider ( by by ).

  • Fixed Bedrock Converse dropping captured Claude thinking signatures when replaying application-inference-profile ARN models, restoring adaptive-thinking multi-turn conversations ().

  • Fixed statusless provider capacity errors such as no_capacity and high-demand responses being treated as terminal instead of retryable. ()

  • Fixed Claude scoped weekly limits (e.g. Claude 7 Day (Fable)) with is_active: false being dropped by the /usage parser, rendering as not reported in omp usage despite carrying real utilization. Live payloads mark only the currently binding limit active — an account pinned at a 100% Fable cap reports its 77% shared weekly row as inactive too — so is_active signals severity ranking, not bucket existence, and is now ignored. Exhaustion gating is unchanged: tier rows still hard-block only at confirmed 100% with a future reset.

  • Fixed a TDZ crash (Cannot access 'claudeCodeVersion' before initialization) when providers/anthropic was the first module loaded: providers/anthropicstreamregistryregistry/oauth/anthropic circled back into the still-initializing provider module. The Claude Code fingerprint constants now live in the leaf module providers/claude-code-fingerprint (star re-exported from providers/anthropic, so import paths are unchanged).


@oh-my-pi/pi-catalog


Added



  • Added Claude Opus 5 model entries for Amazon Bedrock: anthropic.claude-opus-5 plus its us., eu., au., and global. regional/geo IDs.


Fixed



  • Fixed alibaba-token-plan locking out China (Beijing) 百炼 Token Plan subscribers: the provider hardcoded the international Singapore endpoint, so Beijing-issued sk-sp- keys got 401 invalid_api_key. The wire credential now carries an optional region base URL, and model discovery targets the credential's region ().

  • Fixed GitHub Copilot Claude models with no bundled catalog reference (e.g. a freshly served claude-opus-5) discovering with reasoning: false/thinking: null and no effort dial, and disappearing along with their synthesized -1m sibling on offline reads: reference-less Copilot models on the anthropic-messages proxy now derive the adaptive reasoning ladder from the model id, and the cache restores their compile-time COPILOT_API_HEADERS by value instead of dropping them as unrestorable (). The shared fallback only claims payloads that hold a single path: one carrying a second absolute-path anchor after unescaped whitespace (/tmp/a.png /tmp/b shot.png — dragging two files at once when either name has spaces) now pastes as text on both routes instead of being fused into one unresolvable path, which on the clipboard route previously attached nothing and swallowed the text behind an "Image not found" status.

  • Fixed transient reasonless request aborts that arrived after a tool call finished streaming ending the turn instead of entering recovery, which left edit calls and task subagents dead until the user manually resumed. The session now continues from the synthetic unexecuted tool result under the normal retry policy without replaying completed side effects ().

  • Fixed @czottmann/pi-automode failing legacy extension validation because the pi-ai compatibility shim omitted clampThinkingLevel, then failing every classified tool call because ctx.modelRegistry omitted getApiKeyAndHeaders. ().

  • Fixed the advisor silently swallowing its own quarantined turns: when an advisor called an ungranted tool (e.g. bash) its whole turn was discarded before dispatch, so its advice never reached the primary agent and the failure surfaced only in advisor diagnostics — every other non-recovering failure branch notifies the host UI, but quarantine re-primed silently with no bound. A persistently-quarantining advisor now surfaces a notifyFailure warning in the main UI (deduped, cleared on the next successful turn) and stops the unbounded silent re-prime loop ().

  • Fixed Parakeet speech-to-text failing to load sherpa-onnx-node from Windows source workspaces when Bun installed the wrapper under packages/coding-agent/node_modules but hoisted its native platform package to the repository root ().

  • Todo progress now stays in sync when using Cursor models: the Cursor exec bridge mirrors the provider's server-owned todo list into session state, refreshes the interactive todo panel, and persists each snapshot to the session branch so the list survives reloads, rewinds, compaction, and session switches. Existing phase grouping is preserved for tasks the session already knows. Previously the list was in-memory only and the panel stayed stale, because Cursor resolves the todo tool remotely and never emits the local todo tool result that both paths key off.

  • Cursor todo calls the server refuses or rejects no longer leave the todo card spinning: the bridge settles every completed native todo call, not just the ones carrying a list. Local phases and the session branch are left untouched in that case, and the settling result deliberately carries no details.phases — echoing the current list back would let a call that changed nothing overwrite live panel state.

  • Fixed the todo renderer emitting mirrored label text verbatim. A Cursor snapshot carries provider-authored task content, phase names, and summary text, and the renderer interpolated all of it straight into terminal output, so a label holding ANSI/C0 sequences rewrote the terminal every time the list rendered or replayed. Every display path now goes through one sanitize-and-flatten-tabs helper — task labels, blocker notes, phase headers, the zero-task fallback, and the streaming call preview — while the raw values stay untouched as the lookup keys they are.

  • Fixed a server-resolved Cursor todo card animating for the rest of the session when the server packed the call's start and completion into one HTTP/2 chunk. The bridge's tool_execution_end is a synchronous callback fired mid-parse, while the streamed toolcall_start that creates the visible card is queued on the event stream and delivered a microtask later — the interactive controller handled the completion first, found no pending card, and dropped it, leaving the card that appeared moments later with nothing to settle it. An early completion is now held and attached the moment the streamed block creates its card, settling it without repeating the panel refresh or failure warning that already fired on first arrival. Card creation from cumulative message_update frames is also guarded by the turn's timeline map, so a call settled mid-stream can no longer be recreated as a second, permanently pending card by the next update re-listing the same block.

  • Cursor todo failures no longer render unsanitized provider text into the status line. The bridge forwards the server's error string verbatim, so an ANSI escape or other C0/C1 control reached the terminal intact and could repaint outside the row, tabs punched holes in the single-line warning, and a long message overflowed it. The detail is now stripped of control sequences, collapsed, and truncated at the render boundary; the persisted result keeps the full-fidelity error for the transcript.

  • Fixed disabling the Advisor from /settings updating the persisted setting without stopping the live Advisor runtime until the session restarted: SelectorController.handleSettingChange had no case for advisor.enabled, unlike other session-managed toggles (autoCompact, steeringMode, ...), so the change never reached session.setAdvisorEnabled.

  • Fixed bash.patterns deny/prompt rules matching only against the whole command string, so a dangerous command in any non-leading position of a compound line (e.g. cd /tmp && rm -rf /tmp/x, sleep 1 & rm -rf /tmp/x) silently bypassed a deny rule and, under approvalMode: yolo, executed with no prompt. deny/prompt rules now also match each command segment, split with a shell-aware tokenizer that honors every command boundary (&&, ||, ;, |, single &, subshells, newlines) and quoting; allow rules still require the whole command to match and never apply to compound lines ().

  • Fixed legacy pi extensions failing extension validation when importing estimateTokens from @earendil-works/pi-coding-agent (aliased to the legacy shim). Legacy pi re-exported estimateTokens from its coding-agent package root; in omp it lives in @oh-my-pi/pi-agent-core/compaction and the coding-agent barrel does not forward it, so the shim's export * from "../index" left it off the surface and a named import threw Bun's static "Export named 'estimateTokens' not found" error (e.g. omp plugin install pi-blackhole). The shim now re-exports it ().

  • Fixed omp auth-gateway serve advertising only the compiled-in bundled catalog, so every model omp reaches through provider discovery (e.g. ids released after the build date) was invisible on /v1/models and returned Unknown model through /v1/chat/completions even though the same broker credential answered it in the TUI. The gateway now sources its catalog from ModelRegistry — the same component the TUI/CLI use (bundled + cached + discovered) — keeping the credential scoping and qualified/bare-id registration, and rebuilds it periodically so a long-lived serve tracks newly discovered models without a restart ( by ).

  • Fixed debug (js-debug/pwa-node) stateful commands misrouting after launch: a lazily-attached [worker N] child session (or the threadless root launcher) would steal the active-session focus from the stopped script child, so threads listed only the worker thread, post-launch breakpoints read back as pending/unbound, and there was no way to step/continue/evaluate the script's thread. Focus now follows stops rather than registrations, and threads aggregates every live thread across the session tree ().

  • Fixed direct binary updates trusting an executable that only reported the expected version. The updater now selects one exact asset from the tagged GitHub release, requires its published SHA-256 digest and size, and verifies both while streaming the download before installation. GitHub release metadata requests use GITHUB_TOKEN or GH_TOKEN when available, allowing users behind an exhausted anonymous rate limit to authenticate.

  • Documented that the non-PTY shell's bundled jq command is backed by jaq, including its null-indexing divergence and portable filter syntax ().

  • Fixed advisor retry amplification after transient Codex SSE socket closures by limiting each advisor-level try to one provider transport attempt.

  • Fixed omp update aborting with npm error EEXIST on standalone binary installs whose directory coincides with the global npm/bun bin dir (for example npm prefix -g set to ~/.local, which the installer also targets). The install-target resolver classified the binary as npm/bun-managed from directory containment alone, so npm install -g tried to replace a regular file its symlink step would clobber; it now treats a plain executable (not a symlink) in a package-manager bin dir as the standalone binary and self-updates it in place ().

  • Fixed Codex subscription and proxy models being sent the unsupported native { type: "computer" } declaration based only on model ID. They now receive the callable function-tool fallback, including after switching from native OpenAI Responses history, while explicit endpoint metadata can still opt into the GA contract. Explicit native Codex replays preserve computer_call/computer_call_output pairing, normal CLI startup keeps the native desktop worker graph lazy, and packaged workers re-enter the single CLI host without the computer module claiming non-computer selectors.

  • Fixed isolated JavaScript eval subprocesses letting the global fatal-rejection handler race the cell rejection interceptor. A floated promise rejection is now folded into the owning cell result without killing its reusable worker process.

  • Fixed /context counting hidden, explicit-only skills (hide: true / disable-model-invocation) in the Skills category and subtracting that inflated estimate from the first system-prompt block, which reported System prompt: 0 tokens and inflated Skills usage. Accounting now counts only the skills actually rendered into the system prompt — mirroring buildSystemPrompt's filter, so hidden skills and all skills when the read tool is unavailable contribute zero ().

  • Fixed Escape waiting for an in-flight session_stop extension handler to exhaust its timeout; abort now cancels the active stop pass without reporting a false timeout or applying stale continuation context ().

  • Fixed Ctrl+C and fatal shutdown entering an ExtensionExitError rejection loop while an extension or hook was still loading ( by by ), dropping every row above the retained tail behind an "older lines hidden" marker. The bound now keys on paint intent — bulk replacements (initial resume, /resume, handoff, resize geometry rebuilds) stay bounded, while a user-driven resetDisplay() (Ctrl+O expand, thinking/setting toggles, display reset) replays the whole transcript ().

  • Corrected Windows shell resolution errors to identify the active global, project, overlay, or runtime source for shellPath instead of directing every user to the retired settings.json file ().

  • Fixed an invalid configured shellPath being silently masked whenever an earlier caller had already resolved a shell in the same process; the guidance error now surfaces regardless of cache state.


What's Changed



  • fix(coding-agent): source auth-gateway catalog from ModelRegistry by

  • fix(catalog): retry empty model discovery by

  • fix(advisor): propagate advisor provider session id via metadata by

  • fix(natives): stabilize forwarded PulseAudio capture and playback by

  • fix(utils): contain ptree timeout rejections by

  • fix(secrets): avoid hashline placeholder collisions by

  • fix(coding-agent): restore legacy pi automode compatibility by

  • feat(ai): report MiniMax Token Plan quota in usage by

  • fix(prewalk): apply same-model effort downgrades instead of skipping by

  • fix(advisor): notify the user when a quarantined turn drops advice by

  • fix(coding-agent): route js-debug commands to the stopped script child by

  • fix(catalog): keep reference-less Copilot Claude models reasoning-capable and cache-stable by

  • fix(ai): break anthropic oauth↔providers circular import (claudeCodeVersion TDZ) by

  • fix(session): retry reasonless tool-call aborts by

  • fix(providers): add China (Beijing) region for alibaba-token-plan by

  • fix(stt): resolve Windows workspace sherpa addon by

  • fix(coding-agent): match bash deny/prompt patterns per command segment by

  • fix(cli): defer out-of-scope default role so extension models resolve by

  • fix(coding-agent): stop the live advisor runtime when /settings disables it by

  • fix(tui): keep full-width overlays above inline images by

  • fix(coding-agent): resume agent after /tree ask re-answer by

  • fix(coding-agent): bypass extension guards during shutdown by

  • fix(session): cancel in-flight session_stop handlers by

  • fix(coding-agent): count only rendered skills in /context accounting by

  • fix(cursor): synthesize missing exec MCP tool calls by

  • fix(ai): retry statusless provider capacity errors by

  • fix(plugins): restore pi-sprite legacy compatibility by

  • fix(ai):strip output-only statuses from Responses replay by

  • fix(ai): repair Alibaba Token Plan usage reporting by

  • fix(coding-agent): self-update binary install when its dir overlaps npm/bun bin dir by

  • fix(computer-use): correct Codex subscription routing by

  • fix(advisor): bound Codex SSE retries by

  • fix(ai): stop one Codex window's limit from blocking the others by

  • feat(agent): wake steering on an event instead of polling for it by

  • fix(tui): stop Ctrl+O expand truncating the session on ConPTY by

  • fix(omp): fit native compaction after large tool output by

  • fix(update): verify GitHub release asset and digest by

  • fix(tui): make provider error blocks expandable via ctrl+o by

  • fix(cursor): embed data URI for images in root-prompt history by

  • fix(plan-mode): prefer newest draft during review by

  • fix(utils): correct shell path config guidance by

  • fix(tui): attach drag-dropped image paths with unescaped spaces by

  • fix(coding-agent): re-export estimateTokens from legacy pi shim by

  • fix(cli): redact credential settings in config list by

  • fix(ai): disable adaptive-only thinking on disableReasoning and forced tool choice by

  • fix(natives): settle macOS input before capture by

  • fix(coding-agent): preserve Claude computer coordinates by

  • docs: reconcile omp:// task/eval docs with 17.1.3 runtime by

  • feat(catalog): add Claude Opus 5 entries for Amazon Bedrock by

  • fix(catalog): downgrade forced tool choice for thinking-locked Kimi Code aliases by

  • fix(natives): preserve newer cache versions by

  • fix(coding-agent): handle vibe session commands safely by

  • fix(ai): preserved Bedrock ARN thinking signatures by

  • fix(cursor): sync native todo list from server-resolved tool calls by

  • docs(bash): document bundled jaq divergence by


New Contributors














Full Changelog: v17.1.3...v17.1.4

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf github.com.
↗ Original-Artikel auf github.com lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
GPT-6 Astra Release Today? OpenAI’s Next Major AI Model Is Almost Here
1 Quelle
Apple accuses OpenAI of destroying evidence as trade-secrets fight intensifies
1 Quelle
Major AI platforms go down in unprecedented simultaneous outage