chore: bump version to 15.11.4

This commit is contained in:
can1357
2026-06-12 04:26:57 +02:00
parent 15a4047785
commit 0cb3cb6b9d
29 changed files with 79 additions and 63 deletions
Generated
+8 -8
View File
@@ -1773,9 +1773,9 @@ dependencies = [
[[package]]
name = "memchr"
version = "2.8.1"
version = "2.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8"
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
[[package]]
name = "memmap2"
@@ -2330,7 +2330,7 @@ dependencies = [
[[package]]
name = "pi-ast"
version = "15.11.3"
version = "15.11.4"
dependencies = [
"anyhow",
"ast-grep-core",
@@ -2398,7 +2398,7 @@ dependencies = [
[[package]]
name = "pi-iso"
version = "15.11.3"
version = "15.11.4"
dependencies = [
"async-trait",
"libc",
@@ -2410,7 +2410,7 @@ dependencies = [
[[package]]
name = "pi-natives"
version = "15.11.3"
version = "15.11.4"
dependencies = [
"anyhow",
"arboard",
@@ -2458,7 +2458,7 @@ dependencies = [
[[package]]
name = "pi-shell"
version = "15.11.3"
version = "15.11.4"
dependencies = [
"anyhow",
"brush-builtins",
@@ -3025,9 +3025,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
[[package]]
name = "smallvec"
version = "1.15.1"
version = "1.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
dependencies = [
"serde",
]
+1 -1
View File
@@ -4,7 +4,7 @@ exclude = ["crates/brush-core-vendored", "crates/brush-builtins-vendored"]
resolver = "3"
[workspace.package]
version = "15.11.3"
version = "15.11.4"
edition = "2024"
license = "MIT"
authors = ["Can Boluk"]
+24 -28
View File
@@ -15,7 +15,7 @@
},
"packages/agent": {
"name": "@oh-my-pi/pi-agent-core",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"@oh-my-pi/pi-ai": "catalog:",
"@oh-my-pi/pi-catalog": "catalog:",
@@ -32,7 +32,7 @@
},
"packages/ai": {
"name": "@oh-my-pi/pi-ai",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"@bufbuild/protobuf": "catalog:",
"@oh-my-pi/pi-catalog": "catalog:",
@@ -47,7 +47,7 @@
},
"packages/catalog": {
"name": "@oh-my-pi/pi-catalog",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"@bufbuild/protobuf": "catalog:",
"@oh-my-pi/pi-utils": "catalog:",
@@ -60,7 +60,7 @@
},
"packages/coding-agent": {
"name": "@oh-my-pi/pi-coding-agent",
"version": "15.11.3",
"version": "15.11.4",
"bin": {
"omp": "src/cli.ts",
},
@@ -108,7 +108,7 @@
},
"packages/hashline": {
"name": "@oh-my-pi/hashline",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"diff": "catalog:",
"lru-cache": "catalog:",
@@ -119,7 +119,7 @@
},
"packages/mnemopi": {
"name": "@oh-my-pi/pi-mnemopi",
"version": "15.11.3",
"version": "15.11.4",
"bin": {
"mnemopi": "src/cli.ts",
},
@@ -137,7 +137,7 @@
},
"packages/natives": {
"name": "@oh-my-pi/pi-natives",
"version": "15.11.3",
"version": "15.11.4",
"devDependencies": {
"@napi-rs/cli": "catalog:",
"@types/bun": "catalog:",
@@ -145,7 +145,7 @@
},
"packages/snapcompact": {
"name": "@oh-my-pi/snapcompact",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"@oh-my-pi/pi-ai": "catalog:",
"@oh-my-pi/pi-natives": "catalog:",
@@ -157,7 +157,7 @@
},
"packages/stats": {
"name": "@oh-my-pi/omp-stats",
"version": "15.11.3",
"version": "15.11.4",
"bin": {
"omp-stats": "./src/index.ts",
},
@@ -183,7 +183,7 @@
},
"packages/swarm-extension": {
"name": "@oh-my-pi/swarm-extension",
"version": "15.11.3",
"version": "15.11.4",
"bin": {
"omp-swarm": "src/cli.ts",
},
@@ -199,7 +199,7 @@
},
"packages/tui": {
"name": "@oh-my-pi/pi-tui",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"@oh-my-pi/pi-natives": "catalog:",
"@oh-my-pi/pi-utils": "catalog:",
@@ -240,7 +240,7 @@
},
"packages/utils": {
"name": "@oh-my-pi/pi-utils",
"version": "15.11.3",
"version": "15.11.4",
"dependencies": {
"@oh-my-pi/pi-natives": "catalog:",
"beautiful-mermaid": "catalog:",
@@ -280,17 +280,17 @@
"@huggingface/transformers": "^4.2.0",
"@mozilla/readability": "^0.6.0",
"@napi-rs/cli": "3.7.0",
"@oh-my-pi/hashline": "15.11.3",
"@oh-my-pi/omp-stats": "15.11.3",
"@oh-my-pi/pi-agent-core": "15.11.3",
"@oh-my-pi/pi-ai": "15.11.3",
"@oh-my-pi/pi-catalog": "15.11.3",
"@oh-my-pi/pi-coding-agent": "15.11.3",
"@oh-my-pi/pi-mnemopi": "15.11.3",
"@oh-my-pi/pi-natives": "15.11.3",
"@oh-my-pi/pi-tui": "15.11.3",
"@oh-my-pi/pi-utils": "15.11.3",
"@oh-my-pi/snapcompact": "15.11.3",
"@oh-my-pi/hashline": "15.11.4",
"@oh-my-pi/omp-stats": "15.11.4",
"@oh-my-pi/pi-agent-core": "15.11.4",
"@oh-my-pi/pi-ai": "15.11.4",
"@oh-my-pi/pi-catalog": "15.11.4",
"@oh-my-pi/pi-coding-agent": "15.11.4",
"@oh-my-pi/pi-mnemopi": "15.11.4",
"@oh-my-pi/pi-natives": "15.11.4",
"@oh-my-pi/pi-tui": "15.11.4",
"@oh-my-pi/pi-utils": "15.11.4",
"@oh-my-pi/snapcompact": "15.11.4",
"@opentelemetry/api": "^1.9.1",
"@opentelemetry/context-async-hooks": "^2.7.1",
"@opentelemetry/exporter-trace-otlp-proto": "^0.218.0",
@@ -1297,7 +1297,7 @@
"string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="],
"string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
"strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="],
@@ -1449,8 +1449,6 @@
"string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
"wrap-ansi/string-width": ["string-width@8.2.1", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA=="],
"xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="],
@@ -1465,8 +1463,6 @@
"fastembed/onnxruntime-node/tar": ["tar@7.5.16", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w=="],
"jszip/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
"log-update/slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@5.1.0", "", { "dependencies": { "get-east-asian-width": "^1.3.1" } }, "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ=="],
"log-update/wrap-ansi/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
+1 -1
View File
@@ -71,7 +71,7 @@ use napi_derive::{module_init, napi};
/// MUST stay in sync with `VERSION_SENTINEL_EXPORT` in
/// `packages/natives/native/index.js` (which derives the name from
/// `package.json#version`).
#[napi(js_name = "__piNativesV15_11_3")]
#[napi(js_name = "__piNativesV15_11_4")]
pub const fn pi_natives_version_sentinel() {}
/// Native module entry point: install crash diagnostics before any tool can
+11 -11
View File
@@ -21,17 +21,17 @@
"@huggingface/transformers": "^4.2.0",
"@mozilla/readability": "^0.6.0",
"@napi-rs/cli": "3.7.0",
"@oh-my-pi/hashline": "15.11.3",
"@oh-my-pi/omp-stats": "15.11.3",
"@oh-my-pi/pi-agent-core": "15.11.3",
"@oh-my-pi/pi-ai": "15.11.3",
"@oh-my-pi/pi-catalog": "15.11.3",
"@oh-my-pi/pi-coding-agent": "15.11.3",
"@oh-my-pi/pi-mnemopi": "15.11.3",
"@oh-my-pi/pi-natives": "15.11.3",
"@oh-my-pi/pi-tui": "15.11.3",
"@oh-my-pi/pi-utils": "15.11.3",
"@oh-my-pi/snapcompact": "15.11.3",
"@oh-my-pi/hashline": "15.11.4",
"@oh-my-pi/omp-stats": "15.11.4",
"@oh-my-pi/pi-agent-core": "15.11.4",
"@oh-my-pi/pi-ai": "15.11.4",
"@oh-my-pi/pi-catalog": "15.11.4",
"@oh-my-pi/pi-coding-agent": "15.11.4",
"@oh-my-pi/pi-mnemopi": "15.11.4",
"@oh-my-pi/pi-natives": "15.11.4",
"@oh-my-pi/pi-tui": "15.11.4",
"@oh-my-pi/pi-utils": "15.11.4",
"@oh-my-pi/snapcompact": "15.11.4",
"@opentelemetry/api": "^1.9.1",
"@opentelemetry/context-async-hooks": "^2.7.1",
"@opentelemetry/exporter-trace-otlp-proto": "^0.218.0",
+2
View File
@@ -1,6 +1,8 @@
# Changelog
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Added `hasSteeringMessages` to `AgentLoopConfig` (wired by `Agent` to its steering queue): a peek used by the immediate-interrupt poll during tool execution, so the loop can detect queued steering without dequeuing and the queue keeps owning its messages until the injection boundary
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-agent-core",
"version": "15.11.3",
"version": "15.11.4",
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Codex/Responses providers now map `end_turn: false` on the terminal stream event (Codex backend signal for "response ended, turn didn't" — commentary-only progress updates) to `stopDetails: { type: "pause_turn" }` with stopReason `"stop"`, so the agent loop can re-sample instead of ending the turn. Wired in `openai-codex-responses` and `processResponsesStream` (`openai-responses`/`azure-openai-responses`); inert for backends that never send the field.
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-ai",
"version": "15.11.3",
"version": "15.11.4",
"description": "Unified LLM API with automatic model discovery and provider configuration",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Fixed
- Fixed MiniMax M2-family and OpenAI gpt-oss model metadata so OpenAI-compatible catalog entries declare only `low|medium|high` thinking efforts. Their upstreams reject `minimal`, `xhigh`, and Fireworks' `minimal → none` wire mapping, so `fireworks/minimax-m2.7` as the smol auto-thinking classifier model 400ed on every turn. OpenAI-compatible provider effort maps (`Groq qwen/qwen3-32b`, DeepSeek-family, OpenRouter Anthropic adaptive, Fireworks `minimal → none`) now bake into `thinking.effortMap` in catalog metadata instead of `buildOpenAICompat`, and request builders read that field directly. Regenerated `models.json` now makes `disableReasoning` choose `low` for those families while leaving GLM-5.x and other Fireworks models on the existing `minimal → none` path ([#2315](https://github.com/can1357/oh-my-pi/issues/2315)).
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-catalog",
"version": "15.11.3",
"version": "15.11.4",
"description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Added mouse-driven interaction to `/settings`, including tab and setting row hover highlighting, wheel scrolling, and left-click activation for entries and submenus
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-coding-agent",
"version": "15.11.3",
"version": "15.11.4",
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Added inward landing correction for `insert after block N:`: a body indented deeper than the block's closing line now slides back across the block's trailing closer lines and lands inside the block at its claimed depth, with a warning naming the landing line. Same conservative guards as the outward shift — comparable indentation only, closers only, abandoned when another hunk targets a crossed line; plain `insert after M:` stays literal
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/hashline",
"version": "15.11.3",
"version": "15.11.4",
"description": "Hashline: a compact, line-anchored patch language and applier. Pluggable FS/IO so it works over disk, in-memory, or any custom backend.",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Added `configureRecallFeatures()` (exported from the package root, `core`, and `config`) so hosts can enable the polyphonic recall engine and the enhanced recall query cache programmatically. `polyphonicRecallEnabled()`, `enhancedRecallEnabled()`, and `isEnhancedRecallEnabled()` now fall back to these configured defaults, with the `MNEMOPI_POLYPHONIC_RECALL` / `MNEMOPI_ENHANCED_RECALL` environment variables still taking precedence whenever they are set. ([#2323](https://github.com/can1357/oh-my-pi/issues/2323))
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-mnemopi",
"version": "15.11.3",
"version": "15.11.4",
"description": "Local SQLite memory engine for Oh My Pi agents",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Fixed
- Fixed `blockRangeAt` (and thus the edit tool's `replace block` / `insert after block` ops) failing on extensionless shell rc/profile files. `Path::extension` returns `None` for both bare (`zshrc`) and dotfile (`.zshrc`, `.bashrc`) forms, so language inference fell through to "unrecognized" and block resolution was permanently unresolvable on those files — an agent retrying the block op would loop on the same error. Known shell rc/profile basenames (`zshrc`/`zshenv`/`zprofile`/`zlogin`/`zlogout`/`bashrc`/`bash_profile`/`bash_login`/`bash_logout`/`bash_aliases`/`profile`/`kshrc`/`mkshrc`/`shrc`, with or without a leading dot) now resolve to the bash grammar.
+1 -1
View File
@@ -136,7 +136,7 @@ export declare class Shell {
* `packages/natives/native/index.js` (which derives the name from
* `package.json#version`).
*/
export declare function __piNativesV15_11_3(): void
export declare function __piNativesV15_11_4(): void
/**
* Apply conservative pre-execution rewrites to a bash command.
+1 -1
View File
@@ -23,7 +23,7 @@ export const PtySession = nativeBindings.PtySession;
export const Shell = nativeBindings.Shell;
// functions
export const __piNativesV15_11_3 = nativeBindings.__piNativesV15_11_3;
export const __piNativesV15_11_4 = nativeBindings.__piNativesV15_11_4;
export const applyBashFixups = nativeBindings.applyBashFixups;
export const astEdit = nativeBindings.astEdit;
export const astGrep = nativeBindings.astGrep;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@oh-my-pi/pi-natives",
"version": "15.11.3",
"version": "15.11.4",
"description": "Native Rust bindings for grep, clipboard, image processing, syntax highlighting, PTY, and shell operations via N-API",
"type": "module",
"homepage": "https://omp.sh",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Breaking Changes
- Renamed every export to drop the `snapcompact`/`Snapcompact`/`SNAPCOMPACT_` qualifier — the package is meant to be consumed via `import * as snapcompact from "@oh-my-pi/snapcompact"`. Functions: `snapcompactCompact` → `compact`, `renderSnapcompactFrame` → `render`, `snapcompactGeometry` → `geometry`, `normalizeForSnapcompact` → `normalize`, `serializeSnapcompactConversation` → `serializeConversation`, `snapcompactImages` → `images`, `getPreservedSnapcompactArchive` → `getPreservedArchive`, `isSnapcompactShape` → `isShape`, `resolveSnapcompactShape` → `resolveShape`, `createSnapcompactFileOps` → `createFileOps`, `computeSnapcompactFileLists` → `computeFileLists`, `upsertSnapcompactFileOperations` → `upsertFileOperations`. Types: `SnapcompactShape` → `Shape`, `SnapcompactFrame` → `Frame`, `SnapcompactArchive` → `Archive`, `SnapcompactGeometry` → `Geometry`, `SnapcompactOptions` → `Options`, `SnapcompactSerializeOptions` → `SerializeOptions`, `SnapcompactFileOperations` → `FileOperations`, `SnapcompactCompactionDetails`/`Preparation`/`Result` → `CompactionDetails`/`CompactionPreparation`/`CompactionResult`, `SnapcompactConvertToLlm` → `ConvertToLlm`. Constants: `SNAPCOMPACT_X` → `X` (`SHAPES`, `FRAME_SIZE`, `MAX_FRAMES`, `FRAME_TOKEN_ESTIMATE`, `PRESERVE_KEY`, `TOOL_RESULT_MAX_CHARS`, `TOOL_ARG_MAX_CHARS`, `TOOL_CALL_MAX_CHARS`, `TRUNCATE_HEAD_RATIO`, `DIM_ON`, `DIM_OFF`).
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/snapcompact",
"version": "15.11.3",
"version": "15.11.4",
"description": "Bitmap-frame context compression for vision-capable LLMs",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/omp-stats",
"version": "15.11.3",
"version": "15.11.4",
"description": "Local observability dashboard for pi AI usage statistics",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/swarm-extension",
"version": "15.11.3",
"version": "15.11.4",
"description": "Swarm orchestration extension for omp",
"homepage": "https://omp.sh",
"author": "Derek Rynd",
+2
View File
@@ -1,6 +1,8 @@
# Changelog
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Added `partialHoldTimeout` to `StdinBufferOptions` to control the maximum extra delay held for unambiguous incomplete escape sequences before they are flushed
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-tui",
"version": "15.11.3",
"version": "15.11.4",
"description": "Terminal User Interface library with differential rendering for efficient text-based applications",
"homepage": "https://omp.sh",
"author": "Can Boluk",
+2
View File
@@ -2,6 +2,8 @@
## [Unreleased]
## [15.11.4] - 2026-06-12
### Added
- Added `getEditorConfigFormatting(file)`: returns the `.editorconfig`-pinned `tabSize`/`insertSpaces` (both optional, no fallback) so LSP-format callers can layer per-file defaults under it without paving over silence with the renderer's display tab width ([#2329](https://github.com/can1357/oh-my-pi/issues/2329)).
+1 -1
View File
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@oh-my-pi/pi-utils",
"version": "15.11.3",
"version": "15.11.4",
"description": "Shared utilities for pi packages",
"homepage": "https://omp.sh",
"author": "Can Boluk",