Commit Graph

66940 Commits

Author SHA1 Message Date
ooiuuii
05de72c4cd fix: strip conda env marker from host tool runs (#99425)
* fix: strip conda env marker from host exec env

* fix(infra): block Conda default environment selector

Co-authored-by: 丁宇婷0668001435 <ding.yuting@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: 丁宇婷0668001435 <ding.yuting@xydigit.com>
2026-07-03 03:40:51 -07:00
wangmiao0668000666
f84bcdb4d7 fix(anthropic): wire buildGuardedModelFetch into the Cloudflare createClient branch (#98003)
* fix(anthropic): guard Cloudflare Anthropic fetches

Wire the Cloudflare AI Gateway Anthropic SDK client through buildGuardedModelFetch so this path gets the same SSRF and transport policy as sibling providers.

Keep the behavior proof focused on the regression: a Cloudflare Anthropic request pointed at a link-local address must fail before the SDK reaches global fetch.

* fix(anthropic): add loopback proof test to cloudflare fetch wiring

* test(anthropic-cloudflare): trim proof to SSRF-block only, remove synthetic loopback server
2026-07-03 13:17:28 +03:00
Abdullah Taş
6b869a6188 fix(ios): contacts.add crashes the app via unfetched CNContactFormatter keys (#99475)
* fix(ios): prevent contacts.add crash from unfetched CNContactFormatter keys

ContactsService.payload(from:) formats contacts with CNContactFormatter, but
payloadKeys did not include the formatter's required-key descriptor. The
formatter then reads name components (e.g. middleName) that were not fetched,
so CNContact raises CNPropertyNotFetchedException — an Objective-C exception
that is not caught by Swift error handling and terminates the app.

Add CNContactFormatter.descriptorForRequiredKeys(for: .fullName) to payloadKeys
so every key the formatter touches is fetched.

* fix(ios): clarify contact formatter contract

---------

Co-authored-by: abdullahtas0 <“dev.abdullahtas@gmail.com”>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 03:08:15 -07:00
chenyangjun-xy
36dd9ee3c3 Fix/issue 98958 gateway lock fd leak (#99291)
* fix(infra): close fd and remove lock file on writeFile failure (#98958)

When fs.open(lockPath, "wx") succeeds but handle.writeFile() fails
(e.g. disk full / ENOSPC), close the file handle and remove the
partially-written lock file before re-throwing to avoid a file
descriptor leak and stale lock artifact.

Changes:
- src/infra/gateway-lock.ts: nested try-catch around writeFile
- src/infra/gateway-lock.test.ts: test for fd close + lock cleanup
- scripts/verify-gateway-lock-fd-leak*.mjs: fault-injection proof

Co-Authored-By: Claude <noreply@anthropic.com>

* test(infra): strengthen gateway lock cleanup proof

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 02:23:41 -07:00
sunlit-deng
a9051b45cf fix(daemon): avoid loading full gateway logs during diagnostics (#99407)
* fix(daemon): bound gateway diagnostic log reads

* fix(daemon): share bounded gateway log tails

* fix(daemon): complete bounded tail reads

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 02:22:42 -07:00
LZY3538
413acc2e63 fix(compaction): count nested tool result content (#99391)
* fix(compaction): count nested tool result content

* fix(agent-core): unify compaction block extraction

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 02:21:34 -07:00
lwy-2
33c1e6224c fix(feishu): catch unhandled promise rejection in streaming card flush timer (#99301)
* fix(feishu): catch unhandled promise rejection in streaming card flush timer

## What Problem This Solves

The scheduled flush update in FeishuStreamingSession called
`this.update(pending)` without catching potential rejections, which
could cause unhandled promise rejections when card content updates
fail due to transient network errors.

## Why This Change Was Made

Add a `.catch()` with diagnostic logging to the scheduled flush
timer's `update()` call so transient card update failures are visible
without causing unhandled promise rejections.

## User Impact

Scheduled streaming-card updates that fail transiently will log a
diagnostic instead of producing an unhandled promise rejection.

## Evidence

node scripts/run-vitest.mjs extensions/feishu/src/media.test.ts

  Test Files  1 passed (1)
  Tests       44 passed (44)

pnpm exec oxfmt --check ...

  All matched files use the correct format.

node scripts/run-oxlint.mjs ...

  oxlint_exit=0

git diff --check

  exit=0

Co-Authored-By: Claude <noreply@anthropic.com>

* test(feishu): cover rejected scheduled card flush

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 02:20:43 -07:00
SunnyShu
68e06b9ea1 fix(gateway): include session label in deriveSessionTitle fallback chain (#98841)
* fix(gateway): include session label in deriveSessionTitle fallback chain

When a session is renamed with /name, the user-provided label is persisted
in sessions.json but was ignored by deriveSessionTitle. This caused the
TUI session picker and other derived-title consumers to show auto-generated
or UUID-based names instead of the user's label.

Add entry.label to the deriveSessionTitle fallback chain after
displayName and subject, before the auto-derived firstUserMessage and
sessionId fallbacks. This aligns with the existing ACP translator
precedence (derivedTitle ?? displayName ?? label ?? key).

Related to #98742

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(gateway): tighten session label precedence coverage

* fix(gateway): prioritize explicit session labels

* fix(commands): preserve named-session suggestions

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 02:09:31 -07:00
Yzx
76cf1b01af fix: memory_search honors generic embedding providers (#97095)
* fix(agents): resolve generic memory embedding providers

* test(agents): restore generic embedding registry state

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 02:07:43 -07:00
Peter Steinberger
1fef99962e feat(nodes): add auto-discovered Ollama inference (#99234)
* feat(nodes): add local Ollama inference

* fix(gateway): preserve plugin node runtime for agent turns

* feat(ollama): add node inference opt-out

* test(security): preserve plugin runtime exports

* test(security): preserve plugin runtime exports

* test(security): preserve plugin runtime exports

* fix(ci): raise artifact build heap
2026-07-03 01:14:30 -07:00
github-actions[bot]
5e61da3deb chore(i18n): refresh native sv locale 2026-07-03 08:01:07 +00:00
github-actions[bot]
d331a36250 chore(i18n): refresh native ru locale 2026-07-03 08:00:02 +00:00
github-actions[bot]
a6040c3560 chore(i18n): refresh native fa locale 2026-07-03 07:59:17 +00:00
github-actions[bot]
9b30570a93 chore(i18n): refresh native vi locale 2026-07-03 07:58:05 +00:00
github-actions[bot]
7cb41ccc63 chore(i18n): refresh native nl locale 2026-07-03 07:56:42 +00:00
github-actions[bot]
24e6b9fbe1 chore(i18n): refresh native pl locale 2026-07-03 07:53:10 +00:00
github-actions[bot]
5b5fadbf0d chore(i18n): refresh native th locale 2026-07-03 07:47:05 +00:00
github-actions[bot]
adafb56b2e chore(i18n): refresh native id locale 2026-07-03 07:43:18 +00:00
github-actions[bot]
d702f5c6e6 chore(i18n): refresh native uk locale 2026-07-03 07:42:52 +00:00
github-actions[bot]
aa0f36cb06 chore(ui): refresh fa control ui locale 2026-07-03 07:41:36 +00:00
github-actions[bot]
e2ecbc85b7 chore(ui): refresh nl control ui locale 2026-07-03 07:41:31 +00:00
github-actions[bot]
7fb70b235d chore(i18n): refresh native tr locale 2026-07-03 07:41:19 +00:00
github-actions[bot]
e2e0312724 chore(i18n): refresh native it locale 2026-07-03 07:40:56 +00:00
github-actions[bot]
620f2e3112 chore(ui): refresh vi control ui locale 2026-07-03 07:40:46 +00:00
github-actions[bot]
64dd68899e chore(ui): refresh th control ui locale 2026-07-03 07:40:33 +00:00
github-actions[bot]
e3d2878af4 chore(ui): refresh pl control ui locale 2026-07-03 07:40:11 +00:00
github-actions[bot]
7c30ff8a60 chore(ui): refresh id control ui locale 2026-07-03 07:40:05 +00:00
github-actions[bot]
5ef6fb4d7c chore(i18n): refresh native ar locale 2026-07-03 07:39:39 +00:00
github-actions[bot]
f1c4476277 chore(i18n): refresh native hi locale 2026-07-03 07:39:17 +00:00
github-actions[bot]
a8035892b1 chore(ui): refresh it control ui locale 2026-07-03 07:39:08 +00:00
github-actions[bot]
0a9648ba47 chore(ui): refresh uk control ui locale 2026-07-03 07:39:04 +00:00
github-actions[bot]
5e9a62cc19 chore(ui): refresh tr control ui locale 2026-07-03 07:38:52 +00:00
github-actions[bot]
452351cc71 chore(ui): refresh ar control ui locale 2026-07-03 07:38:41 +00:00
github-actions[bot]
96e361558e chore(ui): refresh fr control ui locale 2026-07-03 07:37:45 +00:00
github-actions[bot]
17a1e3bbb2 chore(i18n): refresh native fr locale 2026-07-03 07:37:41 +00:00
github-actions[bot]
6b91507220 chore(i18n): refresh native ko locale 2026-07-03 07:37:36 +00:00
github-actions[bot]
22552d6e66 chore(ui): refresh es control ui locale 2026-07-03 07:37:31 +00:00
github-actions[bot]
89092893fe chore(ui): refresh ja-JP control ui locale 2026-07-03 07:37:28 +00:00
github-actions[bot]
c336256309 chore(ui): refresh ko control ui locale 2026-07-03 07:37:27 +00:00
github-actions[bot]
bbabad4031 chore(ui): refresh zh-CN control ui locale 2026-07-03 07:36:13 +00:00
github-actions[bot]
a2674b6aa4 chore(ui): refresh pt-BR control ui locale 2026-07-03 07:36:05 +00:00
github-actions[bot]
61347a5054 chore(ui): refresh zh-TW control ui locale 2026-07-03 07:36:01 +00:00
github-actions[bot]
b2c3dc2d55 chore(ui): refresh de control ui locale 2026-07-03 07:35:58 +00:00
github-actions[bot]
d2551bdd3c chore(i18n): refresh native ja-JP locale 2026-07-03 07:35:52 +00:00
github-actions[bot]
d2b5bb72e8 chore(i18n): refresh native es locale 2026-07-03 07:35:48 +00:00
github-actions[bot]
18360ac668 chore(i18n): refresh native pt-BR locale 2026-07-03 07:34:08 +00:00
github-actions[bot]
714c2b07bd chore(i18n): refresh native de locale 2026-07-03 07:34:03 +00:00
Peter Steinberger
bb72443615 feat: session-first sidebar, compact context ring, and warm light theme for the Control UI (#99289)
* feat(ui): session-first sidebar, context ring, and warm light theme for Control UI

* test(ui): drop unnecessary non-null assertion in sidebar recents test
2026-07-03 00:32:55 -07:00
github-actions[bot]
f095eb9fd9 chore(i18n): refresh native zh-CN locale 2026-07-03 07:32:15 +00:00
github-actions[bot]
48eae1b8c9 chore(i18n): refresh native zh-TW locale 2026-07-03 07:32:09 +00:00