Commit Graph

57839 Commits

Author SHA1 Message Date
Vincent Koc
801df108f0 fix(cli): bound exec approvals stdin 2026-06-07 04:08:13 +02:00
Vincent Koc
51b64b8198 fix(proxy): stream debug capture bodies 2026-06-07 04:06:26 +02:00
Vincent Koc
b804d20da7 refactor(test): share channel contract file discovery 2026-06-07 03:59:03 +02:00
Vincent Koc
2b7d7841d2 fix(test): bound prompt capture bodies 2026-06-07 03:55:48 +02:00
Peter Steinberger
0551af92b0 fix(gemini): accept empty grounding metadata
Fixes #88528.

Gemini web_search now accepts successful Google Search grounding responses that include candidate text and an empty `groundingMetadata` object without `groundingChunks`, returning wrapped content with `citations: []` instead of throwing `Gemini API error: malformed JSON response`.

Proof: live direct Gemini API reproduced the empty-grounding response shape; live OpenClaw provider failed before and succeeded after; `node scripts/run-vitest.mjs extensions/google/web-search-provider.test.ts`; `pnpm lint:web-search-provider-boundaries`; targeted oxfmt check; `git diff --check`; autoreview clean.

CI note: admin bypass used for unrelated failures in memory-core/device-pair/scripts, an existing core architecture cycle, and gateway-watch; PR diff touched only the two Gemini files.
2026-06-06 18:54:18 -07:00
Vincent Koc
344db67a00 fix(test): flush prompt probe gateway logs 2026-06-07 03:52:45 +02:00
Vincent Koc
08e3846470 fix(test): close otel receiver sockets 2026-06-07 03:49:48 +02:00
Vincent Koc
dbde27af4b fix(test): flush static artifact logs 2026-06-07 03:46:44 +02:00
alkor2000
2bd1c7b1c9 fix(vertex): route eu/us multi-region to .rep.googleapis.com host
Fixes #89891.

Route Google Vertex `eu` and `us` multi-region locations to the REP hosts used by `@google/genai`, and keep native Vertex endpoint trust exact to those two hosts.

Verification before merge:
- Live 1Password-backed GCP service-account probe: `eu-aiplatform.googleapis.com` returned Google HTML 404; `aiplatform.eu.rep.googleapis.com` reached Vertex JSON `PERMISSION_DENIED` with the same token.
- `node scripts/run-vitest.mjs src/agents/provider-attribution.test.ts extensions/google/vertex-multi-region-host.test.ts extensions/google/api.test.ts` passed.
- `git diff --check` passed.
- `autoreview --mode branch --base origin/main` clean.
- Real behavior proof passed on latest head.
- ClawSweeper re-review: ready for maintainer review, proof sufficient.

CI note: merged with maintainer approval despite red CI because the failures were unrelated to this PR and reproduced on untouched paths: `extensions/acpx/doctor-contract-api.ts`, `extensions/device-pair/notify.ts`, script lint, and existing architecture/gateway-watch checks.

