Commit Graph

768 Commits

Author SHA1 Message Date
can1357 58f319912e feat: introduced dynamic version discovery and rate limit parsing for google
- Added dynamic Antigravity version discovery with environment variable overrides and fallback endpoint support.
- Introduced structured Google RPC `ErrorInfo` rate limit reason parsing and backoff classification.
- Added `gemini-3.7-flash` and `deepseek-v4-pro:preview` model configurations alongside updated pricing.
- Removed system instruction injection logic and dropped unsigned thinking blocks for Antigravity requests.
2026-08-13 23:59:37 +02:00
can1357 a2aad5408e Merge PR #8443: fix(natives): static-link win32 MSVC CRT so addon needs no VC++ redist (@roboomp) 2026-08-13 18:46:08 +02:00
roboomp 2e2bf1f3a5 fix(natives): pin cmake opus build to static MSVC CRT (/MT)
The win32 addon static-CRT switch enabled the static_link_msvcrt cc
feature, but audiopus_sys's bundled opus is built through the generated
CMake toolchain, which pinned CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL
(/MD) as authoritative under CMP0091 NEW. The opus objects could then
still emit /MD and pull VCRUNTIME140.dll / conflict with the static CRT
the rest of the addon links, leaving the outcome dependent on compile-
flag ordering.

Pin CMAKE_MSVC_RUNTIME_LIBRARY to MultiThreaded (static release /MT) in
the msvc toolchain.cmake so opus deterministically matches rustc's
+crt-static and the static_link_msvcrt feature.

Verified with a fully cold `bazel build //:natives-win32-x64-baseline`
(opus recompiled): the produced .node imports no VCRUNTIME140.dll and no
api-ms-win-crt-* — only core Windows system DLLs.

Fixes #8439
2026-08-13 16:21:23 +00:00
roboomp 246dda7f1c fix(natives): static-link win32 MSVC CRT so addon needs no VC++ redist
The shipped win32-x64 pi_natives addon linked the dynamic MSVC CRT (/MD)
and imported VCRUNTIME140.dll from the Visual C++ Redistributable, which
is absent on a clean Windows install. LoadLibrary of the extracted .node
then failed with error 126 ("The specified module could not be found"),
so omp could not start after a fresh `irm install.ps1 | iex`.

Static-link the CRT for the win32 addon: +crt-static for rustc (crate
BUILD select) plus the static_link_msvcrt cc feature enabled for win32 in
the native_addon transition, so its C deps (opus/cmake, tree-sitter,
blake3, ring) compile /MT in lock-step. The rebuilt .node imports only
core Windows system DLLs -- no VCRUNTIME140.dll, no api-ms-win-crt-*.

Fixes #8439
2026-08-13 16:00:33 +00:00
roboomp bb0314a5a1 fix(tui): stopped direct herdr pane flicker
Kept direct Herdr panes on the host-safe in-place resize path so streaming redraws no longer clear and replay pane scrollback.

Updated the resize regression, stress scenario, renderer docs, and changelog.

