🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)
🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)

💾 Tools 🕛 vor 22 Tagen 27 Min Lesezeit
0

GitHub Release: can1357/oh-my-pi v17.3.8 (19.08.2026)

↗ Quelle (GitHub · github.com)
🗣️ Stimme:
📑 Inhaltsübersicht
🐙
$ git clone https://github.com/can1357/oh-my-pi.git
).
  • Hardened compaction summarization against prompt injection: conversation history and previous summaries are now treated as untrusted, and embedded <conversation>/<previous-summary> boundary tags are neutralized before prompt assembly ().

  • Compaction summarization input is now bounded to the summary model's context (windowed fold for oversized spans) and deterministic context-overflow 400s are no longer retried up to the full retry budget; artifact ids containing 503 no longer misclassify hard 400s as transient.

  • Fixed remote compaction mirroring the ).


  • @oh-my-pi/pi-ai


    Changed



    • Fixed Gemini thought summaries occasionally leaking a raw ```thinking / ``````thinking fence delimiter into the reasoning block, so it no longer shows up as fence spam in the thinking display or persisted transcripts ().

    • Fixed Anthropic-compatible endpoints with strict prompt validation (e.g. Z.AI GLM api.z.ai/api/anthropic, which rejects the whole request with 400 code 1213 "The prompt parameter was not received normally") failing sessions once a tool returned empty output on a vision-capable model: empty successful tool_result blocks now encode as content: "" instead of content: [], which both the official API and strict compatible endpoints accept.

    • Fixed retry.usageReservePct (Reserve Margin) ignoring Claude Fable/Mythos weekly tier usage until it hit 100%, so a Fable model kept serving turns past the configured reserve; reserve health now honors the mapped tier row while credential-wide hard blocks still require confirmed exhaustion ().

    • Fixed opencode-go (Console Go) rejecting Responses turns with 400 No tool output found for tool call … (naming a random call of the batch on each retry) when a model streamed a trailing text/thinking block after its tool calls: buildResponsesInput emitted that block as an assistant message item wedged between the function_call batch and its function_call_output items. Such interleaved messages are now hoisted ahead of their call batch (canonical message(s) → calls → outputs), which the strict gateway validator accepts; content is unchanged ().

    • Fixed OAuth login (Codex localhost:1455, and any localhost callback flow) failing on hosts with IPv6 disabled at the kernel (ipv6.disable=1). The ::1 companion listener added in ), which the in-use check misread as a real collision — tearing down the healthy IPv4 listener and surfacing a bogus "port 1455 is in use" error. The dual-bind path now detects the missing IPv6 loopback up front and serves IPv4 alone ().

    • Regenerated the Cursor agent protobufs to model hosted WebFetch permission queries (interaction_query / interaction_response field 9) and the matching ToolCall variant (field 37).


    Fixed



    • Fixed a physically corrupt models.db (SQLITE_CORRUPT* / SQLITE_NOTADB, "database disk image is malformed") permanently disabling the model cache. The shared read/write paths swallowed unrecoverable SQLite corruption as a best-effort miss and cached the broken handle, so a successful live catalog could never overwrite the corrupt cache and every later process repeated the miss — a runtime provider extension with no bundled catalog was left with only its bootstrap model. Corruption now self-heals: the cache closes the handle, quarantines models.db(+-wal/-shm) aside, recreates a fresh database, and retries the operation once; SQLITE_BUSY, permission, and unrelated errors keep their existing best-effort paths ().

    • Cloud Code Assist Gemini 3.6/3.7 Flash no longer maps user minimal to wire thinkingLevel: MINIMAL when that effort is aliased onto the -low SKU. The request now sends LOW, which those SKUs accept.

    • Fixed SuperGrok (xai-oauth) Grok 4.6 hiding the thinking-level picker: the Responses effort-capable allowlist now includes grok-4.6, so /model can select the documented low/medium/high/xhigh ladder (max is rejected by api.x.ai).

    • Marked CoreWeave runtime discovery as authoritative so stale bundled model ids that the endpoint no longer serves stop appearing as selectable models.

    • ChatGPT Codex discovery that advertises only worker -wm SKUs now also registers the plain model route, so a configured openai-codex/<model> keeps resolving instead of fuzzy-falling-back to the -wm SKU some accounts reject.

    • Fixed opencode-go/muse-spark-1.2 (and muse-spark-1.2-contributor) failing every tool-call turn with OpenAI completions stream closed before a finish_reason was received. The Go gateway serves these ids only at /zen/go/v1/responses, but the /zen/go/v1/models discovery omits the provider.npm hint, so the resolver fell through to openai-completions; both ids are now pinned to openai-responses like deepseek-v4-flash ().

    • Fixed Cursor Grok 4.5/4.6 discovery classifying the versioned ids as non-reasoning: GetUsableModels ships no thinkingDetails and the bundled references read reasoning: false, so the picker hid the effort ladder. Discovery now marks cursor-grok-<version> ids as reasoning models (the non-reasoning grok-code-* ids stay out) ().


    @oh-my-pi/pi-coding-agent


    Added



    • Added providers.cacheRetention setting (/settings → Providers → Protocol) to control prompt-cache retention per request: auto keeps the provider default (Anthropic: 5m entries with idle keep-alive refreshes), short forces 5m, long restores 1h TTLs where supported and disables the keep-alive refresh loop, none disables prompt caching.


    Changed



    • The read tool now materializes a local text file once per invocation instead of once per consumer. A ranged read of a file within the snapshot cap previously cost four opens and three UTF-8 decodes — an 8KiB binary sniff, a streaming scan for the rendered window, a whole-file read for bracket context, and another whole-file read to hash the snapshot — with two of those readers separately normalizing line endings; whole-file reads under the structural summarizer paid a fifth read. Byte counts and truncation boundaries are now measured on the buffered bytes, so they stay exact for content that is not valid UTF-8. Files above the snapshot cap keep streaming, since nothing on that path wants the whole file. Raw reads, which skip the tree-sitter parse that documented the old cost, no longer pay for it.

    • Documented that bash.patterns gates the bash tool only and does not cover a shell that eval can spawn via subprocess, and that closing that path needs a tools.approval.eval policy — noted in docs/bash-tool-runtime.md, docs/approval-mode.md, and docs/settings.md ().

    • Fixed a submitted /skill:<name> command staying invisible in the transcript until its awaited preflight (memory recall, before_agent_start hooks, auto-thinking classification, pre-prompt compaction) finished, so a slow step such as a Hindsight auto-recall timeout made the command look unaccepted. Idle skill submissions now paint an optimistic row immediately — like a normal prompt — and reconcile it in place when the canonical message_start lands ().

    • Fixed omp commit split-commit failing with corrupt binary patch when a split commit contains a binary file. parseFileDiffs split the captured diff on "\ndiff --git ", consuming the \n that terminates each block, and patch.join stripped trailing newlines — both dropped the blank line that terminates a GIT binary patch block, so the rebuilt patch was rejected by git apply --binary. Both trailing and mid-diff binary blocks now survive the parse/rebuild round-trip byte-exact ().

    • Fixed Claude Code marketplace plugins ignoring the enabledPlugins switch in ~/.claude/settings.json and .claude/settings(.local).json: a plugin turned off for a project no longer loads there, and a local-scope install enabled for a project loads even when its recorded projectPath is a different directory

    • Fixed revived subagents (warm lifecycle reviver and cold persisted reviver) rebuilding the session without initializing the extension runtime, leaving every runtime action throwing ExtensionRuntimeNotInitializedError. An extension with a tool_call handler that touched a runtime action (e.g. appendEntry) then tripped the fail-closed gate in emitToolCall and blocked every tool — including the hidden yield — so the revived agent could neither finish nor exit and looped until killed. Both revivers now call the shared initializeExtensions helper, restoring runtime actions, onError, and the session_start event ().

    • Fixed a mid-run compaction being misread as a phantom overflow: after a compaction rebased the in-flight context snapshot, getContextBreakdown used message position (anchorIndex >= cutoffCount) as a freshness proxy, so an in-flight provider response whose request predated the compaction out-ranked the rebased estimate and reported the pre-compaction token count (~2.6x the real one). This tripped the "Compaction freed too little context to make progress" guard and drove the frame-rescue path on a byte-identical tokensBefore. Assistant context snapshots now carry a monotonic compaction epoch, and a post-cutoff anchor whose epoch predates the last compaction is no longer trusted over the rebased estimate ().

    • Fixed the TinyFish web search provider ignoring the lang:/language: query directive, so every request fell back to the API's US/English geolocation. parsed.lang now maps onto TinyFish's location/language parameters (e.g. lang:it-itlocation=IT&language=it), matching the DuckDuckGo, Perplexity, and SearXNG providers ().

    • Fixed task and eval subagents discovering newly added agent definitions while resolving their role aliases from stale startup settings. Subagent preflight now atomically reloads persisted settings before agent discovery while preserving live runtime overrides.

    • Fixed images returned by tools mounted under xd:// rendering only as file links instead of inline terminal graphics.

    • Resume Cursor idle-stall turns after completed MCP/todo tool results. The watchdog already closes the Connect stream, so unmarked blocks no longer need the exec-resolved marker to continue.

    • Fixed the Web Search Provider Order settings summary showing providers excluded from web search ( by )

    • Fixed the clipboard image-paste keybind attaching Finder's generated file icon instead of the copied image on macOS. Current Finder Cmd+C pasteboards advertise both a public.file-url and a generated 1024x1024 icon bitmap, so arboard::get_image() succeeded with the icon and InputController.handleImagePaste attached it before the file-URL branch was ever reached. The handler now probes readMacFileUrlsFromClipboard() before the bitmap representation, so an image file URL wins over the co-advertised icon; pure bitmap pasteboards (screenshots, browser copies) and non-image file URLs still fall through to the image/text paths ().

    • Fixed OpenCode MCP servers 401ing when config used OpenCode's {env:VAR}/{file:path} substitution (e.g. Bearer {env:MCP_KEY} headers); the OpenCode loader now expands those tokens the way OpenCode does instead of only ${VAR} ().

    • Fixed worker subprocesses (memory embeddings, tiny-model titles, TTS/STT, JS eval, browser relay, LSP mux, daemon broker) running with their cwd pinned to the CLI install directory. They share the agent's foreground process group, and terminal cwd heuristics such as kitty's new_tab_with_cwd pick the newest process in that group, so new terminal tabs opened in ~/.bun/install/global/node_modules/@oh-my-pi/pi-coding-agent/dist while any worker was alive. Workers now spawn with the absolute host entry and inherit the agent's cwd.

    • Preserved MCP ImageContent tool-result blocks so vision-capable models and the TUI can inspect returned images instead of receiving only a text placeholder ().

    • Fixed high CPU during multi-subagent / workflowz / orchestrate sessions: each live tool block (streaming args, a running partial tool, or a task subagent) armed its own 80ms spinner setInterval driving requestComponentRender, so N concurrent live blocks created N unsynchronized repaint timers that kept the render scheduler awake near-continuously. The per-block timers are now consolidated into a single shared spinner ticker that repaints every live block in one coalesced frame per glyph step, independent of block count ()

    • Added .css to the built-in Biome server fileTypes so CSS files route through Biome's linter/asserter by default instead of requiring a full per-project fileTypes override. ( by ).

    • Fixed PlanYolo plan approval dropping all MCP tools: the post-handoff tool restore now accounts for MCP discovery that completed while planning instead of restoring a pre-discovery snapshot.

    • Fixed parallel web_search calls hanging forever past the 60s timeout when the shared headless-browser daemon or page died mid-setup; browser fallback setup and teardown are now abort-protected ().

    • Fixed terminals that deliver Shift+Enter as a bare LF (or the legacy CSI 13;2~ form) getting a plain switch instead of summarize-and-switch in the /tree selector ().

    • Fixed /mcp reauth refusing to run the OAuth flow for HTTP MCP servers that allow unauthenticated initialize but require auth for tools/call; endpoint discovery now runs against the server URL before giving up ().


    @oh-my-pi/pi-tui


    Fixed



    • Fixed images rendering as the [Image: …] text card on SIXEL terminals that expose no identifying environment variable (foot, xterm, contour): the graphics probe no longer requires Windows Terminal, and no longer reads an XTSMGRAPHICS success reply as a failure.

    • Fixed the multiline editor ignoring a tui.input.submit remap onto Ctrl+Enter: the hardcoded Ctrl/Shift+Enter → newline fallbacks now yield to an explicit submit binding, so Ctrl+Enter can be used to submit ( in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in made their first contribution in

    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
    1 Quelle
    Hackers Just Poisoned the Rust Supply Chain | Threat Wire
    1 Quelle
    Hackers Found a Way Into Humanoid Robots | Threat Wire
    1 Quelle
    Bits und so #1021 (Passwort für Laufwerk)