Commit Graph
19 Commits
Author SHA1 Message Date
twwu ffc2f267d0 fix(builder): unify native test streaming and controls
Observe Builder commands and native tests on one session stream. Reconnect to the retained Run without submitting another test.

Use Stop and Resume for task control during native tests and keep approval details available. Allow retained local sandbox bindings to be checked without reading restricted ancestor directories.

Refs: ENG-1448
2026-11-09 20:18:12 +08:00
Charles Yao 9b3f60c18e fix(builder): expose correlated read-only Fix control receipts 2026-11-01 00:01:15 -07:00
Charles Yao 94c7ee305d fix(builder): expose current lifecycle settlement without inferring cleanup 2026-10-31 23:07:10 -07:00
Charles Yao ae0e57163e feat(builder): preserve task continuity and confirm Fix switches 2026-10-30 23:13:09 -07:00
Charles Yao f2939c341d feat(builder): add workspace cognition policy and scoped planning materials 2026-10-29 19:41:42 -07:00
twwu a503b0af75 fix(builder): simplify canvas events and refresh lifecycle
Use committed graph notifications and passive edit-target updates so Builder
refreshes do not select nodes or open configuration sidebars.

Drive draft refresh and canvas locks from session events, remove redundant
state and reset paths, and preserve native node tracking and viewport behavior.

Refs: ENG-1325
2026-10-27 13:42:16 +08:00
Charles Yao 251c6c6937 feat(builder): add independent task stop and resume HTTP controls 2026-10-23 16:11:31 -07:00
Charles Yao 6427b48ad4 fix(web): retain Builder conversations and connect native test controls 2026-10-21 21:04:18 -07:00
Charles Yao 231e423431 Integrate validated Builder backend testing and CI repairs
Track backend integration, Ruff cleanup and migration reconciliation in ENG-1271. Retain required copy contracts without implementing frontend interactions.
2026-10-20 15:40:06 -07:00
twwu 89504b7dce refactor(builder): localize fixed copy on the frontend
Move fixed copy into the difyBuilder i18n namespace and resolve scene IDs
using reply_language. Preserve dynamic streaming, historical receipts,
and submitted values.

Show fixed replies immediately with a short transition, detect language
before initial progress, and retire new notices and recovery messages.
Keep recovery and publication validation in place.

Update generated contracts and regression coverage, including progress
snapshot and execution context expectations and test type annotations.
2026-10-14 17:10:20 +08:00
twwu 802ed06a37 fix(builder): restore session progress after reconnect
Restore cumulative worker progress before live SSE updates and recover missed terminal state on idle heartbeats. Keep submitted interactions hidden while the command runs and record reconnect state in trace exports.
2026-10-14 16:50:00 +08:00
Charles Yao c6c7dc5eea fix(builder): localize structured decisions and interaction receipts 2026-10-13 13:11:22 -07:00
Charles YaoandClaude Opus 5.5 2c117b67eb feat: expose explicit native Tool consent APIs
Add authenticated prepare/confirm/execute/status routes for one explicit
native Tool consent with strict request DTOs, public receipt/disclosure
responses, sanitized refusals, a typed 403 union and a fixed 400 for
non-JSON bodies. Execute uses the existing confirmed dispatch coordinator.
Regenerate the dify-builder console contracts (also carrying the Task 6
TestResultCard fields that were not yet regenerated).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 19:52:55 -07:00
Wu Tianwei b3e3540c43 refactor: improve Dify Builder session UX (#42760) 2026-09-24 15:18:32 +08:00
twwu d5ca5ea8ef fix(dify-builder): stream native test runs after canvas refresh
Run workflow streaming inside the Builder worker to avoid queue deadlocks. Forward native events to shared editor callbacks and wait for graph refresh before retesting repairs.

Keep command cleanup stable, preserve batched canvas events, and allow failed or unfinished historical runs to refresh again.
2026-09-21 15:12:22 +08:00
Charles YaoandClaude Opus 5 aa2b4fe4ab feat(dify-builder): name apps from their prompt, and turn gate actions into card options
Two App Builder spec changes that share the Builder session contract.

Naming (spec N1-N3): an app created from the homepage prompt is no longer named
by the user. core/dify_builder/naming.py cuts the prompt's opening clause at
create time -- instant and infallible, since it runs inside POST /apps -- and
CreateAppPayload.name becomes optional alongside a new prompt field. The Builder
then refines that name once during goal analysis, where a model and the detected
reply language are already in hand, so the judgement calls that are
English-shaped in pure Python (dropping an imperative lead-in, spotting a
contentless prompt) work in any language. Plan approval freezes the name.

Card options: SessionView gains a Decision carrying the gate's choice as options
inside the card plus a fixed confirm/cancel pair, replacing a button row whose
shape changed at every state. Option ids are the old action ids untouched, so
resolve_action_kind and the per-state legality check are unchanged, and
SessionView.actions keeps being populated -- the deployed web client goes on
working until it reads decision instead.

The regenerated console OpenAPI doc also picks up ErrorCard.diagnostics, missed
when cc9ca8b1dd landed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 17:55:38 -07:00
twwu 4893c5e621 refactor(dify-builder): separate reasoning from execution progress 2026-09-04 13:43:16 +08:00
twwu eb25c2d8ee feat(dify-builder): add live progress and conversation streaming 2026-09-04 10:16:50 +08:00
twwu 3eacff14a6 feat: add typed SSE interactions to Dify Builder 2026-09-03 08:48:23 +08:00