Fixes #8431
2026-08-13 14:34:03 +00:00
can1357 2d512cb253 refactor: generalized thinking loop guard for multiple model families
- Generalized thinking loop guard and helper functions to support Gemini, DeepSeek, and Grok model families.
- Replaced `withGeminiThinkingLoopGuard` and related Gemini-specific symbols with generalized counterparts.
- Removed deprecated `enableGeminiThinkingLoopGuard` options and associated tests.
- Updated test suites and agent session logic to use the generalized thinking loop guard and model family tokens.
2026-08-13 06:15:00 +02:00
can1357 dc7784e4b4 feat(nix): implemented wayland screencast support and restructured package builder
- Added `withWaylandScreencast` package override option to selectively link libpipewire for Wayland screencast support.
- Refactored Nix package builder structure to eliminate wrapper scripts and directly install binary outputs.
- Updated home-manager module description to clarify declarative settings file behavior and symlink rules.
2026-08-13 05:25:22 +02:00
can1357 e8eed95130 feat(coding-agent): introduced fine grained per agent advisor configuration
- Replaced blanket subagent advisor global settings with fine-grained per-agent configuration and frontmatter support.
- Added dashboard keybindings and inline override editors for managing agent advisor patterns.
- Implemented settings migration logic to convert legacy global options into per-agent settings.
- Updated session persistence and execution layers to restore and enforce per-agent advisor behaviors.
2026-08-13 04:59:50 +02:00
can1357 61e12988fe Merge PR #8283: fix(coding-agent): skip idle mid-turn persistence waits (@ethancawse) 2026-08-13 02:00:50 +02:00
can1357 92b1aa9854 Merge PR #8159: fix(coding-agent): lowercase the hindsight project label (@alvorithm) 2026-08-13 02:00:50 +02:00
can1357 fbaddcb081 Merge PR #8359: docs: reconcile session dir layout with the 17.2.9 hashed-scheme revert (@tenequm) 2026-08-13 01:14:55 +02:00
can1357 3bc6269dbe Merge PR #8339: fix(coding-agent): normalize WebP for STB-backed models (@ethancawse) 2026-08-13 01:14:54 +02:00
can1357 f40684bd6f Merge PR #8166: docs(collab): clarify relay self-hosting availability (@roboomp) 2026-08-13 01:14:50 +02:00
can1357 00cabe5513 Merge PR #8144: fix(extensions): preserve unsafe schemas during plugin install (@roboomp) 2026-08-13 01:14:49 +02:00
tenequm 753b7e7b15 docs: reconcile session dir layout with the 17.2.9 hashed-scheme revert 2026-08-12 21:03:00 +01:00
Ethan Cawse 76b1169858 fix(coding-agent): drop stale native image replay 2026-08-12 09:16:57 -04:00
Ethan Cawse 92f0ad71f4 docs(coding-agent): define message-end isolation 2026-08-11 23:05:59 -04:00
Shawn Koh ef803e3880 fix(tui): rebuild direct HerdR scrollback from source 2026-08-12 10:14:41 +08:00
Shawn Koh 9e73b89621 fix(tui): preserve scrollback across multiplexer width changes 2026-08-12 10:14:40 +08:00
can1357 8fed93632a refactor(ai): rebranded openrouter identifiers and user agent to omp
- Updated user agent and openrouter titles in packages/ai from Oh-My-Pi to omp.
- Integrated getOpenRouterHeaders into image generation tool requests in packages/coding-agent.
- Updated provider documentation and test assertions to reflect the rebrand.
2026-08-11 15:28:28 +02:00
can1357 9649bc4dfa Merge PR #8230: fix(coding-agent): emit clap-compatible CI=true and honor PI_BASH_NO_CI (@roboomp) 2026-08-11 15:15:44 +02:00
can1357 f460e6dd71 Merge PR #7703: fix: discover workspace AGENTS files (@listellm) 2026-08-11 15:07:43 +02:00
roboomp 43f30b8a83 fix(coding-agent): emit clap-compatible CI=true and honor PI_BASH_NO_CI
The per-command non-interactive env hardcoded an unguarded CI=1, which clap parses as a strict boolean and rejects (breaking e.g. tauri android build). It also overrode the session env, so the documented PI_BASH_NO_CI opt-out never reached bash-tool commands.

buildNonInteractiveEnv now injects CI=true and strips CI when PI_BASH_NO_CI/CLAUDE_BASH_NO_CI is set, matching buildSpawnEnv in procmgr.ts.

Fixes #8229
2026-08-11 09:01:33 +00:00
roboomp 33848c9d77 docs(collab): clarified relay distribution status
Documented that the hosted Go relay has no published source or standalone binaries, and linked the repository's WebSocket-only local protocol relay with its startup command and limitations.

Fixes #8165
2026-08-10 14:37:54 +00:00
Álvaro Tejero Cantero 2a0774fafd fix(coding-agent): lowercase the hindsight project label
projectLabel() basenames the primary checkout root to build the Hindsight
`project:` tag, and it preserved case. Hindsight matches tags literally,
so a checkout at ~/code/General retained and recalled under
`project:General` while every other client of the same bank used
`project:general`. One repository then owns two scopes that never meet:
recall filters on the session's own tag, so neither side sees the other's
facts, and consolidation treats them as unrelated projects. A live bank
measured 581 facts stranded under a case variant on 2026-08-09.

