Commit Graph

16383 Commits

Author SHA1 Message Date
Lumen Radley d316fb54fd fix(natives): correct miniaudio layouts on Linux ARM64 2026-07-31 18:54:42 +02:00
can1357 b990e84a96 fix(catalog): dropped unconfirmed GMI Cloud cache-read price
GMI's launch post documents only $0.14/$0.28 per 1M for DeepSeek-V4-Flash;
the $0.028 cache-read figure was back-derived from OpenRouter's discounted
route and has no direct api.gmi-serving.com source. Keep cacheRead at 0
until GMI confirms cached-token billing, so usage cost reporting is not
overstated.
2026-07-31 18:46:14 +02:00
can1357 a87d4ba459 Merge PR #5884: fix(catalog): corrected GMI Cloud seed metadata (@definitelynotguru) 2026-07-31 18:44:40 +02:00
can1357 4a7dc22e99 fix(catalog): corrected GMI Cloud seed to direct-tariff metadata
- Set deepseek-ai/DeepSeek-V4-Flash cost to GMI's direct api.gmi-serving.com
  tariff ($0.14/$0.28 per 1M, cache read $0.028) per GMI's DeepSeek V4
  launch post, instead of values inherited from other providers.
- Documented that mapWithBundledReference keeps the seed's cost/reasoning/
  thinking at runtime: /v1/models discovery only overrides the model ID set
  and context/max-token limits, so the seed must carry real GMI values.
- Regenerated models.json.
2026-07-31 18:43:34 +02:00
can1357 fc701f9af0 Merge PR #5884: feat(catalog,ai): add GMI Cloud provider (@definitelynotguru) 2026-07-31 18:40:37 +02:00
can1357 685311807c fix(catalog,ai): seeded GMI Cloud default model into bundled catalog
- Added GMI_CLOUD_STATIC_MODELS seed wired into gen:models so a fresh
  install resolves deepseek-ai/DeepSeek-V4-Flash synchronously at boot,
  before async /v1/models discovery fires; live discovery stays
  authoritative and replaces the seed.
- Regenerated models.json with the seeded gmi-cloud slice.
- Dropped the GeneratedProvider cast now that gmi-cloud is bundled.
- Moved gmi-cloud to the end of the /login provider order.
- Moved changelog entries from released 17.0.3 sections to Unreleased.
- Added a regression test asserting the seed covers the descriptor's
  defaultModel.
2026-07-31 18:40:09 +02:00
definitelynotguru 2c61c373b7 feat(catalog,ai): add GMI Cloud provider
Add the gmi-cloud chat-model provider, an OpenAI-compatible inference
gateway at https://api.gmi-serving.com/v1. Wired per the adding-a-provider
contract: a createSimpleOpenAICompletionsOptions helper and catalog entry
in pi-catalog, plus a registry definition with an API-key paste login in
pi-ai. Dynamic model discovery via /v1/models; auth falls back to
GMI_API_KEY. defaultModel is deepseek-ai/DeepSeek-V4-Flash.

