Nick
0835918601
feat(seal): the MiMo production entry asks the lifecycle WHAT IS NEXT
...
The production route for a construction request already existed —
send_task → route → _construction_activation (canonical classifier →
contract) — but nothing asked the lifecycle what to do next, nothing
invoked the runner through it, and the contract reference lived only in
process memory, so a fresh session could not find the contract governing
the task it had just recovered.
Minimum seam, no new subsystem:
1. DURABLE TASK ↔ CONTRACT LINKAGE at activation. IssueLink (the existing
linkage owner) records the reference via link_contract(); no issue is
fabricated — the preserve-first convention stays operator-created, and
issue_number remains unset until a real one is attached. This is the
reference the lifecycle and a fresh session read.
2. THE PRODUCTION ENTRY: RuneOperator.advance_construction() asks the
lifecycle for the next action and executes the authorised one. It never
chooses research/build/CI itself and NEVER calls the canonical waiter
directly — qualify_candidate is executed THROUGH the lifecycle, which
owns the exact-SHA operation resolution, the waiter and the durable
result projection. Actions owned by other canonical surfaces are
reported verbatim with their owner (one switch, not a second one).
3. CONTRACT-SCOPED, DELIBERATELY: measured during this work — the
conversational path completes the TASK on the model route while its
contract still governs construction. Construction lives on the contract,
so the question is asked at that scope (the link supplies the reference).
4. ONE OWNER for the candidate-stage sequencing rule: extracted as
BuildLifecycle.candidate_stage_action(), used by both the task-scoped
next_action() and the production entry — the rule is never duplicated.
Tests (6): production request creates the task AND links the contract; the
lifecycle answers WHAT IS NEXT; the runner leg is executed through the
lifecycle with the EXACT candidate SHA; the operator source contains no
direct ci_event_wait call; runner failure sequences repair_candidate and
does not change the task's status (no false completion); a fresh operator
process recovers task+contract+candidate+CI state and sequences
complete_gates.
2026-09-26 19:20:48 +01:00
..
2026-09-07 19:51:36 +01:00
2026-08-30 17:10:32 +01:00
2026-09-26 15:16:09 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 00:24:39 +01:00
2026-09-10 17:47:28 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-26 16:48:56 +01:00
2026-09-07 15:08:02 +01:00
2026-09-17 01:38:39 +01:00
2026-09-26 15:24:58 +01:00
2026-09-18 10:25:59 +01:00
2026-09-25 19:35:44 +01:00
2026-09-25 18:50:58 +01:00
2026-09-25 17:14:34 +01:00
2026-09-25 18:58:20 +01:00
2026-09-15 22:33:59 +01:00
2026-09-26 00:47:16 +01:00
2026-08-28 11:26:04 +01:00
2026-09-23 17:17:14 +01:00
2026-09-24 21:42:00 +01:00
2026-09-26 09:56:53 +01:00
2026-09-13 04:16:48 +01:00
2026-09-07 19:33:46 +01:00
2026-09-07 16:07:45 +01:00
2026-09-08 02:26:59 +01:00
2026-09-26 18:38:55 +01:00
2026-09-19 00:11:51 +01:00
2026-09-08 01:58:29 +01:00
2026-09-07 17:37:35 +01:00
2026-09-19 03:32:24 +01:00
2026-09-25 12:13:24 +01:00
2026-09-13 04:49:17 +01:00
2026-09-14 12:06:58 +01:00
2026-09-15 04:50:38 +01:00
2026-09-14 04:27:40 +01:00
2026-09-13 14:48:28 +01:00
2026-09-12 04:30:18 +01:00
2026-09-25 13:25:07 +01:00
2026-09-25 13:25:07 +01:00
2026-09-15 19:38:31 +01:00
2026-09-15 23:33:42 +01:00
2026-09-15 22:33:59 +01:00
2026-09-13 04:49:17 +01:00
2026-09-07 15:26:33 +01:00
2026-09-26 15:24:58 +01:00
2026-09-16 18:22:05 +01:00
2026-09-11 15:36:08 +01:00
2026-09-26 01:54:44 +01:00
2026-09-26 18:38:55 +01:00
2026-09-12 20:10:28 +01:00
2026-09-14 06:26:24 +01:00
2026-09-11 03:16:50 +01:00
2026-09-16 17:11:39 +01:00
2026-09-26 15:24:58 +01:00
2026-09-07 15:00:53 +01:00
2026-09-15 17:34:00 +01:00
2026-09-17 13:06:17 +01:00
2026-09-11 00:24:39 +01:00
2026-09-07 17:36:25 +01:00
2026-09-07 17:38:33 +01:00
2026-09-07 17:36:25 +01:00
2026-09-07 19:51:36 +01:00
2026-09-07 16:57:49 +01:00
2026-09-26 15:24:58 +01:00
2026-09-11 20:59:39 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-19 15:25:04 +01:00
2026-09-15 23:33:42 +01:00
2026-09-25 13:20:21 +01:00
2026-09-07 20:10:38 +01:00
2026-09-25 12:14:51 +01:00
2026-09-23 17:17:14 +01:00
2026-09-12 07:57:26 +01:00
2026-09-13 04:16:48 +01:00
2026-09-13 04:16:48 +01:00
2026-09-13 04:49:17 +01:00
2026-09-04 00:22:24 +01:00
2026-09-04 00:10:03 +01:00
2026-09-04 03:30:14 +01:00
2026-09-26 15:16:09 +01:00
2026-09-16 13:41:32 +01:00
2026-09-12 11:15:42 +01:00
2026-09-17 12:56:52 +01:00
2026-09-26 15:24:58 +01:00
2026-09-08 05:54:37 +01:00
2026-08-28 11:26:04 +01:00
2026-09-26 16:48:56 +01:00
2026-09-26 19:20:48 +01:00
2026-09-26 15:16:09 +01:00
2026-09-15 03:06:55 +01:00
2026-09-23 17:17:14 +01:00
2026-09-12 10:49:42 +01:00
2026-09-26 15:24:58 +01:00
2026-09-03 21:01:40 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 17:12:09 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 21:13:08 +01:00
2026-09-03 17:12:09 +01:00
2026-09-03 17:44:51 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 20:52:37 +01:00
2026-09-03 19:17:01 +01:00
2026-09-03 17:12:09 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 20:46:30 +01:00
2026-09-03 18:56:02 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 17:12:09 +01:00
2026-09-03 17:16:31 +01:00
2026-09-03 17:12:09 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 19:02:15 +01:00
2026-09-03 22:41:56 +01:00
2026-09-03 23:18:14 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 20:38:10 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 17:12:09 +01:00
2026-09-03 18:32:57 +01:00
2026-09-03 22:41:56 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 18:23:25 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 17:12:09 +01:00
2026-09-03 23:40:06 +01:00
2026-09-11 15:36:08 +01:00
2026-09-03 22:41:56 +01:00
2026-09-03 18:43:41 +01:00
2026-09-05 11:39:45 +01:00
2026-09-11 15:36:08 +01:00
2026-09-05 14:50:23 +01:00
2026-09-05 18:21:56 +01:00
2026-09-11 15:36:08 +01:00
2026-09-07 12:24:51 +01:00
2026-09-11 15:36:08 +01:00
2026-09-06 16:39:28 +01:00
2026-09-06 04:58:23 +01:00
2026-09-25 12:18:58 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 05:58:47 +01:00
2026-09-15 19:10:46 +01:00
2026-09-16 18:22:05 +01:00
2026-09-15 19:10:46 +01:00
2026-09-14 07:28:37 +01:00
2026-09-15 17:02:04 +01:00
2026-09-11 15:36:08 +01:00
2026-09-19 04:59:07 +01:00
2026-09-19 03:32:24 +01:00
2026-09-11 18:17:17 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 18:17:17 +01:00
2026-09-14 23:30:51 +01:00
2026-09-11 03:16:50 +01:00
2026-09-08 07:08:06 +01:00
2026-09-26 01:54:44 +01:00
2026-09-11 15:36:08 +01:00
2026-09-25 12:06:26 +01:00
2026-09-08 14:51:51 +01:00
2026-09-11 15:36:08 +01:00
2026-09-08 12:31:53 +01:00
2026-09-08 07:12:34 +01:00
2026-09-11 15:36:08 +01:00
2026-09-16 18:22:05 +01:00
2026-09-11 15:36:08 +01:00
2026-09-16 03:01:42 +01:00
2026-09-17 01:38:39 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 20:15:57 +01:00
2026-09-11 15:36:08 +01:00
2026-09-26 18:46:36 +01:00
2026-09-07 12:00:35 +01:00
2026-09-14 05:35:25 +01:00
2026-09-15 23:33:42 +01:00
2026-09-09 11:25:42 +01:00
2026-09-16 03:32:53 +01:00
2026-09-08 05:12:55 +01:00
2026-09-18 17:09:40 +01:00
2026-09-11 15:36:08 +01:00
2026-09-16 16:07:19 +01:00
2026-09-12 19:18:13 +01:00
2026-09-11 15:36:08 +01:00
2026-09-15 03:06:55 +01:00
2026-09-11 15:36:08 +01:00
2026-09-11 15:36:08 +01:00
2026-09-15 22:33:59 +01:00
2026-09-25 17:30:23 +01:00
2026-09-15 17:34:00 +01:00
2026-09-04 17:40:07 +01:00
2026-09-13 13:36:50 +01:00
2026-09-11 15:36:08 +01:00
2026-09-24 21:56:24 +01:00
2026-09-24 18:17:24 +01:00
2026-09-25 00:28:28 +01:00
2026-09-25 15:16:16 +01:00
2026-09-25 13:13:43 +01:00
2026-09-16 18:37:22 +01:00
2026-09-17 02:07:15 +01:00
2026-09-25 00:44:57 +01:00
2026-09-11 20:15:57 +01:00
2026-09-15 19:49:18 +01:00
2026-09-16 05:08:14 +01:00
2026-09-16 01:24:29 +01:00
2026-09-11 15:36:08 +01:00
2026-09-19 07:18:07 +01:00
2026-09-11 15:36:08 +01:00
2026-09-26 02:19:51 +01:00
2026-09-13 04:16:48 +01:00
2026-09-12 10:49:42 +01:00
2026-09-13 17:23:13 +01:00
2026-09-26 15:24:58 +01:00
2026-09-07 20:14:57 +01:00
2026-09-26 16:34:34 +01:00
2026-09-09 03:55:22 +01:00
2026-09-26 16:48:56 +01:00
2026-09-15 23:39:42 +01:00
2026-09-04 20:05:23 +01:00
2026-09-15 23:00:23 +01:00
2026-09-15 23:00:23 +01:00
2026-09-16 01:24:29 +01:00
2026-09-16 00:54:34 +01:00
2026-09-26 15:16:09 +01:00
2026-09-11 22:33:10 +01:00
2026-09-04 11:59:57 +01:00
2026-09-16 20:37:19 +01:00
2026-09-16 20:29:43 +01:00
2026-09-16 18:22:05 +01:00
2026-09-16 04:52:23 +01:00
2026-09-07 14:52:51 +01:00
2026-09-17 13:39:52 +01:00