Fold the case at the source, after the primary-root resolution added for
issue #2232, so the worktree axis and the casing axis collapse together.
Per-project bank ids lowercase for the same reason.

- hindsight/bank.ts: lowercase the resolved basename, and document why.
- test/hindsight-bank.test.ts: cover the fold on plain paths, on a
  mixed-case checkout root, and on a linked worktree of one. The non-repo
  fallback assertion now folds its own mkdtemp suffix.
- docs/memory.md: state how the project label is derived.
- CHANGELOG: Fixed entry under Unreleased.
2026-08-10 13:21:02 +02:00
roboomp e414585155 fix(extensions): preserved unsafe schemas during install
- Lifted legacy Type.Unsafe documents into callable omptype schemas so Optional and Object composition preserve validation and required fields.
- Ran installed extension factories against the normal throwaway loader surface before accepting a plugin install.
- Added regression coverage and documented the stronger rollback gate.

Fixes #8143
2026-08-10 07:37:28 +00:00
can1357 f87a8ecc19 Merge PR #7994: fix(session): surface empty handoff generation as failure not cancel (@roboomp) 2026-08-08 19:38:32 +02:00
can1357 2728675ba3 docs: documented provider compatibility flags and specific quirks
- Added comprehensive reference documentation for OpenAI compatibility flags, reasoning levels, and tool handling policies.
- Detailed provider-specific quirks covering stream handling, authentication, quotas, and catalog model behaviors.
- Updated provider endpoint constraints with cross-references to the new compatibility and quirks references.
2026-08-08 16:18:17 +02:00
roboomp 7914e7c451 fix(session): preserved harness handoff abort reasons
Harness-initiated session aborts previously cancelled compaction before the handoff reason was recorded. The handoff catch then saw only an aborted signal and replaced the harness reason with "Handoff cancelled".

Abort the handoff first with the session reason, forward caller-signal reasons, and reserve "Handoff cancelled" for direct or unreasoned cancellation. Add a regression test for an in-flight handoff aborted through AgentSession.abort.

Fixes #7993
2026-08-08 09:02:28 +00:00
can1357 2ee9943563 refactor: unify builtins in one place 2026-08-08 10:19:25 +02:00
can1357 39477ba39b fix(debug): shortened js-debug install hint to the repo download
- Runtime error now just says to download vscode-js-debug from its GitHub repo;
  tarball recipe, extract path, env var, and Mason detail stay in docs/tools/debug.md.
2026-08-07 14:50:17 +02:00
can1357 37849df3e4 Merge PR #7759: docs(coding-agent): clarify js-debug-adapter install is not an npm package (@fcastillo18) 2026-08-07 13:39:54 +02:00
can1357 b57c51daeb Merge PR #7881: docs(agent-hub): document subagent observability (@roboomp) 2026-08-07 13:39:54 +02:00
roboomp 8d6ed17811 fix(computer): lazily requested wayland input permission
Deferred libei and RemoteDesktop setup until the first native input operation. Read-only capability, window, display, and AX calls no longer request keyboard or pointer access.

Used non-persistent portal grants and retained the portal session so backend teardown closes it explicitly.

Fixes #7884
2026-08-07 06:50:16 +00:00
roboomp ede549695e docs(agent-hub): documented subagent observability
Added a canonical guide for the Agent Hub roster, transcript, steering, revive, kill, persisted-agent, and advisor workflows.

Linked the guide from task-agent, TUI, keybinding, collaboration, advisor, and website documentation.

Fixes #7880
2026-08-07 05:39:05 +00:00
Franklin Castillo 3381b4305a docs(coding-agent): correct js-debug runtime + extraction path per review
Two wording fixes for PR #7759 review:
- debug.md no longer requires `node` on PATH; documents that the adapter
  runs under node if available, else the omp Bun host, matching
  resolveDefaultJsDebugAdapter()'s process.execPath fallback.
- The unavailable message and CHANGELOG now say "extract under
  ~/.local/opt" (not "to ~/.local/opt/js-debug/"), so the archive's
  js-debug/src/dapDebugServer.js lands at the auto-discovered path
  instead of one directory too deep.