Co-authored-by: alkor2000 <200923177@qq.com>
2026-06-06 18:39:49 -07:00
Peter Steinberger
3f5e001844 fix: store memory-core dreams state in sqlite (#91056) 2026-06-06 18:38:45 -07:00
Vincent Koc
1222f7a6bc fix(test): wait for cross os command logs 2026-06-07 03:35:54 +02:00
Vincent Koc
c4bc366a4c fix(test): clean up codex bind startup failures 2026-06-07 03:31:12 +02:00
Vincent Koc
50437d02c1 fix(test): clean up codex harness startup failures 2026-06-07 03:28:56 +02:00
Vincent Koc
61bb7d5523 fix(test): clean up cli backend live startup failures 2026-06-07 03:27:37 +02:00
Vincent Koc
3060ebf052 fix(test): restore tool search gateway e2e env 2026-06-07 03:24:24 +02:00
Vincent Koc
ecec1b9a59 fix(test): clean up acp live startup failures 2026-06-07 03:21:46 +02:00
Vincent Koc
7f885d5a39 fix(test): restore mcp code mode e2e env 2026-06-07 03:17:46 +02:00
Vincent Koc
3a6696951e fix(test): close rpc rtt websocket on failure 2026-06-07 03:14:57 +02:00
Vincent Koc
1d371eb5ae fix(qa): stop queued gateway rpc calls 2026-06-07 03:12:03 +02:00
Vincent Koc
e75d7cda8f fix(test): fail live gateway startup skips 2026-06-07 03:09:19 +02:00
Vincent Koc
919befbbb6 fix(qa): gate character eval on suite summary 2026-06-07 03:04:53 +02:00
Vincent Koc
d034e9698a fix(qa): trust parity scenario rows for metrics 2026-06-07 02:59:19 +02:00
Vincent Koc
51848de462 fix(test): gate package telegram on summary failures 2026-06-07 02:57:24 +02:00
Vincent Koc
e12141fa9f fix(qa): gate live transport exits on summaries 2026-06-07 02:53:50 +02:00
Vincent Koc
6d2566682a fix(qa): fail suite on summary scenario failures 2026-06-07 02:49:02 +02:00
Vincent Koc
154ee9fd23 fix(test): require source summary scenario evidence 2026-06-07 02:43:27 +02:00
Vincent Koc
0a37f797f2 fix(test): validate gauntlet qa summary counts 2026-06-07 02:41:39 +02:00
Vincent Koc
b45e3028e0 fix(test): require kitchen sink install rss proof 2026-06-07 02:38:58 +02:00
Matt H
983b65b0e0 feat(parallel): add free Parallel Search MCP as the zero-config default web_search provider (#90849)
* feat(parallel): add free Parallel Search MCP as the zero-config default web_search provider

Registers two Parallel web_search providers in the parallel plugin:
- parallel-free: keyless, always the free hosted Search MCP (search.parallel.ai/mcp);
  the zero-config default (autoDetectOrder 76) so web_search works with no key.
- parallel: the existing paid v1 REST API (requires PARALLEL_API_KEY).

Shared query/result normalization lives in parallel-search-normalize.ts (used by both
transports); a minimal Streamable-HTTP JSON-RPC client (parallel-mcp-search.runtime.ts)
backs the free path. UI brands the tool-call chip 'Parallel Web Search' on the free path
via a searchTransport marker; setup default mirrors runtime auto-detect.

* chore(parallel): register parallel-free in doctor legacy-web-search owners

parallel-free is a bundled web_search provider, so add it to the doctor's
exhaustive BUNDLED_LEGACY_WEB_SEARCH_OWNERS map (owned by the parallel plugin)
and the NON_MIGRATED set — it has no legacy tools.web.search.* shape, so this is
a no-op for migration, matching paid parallel/tavily. Keeps the registry
complete. (Spotted by diffing the earlier local WIP branch.)

* docs(parallel): restore concise frontmatter summary

* docs(parallel): clearer, professional copy; drop v1 REST jargon and UI-label claim

- Frame the two providers as Parallel Search (Free) vs paid Parallel Search;
  remove internal 'v1 REST API' wording.
- Remove conversational/overstated phrasing ('out of the box for everyone').
- Remove the 'labeled Parallel Web Search in the UI' claim (only renders in the
  Control UI, not the TUI). Scope the searchTransport code comment accordingly.

* revert(parallel): drop the "Parallel Web Search" tool-call branding

The label only rendered in the Control UI, never the TUI (a separate renderer
via src/agents/tool-display.ts). Extending it would put provider-specific
labeling into a shared/core display path, against the plugin-agnostic-core rule.

Reverts the Control-UI labelOverride wiring and removes the now-orphaned
searchTransport marker from the free provider's result. The result still carries
provider: "parallel-free".

* fix(parallel): cap free Search MCP session_id at its 100-char tools/list contract

The free parallel-free provider reused the paid ParallelSearchSchema, whose
session_id allows 1000 chars, but the live Search MCP tools/list schema caps
session_id at 100. Parameterize normalizeParallelSessionId(value, maxLength);
the free path passes 100 (paid keeps 1000) and advertises the tighter bound in
its own ParallelFreeSearchSchema. An over-limit caller id is dropped and a
fresh in-contract id is minted. Updates tests and docs accordingly.
2026-06-06 17:36:28 -07:00
Vincent Koc
8516f37563 fix(scripts): reject loose run env kill delay 2026-06-07 02:35:08 +02:00
Vincent Koc
e28dd6dd6e fix(test): reject loose startup memory limits 2026-06-07 02:33:15 +02:00
Vincent Koc
b32d769069 fix(test): require live shard file evidence 2026-06-07 02:30:18 +02:00
Vincent Koc
824d5d44cd fix(test): require advisory cli provider skips 2026-06-07 02:23:27 +02:00
Vincent Koc
e12136a7bb fix(test): require strict codex models proof 2026-06-07 02:21:23 +02:00
Vincent Koc
1ce84627e8 fix(test): reject loose release journey limits 2026-06-07 02:11:49 +02:00
Vincent Koc
4dae3b3071 fix(ci): require kova partial evidence 2026-06-07 02:10:23 +02:00
Vincent Koc
5378cf527e fix(test): require live model successes 2026-06-07 02:08:40 +02:00
Vincent Koc
ba46d00589 fix(test): fail secret proof signal exits 2026-06-07 02:06:21 +02:00
Vincent Koc
b6cbb4b861 fix(test): fail acp bind auth errors 2026-06-07 02:04:18 +02:00
Vincent Koc
cb5c513d58 fix(test): fail acp bind missing transcript 2026-06-07 02:02:12 +02:00
Vincent Koc
029e8f0153 fix(test): retry cli backend codex timeouts 2026-06-07 02:00:12 +02:00
Peter Steinberger
05c3325b0a fix: store acpx process state in sqlite
Move ACPX gateway identity and live process leases into SQLite-backed plugin state. Add doctor migration for legacy runtime state and preserve process cleanup identity checks across the storage move.
2026-06-06 16:49:47 -07:00
Vincent Koc
157da3621a fix(gateway): close slow direct response consumers 2026-06-07 01:45:47 +02:00
Vincent Koc
ee7cafafeb fix(test): retry codex harness live timeouts 2026-06-07 01:40:44 +02:00
Vincent Koc
172c3f6064 fix(gateway): classify mcp json-rpc failures 2026-06-07 01:35:40 +02:00
Vincent Koc
46e12e7aff fix(gateway): cap mcp loopback tool cache 2026-06-07 01:27:55 +02:00
Vincent Koc
5f7cfd6451 fix(test): require perf budget source 2026-06-07 01:24:10 +02:00
Vincent Koc
bb0384e884 fix(test): require gateway smoke history evidence 2026-06-07 01:21:49 +02:00
Vincent Koc
e74d98bd65 fix(ci): fail release qa verifier closed 2026-06-07 01:17:58 +02:00
Vincent Koc
2accfeedc7 fix(test): require resource evidence in perf scripts 2026-06-07 01:11:24 +02:00