Commit Graph

31310 Commits

Author SHA1 Message Date
Vincent Koc
a80ecb9937 fix(plugin-sdk): align root alias scoped sdk map 2026-04-14 17:39:36 +01:00
Vincent Koc
604a5e07d0 perf(cli): lazy-resolve daemon stop fallback port 2026-04-14 17:39:21 +01:00
Gustavo Madeira Santana
f190bf0a07 Fix Matrix media alias normalization 2026-04-14 12:36:13 -04:00
Vincent Koc
7b05b4b68e fix(channels): share plugin module jiti cache helper 2026-04-14 17:35:44 +01:00
Vincent Koc
f8610da4c5 perf(cli): narrow daemon and gateway cold paths 2026-04-14 17:35:26 +01:00
Vincent Koc
9843a4f1fc fix(plugins): share source public surface resolver 2026-04-14 17:33:15 +01:00
Vincent Koc
f12d6bf3bb fix(plugins): share public surface source extensions 2026-04-14 17:29:44 +01:00
Ayaan Zaidi
1b73ce9193 test(wizard): use typed provider stubs 2026-04-14 21:57:13 +05:30
Vincent Koc
8d3bd4859e perf(whatsapp): add doctor contract fast path 2026-04-14 17:27:07 +01:00
Vincent Koc
87eac5377c fix(plugins): share runtime boundary alias builder 2026-04-14 17:26:45 +01:00
Vincent Koc
2f29a58b4e fix(plugin-sdk): share facade activation check candidate loader 2026-04-14 17:24:33 +01:00
slepybear
450c3a8ed2 fix(security): include Matrix avatar params in sandbox media normalization + preserve mxc:// URLs + log gmail watcher stop failures [AI-assisted] (#64701)
Merged via squash.

