- The aggregate //:natives-linux-all build links all six addon cdylibs
concurrently; rustc RSS peaks OOMed the pod and the kernel killed the
bazel server (exit 37, runs 30556752623 / 30557524371, twice at the
same spot).
- Build one addon target per invocation so the persistent server shares
analysis and cached actions while the heavy links run one at a time;
a final aggregate build stays as a completeness no-op.
- clippy doc_markdown (-D warnings via clippy-strict) failed the bazel
Rust validation job on the two bare XWayland mentions.
- Verified locally: bazel build --config=clippy-strict on
//crates/pi-natives passes.
- The 17.2.1 bump was regenerated under local bun 1.4.0, which wrote
lockfileVersion 2; the CI-pinned bun 1.3.x fails parsing it with
UnknownLockfileVersion before any job step runs.
- Resolutions unchanged (490 installs across 637 packages, no changes);
verified with bun@1.3.14 install --frozen-lockfile.
- Added custom `coworkFetch` transport for ordered headers and decompression support in Anthropic requests.
- Updated Anthropic and Claude runtime versions along with request headers to replicate Cowork desktop profiles.
- Configured default Anthropic message stream fetches to use the new cowork fetch transport and TLS profiles.
- Updated alignment tests and documentation to reflect the new Cowork request configurations and header rules.
The legacy @oh-my-pi/pi-coding-agent shim exported the read/bash/grep/find/ls
tool factories but omitted the edit and write ones. pi extensions importing
createEditTool or createWriteTool (e.g. gentle-pi) failed Bun's static export
check during extension validation, blocking omp install.
Added createEditTool/createEditToolDefinition and createWriteTool/
createWriteToolDefinition, mirroring the upstream pi surface and the existing
sibling factories. The unsupported operations seam throws a descriptive error
like createGrepTool does.
Fixes#7094
- Configure the python eval prelude to use a custom urllib opener that ignores environment proxies.
- Add test coverage verifying parallel tool bridge calls succeed when proxy variables are set.
The endpoint-scoped Ollama cache key collapsed every base URL on the
same origin. Catalog discovery preserves reverse-proxy path prefixes,
so different tenants could still reuse one fresh cache row.
Include the normalized native path in the cache fingerprint while
removing only a terminal /v1 suffix and trailing slashes. Cover tenant
isolation and equivalent native/OpenAI-compatible URL spellings.
Fixes#7087
Ollama's online-if-uncached path keyed every endpoint under the same
provider namespace. Changing OLLAMA_BASE_URL or OLLAMA_HOST therefore
reused fresh models routed to the previous endpoint until cache expiry.
Centralize an endpoint-normalized Ollama cache namespace and apply it to
both configured coding-agent discovery and the catalog model manager.
Add coverage proving a default refresh discovers the new endpoint even
while the previous endpoint has a fresh row.
Fixes#7087
llama.cpp and Ollama model discovery probed /models and /props with a
250ms timeout tuned for a loopback server. That cap also applied to a
host reached over the network, so a remote or LAN LLAMA_CPP_BASE_URL
(or OLLAMA_BASE_URL/OLLAMA_HOST) with normal round-trip latency timed
out, discovery returned no models, and the picker fell back to stale
127.0.0.1:8080 entries.
Select the probe timeout by host: strictly-loopback base URLs keep the
fast fail so a busy or foreign service on the default port never stalls
startup; every non-loopback host gets a generous discovery budget.
Fixes#7087
Under a rootless XWayland session (the GNOME/KDE/sway default) the X11
root window has no backing pixmap, so core `GetImage` on the root returns
`BadMatch`. The computer tool advertised Wayland support yet failed every
screenshot with a raw X11 protocol dump, and coordinate actions stayed
gated behind a capture that could never succeed.
- `Monitor::all` now probes a 1x1 root `GetImage` at initialization and,
on a `Match`/`Drawable` error, fails fast with an actionable
`DESKTOP_BACKEND_UNAVAILABLE` message naming the rootless-XWayland
constraint via the new `root_capture_error` classifier.
- `capture_image` routes its `GetImage` failure through the same
classifier so any surviving path yields the actionable message rather
than a raw protocol dump; unrelated errors stay verbatim.
- Corrected the module doc premise and `docs/computer-use.md` to list
rootless XWayland as unsupported (capture needs a rooted/rootful X
server, which only exposes X11 clients).
Fixes#7085
- Reformatted the logger burst test per biome (the type-check job gates on
check:tools, which failed on the previous hotfix's formatting).
- Raised the native/unit bucket's chunk watchdog to 1200 s: the mupdf PDF
extraction chunk runs ~7 min per attempt on burstable runners under a
full fan-out and the 600 s default SIGKILLed both tries in release run
30519992654; the watchdog targets wedged children, not slow chunks.
- The hosted disk-cache prune swept ~/.cache/omp-bazel-repo file-by-file;
extracted repository contents keep upstream-archive mtimes (months old),
so a restored archive lost most of rules_rust while bazel still trusted
the entry's recorded_inputs — both darwin release legs failed with
'BUILD file not found' in release run 30519253683. Prune only the
action disk cache, whose files carry bazel-written mtimes.
- Gave the logger burst-order contract an explicit 30 s budget: two probe
children measure ~4.4 s unloaded and bun's 5 s default test timeout
SIGTERMed them (exit 143) on shared-core runners.
- bun.lock, bunfig.toml, root package.json, and patches/** now trigger CI:
a lockfile-only push previously shipped untested, and a release retagged
onto such a commit never started its release run at all (the v17.2.0
lockfile-format fix hit exactly this).
- Updated the arc-omp-values example block and resources bullet to the live
3cpu/10Gi request + 8cpu/14Gi limit shape instead of the old guaranteed
8cpu/24Gi sizing.
- Documented the Kata boot floor vs request vs hotplug-limit relationship in
tune-kata-runtime.sh so boot defaults are kept at or below pod requests.
- The 17.2.0 bump regenerated the lockfile under a bun 1.4 canary, writing
lockfileVersion 2, which the CI-pinned bun 1.3.x cannot parse: every job
failed at bun install with UnknownLockfileVersion before running anything.
- Resolutions are unchanged (490 installs across 637 packages, no changes);
only the lockfile format fields moved back to version 1.
- Add new structural, multi-edit, and block-level mutation classes with updated category mappings.
- Introduce hunk extraction, placement, rendering, and solver utilities along with unit tests.
- Implement size-based mutation planning, prompt validation logic, and new prompt markdown templates.
- Update benchmark generation scripts and package configurations to support empirical edit shape statistics.
- Increased maximum concurrent runner pods from 4 to 8.
- Configured burstable runner resource requests and limits to improve bin-packing.
- Updated documentation to reflect the new runner sizing and scale limits.
- Removed copy and delete operations across tokenizer, parser, grammar, and clipboard logic.
- Standardized line-editing operations and block resolvers to use cut exclusively.
- Updated documentation, prompts, and test suites to reflect the removal of copy and delete syntax.
- Regrouped `grammar.lark` around shared `target` and `pos` rules, reducing hunk rules from twelve to seven.
- Maintained byte-identical language acceptance while simplifying internal grammar structure.
- Implemented clipboard register management, parsing, and execution rules for CUT, COPY, and PASTE operations in the hashline engine.
- Added session-persistent clipboard state and integration across agent session execution, diff previews, and streaming tools.
- Added comprehensive validation, error messages, recovery handling, and test coverage for clipboard and block operations.
- Export AgentRegistry from the SDK to allow passing a private registry instance.
- Provide a dedicated AgentRegistry per in-process client in the benchmark runner.
- Increased codex websocket first event timeout default to 300 seconds.
- Increased default stream idle and first event timeout thresholds to 300 seconds.
- Updated stream timeout test expectations to match new 300s global default.
- Extracted audio capture and playback implementations, along with the WebRTC peer engine, from `pi-natives` into a new `pi-voice` library crate.
- Updated `pi-natives` bindings to consume the extracted `pi_voice` audio streams and live peer core.
- Added release validation gate jobs, parallelized Linux binary builds, and introduced a concurrent macOS release build job in the CI workflow.
- Updated Bazel workspace configurations, Cargo manifests, and documentation to include the new `pi-voice` crate and its dependencies.
- Updated GitHub Actions workflows and custom actions to optimize caching strategies and runners.
- Configured separate restore and save steps for bun store caching with non-PR restrictions.
- Added darwin release bazel cache seeding and fallback keys for cache restore.
- Removed native-inputs workflow action and disabled PR-side Rust validation.
- Updated task tool execution to pin live regions and drop partial snapshots once rows commit.
- Tracked background task frozen styled rows and render timestamps to prevent clock drift on committed history.
- Added tests verifying detached and blocking task progress do not duplicate rows in scrollback.