diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index 49d408578..9ad51abfd 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Breaking Changes + - Removed the `zod` dependency and the `z`/`ZodType` re-exports; tool schemas are omptype `type()` schemas, with zod-style authoring still available via `@oh-my-pi/omptype/zod` ## [17.2.9] - 2026-08-05 diff --git a/packages/catalog/CHANGELOG.md b/packages/catalog/CHANGELOG.md index 47b4f7b20..ab8ddf226 100644 --- a/packages/catalog/CHANGELOG.md +++ b/packages/catalog/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changed + - Migrated GitLab Duo Workflow discovery schemas from zod to omptype and removed the `zod` dependency ## [17.2.9] - 2026-08-05 diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 04334bdc1..c48e73a8c 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -3,49 +3,30 @@ ## [Unreleased] ### Breaking Changes + - Replaced the re-exported zod API with the omptype-backed zod-compat facade (`@oh-my-pi/omptype/zod`); plugins keep the zod-style builder surface while real-zod-specific APIs are gone ### Changed + - Replaced external dependencies with `@oh-my-pi/pi-utils` modules: `@agentclientprotocol/sdk` -> `acp` (also drops the package patch), `@mozilla/readability` -> `readability`, `@puppeteer/browsers` -> `browsers`, `@xterm/headless` -> `vterm`, `chalk` -> `chalk`, `fast-xml-parser` -> `xml`, `header-generator` -> `headers`, `linkedom` -> `dom`, `lru-cache` -> `lru`, `mammoth` -> `docx`, `turndown` and `turndown-plugin-gfm` -> `turndown`, and dev `marked` -> `marked` ### Fixed - Fixed `/usage`, `/advisor status`, and every other panel command looking dead mid-turn. `presentCommandOutput` defers panels while the agent streams so a growing turn cannot bury them, but said nothing, and on a long multi-subagent turn the panel is minutes away. The deferral is now acknowledged in the status line. A non-terminal settle also flushes the queue: `isStreaming` is already false by then, so a command issued after an async fan-out settles used to mount ahead of the panels queued before it. -### Fixed - - Fixed the bundled `ts-no-tiny-functions` TTSR rule never firing on one-line arrow functions in real files: the second alternative's `$` anchor only matched at the absolute end of input, so the trailing newline present in every real file suppressed the match. The condition now opens with the `(?m)` inline flag so the arrow body matches to the line end ([#6890](https://github.com/can1357/oh-my-pi/issues/6890)). - -### Fixed - - Fixed an advisor refusal skipping the model fallback chain. `AdvisorRuntime` treated a classifier refusal as terminal once its one stripped-reasoning resend failed, returning before the `onTurnError` hook that owns fallback (`#recoverAdvisorTurn`), so a `Refusal (cyber)` on one model disabled the advisor even with a configured chain. The refusal path now takes the same fallback pass the primary turn-recovery path already allows, and only reports the advisor unavailable when the host declines to switch. - Bounded advisor refusal recovery to one attempt per model. The cascade walks the fallback chain to exhaustion, but a model switch re-arms `#includeThinking` via `#syncModelIdentity`, so a chain whose keys point back at each other (A→B, B→A) would strip-and-resend against the same pair forever. Each cascade now visits a model at most once; a successful turn or a reset starts a fresh walk. -### Fixed - - Fixed repeated `/mcp reauth` commands getting stuck behind the previous unfinished MCP OAuth login; a new reauthorization now cancels and cleans up the prior flow before starting its replacement. -### Fixed - - WSL host-home resolution now builds `/mnt//...` fallback paths with POSIX semantics regardless of the host platform, instead of the platform-dependent `path` module ([#3779](https://github.com/can1357/oh-my-pi/issues/3779)). -### Fixed - - Fixed Python eval shell helpers (`!cmd`, `%%bash`, `%pip`) letting child processes inherit the runner's stdin — the host's NDJSON control channel — which could steal protocol frames and deadlocked nested interpreters on Windows; children now get `stdin=DEVNULL`. `%%bash` also resolves Git Bash on Windows instead of hardcoding `/bin/bash`. -### Fixed - - Fixed subagents spawned through a model-role alias (e.g. the bundled `scout`'s `model: "@smol"`) falling back onto the `default` role's `retry.fallbackChains` entry instead of their own role's chain: the child is pinned to a `subagent:` role whose chain shadows every configured role chain, and that pin inherited `default` unconditionally, so a `@smol` scout retried on the default chain's first model instead of the smol chain's. -### Fixed - - Fixed Linux/X11 clipboard reads failing when `xclip` is unavailable but `xsel` is installed. -### Fixed - - Hardened Linux Chromium executable detection to reject non-executable files, non-browser wrappers, and candidates that hang during the version probe. -### Fixed - - Fixed Bash command previews crashing when malformed tool arguments contain non-string environment values. -### Fixed - - Fixed `nerd`-preset role chips overhanging into the label and swallowing its first character (`efault` instead of `default`) by inserting a separator after the status glyph in the model browser and model hub ([#7664](https://github.com/can1357/oh-my-pi/issues/7664)). -### Fixed - - Fixed Codex web search sending GPT-5.6 models a Responses-Lite request shape that the hosted `web_search` tool ignores. ([#7666](https://github.com/can1357/oh-my-pi/issues/7666)) +- Fixed resumed or rebuilt sessions auto-applying a new checkpoint with a stale rewind report from an earlier completed checkpoint cycle ([#7739](https://github.com/can1357/oh-my-pi/issues/7739)). +- Fixed `read` treating semicolon-delimited internal URLs, such as batched `skill://` resources, as one invalid resource. ## [17.2.9] - 2026-08-05 @@ -65,7 +46,6 @@ ### Fixed -- Fixed resumed or rebuilt sessions auto-applying a new checkpoint with a stale rewind report from an earlier completed checkpoint cycle ([#7739](https://github.com/can1357/oh-my-pi/issues/7739)). - Retried concurrent-request caps with a short backoff without deleting valid Copilot credentials or rotating through sibling accounts. - Fixed the default `textVerbosity` setting being forwarded to OpenAI Codex requests unless the user explicitly configures it, preserving Codex's native response-control defaults. ([#4949](https://github.com/can1357/oh-my-pi/issues/4949)) - Reduced streaming CPU usage by coalescing the cumulative `message_update` deltas of a turn at the event-controller dispatch boundary: at most one streaming-state rebuild runs per ~33ms window instead of one per token, cutting the per-token handler work that dominated the CPU profile of streaming sessions (especially at high token rates) while preserving per-delta speech output. Subscriber dispatch is serialized so a rapid stream tail (`message_update` → `message_end` → `agent_end`) cannot overtake the coalesced flush. ([#7443](https://github.com/can1357/oh-my-pi/issues/7443)) @@ -100,10 +80,6 @@ - Fixed self-update misclassifying glibc Linux hosts with an installed musl loader as musl hosts, which could download an unusable musl binary instead of the glibc release. - Fixed a crash where opening the Agent Hub after a resume and moving the selection triggered an unbounded `ExtensionExitError` unhandled-rejection storm and exit 129. The postmortem module bound the native hard-exit at first evaluation; when the bundler deferred that evaluation into a `withHostGuard` window it froze the guard's throwing replacement, poisoning every later signal/fatal exit. The native exit is now resolved per call, and the guard stamps its replacement with the native primitive it shadows so mid-guard signals still exit ([#7393](https://github.com/can1357/oh-my-pi/issues/7393)). -### Fixed - -- Fixed `read` treating semicolon-delimited internal URLs, such as batched `skill://` resources, as one invalid resource. - ## [17.2.8] - 2026-08-04 ### Changed @@ -163,6 +139,7 @@ - Added a configurable per-request web search timeout via providers.webSearchTimeoutSeconds. - Added turn-aware /tree navigation shortcuts (Alt+Up/Alt+Down, Home/End, PageUp/PageDown) to traverse user and assistant turns. - Added display.hideToolActivity and a Ctrl+Shift+O shortcut to toggle the visibility of model-initiated tool calls and results. +- Added resumable session details to fatal crash output, including an `omp --resume ` command for every persisted live agent session. ### Changed @@ -195,12 +172,6 @@ - Fixed heavily branched conversation trees shifting linear continuations into disconnected columns. - Fixed plugin installation validation failures for legacy compatibility shims. - Removed hard-coded references to disabled or absent agents in system and tool prompts. -### Added - -- Added resumable session details to fatal crash output, including an `omp --resume ` command for every persisted live agent session. - -### Fixed - - Fixed unobserved promise continuations from browser helpers such as `tab.waitForResponse()` wedging or killing the tab worker when they reject; browser facade promises now retain native promise behavior while observing every `then`, `catch`, and `finally` continuation, and late user continuation errors are logged instead of dropped after the run ends. ## [17.2.4] - 2026-08-01 diff --git a/packages/collab-web/CHANGELOG.md b/packages/collab-web/CHANGELOG.md index 39786e369..19707a398 100644 --- a/packages/collab-web/CHANGELOG.md +++ b/packages/collab-web/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changed + - Replaced `marked` with `@oh-my-pi/pi-utils/marked` ## [17.2.2] - 2026-07-31 diff --git a/packages/hashline/CHANGELOG.md b/packages/hashline/CHANGELOG.md index c11ab6bf6..09907e8b2 100644 --- a/packages/hashline/CHANGELOG.md +++ b/packages/hashline/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changed + - Replaced `lru-cache` with `@oh-my-pi/pi-utils/lru`, adding an `@oh-my-pi/pi-utils` dependency ## [17.2.2] - 2026-07-31 diff --git a/packages/mnemopi/CHANGELOG.md b/packages/mnemopi/CHANGELOG.md index 6621ba2e8..cc65153cc 100644 --- a/packages/mnemopi/CHANGELOG.md +++ b/packages/mnemopi/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changed + - Replaced `lru-cache` with `@oh-my-pi/pi-utils/lru` ## [17.2.6] - 2026-08-03 diff --git a/packages/omptype/CHANGELOG.md b/packages/omptype/CHANGELOG.md index 5dfcb654b..e81b75964 100644 --- a/packages/omptype/CHANGELOG.md +++ b/packages/omptype/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changed + - Reimplemented the zod-compat facade (`@oh-my-pi/omptype/zod`) purely on omptype internals; removed the `zod` devDependency and benchmark arm ## [17.2.9] - 2026-08-05 diff --git a/packages/stats/CHANGELOG.md b/packages/stats/CHANGELOG.md index fe2c0576e..325f9c8b2 100644 --- a/packages/stats/CHANGELOG.md +++ b/packages/stats/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Changed + - Replaced `date-fns` with `@oh-my-pi/pi-utils/dates` and the `linkedom` test dependency with `@oh-my-pi/pi-utils/dom` ## [17.2.9] - 2026-08-05 diff --git a/packages/tui/CHANGELOG.md b/packages/tui/CHANGELOG.md index 56dc900f0..17205deb0 100644 --- a/packages/tui/CHANGELOG.md +++ b/packages/tui/CHANGELOG.md @@ -3,17 +3,15 @@ ## [Unreleased] ### Changed + - Replaced `marked`, `lru-cache`, and dev `chalk` with `@oh-my-pi/pi-utils` modules (`marked`, `lru`, `chalk`) ### Fixed - Fixed startup aborting with an EIO error when a multiplexer or SSH session leaves `stdin.isTTY` true after revoking its pty, by taking the existing terminal-disconnect path instead of failing to enable raw mode. -### Fixed - - Fixed prompt autocomplete never triggering for Windows drive-absolute paths (`C:/Users/...`, `C:\Users\...`); only `/`, `./`, `../`, and `~/` prefixes were recognized. -### Fixed - - hasLinuxDesktopSession() now also treats the session as reachable via the systemd user-bus socket `$XDG_RUNTIME_DIR/bus` when `DBUS_SESSION_BUS_ADDRESS` is unset, so BEL-only terminals in systemd/tmux/SSH-attached graphical sessions get desktop notifications again. +- Fixed Shift+letter and shifted symbol input (capital letters, `?`, `!`, etc.) being silently dropped on Windows and WSL terminals using ConPTY (e.g. WezTerm stable) by avoiding Kitty keyboard protocol flag 4 in that context. ## [17.2.9] - 2026-08-05 @@ -21,9 +19,6 @@ - Fixed table borders (and adjacent cells) inheriting an open inline-code color when a cell's content wraps mid-code-span, by terminating each wrapped cell line's SGR state before the border glyphs ([#7575](https://github.com/can1357/oh-my-pi/issues/7575)). - Fixed inline images not rendering under WSL + Windows Terminal: the SIXEL capability probe gated on `process.platform === "win32"`, but WSL reports `linux`, so the probe never ran and images fell back to the text placeholder even on Sixel-capable Windows Terminal. The probe now runs on any ConPTY host (native win32 or WSL) ([#6009](https://github.com/can1357/oh-my-pi/issues/6009)). -### Fixed - -- Fixed Shift+letter and shifted symbol input (capital letters, `?`, `!`, etc.) being silently dropped on Windows and WSL terminals using ConPTY (e.g. WezTerm stable) by avoiding Kitty keyboard protocol flag 4 in that context. ## [17.2.5] - 2026-08-03 diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 1828b0225..60825a056 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -3,17 +3,21 @@ ## [Unreleased] ### Added + - Added zero-dependency in-house modules replacing external packages, each importable as `@oh-my-pi/pi-utils/`: `acp` (Agent Client Protocol), `browsers` (Chrome for Testing discovery/install), `chalk` (ANSI styling), `dates` (date formatting), `dom` (HTML parser + WHATWG DOM subset + CSS selectors), `docx` (DOCX to HTML), `headers` (browser header generation), `lru` (LRU cache), `marked` (GFM markdown lexer/parser), `readability` (article extraction), `template` (Handlebars-compatible templating), `turndown` (HTML to Markdown), `vterm` (headless terminal emulator), `xml` (XML parser) ### Changed + - Rewrote the logger file backend in-house with identical line format, daily rotation, and pruning -### Removed -- Removed `handlebars`, `winston`, and `winston-daily-rotate-file` dependencies ### Fixed - Support PowerShell (`powershell.exe` / `pwsh`) as a custom `shellPath`: spawn paths now pass `-NoLogo -Command` (plus `-NoProfile` under `PI_BASH_NO_LOGIN`) instead of the POSIX `-l -c` pair, which PowerShell rejected with `The term '-l' is not recognized`. +### Removed + +- Removed `handlebars`, `winston`, and `winston-daily-rotate-file` dependencies + ## [17.2.9] - 2026-08-05 ### Added @@ -36,13 +40,11 @@ ### Added - Added utility functions `parseFlag()`, `getBrowserRelayDir()`, and `getGlobalDaemonRuntimeDir()` to support browser relay mode and global daemon runtime directory resolution. +- Added postmortem fatal recovery hint providers so applications can print actionable recovery commands before cleanup starts. ### Changed - Updated the lightweight CLI runner to support static command metadata, allowing root help to render without importing full command implementations. -### Added - -- Added postmortem fatal recovery hint providers so applications can print actionable recovery commands before cleanup starts. ## [17.2.4] - 2026-08-01