Charles Yao and Claude Opus 5
a96ed2d387
Builder: fix the continue_adjusting dead end at build.initial_plan
...
Code review finding: build.initial_plan was left in _WAITING with zero
_ACTIONS_FOR entries but a handler still gated on find_resources. Since a
waiting state settles the runner's advance loop (is_waiting(next_state) ->
settled), continue_adjusting from build.review landed a session there with
no button the FE could render and no action the handler would accept --
the loop-back could never advance.
Reclassify build.initial_plan as working (state.py _WORKING, not _WAITING):
it is now a genuine pass-through step, matching build.test_and_repair /
build.publish / build.governance_feedback. handle_initial_plan drops its
find_resources gate and runs resource discovery unconditionally on entry;
the runner drives it with the action already consumed and falls straight
through to build.resource_recommendation within the same advance() call.
Removed the now-stale BUILD_INITIAL_PLAN entry from service.py's
_BACKEND_ACTIONS_FOR (no action to gate on any more) and the compensating
exemption it required in test_every_backend_waiting_action_has_a_ui_path
(the invariant now holds with no special case).
Added a state-classification test (test_build_initial_plan_is_working_not_
waiting) and an end-to-end regression driving the Runner from build.review
through continue_adjusting with no find_resources action ever sent
(test_continue_adjusting_reaches_resources_without_find_resources_action),
which is the scenario this fix exists to unwedge. Fixed the two existing
idempotency flow tests that asserted the old (broken) two-step loop-back.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-20 14:50:45 -07:00
..
2026-09-18 08:59:54 +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-20 14:50:45 -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-18 05:10:25 +00:00
2026-08-29 14:05:35 +00: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-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-19 09:26:15 +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-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-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