Prepared head SHA: 54de3f019b
Co-authored-by: slepybear <108438815+slepybear@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-14 12:22:29 -04:00
Ayaan Zaidi
daabbce9a0 refactor(openai): import base URL helpers directly 2026-04-14 21:52:16 +05:30
Vincent Koc
8fa63ac380 fix(plugins): share bundled public surface jiti cache scope 2026-04-14 17:20:59 +01:00
Vincent Koc
5c28cfbf09 perf(channels): add lightweight doctor contract APIs 2026-04-14 17:20:46 +01:00
Onur Solmaz
27b14124d0 Release: move npm dist-tag ops private (#66660) 2026-04-14 18:18:27 +02:00
Vincent Koc
41d649c31a fix(plugins): share runtime boundary jiti cache helper 2026-04-14 17:17:58 +01:00
Ayaan Zaidi
8b404eccff test(openai): cover base URL helpers 2026-04-14 21:45:34 +05:30
Ayaan Zaidi
3624dda67d refactor(openai): isolate base URL helpers 2026-04-14 21:45:34 +05:30
Vincent Koc
b2b3bf35cd fix(openai): reuse canonical responses stream hooks 2026-04-14 17:14:53 +01:00
Vincent Koc
eea7ba5345 fix(plugin-sdk): share canonical stream hook families 2026-04-14 17:13:31 +01:00
Tianworld
0bf3b84669 fix: avoid setup crash on missing provider ids (#66649) (thanks @Tianworld)
* fix(wizard): avoid trim crash on missing provider ids

Guard provider id comparisons in setup-mode model selection policy so setup does not crash when plugin provider metadata is missing an id.

Fixes #66641
Fixes #66619

Made-with: Cursor

* test: fix wizard provider-id regression coverage

* fix: avoid setup crash on missing provider ids (#66649) (thanks @Tianworld)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 21:41:47 +05:30
Vincent Koc
60ea8e9a1c fix(plugins): share bundled capability jiti cache path 2026-04-14 17:09:45 +01:00
Vincent Koc
34afe10b00 perf(config): skip duplicate channel legacy rule loads 2026-04-14 17:08:22 +01:00
Vincent Koc
f366c38df8 fix(plugins): share loader jiti cache overrides 2026-04-14 17:07:41 +01:00
Jordan Brant Baker
b4e4f96fd5 fix: restore embedded-run param forwarding (#62675) (thanks @hexsprite)
* fix: forward optional params dropped at the runEmbeddedAttempt call site

runEmbeddedPiAgent in pi-embedded-runner/run.ts hand-enumerates ~85 fields
when calling runEmbeddedAttempt({...}). Several optional fields on
RunEmbeddedPiAgentParams were added to the type and to attempt.ts (the
consumer) but were never wired at this specific call site. Because every
field is declared as ?: optional on EmbeddedRunAttemptParams, TypeScript
does not flag the missing fields and the attempt silently receives
undefined for each.

Four fields were affected:

- toolsAllow (#58504, #62569): cron's --tools allow-list. Persisted in
  jobs.json by the CLI, forwarded by cron/isolated-agent/run-executor.ts
  to runEmbeddedPiAgent, but dropped here. Result: provider request
  ships the full tool catalog on every cron run regardless of toolsAllow,
  defeating the ~95% input-token reduction documented in #58504 and the
  --tools restriction documented in docs/automation/cron-jobs.md:85.

- disableMessageTool: cron/isolated-agent/run-executor.ts:164 sets it
  from toolPolicy.disableMessageTool, derived at run.ts:110 as
  `params.deliveryContract === "cron-owned" ? true : params.deliveryRequested`.
  Every cron-owned delivery (the default per docs) is supposed to disable
  the message tool so the runner owns the final delivery path. Without
  forwarding, the agent can call messaging tools mid-cron and cause
  duplicate or wrong-channel sends.

- requireExplicitMessageTarget: cron/isolated-agent/run-executor.ts:163
  sets it from toolPolicy.requireExplicitMessageTarget. Has a fallback at
  attempt.ts:568-569 to `?? isSubagentSessionKey(params.sessionKey)`, so
  non-subagent crons silently get false instead of the intended value.

- internalEvents: agents/command/attempt-execution.ts:478 passes it via
  params.opts.internalEvents. Different caller path from cron, but the
  same drop point. Internal events array silently dropped before reaching
  the consumer at attempt.ts:1480.

The fix is four lines in the runEmbeddedAttempt({...}) call, immediately
after the bootstrapContextMode/bootstrapContextRunKind lines added by
PR #62264 (which fixed two more fields with the identical pattern at the
same call site).

A regression test (run.attempt-param-forwarding.test.ts) covers all six
optional fields shown to have been bitten by this class of bug at this
seam. The next ?: optional field added to RunEmbeddedPiAgentParams without
wiring at the runEmbeddedAttempt call site will fail a test instead of
silently shipping broken — addressing the missing-guardrail concern PR
#60776's writeup explicitly noted.

Verified locally: 6/6 forwarding tests pass, 258 pi-embedded-runner/run*
tests pass, 176 cron/isolated-agent tests pass, oxlint and tsgo deltas
versus origin/main are zero.

Fixes #62569

* test: distill param forwarding guardrails

* fix: restore embedded-run param forwarding (#62675) (thanks @hexsprite)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 21:36:14 +05:30
Vincent Koc
3bb9e5f580 fix(plugin-sdk): share facade loader jiti cache plumbing 2026-04-14 17:03:44 +01:00
Vincent Koc
0d2a4b4fec fix(plugin-sdk): reuse cached plugin jiti loader helper 2026-04-14 17:01:52 +01:00
Vincent Koc
a7436c8b4a perf(plugins): split provider hook runtime seam 2026-04-14 17:01:05 +01:00
Vincent Koc
905b18530f fix(plugins): share cached plugin jiti loader config 2026-04-14 17:00:24 +01:00
Agustin Rivera
37d5971db3 Align QMD memory reads with canonical memory paths (#66026)
* fix(memory): align qmd read paths

Co-authored-by: zsx <git@zsxsoft.com>

* fix(memory): add qmd exact-path read fast path

* fix(memory): tighten qmd read-path guards

* changelog: note QMD memory_get canonical-path restriction (#66026)

---------

Co-authored-by: zsx <git@zsxsoft.com>
Co-authored-by: Devin Robison <drobison@nvidia.com>
2026-04-14 09:58:27 -06:00
Vincent Koc
b4e38a7eb0 fix(plugins): share capability vitest shim aliases 2026-04-14 16:55:30 +01:00
Vincent Koc
30dcebae80 fix(minimax): share region auth builders 2026-04-14 16:50:20 +01:00
Vincent Koc
546edcaa03 perf(gateway): trim hooks import graph 2026-04-14 16:48:36 +01:00
Vincent Koc
66701d5a1e fix(plugin-sdk): share opencode catalog auth helper 2026-04-14 16:48:02 +01:00
Vincent Koc
f95c706298 perf(cli): lazy-load daemon service runners 2026-04-14 16:43:48 +01:00
Vincent Koc
25efa8cf81 fix(minimax): share provider hook bundle 2026-04-14 16:41:46 +01:00
Vincent Koc
36f4913e30 fix(openai): share responses transport hooks 2026-04-14 16:40:05 +01:00
Vincent Koc
4e46488d1b perf(cli): lazy-load gateway registration deps 2026-04-14 16:37:48 +01:00
Vincent Koc
e5c38290a6 fix(plugin-sdk): share anthropic replay hook constants 2026-04-14 16:37:29 +01:00
Vincent Koc
4c15f1310b fix(plugin-sdk): share canonical replay hook families 2026-04-14 16:34:09 +01:00
Vincent Koc
20bfa3cce3 perf(test): reuse control-ui device identities 2026-04-14 16:32:14 +01:00
Vincent Koc
356110c52f fix(google): share gemini provider hook bundle 2026-04-14 16:30:32 +01:00
Vincent Koc
a14f7c5c6d fix(openai): share responses stream hook family 2026-04-14 16:28:58 +01:00
Vincent Koc
60961a7f55 fix(openai): share responses transport defaults 2026-04-14 16:25:30 +01:00
Vincent Koc
9c42e6424d fix(plugins): share tool-stream defaults and align xai sdk imports 2026-04-14 16:23:40 +01:00
Vincent Koc
50e5f95cc6 perf(test): bypass fs in doctor config flow tests 2026-04-14 16:18:48 +01:00
Vincent Koc
2f378ecd1d perf(test): lazy-load shared runtime setup 2026-04-14 16:18:48 +01:00
Vincent Koc
5237a149ff fix(plugins): drop stale provider hook dead code 2026-04-14 16:16:34 +01:00
Vincent Koc
3f8c6dd341 fix(openrouter): reuse shared replay hooks 2026-04-14 16:15:22 +01:00