Commit Graph

37464 Commits

Author SHA1 Message Date
Frank Yang
a4e5ede540 docs(changelog): credit chat attachment fix 2026-04-28 12:52:44 +08:00
Frank Yang
18041cb836 fix(gateway): reject spoofed image attachment mimes 2026-04-28 12:52:44 +08:00
samzong
3dae8653eb fix(gateway): reconcile attachment offload rebase 2026-04-28 12:52:44 +08:00
samzong
b63b33adb6 Gateway: reject sandbox-oversized non-image attachments as 4xx 2026-04-28 12:52:44 +08:00
samzong
72d0625251 fix(gateway): keep sandbox-relative MediaPaths and pass workspace context
Root cause: ctx.MediaPaths was overloaded with two incompatible meanings —
sandbox-relative for the agent runtime, host-absolute for host-side
media-understanding. The previous "absolutize in chat.send + set
MediaStaged=true" path made media-understanding work but shipped an
unreadable host path to the agent inside the sandbox.

- Keep ctx.MediaPaths sandbox-relative after prestage; carry a separate
  ctx.MediaWorkspaceDir so host-side media-understanding can still resolve
  the staged files via localPathRoots / attachment cache.
- stageSandboxMedia returns an authoritative {source -> relpath} map so
  prestageNonImageOffloads detects partial staging failures (files admitted
  by the 20MB RPC cap but rejected by the 5MB staging cap) and surfaces
  them as 5xx MediaOffloadError UNAVAILABLE.
- Reject images above MAX_IMAGE_BYTES at parse time: the agent-side
  hydration path drops them silently otherwise, producing a successful
  response with a missing image.
- Scope imageOrder to image offloads only and split persistChatSendImages
  offloaded refs by mime so non-image files append to the transcript tail
  instead of consuming image slots in mixed batches.

