GareArc
40df3c26c6
test(openapi): pin error-path matrix to canonical wire codes
...
Adds TestErrorMatrix (23 parametrized rows) covering every exception class
raised or mapped in files.py and app_run.py, asserting the exact wire code
each path emits and that every emitted code is an OpenApiErrorCode member.
Also adds error_code = "filename_not_exists" to FilenameNotExistsError, which
had no explicit code and was falling through to the status-map (bad_request).
2026-06-10 03:04:43 -07:00
GareArc
8cf49238af
refactor(openapi): route member-quota errors through the canonical formatter
...
Replaces the _quota_error/.response hack in workspaces.py with two
throwable OpenApiError subclasses (MemberLimitExceeded,
MemberLicenseExceeded) so all 403 quota responses flow through
OpenApiErrorFormatter rather than bypassing it via the early-return
in external_api.py. Wire codes rename to member_limit_exceeded and
member_license_exceeded.
2026-06-10 02:54:28 -07:00
GareArc
f5c5dbaed5
feat(openapi): emit canonical ErrorBody on every /openapi/v1 error path
...
Install OpenApiErrorFormatter on the openapi blueprint's ExternalApi so
all non-2xx responses from /openapi/v1 carry the canonical ErrorBody shape
(code, message, status, optional details/hint). RFC 8628 device-flow
endpoints are unaffected — their flat {error: ...} shape is passed through
unchanged.
Also: set catch_all_404s=True when a formatter is present so unknown
routes return canonical JSON 404s (not Flask's default HTML 404).
Override _help_on_404 to suppress route suggestions, which would corrupt
the JSON contract and enumerate routes to unauthenticated callers.
Both behaviours are scoped by formatter presence — other blueprints that
construct ExternalApi without error_body_formatter are byte-identical.
Wire-level tests added to TestWireContract (3 tests, 18 total):
- 422 from @accepts validation carries code/status/details
- unknown-route 404 is canonical JSON without route suggestions
- device token POST returns RFC 8628 flat shape untouched by formatter
2026-06-10 02:48:38 -07:00
GareArc
41f827b609
feat(openapi): add OpenApiErrorFormatter normalizing all error paths to ErrorBody
2026-06-10 02:26:19 -07:00
GareArc
24b6e6f983
chore(openapi): neutral wording for domain-code comments
2026-06-10 02:08:47 -07:00
GareArc
5c657885a9
refactor(api): inject error-body formatter seam into ExternalApi handlers
2026-06-10 02:07:12 -07:00
GareArc
3f53fa605e
feat(openapi): add canonical ErrorBody model and error-code enum
2026-06-10 02:03:59 -07:00
非法操作
e3cfc4d40f
fix(api): require all selected tags in list filters ( #37272 )
2026-06-10 08:20:13 +00:00
呆萌闷油瓶
9ac71329a4
fix(plugin): align plugin list endpoint counts with live endpoint state ( #37179 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-10 08:11:11 +00:00
Novice
4fb3210f9a
fix: validate conversation variable description length to prevent varchar(255) truncation error ( #33038 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: 非法操作 <hjlarry@163.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
2026-06-10 07:28:12 +00:00
Hanqing Zhao
09bfbf386e
feat: enter the app name that need to be deleted by one click ( #37263 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-10 07:15:59 +00:00
guangyang1206
f1ef7379dd
refactor(web): replace useContext with use() (React 19) (Issue #25193 ) ( #36338 )
...
Co-authored-by: guangyang1206 <guangyang1206@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
2026-06-10 07:03:20 +00:00
Rohit Gahlawat
4c347f198e
refactor(web): replace useContext with use() in workflow components ( #25193 ) ( #37253 )
2026-06-10 06:53:04 +00:00
Rohit Gahlawat
366e58bbbb
refactor(web): replace useContext with use() in remaining components ( #25193 ) ( #37254 )
2026-06-10 06:52:41 +00:00
yyh
8430255931
fix(web): unify workflow node single-run actions ( #37262 )
2026-06-10 06:34:18 +00:00
chariri
d849d60822
refactor(api): migrate tenant/user via DI for several endpoints ( #37240 )
2026-06-10 04:11:53 +00:00
Rohit Gahlawat
dad2e64a62
refactor(web): mark Props of tools/mcp components as read-only ( #25219 ) ( #37251 )
2026-06-10 03:53:15 +00:00
盐粒 Yanli
ba9975a083
feat(dify-agent): sync shell and back proxy updates ( #37159 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-10 03:04:32 +00:00
L1nSn0w
629e046303
refactor(openapi): unify request validation behind @accepts/@returns decorators ( #37216 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-10 03:02:24 +00:00
Rohit Gahlawat
c9bb740a6b
refactor(web): mark Props of billing/ components as read-only ( #25219 ) ( #37249 )
2026-06-10 02:12:40 +00:00
Rohit Gahlawat
50e23f40a4
refactor(web): mark Props of tools/ components as read-only ( #25219 ) ( #37255 )
2026-06-10 02:11:23 +00:00
Escape0707
212b819f1c
test: migrate credit pool service tests to Testcontainers ( #37252 )
2026-06-10 01:55:50 +00:00
cheatofrom
3fb1d3055e
fix: agent mode missing file cards for BINARY_LINK and FILE type tool outputs ( #36746 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-10 01:41:37 +00:00
yyh
a823649934
feat(dify-ui): file tree ( #37235 )
2026-06-09 10:41:09 +00:00
Yunlu Wen
19d2a4d7a0
fix: run ci properly on pr ( #37233 )
2026-06-09 10:06:55 +00:00
Asuka Minato
28cc3fc10d
chore: [Refactor/Chore] if isinstance to match case #35902 ( #37087 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 09:54:04 +00:00
Evan
34f3591d4c
refactor(web): mark Props of workflow/variable-inspect components as read-only ( #25219 ) ( #37230 )
2026-06-09 08:51:28 +00:00
chariri
c88a38b8b5
chore(api): Suppress unknown contract checks by default ( #36969 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 08:32:34 +00:00
gigglewang
0019e6a6f3
test(cli-e2e): full E2E test suite for difyctl — auth / run / discovery / framework / output / error-handling / agent ( #36874 )
...
Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai>
2026-06-09 07:50:05 +00:00
Xiyuan Chen
1502a57381
feat(api,cli): strict UUID validation for app-id and workspace-id ( #37212 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 07:35:18 +00:00
dependabot[bot]
686e643632
chore(deps): bump starlette from 1.0.0 to 1.0.1 in /api ( #37076 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-09 14:44:41 +08:00
dependabot[bot]
8e37d95760
chore(deps): bump starlette from 1.0.0 to 1.0.1 in /dify-agent ( #37077 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-09 14:44:28 +08:00
dependabot[bot]
11db079428
chore(deps): bump the storage group across 1 directory with 5 updates ( #37153 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-09 14:43:22 +08:00
Yunlu Wen
eb3b12fa70
fix(dataset): include segment created_at in hit testing response ( #37181 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 05:15:36 +00:00
非法操作
5bec8eb33a
chore: filter unavailable apps from the installed apps list API ( #37206 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 05:12:29 +00:00
Asuka Minato
d11e4eeaf7
chore: DI current_user && use inspect ( #37084 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 05:06:28 +00:00
yyh
bbdf3d7634
fix(agent-v2): complete console API contract schemas ( #37210 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 04:40:32 +00:00
zyssyz123
a80bba2c35
feat(agent): Agent Files / agent Cloud storage — api backend (ENG-589) ( #37172 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-09 04:01:05 +00:00
Jingyi
789698cddd
docs: merge frontend agent guidance ( #37121 )
2026-06-09 03:21:29 +00:00
Eric Cao
a8977be999
chore(api): convert AppContext from ABC to Protocol ( #37203 )
2026-06-09 03:16:39 +00:00
Eric Cao
22e67b4673
chore(api): convert PipelineTemplateRetrievalBase from ABC to Protocol ( #37201 )
2026-06-09 03:14:50 +00:00
Eric Cao
f948e442e0
chore(api): convert BaseQueueDispatcher from ABC to Protocol ( #37200 )
2026-06-09 02:56:29 +00:00
Eric Cao
8a1c0cf5ab
chore(api): convert BaseTruncator from ABC to Protocol ( #37199 )
2026-06-09 02:55:36 +00:00
yyh
47b58a34ef
fix(ui): align scroll area focus styles ( #37204 )
2026-06-09 02:49:10 +00:00
lmlm
d80bd2a135
refactor(web): migrate code generator model storage ( #37195 )
2026-06-09 02:07:24 +00:00
Eric Cao
5d814ca8c1
chore(api): convert RecommendAppRetrievalBase and WorkflowPauseEntity from ABC to Protocol ( #37182 )
2026-06-08 14:17:07 +00:00
Eric Cao
0239b81cca
chore(api): convert MessagesCleanPolicy from ABC to Protocol ( #37171 )
...
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-08 09:55:52 +00:00
L1nSn0w
a15ecf6bec
feat(cli): adopt generated oRPC contract for unary endpoints ( #37090 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-08 08:09:44 +00:00
yyh
d0b376d31a
feat(web): support search input autofocus ( #37175 )
2026-06-08 07:40:09 +00:00
yyh
9c24b7bac5
chore(web): sync i18n ( #37169 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-08 06:23:38 +00:00