Charles Yao and Claude Opus 5
b7017aa363
fix(dify-builder): tell a draft that would not start apart from a stale fix
...
apply_repair's preflight raises PreflightError when the graph it is about
to write would fail at Graph.init. Every handler caught it as a plain
ValueError, so the five apply sites could not tell it apart from a
graph_ops rejection:
- plan approval (Build, Edit) called ANY ValueError "The workflow can't
start", including "node not found: x", sending the user hunting for a
broken node that does not exist;
- the repair-apply gates (Build/Edit await_repair, Fix apply) called a
preflight rejection "The proposed fix no longer applies to the current
draft" -- the fix applied fine; it would leave an unstartable draft.
Add core DraftWouldNotStartError(ValueError) and make PreflightError
subclass it (services imports core; core still imports no services).
Each site now catches it before the ValueError branch, with the same
control flow and the true reason: plan approval keeps "The workflow
can't start" for it and says "Couldn't apply the workflow" otherwise;
the repair gates say "The workflow can't start" for it and keep
"Couldn't apply the fix" otherwise. The shared card/turn construction is
factored (_graph_not_applied, _change_not_applied, and
drop_unapplied_repair in handlers_fix) and the new literals are
catalogued in strings.py.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-21 22:57:33 -07:00
..
2026-09-21 07:11:12 +00:00
2026-09-02 06:54:47 +00:00
2026-08-29 14:05:35 +00:00
2026-09-08 01:30:39 +00:00
2026-09-21 22:57:33 -07:00
2026-09-07 04:39:43 +00:00
2026-09-19 09:25:48 +00:00
2026-09-19 09:26:15 +00:00
2026-09-19 07:54:35 +00:00
2026-09-18 09:17:36 +00:00
2026-09-19 09:27:05 +00:00
2026-08-29 14:05:34 +00:00
2026-09-07 08:29:57 +00:00
2026-08-11 06:19:08 +00:00
2026-08-06 04:14:12 +00:00
2026-09-04 07:38:01 +00:00
2026-08-27 08:51:05 +00:00
2026-09-03 06:20:21 +00:00
2026-08-21 05:56:30 +00:00
2026-08-21 05:56:30 +00:00
2026-09-18 05:10:25 +00:00
2026-08-21 08:46:06 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-08-31 03:22:01 +00:00
2026-09-18 05:10:25 +00:00
2026-09-11 02:41:35 +00:00
2026-09-03 01:38:59 +00:00
2026-09-03 01:38:59 +00:00
2026-09-18 05:10:25 +00:00
2026-08-21 05:56:30 +00:00
2026-09-03 06:20:21 +00:00
2026-09-03 06:20:21 +00:00
2026-09-03 08:47:14 +00:00
2026-09-03 08:47:14 +00:00
2026-09-03 01:38:59 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-03 01:38:59 +00:00
2026-09-20 02:01:55 +00:00
2026-07-28 06:32:07 +00:00
2026-08-29 14:05:34 +00:00
2026-09-17 07:05:02 +00:00
2026-08-25 10:21:32 +00:00
2026-07-22 02:15:01 +00:00
2026-09-12 04:55:53 +00:00
2026-09-08 01:14:06 +00:00
2026-08-20 05:11:46 +00:00
2026-08-19 07:23:47 +00:00
2026-09-20 08:36:40 +00:00
2026-09-21 15:12:22 +08:00
2026-09-21 15:12:22 +08:00
2026-09-04 12:16:31 +00:00
2026-09-17 12:54:40 +00:00
2026-08-18 12:23:33 +00:00
2026-09-21 02:54:43 +00:00
2026-09-20 09:45:05 +08:00
2026-09-02 06:54:47 +00:00
2026-09-07 02:47:00 +00:00
2026-09-07 02:47:00 +00:00
2026-08-18 12:01:49 +00:00
2026-08-20 05:11:46 +00:00
2026-09-18 05:10:25 +00:00
2026-09-07 08:29:57 +00:00
2026-09-18 05:10:25 +00:00
2026-09-20 13:42:35 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-09-02 06:54:47 +00:00
2026-09-08 03:31:01 +00:00
2026-08-18 12:26:01 +00:00
2026-08-28 14:47:16 +00:00
2026-08-26 07:33:37 +00:00
2026-09-02 10:30:42 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-07 08:29:57 +00:00
2026-09-08 10:22:20 +00:00
2026-08-18 12:01:29 +00:00
2026-09-07 08:29:57 +00:00
2026-09-07 08:29:57 +00:00
2026-08-29 14:05:35 +00:00
2026-08-18 12:23:33 +00:00
2026-09-07 08:29:57 +00:00
2026-09-02 06:54:47 +00:00
2026-08-23 12:38:04 -07:00
2026-09-09 04:38:50 +00:00
2026-09-01 11:50:52 +00:00
2026-09-07 08:29:57 +00:00
2026-09-07 08:29:57 +00:00
2026-08-25 10:26:06 +00:00
2026-09-01 11:50:52 +00:00
2026-09-08 05:42:22 +00:00
2026-08-10 03:27:56 +00:00
2026-09-04 02:01:35 +00:00
2026-09-04 02:01:35 +00:00
2026-08-04 13:14:02 +00:00
2026-09-18 05:10:25 +00:00
2026-07-15 03:37:16 +00:00
2026-08-29 14:05:34 +00:00
2026-09-07 03:21:33 +00:00
2026-08-29 14:05:34 +00:00
2026-09-09 02:56:40 +00:00
2026-08-12 08:42:09 +00:00
2026-09-01 11:50:52 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-07 08:59:18 +00:00
2026-09-03 05:02:09 +00:00
2026-08-18 12:01:49 +00:00
2026-08-11 16:37:14 +00:00
2026-08-11 16:37:14 +00:00
2026-09-18 05:10:25 +00:00
2026-08-07 00:42:13 +00:00
2026-09-18 09:17:35 +00:00
2026-08-31 04:37:07 +00:00
2026-09-04 01:52:30 +00:00
2026-08-26 07:33:37 +00:00
2026-09-18 08:42:53 +00:00
2026-08-26 07:33:37 +00:00
2026-09-21 06:32:21 +00:00
2026-09-08 03:42:32 +00:00
2026-09-08 03:42:32 +00:00
2026-09-07 08:29:57 +00:00
2026-09-07 04:39:43 +00:00
2026-09-15 12:45:34 +00:00
2026-08-29 14:05:35 +00:00
2026-09-04 06:03:46 +00:00
2026-09-03 06:00:13 +00:00
2026-09-18 05:10:25 +00:00
2026-08-08 11:52:15 +00:00
2026-08-24 01:57:17 +00:00
2026-08-08 11:52:15 +00:00
2026-09-17 09:52:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-10 04:11:28 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-09-02 06:54:47 +00:00
2026-08-29 14:05:34 +00:00
2026-09-08 02:51:11 +00:00
2026-07-27 09:36:44 +00:00
2026-09-04 07:21:17 +00:00
2026-08-29 14:05:34 +00:00
2026-09-08 02:03:24 +00:00
2026-08-29 14:05:34 +00:00
2026-07-27 02:12:57 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-09 02:56:40 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-08-20 02:27:49 +00:00
2026-08-29 14:05:34 +00:00
2026-09-09 09:02:04 +00:00
2026-09-18 05:10:25 +00:00
2026-08-02 02:49:17 +00:00
2026-09-04 10:06:46 +00:00
2026-09-18 05:10:25 +00:00
2026-09-18 05:10:25 +00:00
2026-09-21 09:48:02 +08:00
2026-08-25 10:21:32 +00:00
2026-09-08 09:31:08 +00:00
2026-09-04 08:16:49 +00:00
2026-09-08 09:31:08 +00:00
2026-09-01 11:50:52 +00:00
2026-09-02 06:54:47 +00:00
2026-09-07 08:29:57 +00:00
2026-09-02 06:54:47 +00:00
2026-08-06 01:08:39 +00:00
2026-09-10 04:13:53 +00:00