Signed-off-by: samzong <samzong.lu@gmail.com>
2026-04-28 12:52:43 +08:00
samzong
bb259ac039 fix(gateway): wrap prestage errors as 5xx and absolutize MediaPaths
Signed-off-by: samzong <samzong.lu@gmail.com>
2026-04-28 12:52:43 +08:00
samzong
4c61d307da feat(gateway): offload non-image attachments on chat.send
Signed-off-by: samzong <samzong.lu@gmail.com>
2026-04-28 12:52:43 +08:00
Peter Steinberger
a68cc94c36 fix: resolve main ci shard failures 2026-04-28 05:52:19 +01:00
Peter Steinberger
540cbe24be fix: allow memory flush model override 2026-04-28 05:50:55 +01:00
Peter Steinberger
dc3df62e67 refactor(memory-host): own package contract surface 2026-04-28 05:49:07 +01:00
Vincent Koc
6fadc56802 fix(media): tighten sanitizeMimeType anchoring (#73229)
* fix(media): tighten sanitizeMimeType anchoring

* fix(media): tighten sanitizeMimeType anchoring

* fix(media): tighten sanitizeMimeType anchoring
2026-04-27 21:48:36 -07:00
Gustavo Madeira Santana
d59f001507 test(qa-matrix): cover allowBots modes 2026-04-28 00:47:40 -04:00
Vincent Koc
6d7901f5c8 fix(acpx): lazy-load startup backend 2026-04-27 21:46:45 -07:00
Peter Steinberger
996818e6af fix: follow up main ci failures 2026-04-28 05:41:49 +01:00
Peter Steinberger
8a48994802 fix(otel): record liveness warnings 2026-04-28 05:41:30 +01:00
Peter Steinberger
66a0aa47e4 docs(google): clarify gemini 3.1 pro alias 2026-04-28 05:41:30 +01:00
Vincent Koc
2bce63cb65 fix(android): harden canvas webview bridge (#73240)
* fix(android): harden canvas webview bridge

* fix(android): make canvas content access hardening explicit

* fix(android): keep webview hardening inline for CodeQL

* fix(android): avoid webview getter false positive
2026-04-27 21:41:01 -07:00
Peter Steinberger
52daf5fbd3 fix(acpx): stage Claude ACP adapter runtime dependency 2026-04-28 05:38:15 +01:00
Peter Steinberger
59bd7e47e8 docs: avoid mdx lists inside callouts 2026-04-28 05:34:44 +01:00
Peter Steinberger
b8c44bfc82 fix: restore main ci and speed tests 2026-04-28 05:34:28 +01:00
Brian Newman
055127425f fix(export): fix broken template placeholders in session export HTML (#41861)
* fix(export): fix broken template placeholders in session export HTML

The {{MARKED_JS}}, {{HIGHLIGHT_JS}}, and {{JS}} placeholders in the
export HTML template were split across multiple lines by a code
formatter, turning them into JS block statements instead of template
tokens. The generateHtml() function uses .replace('{{MARKED_JS}}', ...)
which requires contiguous strings, so the vendor JS and app code were
never injected — producing a 2MB HTML file that opens with styles and
session data but renders blank (no JS to parse/display the data).

Fix: collapse placeholders to single-line {{TOKEN}} format and add
prettier-ignore comments to prevent re-formatting.

Introduced in 9d403fd.

* fix(export): use function replacers for vendor JS injection

String.replace() interprets $ sequences ($&, $$, $', etc.) in
replacement strings. The minified vendor libraries (highlight.min.js,
marked.min.js) and the template JS contain literal $ characters that
get mutated during injection — e.g. $& becomes the matched placeholder
text, $$ becomes a single $.

Fix: use arrow function replacers for JS content so replacement text
is injected verbatim without $ interpretation. CSS and session data
use string replacers since they don't contain problematic $ patterns.

Flagged by Codex review (P2).

* ci: retrigger checks

* fix(export-session): restore inline export scripts

---------

Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
2026-04-27 21:34:20 -07:00
Peter Steinberger
5826774076 fix(diagnostics-otel): handle liveness warnings 2026-04-28 05:32:40 +01:00
Peter Steinberger
b60eb1711a refactor(plugin-sdk): add managed task flow runtime 2026-04-28 05:32:40 +01:00
Peter Steinberger
d987e153fe docs: fix plugin architecture mdx 2026-04-28 05:32:19 +01:00
Peter Steinberger
03e0f17069 docs(changelog): consolidate 2026.4.27 notes 2026-04-28 05:31:19 +01:00
Shakker
c77aead063 docs: refresh plugin sdk api baseline 2026-04-28 05:30:04 +01:00
Shakker
31e01eb286 fix: narrow stepfun manifest provider keys 2026-04-28 05:30:04 +01:00
Shakker
d76540ff30 docs: update manifest catalog migration note 2026-04-28 05:30:04 +01:00
Shakker
c242f0c35f feat: declare stepfun model catalogs 2026-04-28 05:30:04 +01:00
Shakker
b3dce79af1 feat: declare tencent tokenhub model catalog 2026-04-28 05:30:04 +01:00
Shakker
fd484cf472 refactor: build deepseek catalog from manifest 2026-04-28 05:30:04 +01:00
Shakker
a4eb89c809 refactor: build moonshot catalog from manifest 2026-04-28 05:30:04 +01:00
Shakker
68a1dfb7e3 docs: document manifest provider catalog sdk helper 2026-04-28 05:30:04 +01:00
Shakker
a3ad2723cc fix: fail on dropped manifest catalog rows 2026-04-28 05:30:04 +01:00
Shakker
4168575b88 docs: note manifest provider catalog helper 2026-04-28 05:30:04 +01:00
Shakker
2d8ee0452e fix: normalize raw manifest provider catalogs 2026-04-28 05:30:04 +01:00
Shakker
a047144660 fix: narrow manifest catalog runtime inputs 2026-04-28 05:30:04 +01:00
Shakker
a36aeac072 fix: reject incomplete manifest provider catalogs 2026-04-28 05:30:04 +01:00
Shakker
129d5be507 refactor: build cerebras and mistral catalogs from manifests 2026-04-28 05:30:04 +01:00
Shakker
1f883f3dff refactor: build nvidia catalog from manifest 2026-04-28 05:30:04 +01:00
Shakker
833dcccddf refactor: build qianfan and xiaomi catalogs from manifests 2026-04-28 05:30:04 +01:00
Shakker
5cba55e520 feat: add manifest provider catalog helper 2026-04-28 05:30:04 +01:00
Peter Steinberger
1267a14326 docs: fix plugin architecture mdx 2026-04-28 05:29:26 +01:00
Peter Steinberger
cb1bca1a16 fix(diagnostics): export liveness warning telemetry 2026-04-28 05:28:04 +01:00
Peter Steinberger
001bf47727 chore(release): open 2026.4.27 development 2026-04-28 05:28:04 +01:00
Peter Steinberger
548f946ffd test(macos): remove conflict marker 2026-04-28 05:28:04 +01:00
Peter Steinberger
5dec95f35c test(macos): stabilize gateway control test 2026-04-28 05:28:04 +01:00
Peter Steinberger
35c9dd06b2 fix(cli): respect replace mode in model picker 2026-04-28 05:26:25 +01:00
Peter Steinberger
1a2f60c0a1 chore(browser): remove old security mock path 2026-04-28 05:21:58 +01:00
Peter Steinberger
af7f651db3 refactor(plugin-sdk): retire reserved helper exports 2026-04-28 05:21:57 +01:00