Commit Graph

3704 Commits

Author SHA1 Message Date
David Park
4ffcf3bf4c
Merge d022621bc9 into dfac3e524e 2026-08-14 14:49:43 +00:00
chelsealong
b537fed907
fix(api): point SSRF-blocked error message at the correct dify issue (#40605) 2026-08-14 11:46:50 +00:00
盐粒 Yanli
3acc9470d4
feat(dify-agent): expand and enforce agent run limits (#40641) 2026-08-14 08:27:19 +00:00
林玮 (Jade Lin)
4e44ade07f
fix: handle long text URLs in webscraper (#40757) 2026-08-14 07:34:53 +00:00
Crazywoola
58653f2cdb
feat(workflow-generator): prefer installed tools (#40611) 2026-08-14 05:38:37 +00:00
林玮 (Jade Lin)
755c154b1f
refactor: resolve completion model via manager (#40756) 2026-08-14 02:52:42 +00:00
Harsh Kashyap
8238684334
fix(api): chain original exception in 13 except blocks per PEP 3134 (#40738)
Co-authored-by: Harsh Kashyap <Harsh23Kashyap@users.noreply.github.com>
2026-08-13 17:50:05 +00:00
zyssyz123
c9c7fb9962
fix(agent): meter internal LLM calls through API (#40613)
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
2026-08-13 12:15:44 +00:00
林玮 (Jade Lin)
b9248690b0
refactor: generalize hosted model quota lifecycle (#40722)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-13 08:10:02 +00:00
盐粒 Yanli
79b8d7a797
fix(agent): normalize plugin provider identities (#40619)
Co-authored-by: Joel <iamjoel007@gmail.com>
2026-08-13 07:22:41 +00:00
林玮 (Jade Lin)
c647cfd6a3
refactor: resolve summary models through manager (#40696) 2026-08-13 06:22:22 +00:00
zyssyz123
6e80f42f38
fix(api): decouple response listeners from execution lifecycle (#39813) 2026-08-13 05:50:43 +00:00
Xiyuan Chen
5bacb68115
fix(ops): keep the path of self-hosted LangSmith and Weave endpoints (#40584) 2026-08-13 03:18:22 +00:00
林玮 (Jade Lin)
12e6838403
fix: meter hosted LLM invocations (#40589) 2026-08-12 12:33:21 +00:00
WH-2099
af382be837
fix(api): bind remaining RAG resources to owners (#40503) 2026-08-12 06:05:16 +00:00
Valor
e3812cf72b
fix: add zh_Hans labels for builtin Audio provider and its tools (#40408) 2026-08-11 08:27:59 +00:00
Byron.wang
c1e94f8ee7
refactor(api): consolidate deployment edition handling (#40142)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-11 07:39:01 +00:00
wangxiaolei
4c7b870062
fix: _multiple_retrieve_thread not fail fast (#40466) 2026-08-11 05:40:23 +00:00
林玮 (Jade Lin)
4eb9a24997
refactor(workflow): align standalone node execution layers (#40447) 2026-08-10 12:37:34 +00:00
zyqzyq
df250423d4
feat: add tool plugin param type date and date-picker (#36163)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: hjlarry <hjlarry@163.com>
2026-08-10 09:31:38 +00:00
medimedi
e036075e22
chore: Remove redundant dataset context string conversions (#40189) 2026-08-08 18:26:52 +00:00
chelsealong
2a742486c5
fix(agent-v2): accept composer UI ids on manual metadata filter conditions (#40171)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-08 06:55:27 +00:00
盐粒 Yanli
916d7e1c96
refactor(dify-agent): download Binding files through Agent Stub (#40143)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-07 14:56:52 +00:00
盐粒 Yanli
12300f3833
feat(dify-agent): propagate run limit error types (#40116)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-07 10:37:22 +00:00
Jingyi
5dfd83e9ab
feat: optimize integrations initial loading (#40118)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-07 02:06:25 +00:00
Byron.wang
b76a14d71d
refactor(api): decouple console queries through application services (#40031) 2026-08-07 00:42:55 +00:00
Yunlu Wen
1983e842ca
feat: support azure keyvault (#39933)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
2026-08-07 00:42:13 +00:00
zyssyz123
90d6046345
fix: gate Agent access until first publish (#40105)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
2026-08-06 12:36:24 +00:00
Asuka Minato
78129cf6c3
test: use SQLite sessions in datasource files (#39048) 2026-08-06 08:28:27 +00:00
yyh
33b238343b
chore: remove obsolete development docs (#40098) 2026-08-06 08:21:17 +00:00
Asuka Minato
f08cc41546
test: use SQLite sessions in services core (#39058) 2026-08-06 04:07:01 +00:00
非法操作
8170a2a5f3
chore: more upload file size for paid user (#39967)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-06 03:23:16 +00:00
dparkmit24
2c162109c5 test(agent): pin the colliding case and state why the rule is shaped this way
The occurrence selector tells a per-call list from a single call's list
value by length alone. One test pinned the side where that is
unambiguous -- a 3-element list against 2 calls, replayed whole. The side
that decides whether the rule is safe is the other one: a tool called n
times whose single stored value is a list of length n. That case was
decided by the rule and described by no test, so it read as an oversight
rather than a decision.

Pin it at both readers. The replay reader in base_agent_runner and the
display reader on MessageAgentThought each get a two-call record whose
one stored value is a two-element list, asserting that call 1 reads
element 0 and call 2 reads element 1 -- what the rule does today. The
name says what the case concedes rather than what it asserts.

The docstrings say why the asymmetry is tolerable. observation values
are always str: ToolEngine.agent_invoke is typed
-> tuple[str, list[str], ToolInvokeMeta] and both runners store element
0, so a list under a tool name is not a shape any writer produces and
the length check is defensive there. tool_input values are json.loads of
the model's arguments with no shape check, so a legacy list-valued input
is possible in principle, and that is the side the collision can reach.

The selector is defined twice, identically, because models/ importing
from core/agent/ is the worse layering trade and the reverse is odd.
Neither copy is in the wrong place, so each now names the other and says
the duplication is deliberate -- enough for a future editor to find both.

No behaviour change: the condition, the ordering and the fallback are
untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 18:57:51 -07:00
dparkmit24
8b91f5bc1b refactor(agent): keep the occurrence selector where the review found it
The selector moved into models.model so the log reader and the replay
reader could share one definition. It moves back: the review thread on
this branch anchors to it in base_agent_runner, and relocating a symbol
mid-review costs the reviewer more than the duplicate saves.

base_agent_runner is byte-identical to what it was before the move.
models.model keeps its own local copy with the same logic, so a change
to how a per-call payload is recognised has to be made in both places --
noted here rather than fixed, because that recognition rule is an open
question on the review.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 09:59:03 -07:00
dparkmit24
c881abff0c fix(agent): show one log entry per call when a tool repeats in a turn
The console agent log builds one entry per name in the ";"-joined tool
column, then looks each name up in a dict keyed by tool name. A tool
called twice in one turn produced two entries reading the same key, so
both showed the same data -- the display the reproduction in #16220
describes.

Keeping every call's input and observation apart, as this branch already
did, changed what those two entries show without making them right: each
one showed both calls' data instead of one call's data twice.

Read the persisted payloads per call instead. MessageAgentThought now
exposes tool_inputs_per_call, tool_outputs_per_call and
tool_metas_per_call, one entry per entry in tools, in call order, and
get_agent_logs walks them alongside the names. A name whose stored value
is not one value per call gives the same value to each of its calls, so
every record written before those calls were kept apart renders exactly
as it renders today.

That makes tool_invoke_meta safe to group the same way, which it now is.
It carries the provider, the duration and the error the log shows for
each displayed call, so leaving it name-keyed would have left a repeated
tool showing the last call's provider and duration against both entries.
Its other reader, the tool trace, covers the tool rather than one call of
it and takes the last call's meta -- the only one it had before.

The occurrence selector moves to models.model so the reader that builds
the log and the reader that replays history share one definition. Its
behaviour is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 09:47:17 -07:00
dparkmit24
4e8b169cbf fix(agent): keep every call when a tool is used twice in one turn
The function-calling agent runner stored a turn's tool inputs and
observations in dicts keyed by tool name. When a model called the same
tool more than once in one turn -- two searches, two file reads -- each
call overwrote the previous one, so only the last input and the last
result were kept.

Replaying that record made it worse. organize_agent_history splits the
";"-joined tool names back apart and looks each one up by name, so both
calls came back with the surviving call's arguments and the surviving
call's result. The model was shown two identical calls it never made.

Keep one value per call, in call order, when a name repeats. A tool
called once keeps its bare value, so records written by earlier versions
and every single-call turn are unchanged, and the reader falls back to
the old behaviour whenever the stored value is not a per-call list.

tool_invoke_meta keeps its existing shape: the console agent-log
endpoint calls .get() on each tool's meta entry, so widening it there
would break that endpoint for the same turns this fixes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 10:15:03 -07:00
盐粒 Yanli
b462cb041d
feat(agent): separate CLI file URL audiences (#39952)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-04 13:14:02 +00:00
nightcityblade
9d81f0da10
chore(api): remove unreachable match suppressions (#39949)
Co-authored-by: nightcityblade <nightcityblade@gmail.com>
2026-08-04 11:56:37 +00:00
Asuka Minato
482ec5e712
test: use sqlite3 session in test_qa_index_processor (#38765) 2026-08-04 10:53:55 +00:00
林玮 (Jade Lin)
3ada29bbe0
fix(api): surface system quota exhaustion without fallback (#39986) 2026-08-04 08:49:25 +00:00
非法操作
8f817644e9
fix(workflow): avoid app context dependency in parallel iteration (#39983) 2026-08-04 07:47:49 +00:00
-LAN-
aab31292d8
feat(workflow): support LLM environment variables (#39125)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-04 06:17:13 +00:00
-LAN-
2d2cc7cab1
refactor(workflow): move AgentNode events out of graphon (#39845) 2026-08-04 03:54:40 +00:00
林玮 (Jade Lin)
be0e2c03e4
feat(api): isolate credentials from local packages (#39957) 2026-08-04 02:50:04 +00:00
Xiyuan Chen
1b7a132afa
fix(api): validate installation scope for cached marketplace packages (#39935) 2026-08-04 02:22:45 +00:00
wangxiaolei
dc8dd09450
feat: pass image file to llm (#39848)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-03 06:04:32 +00:00
Asuka Minato
982c0667e1
chore: bump pyrefly version (#39876)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-03 05:59:01 +00:00
Hand Sonic
bb68a05f9e
chore: pass session explicitly in ApiModeration (#39885) 2026-08-03 02:33:18 +00:00
-LAN-
351577bdb0
feat(workflow): support human input in loop and iteration (#39243)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-03 02:24:18 +00:00
Taranum Wasu
83b3a8fd88
fix(api): make SSRF-blocked error message actionable (#39867)
Co-authored-by: Taranum01 <50813317+Taranum01@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-02 02:48:44 +00:00