Charles Yao and Claude Opus 4.8
4c0efd947d
feat(dify-builder): echo chosen model in SessionView + regen contract
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
f5815c8723
feat(dify-builder): accept + validate + stamp model_config on create
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
02a5f01f84
feat(dify-builder): DIFY_BUILDER_AGENT_MODE gate + factory/task model wiring
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
6d1ed0a4b4
feat(dify-builder): LlmBuilderAgent shell delegating to PlaceholderAgent
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
90fda2b665
fix(dify-builder): enforce ruff linting on LLM helper
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
68b82e8dd8
feat(dify-builder): shared LLM invoke/parse/retry helper
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
6bf013da3a
feat(dify-builder): model resolver + BadRequestError -> 400
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:27 -07:00
Charles Yao and Claude Opus 4.8
71a1e51917
feat(dify-builder): add model_config to session context + serde
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-27 22:51:26 -07:00
twwu
7e580db1cc
Merge branch 'main' into feat/dify-builder
2026-08-26 17:15:19 +08:00
Byron.wang
30e6069851
refactor(api): thin OAuth controllers and extract application services ( #40692 )
2026-08-26 07:33:37 +00:00
73dd8739ef
feat: optimize resource access config logic ( #41164 )
...
Co-authored-by: fatelei <fatelei@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-26 07:18:57 +00:00
林玮 (Jade Lin)
f5aaa50a30
fix(auth): normalize Gmail registration emails ( #41249 )
2026-08-26 07:14:27 +00:00
林玮 (Jade Lin)
8c9f248520
fix(api): attribute Skill Builder credit usage ( #41290 )
2026-08-26 07:02:45 +00:00
非法操作
c563528a2d
refactor(api): standardize compliance downloads ( #41057 )
2026-08-26 06:32:13 +00:00
非法操作
c4ace15afd
refactor(api): extract console app site command boundary ( #41216 )
2026-08-26 06:31:06 +00:00
d5a8ace1c4
fix(rag-pipeline): mark credential-free datasources as authorized ( #39772 )
...
Co-authored-by: ccl125 <ccl125@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: FFXN <31929997+FFXN@users.noreply.github.com >
2026-08-26 05:44:10 +00:00
Stephen Zhou
1c6f0a0388
fix(api): restore Service API OpenAPI semantics ( #41274 )
2026-08-26 05:05:36 +00:00
Stephen Zhou and autofix-ci[bot]
92016aa139
fix(api): align Service API OpenAPI contract ( #41248 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-25 10:54:14 +00:00
wangxiaolei and autofix-ci[bot]
a6fe278662
feat: hide add library skill in agent ui ( #41250 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-25 10:26:06 +00:00
林玮 (Jade Lin) and autofix-ci[bot]
960018253b
feat(api): track credit usage contexts ( #41181 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-25 10:21:32 +00:00
wangxiaolei
ddcdbb2d14
feat: add skill enable feature switch ( #41246 )
2026-08-25 08:42:15 +00:00
非法操作
1afac21690
feat(api): support New Agent Beta for inline Workflow agents ( #41215 )
2026-08-25 05:39:41 +00:00
非法操作 and autofix-ci[bot]
ef92cb7c65
refactor(api): complete account education boundary ( #41153 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-25 01:48:12 +00:00
林玮 (Jade Lin) and autofix-ci[bot]
70a513fc62
fix(api): scope hosted credits by tenant plan ( #41131 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-24 06:35:42 +00:00
+21
0024a845f7
feat: support agent skill ( #39675 )
...
Signed-off-by: kenwoodjw <blackxin55+@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: zxhlyh <jasonapring2015@outlook.com >
Co-authored-by: 起岚 <155608604+xiaoyaoqilan@users.noreply.github.com >
Co-authored-by: Parman Mohammadalizadeh <prmma23@gmail.com >
Co-authored-by: Escape0707 <tothesong@gmail.com >
Co-authored-by: Xin Zhang <zhangxin@dify.ai >
Co-authored-by: iridescentWen <66297467+iridescentWen@users.noreply.github.com >
Co-authored-by: Bond Zhu <37842169+MRZHUH@users.noreply.github.com >
Co-authored-by: KVOJJJin <jzongcode@gmail.com >
Co-authored-by: Joel <iamjoel007@gmail.com >
Co-authored-by: 非法操作 <hjlarry@163.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
Co-authored-by: Chester <superdiao6@gmail.com >
Co-authored-by: WH-2099 <wh2099@pm.me >
Co-authored-by: Jony <619963502@qq.com >
Co-authored-by: Jony <13896935+zyz619963502zyz@users.noreply.github.com >
Co-authored-by: Harsh Kashyap <harsh.kashyap2001@gmail.com >
Co-authored-by: Harsh Kashyap <Harsh23Kashyap@users.noreply.github.com >
Co-authored-by: kenwoodjw <blackxin55+@gmail.com >
Co-authored-by: csurong <csurong1@gmail.com >
Co-authored-by: caosurong <surong.cao@thinkingdata.cn >
Co-authored-by: Taranum Wasu <81034301+Taranum01@users.noreply.github.com >
Co-authored-by: Taranum01 <50813317+Taranum01@users.noreply.github.com >
Co-authored-by: Pranav Agarwal <agarwalpranav0711@gmail.com >
Co-authored-by: Stephen Zhou <hi@hyoban.cc >
Co-authored-by: zl86790 <marshal_li_b@163.com >
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com >
Co-authored-by: yunlu.wen <yunlu.wen@dify.ai >
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2026-08-24 05:29:14 +00:00
3f7e6cdcb4
fix(tts): propagate and validate actual audio MIME ( #41043 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WH-2099 <wh2099@pm.me >
2026-08-24 03:38:09 +00:00
Charles Yao and Claude Opus 4.8
24de2c8417
Dedup Dify Builder handlers/services: extract shared helpers
...
Behavior-preserving code-quality cleanup across the Dify Builder engine:
extract emit_canvas, build_change_set, mint_checkpoint, action_kind, and
merge_known_keys into handlers_fix.py (shared by handlers_build.py and
handlers_edit.py); extract _add in repository.py for the id-preservation
idiom; extract _make_edge (and unify the node/edge id-collision loops
into _next_unique_id) in graph_ops.py; extract _sync_graph_only in
dify_port.py. No behavior, generated ids, or wire output changed — same
387-test suite passes, ruff clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 19:32:57 -07:00
非法操作
5018f8aa8a
refactor(api): standardize session factory wiring ( #41085 )
2026-08-24 01:57:17 +00:00
非法操作 and autofix-ci[bot]
ed45016475
refactor(api): standardize console billing portal errors ( #41055 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-24 01:55:48 +00:00
Charles Yao and Claude Opus 4.8
45ab0d38e6
feat(dify-builder): stamp skill_learning_policy + surface await_learning actions (C-2)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 12:55:55 -07:00
Charles Yao and Claude Opus 4.8
893ffedbf0
feat(dify-builder): add DIFY_BUILDER_SKILL_LEARNING_POLICY config + FeatureService surface (C-2)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 12:38:04 -07:00
Charles Yao and Claude Opus 4.8
e4b0195528
feat(dify-builder): add build.await_learning state + skill_learning_policy context field (C-2)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 12:24:19 -07:00
Charles Yao and Claude Opus 4.8
7e83264330
refactor: rename Workflow Copilot → Dify Builder
...
Project rename across api/ + web/: modules, symbols, routes
(/console/api/dify-builder/*), feature flag (DIFY_BUILDER_ENABLED),
Celery queue/tasks, the 7 DB tables (via migration df1b0114de40),
and regenerated contract artifacts. Behavior unchanged; 430 tests green,
ruff clean. Branch renamed feat/copilot-py-backend → dify-builder.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 11:18:35 -07:00
Charles Yao and Claude Opus 4.8
478e8bf1fe
fix(copilot): drive recovery_restart through working FIX/FIX_CHECKLIST entry states
...
The runner's check_recovery/recovery_continue/recovery_restart short-circuit
committed the transition and returned immediately, without entering the
advance loop. recovery_restart in FIX/FIX_CHECKLIST mode (the forced path for
structural_invalidating drift) lands on the *working* fix.diagnose /
checklist.diagnose entry state, which the runner must drive by running its
handler -- the early return stranded the session there with no UI actions.
Fix: rest only when the landed state is waiting/terminal (covers stop/resume,
check_recovery, recovery_continue, and BUILD/EDIT restarts unchanged);
otherwise consume the action and fall through to the existing advance loop.
Also: parity-test recovery.entry_state_for against the states
service.create_*_session actually assigns; add classify()-through-runner
coverage for the three remaining recovery classes and target_node_ids guard
branches; pin recovery_ref_for's message for config_only/structural_compatible;
and qualify dify_port.py's graph_ops delegations (module import) so
structural_fingerprint/node_ids no longer read as unqualified self-recursion.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 10:42:53 -07:00
Charles Yao and Claude Opus 4.8
b810869941
feat(copilot): surface SessionView.recovery via RecoveryRef + regen artifacts (C-1)
...
Adds RecoveryRef to the contract, recovery_ref_for() to recovery.py, and
wires it into get_session_view() beside the existing CheckpointRef pattern.
Regenerates contract_schema.json and the FE types.ts from contract.py
(additive only: RecoveryRef + SessionView.recovery). Also updates
test_wiring.py's exact asdict() round-trip assertion to include the new
recovery: None default, since dataclasses.asdict(SessionView) is exhaustive.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 10:14:45 -07:00
Charles Yao and Claude Opus 4.8
a789dd4858
feat(copilot): DifyPort.structural_fingerprint + graph_node_ids, apply_repair stamps fingerprint (C-1)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 09:37:43 -07:00
Charles Yao and Claude Opus 4.8
39665a8bc2
feat(copilot): add recovery fields to ApplyResult + CopilotContext + serde (C-1)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 09:28:54 -07:00
Charles Yao and Claude Opus 4.8
529db1f879
feat(copilot): add graph_ops.structural_fingerprint + node_ids (C-1)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 09:22:15 -07:00
Charles Yao and Claude Opus 4.8
47937f739f
copilot: pause/resume (runner stop/resume short-circuit + RunStatus.PAUSED)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 05:42:18 -07:00
Charles Yao and Claude Opus 4.8
7b41d09549
copilot: surface SessionView.checkpoint from fc.checkpoint_id
...
Populate the frozen SessionView.checkpoint field from the session context's
active checkpoint_id. When set, build a CheckpointRef with the checkpoint_id
and a generic "Restore point" label; otherwise None.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 05:33:17 -07:00
Charles Yao and Claude Opus 4.8
8481cd6017
copilot: Repository.invalidate_conversation_items (approval-card invalidation)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 04:57:54 -07:00
Charles Yao and Claude Opus 4.8
2f1e342ed0
copilot: DifyPort.restore_graph (whole-graph draft restore)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 04:50:09 -07:00
Charles Yao and Claude Opus 4.8
e464c2879f
copilot: CopilotContext lifecycle fields (paused, checkpoint_seq) + serde
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 04:41:27 -07:00
Charles Yao and Claude Opus 4.8
ef255c4dde
copilot: Edit service wiring + create_edit_session + merged registry
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 02:27:55 -07:00
Charles Yao and Claude Opus 4.8
f668959ece
copilot: CopilotContext Edit fields + serde defaults
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-23 01:29:17 -07:00
Charles Yao and Claude Opus 4.8
25b897353d
copilot: Build session bootstrap + capability_check handler + merged registry
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 21:49:48 -07:00
Charles Yao and Claude Opus 4.8
4be0e77ade
copilot: rename FixContext -> CopilotContext + additive Build fields
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 21:24:48 -07:00
Charles Yao
b3b4776e95
feat(workflow-copilot): opt-in per-intent canvas-event emission through apply_repair
2026-08-22 10:57:37 -07:00
Charles Yao and Claude Opus 4.8
c8c1a7052d
feat(workflow-copilot): apply_repair dispatches all 5 verbs + real graph diff feeds change_set
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:46:12 -07:00
Charles Yao and Claude Opus 4.8
18e45a1964
feat(workflow-copilot): diff_graphs real before/after graph diff
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-08-22 10:34:43 -07:00