Refs #7757.
2026-08-05 18:28:28 -04:00
Franklin Castillo 3afc87926b docs(coding-agent): clarify js-debug-adapter install is not an npm package
The "js-debug-adapter not available" message and the debug doc only
mentioned Mason and JS_DEBUG_DAP_SERVER, leaving users to try
`npm i -g js-debug-adapter`, which 404s: js-debug-adapter is the omp
adapter id, not an installable package. Surface the supported installs
(Mason; the standalone vscode-js-debug release tarball extracted to
~/.local/opt/js-debug/, which resolveJsDebugServerPath already
auto-discovers; or JS_DEBUG_DAP_SERVER) in both the error message and
docs/tools/debug.md.

Refs #7757.
2026-08-05 17:59:59 -04:00
can1357 ee026fa2e3 Merge PR #7704: fix(natives): gate wayland capture capability on pipewire feature (@roboomp)
# Conflicts:
#	crates/pi-natives/src/desktop/linux/wayland/mod.rs
2026-08-05 22:16:16 +02:00
can1357 65132b3373 fix(computer): correct Wayland recovery guidance 2026-08-05 22:15:47 +02:00
can1357 307ba8b9f3 Merge PR #7711: fix(computer): correct Wayland foreground delivery (@roboomp) 2026-08-05 22:15:47 +02:00
can1357 e9888367d1 refactor: migrated packages to internal utility modules and removed external dependencies
- Implemented in-house, zero-dependency utility modules in `pi-utils` covering DOM manipulation, markdown parsing, templating, browser automation helpers, and terminal buffers.
- Migrated packages across the repository to consume the new internal utilities and `omptype` schema validators instead of external dependencies.
- Removed multiple external runtime and development dependencies including Zod, Marked, LRU cache, Turndown, and Puppeteer browser packages.
2026-08-05 13:39:09 +02:00
roboomp ea887b00a9 fix(computer): corrected Wayland foreground delivery
Reported compositor-limited per-window input before reaching the AT-SPI focus path and stopped advertising foreground delivery on Wayland.

Removed the obsolete AT-SPI window-raise helper and updated public recovery guidance.

Fixes #7702
2026-08-05 10:57:25 +00:00
Listell McLean 3d153ba419 fix: preserve AGENTS boundary behavior
- 🛠️ Keep home-level context when no repository root exists.\n- ✅ Exclude home context only for nested repositories.\n- 🧪 Cover repositories whose root is above home.
2026-08-05 11:51:30 +01:00
roboomp dc4725e626 fix(natives): gate wayland capture capability on pipewire feature
WaylandBackend::capabilities() hardcoded capture:true, but the PipeWire
screencast path is compiled only under the wayland-pipewire feature, which
is off by default and excluded from shipped Bazel addons (crate_features=[]).
Released builds therefore advertised capture the binary could never do:
every capture() call returned CaptureFailed, and callers trusting
capabilities() retried into a guaranteed failure.

Gate the capture flag and capture_permission on cfg!(feature =
"wayland-pipewire") so the report matches the compiled-in path, and align
docs/computer-use.md with what shipped builds actually support.

Fixes #7700
2026-08-05 10:45:57 +00:00
Listell McLean 37825fbd6c fix: discover parent AGENTS files
- 🛠️ Continue through workspace parents under home.\n- ✅ Preserve repository boundaries outside home.\n- 🧪 Cover nested, boundary, and hidden paths.
2026-08-05 11:30:03 +01:00
can1357 b0a94a8fc0 chore: cleanup 2026-08-05 03:07:16 +02:00
can1357 18e6df18a6 Merge PR #7621: fix(coding-agent/eval): remove per-call model override from agent() (@szavadsky) 2026-08-05 01:12:01 +02:00
can1357 5073602977 docs(mcp): clarify translated config precedence 2026-08-05 01:11:58 +02:00
can1357 e50b989e45 Merge PR #7654: fix(mcp): propagate enabled flag from translated tool configs (@roboomp) 2026-08-05 01:11:57 +02:00
can1357 ca71858545 Merge PR #7497: fix(tool): exempt piped-stdin stages from bash interceptor (@roboomp) 2026-08-05 01:11:55 +02:00