Skip to content

v1.11.4

Choose a tag to compare

@github-actions github-actions released this 24 Sep 11:31
· 5507 commits to main since this release

@oh-my-pi/pi-ai

Added

  • OAuth callback servers also listen on this host's Tailscale address when a Tailscale interface is up, and OAuthAuthInfo.tailnetLaunchUrl carries a /launch shortcut on that address, so a provider login can be opened — and its callback finished — from another device on the tailnet instead of only from localhost.

@oh-my-pi/chrome-annotate

Fixed

  • Fixed Cmd+. / Ctrl+. sometimes doing nothing after the page re-rendered or removed the overlay, and one keypress toggling the overlay twice.
  • Fixed duplicate overlays after reloading or updating the extension: the old copy now closes and stops answering the shortcut.
  • Only one marker note input is open at a time; starting a new box saves the previous note.

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

Added

  • Provider and MCP login screens (/login, setup wizard, ompx auth-broker login, RPC open_url) now show a Tailscale shortcut next to the local one when this machine is on a tailnet, with a hint to swap localhost for the tailnet address if the final redirect lands on another device.
  • ompx mnemopi-embed-server serves memory embeddings over HTTP from one loaded model. Sessions use it through mnemopi.embedServerUrl (default http://codemc:8793, override with MNEMOPI_EMBED_SERVER_URL, empty to disable), so a machine with many sessions keeps a single model in memory instead of one per session. When the server is unreachable, sessions embed locally and retry the server a minute later.

Changed

  • The local memory embeddings worker (__omp_worker_mnemopi_embed) now uses far less memory and CPU: it stays around 0.35–0.5 GB instead of 1.0–1.6 GB, a recall query takes ~0.1–0.3 s instead of ~0.4–1.4 s, and a worker left idle for 5 minutes exits and restarts on the next memory lookup. Before, every open session kept its own copy loaded until the session closed.
  • Compiled Linux and macOS binaries load rarely used code on first use instead of at startup. Each helper process (daemon broker, eval and embedding workers) now holds ~17 MB of private memory instead of ~105 MB, and an idle session ~270 MB instead of ~300 MB.
  • Product Preview's web client (mermaid, canvas app, markdown renderer) loads when a preview starts instead of staying in every session's memory.
  • Idle memory trim now also returns freed native memory to the OS (after a burst of parallel searches: ~990 MB back to ~90 MB), and when a background subagent or an unsent draft keeps the session busy at the idle deadline it tries again after another idle window instead of giving up until the next turn.
  • Browser tabs left open by the agent now close after 10 minutes idle instead of 30 (browser.idleCloseSec, new 5/10-minute options).

Fixed

  • Advisor note artifacts are now written to a temp file and renamed into place. Before, the artifact path was advertised immediately while the write was still in flight, so a read could see an empty file. A block re-rendered each turn is now written only once.
  • Exiting ompx inside a Herdr pane now clears the pane's agent status instead of leaving it stuck on idle/done.
  • Codex models keep their prompt cache across turns and resumes: grep is always available, and tools activated through tool search are restored when a session is resumed, so the tool list no longer changes mid-session (cache hit on a 3-turn session: ~78% → ~88%, turns after the first ~85% → ~98%, cost ~35% lower).
  • The shared headless Chromium no longer lingers after the agent is done with the browser: once no running session holds a tab in it, it stops ~15 s later (or at exit). Before, it kept running with zero tabs, using RAM and CPU, for as long as any ompx session stayed open in the project.

@oh-my-pi/pi-mnemopi

Changed

  • Migrated all hashing operations from node:crypto to Bun.SHA256

Fixed

  • Local fastembed embeddings turn off ONNX Runtime's CPU memory arena and memory-pattern planning, stop padding every input to 512 tokens (only inputs of equal token length share a run, at most 8 per run). Vectors match to float noise; peak worker memory drops from ~1.6 GB to ~0.5 GB and a single-query embed is 2–4× faster.

@oh-my-pi/pi-natives

Added

  • Added appleFmAvailability, appleFmGenerate, and appleFmCancel native bindings
  • Added Encoding.Jev to countTokens for offline TypeSafe Jev 1.13 state input-token counts (request frame excluded), reconstructed from live API measurements

@oh-my-pi/pi-utils

Added

  • releaseNativeHeap() returns freed native-heap memory to the OS (malloc_trim on Linux glibc; a no-op elsewhere).

What's Changed

  • feat(oauth): Tailscale login shortcut for remote provider login by @qtnx in #218
  • fix(deps): bump faster-hex to 0.10.1 (RUSTSEC-2026-0306) by @qtnx in #219
  • fix(advisor): write note artifacts atomically by @qtnx in #220
  • test(learnings): wait for novelty reinforcement to persist by @qtnx in #221
  • fix(herdr): release pane authority on exit so status clears by @qtnx in #222
  • perf: cut ompx memory (shared lean embeddings, split binary, native heap trim) by @qtnx in #223
  • fix(browser): stop idle shared Chromium when no session holds a tab by @qtnx in #225
  • sync: merge upstream/main 18.2.11 into OMPx 1.11.3 by @qtnx in #224
  • fix(deps): bump faster-hex to 0.10.1 for RUSTSEC-2026-0306 by @qtnx in #226
  • feat(agent-config): serve central agent config from origin/main by @qtnx in #227
  • fix(chrome-annotate): stabilize overlay toggle and prevent stacked overlays by @qtnx in #228

Full Changelog: v1.11.3...v1.11.4