🐙
$ git clone https://github.com/can1357/oh-my-pi.git
@oh-my-pi/pi-ai
Fixed
- Fixed account-scoped Codex cyber-policy denials bypassing sibling credential rotation; replay-safe requests now try every configured account before surfacing the error.
@oh-my-pi/pi-catalog
Fixed
- Fixed dynamically discovered
alibaba-token-plan/qwen3.8-maxmetadata so thinking controls and image input are available () - Fixed terminal-title spinner writes consuming CPU during WSL/ConPTY agent waits by using the same static working separator as native Windows ().
- Fixed Z.AI web search dropping sources and exposing raw JSON when MCP responses double-encode content text ().
@oh-my-pi/hashline
Breaking Changes
PUT N.=M @nameover a span now throws when@namewas never captured, instead of warning and deleting the range. Pasting a never-captured register over a span wrote nothing back, so a mistyped or hallucinated register name silently destroyed content. Gap pastes (PUT >N @name) keep the warned no-op behaviour from 17.2.11.
Added
applyEditsnow takes apathand uses the native tree-sitter parser to decide every boundary repair that depends on delimiter semantics. The authored edits are materialized first: if that result parses, it is returned untouched, so a}inside a regex literal, a string, or Markdown prose is never mistaken for a block closer. A closer-spare repair lands only when the repaired result is shown to parse — never on delimiter arithmetic alone — so an unrecognized language or an unprovable candidate leaves the edit exactly as authored. Wired through the patcher, recovery, section apply, and the edit tool's preview.- Auto-repair for replacement ranges that start one line early on a structural closer (the
}of the construct above): the closer is spared and the payload lands after it, gated on the same parse proof. - Warning for balanced payloads over ranges that end mid-block (deleting opener(s) whose closer(s) survive below), pointing at the block-op remedy (
PUT N*:). Raised only when the baseline parsed and the authored result does not, so it cannot fire on prose or an unknown language. - Warning when a
+body row is itself a valid hunk header (+CUT 5.=9). Such a row is literal content by definition and is inserted into the file as text; naming it at the moment it happens turns a silent source-file corruption into an actionable diagnostic.
Fixed
- Rejected patches whose pasted
N:TEXTread-output rows repeat a source line number. Each such row is recovered as a single-linePUT N.=N:, so a body written as consecutive lines under one number collapsed through the same-range coalescer, keeping only the last row and silently dropping the rest — in one incident replacing a block opener with}and deleting the following statement. The error now names the repeated line and teaches the explicitPUTform.
@oh-my-pi/pi-natives
Changed
- Consolidated every shell builtin into one crate,
crates/pi-builtins(the renamed and de-vendoredbrush-builtinsfork), with one module per command. The 46crates/vendor/uu-*crates,crates/vendor/jaq,crates/pi-uu-grep,crates/pi-uu-diff, and everything that had accumulated inline inpi-shell(fd,cmp,which, the moreutils set, and theps/top/pgrep/pkill/pidwait/kill/sleep/timeout/nohupprocess builtins) now live beside the bash builtins they sit next to at runtime, and register throughpi_builtins::utility_builtins()andpi_builtins::process_builtins().pi-shell/src/shell.rsshrank by ~4,200 lines.
Fixed
- Fixed
sort --compress-programspawning its compressor and decompressor without the shell's working directory or exported environment, so a program installed only on the shell'sPATHwas not found, and with stderr inherited from the host process, where its diagnostics could corrupt the TUI. Both children now launch through the shell's child context and their stderr is forwarded to the command's own file descriptor. - Fixed
realpath -qexiting 0 after a failed operand; it suppresses the diagnostic but now reports failure, matching GNU.
Removed
- Removed
crates/pi-uutils-ctx. Utility builtins previously reached their stdio, working directory, and environment through a thread-local context installed around each invocation; they now receive an explicitHostvalue (pi-builtins/src/host.rs) carrying the command's file descriptors, the shell working directory, the exported environment, cancellation, and the accumulated exit status. The uutils entry-point plumbing (uumain,UResult/UError,set_exit_code,crate_version!) went with it; each utility is now an ordinary brush builtin implementinghost::Utility.
@oh-my-pi/pi-tui
Fixed
- Fixed slow Loader paints exceeding their cost-aware CPU duty cycle on WSL/ConPTY when a 200 ms backpressure cap was shorter than the proportional delay ().
What's Changed
- fix(session): surface empty handoff generation as failure not cancel by
- fix(tui): keep display-math fractions intact across source newlines by
- fix(web-search): parse double-encoded Z.AI results by
- fix(agent): release parked subagent session memory on dispose by
- fix(tui): bound WSL idle animation CPU by
- fix(catalog): correct qwen3.8 max discovery metadata by
- fix(task): record subagent model performance by
Full Changelog: v17.2.11...v17.2.12
Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf github.com.
Wie bewertest du diesen Beitrag?
1 Klick Feedback Teilen mit Netzwerk & Team:
Hat Ihnen dieser Tipp / Anleitung geholfen?
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 37%
🟡 In Evaluierung 27%
🟢 Keine Auswirkung 15%
Spannende Innovation 21%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Tipp: Mit Pfeiltasten [ ← ] und [ → ] blättern
SOCIAL SHARE CARD GENERATOR