The providerId is cast to GeneratedProvider until the next gen:models run
seeds gmi-cloud into models.json (same pattern as xai-oauth/vllm).
2026-07-31 18:21:30 +02:00
can1357 61c6e9a80f feat(coding-agent/modes): added file hyperlinks to path status line segments
- Wrap status line path segment labels and worktree names in file hyperlinks.
- Apply hyperlink generation using the project directory and rendered path text.
2026-07-31 00:40:27 +02:00
can1357 25299693c9 feat(hashline): updated grammar and documentation for unified put and cut syntax
- Update Lark grammar to support the unified put, cut, move, and remove operations.
- Update documentation and prompts to reflect canonical inclusive range separators and named register rules.
2026-07-31 00:28:54 +02:00
can1357 652647770e feat(coding-agent): added app.live.toggle keybinding and map display reset to alt+l
- Add the `app.live.toggle` keybinding defaulted to `Ctrl+L` to start or stop live voice mode.
- Remap the default display-reset action (`app.display.reset`) from `Ctrl+L` to `Alt+L`.
- Update the live visualizer to listen for stop keys so the toggle chord terminates active sessions.
2026-07-31 00:20:04 +02:00
can1357 5ea583e413 feat: replaced legacy editing commands with unified put and cut syntax
- Replaced legacy `SWAP`, `INS`, and `PASTE` commands with unified `PUT` and `CUT` hunks across parser, grammar, tokenizer, and test suites.
- Added support for named registers and span paste operations in clipboard and block execution logic.
- Implemented indentation repair and enhanced gap locator formatting for improved patch resilience.
- Updated documentation, system prompts, and session analysis scripts to reflect the new syntax and header shapes.
2026-07-31 00:19:52 +02:00
can1357 55b23864e2 chore: update stats script with paste op 2026-07-30 23:21:40 +02:00
can1357 4df68d6043 fix(ci): serialized native addon builds to avoid kata pod OOM
- 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.
2026-07-30 18:06:49 +02:00
can1357 39880b54e6 fix(natives): backticked XWayland in desktop_x11 doc comments
- 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.
2026-07-30 17:36:31 +02:00
can1357 7a2ced50be fix(build): reverted bun.lock to lockfile format v1 for CI's bun 1.3
- 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.
2026-07-30 17:30:07 +02:00
can1357 df9d9c8899 chore: bump version to 17.2.1 2026-07-30 17:27:05 +02:00
can1357 4c1793b9b7 fix(security): hardened cloud import attribution and comparison honesty
- Failed closed when cloud pulls could not verify the project origin.
- Re-verified configuration attribution on every cloud finding detail.
- Rejected non-repository-relative Codex bundle locations.
- Refused lineage comparisons against incomplete after-scans.
- Preserved diff and working-tree targets when adding path scopes.
- Logged post-publication output failures and recovered persisted status.
- Used Bun.SHA256 directly and reused pi-ai JWT decoding.
- Shortened exported paths in interactive output.
2026-07-30 17:24:07 +02:00
can1357 ab572106cd Merge PR #7048: feat(security): add OMP-native security scan subsystem (@kmccleary3301) 2026-07-30 17:11:06 +02:00
can1357 0ed1d9deed style: formatted desktop_x11 tests per rustfmt 2026-07-30 17:08:34 +02:00
can1357 b238713fad style: formatted merge-pr script per biome 2026-07-30 17:07:48 +02:00
can1357 3803219716 Merge PR #7095: fix(coding-agent): add createEditTool/createWriteTool to legacy pi shim (@roboomp) 2026-07-30 17:05:16 +02:00
can1357 fe33685f55 Merge PR #7090: fix(coding-agent): honor remote llama.cpp/ollama discovery base urls (@roboomp) 2026-07-30 17:05:15 +02:00
can1357 642892ae5c feat(ai/providers): implemented custom cowork transport for anthropic requests
- 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.
2026-07-30 17:02:26 +02:00
roboomp 766ccbf24a fix(coding-agent): add createEditTool/createWriteTool to legacy pi shim
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
2026-07-30 14:36:10 +00:00
can1357 14dc5d4fcc fix(coding-agent/eval): bypassed environment proxies for python bridge calls
- 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.
2026-07-30 16:19:48 +02:00
can1357 499017115f feat: added pr merge script with conventional commit validation
- Add merge script to automate local pull request merges with conventional commit validation.
- Add unit tests verifying conventional commit subject compliance and validation rules.
2026-07-30 16:14:50 +02:00
can1357 b61399580b Merge PR #7086: fix(natives): failed fast on uncapturable rootless xwayland root (@roboomp) 2026-07-30 16:14:03 +02:00
roboomp 6fada0c3ba fix(catalog): preserved Ollama cache path prefixes
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
2026-07-30 13:39:17 +00:00
roboomp fad7e97d53 fix(catalog): scoped Ollama model caches by endpoint
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
2026-07-30 13:31:08 +00:00
roboomp ec2caea840 fix(coding-agent): honor remote llama.cpp/ollama discovery base urls
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
2026-07-30 13:19:41 +00:00
roboomp b059550f0b fix(natives): failed fast on uncapturable rootless xwayland root
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
2026-07-30 12:38:43 +00:00
can1357 8db0228f4d fix(ci): unblocked release run on formatting and chunk watchdog
- 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.
2026-07-30 08:59:03 +02:00
can1357 053dbfa605 fix(ci): stopped mtime prune from gutting extracted bazel repos
- 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.
2026-07-30 08:33:27 +02:00
Kyle McCleary 4337797565 Merge remote-tracking branch 'origin/main' into feat/security-native
# Conflicts:
#	packages/coding-agent/src/tools/index.ts
2026-07-29 23:26:22 -07:00
Kyle McCleary 0b968bbb49 feat(security): integrate Codex Security cloud scans 2026-07-29 23:24:26 -07:00
can1357 c3d1586740 ci: triggered workflows on root dependency file changes
- 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).
2026-07-30 08:17:59 +02:00
can1357 17ea2d65fa docs(infra): reconciled runner sizing docs with burstable scale set
- 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.
2026-07-30 08:16:19 +02:00
can1357 38846a7e96 fix(build): regenerated bun.lock with the pinned bun 1.3.14
- 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.
2026-07-30 08:16:19 +02:00
can1357 3d6b5b7ac8 chore: bump version to 17.2.0 2026-07-30 07:58:50 +02:00
can1357 a4773c0baa refactor(typescript-edit-benchmark): updated mutation plans
- Update benchmark fixtures archive file.
- Adjust mutation plan block sizes and counts in generator script.
- Remove postmortem quit test.
2026-07-30 07:57:55 +02:00
can1357 38ebd30337 chore: update stale tests 2026-07-30 07:49:43 +02:00
can1357 9856f904d7 feat(typescript-edit-benchmark): introduced empirical edit mutation planning
- 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.
2026-07-30 07:45:01 +02:00
can1357 fcddf46e12 infra(scope): configured burstable runner resources and scale-up
- 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.
2026-07-30 07:42:55 +02:00
can1357 e05f229f43 refactor: standardized editing syntax by removing copy and delete operations
- 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.
2026-07-30 07:42:48 +02:00
can1357 b9ae2a3f9b docs(hashline): condensed and clarified instructions in prompt documentation
- Condensed instructions and rule descriptions in `packages/hashline/src/prompt.md`.
- Streamlined formatting examples and anti-patterns for clarity.
- Clarified block operation boundaries and markdown heading section rules.
2026-07-30 07:21:44 +02:00
can1357 aaa1ff4e3f refactor(hashline): restructured Lark grammar rules to reduce complexity
- 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.
2026-07-30 07:21:44 +02:00
can1357 9aada058ee feat(hashline): implemented clipboard operations in hashline engine
- 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.
2026-07-30 07:21:43 +02:00
can1357 52bd191b34 build: optimized Bazel repository and toolchain caching for CI
- Pin Rust toolchain component checksums in MODULE.bazel to enable Bazel's repo contents cache.
- Opt MSVC LLVM tools, XWin sysroot, and Zig repositories into reproducible repo metadata caching.
- Extend GitHub Actions cache paths to include the Bazel repository download and contents cache.
2026-07-30 07:21:43 +02:00
can1357 6b4efa896f feat(coding-agent): implemented oauth credential pin persistence and seeding
- Added hashing utilities and session entry definitions for OAuth credential pins.
- Added session manager methods to append and retrieve credential pins with backdated timestamp support.
- Added credential pin recording after assistant turns and seeding during session restoration.
- Added comprehensive unit tests covering credential pin recording, persistence, and seeding.
2026-07-30 07:21:08 +02:00
can1357 4e5f480f14 feat(metaharness/adapters): implemented interactive cli runner and reporting
- Added comprehensive CLI arguments for thinking levels, timeouts, concurrency, and report formatting.
- Implemented real-time interactive terminal progress rendering and runtime statistics summary.
- Enhanced runner logic with tokenizer-based hashline operation detection and aggregated reporting.
- Added bench:edit script to package configuration and updated default report output paths.
2026-07-30 07:21:08 +02:00