Bobby Ho
4d1f95e73e
feat: order lifecycle scripts by their dependencies ( #30765 )
...
feat(agent): enforce lifecycle script ordering
Honor `coder_script_order` dependencies for startup and shutdown scripts
using the existing outcome-aware unit manager. Cron, legacy scripts,
and scripts without dependencies retain their existing behavior.
- Wait for all prerequisites before running. `success` requires a
successful prerequisite; `completion` also accepts failure, timeout,
or skip. Skip dependents as soon as a required success becomes
impossible, preserving the original failure as the lifecycle error.
- Reject invalid dependency graphs before any scripts start and write
the reason to every selected script's log.
- Log unmet dependencies every 30 seconds and explain skips. Populate
display names in the manifest so skip messages use readable names,
falling back to Terraform addresses.
- Exclude dependency waits from script timeouts, record an outcome on
every exit, and use fresh state per execution. Cancellation stops
waiters without starting dependents or emitting skip messages.
Add regression coverage for ordering, skip propagation, timeouts,
cancellation, invalid graphs, and unchanged unordered execution.
Refs https://linear.app/codercom/issue/PLAT-549/phase-3-enforce-lifecycle-script-ordering
2026-10-15 20:33:48 +00:00
..
2026-10-15 20:33:48 +00:00
2026-10-15 12:01:26 +01:00
2026-10-07 16:51:19 +00:00
2026-10-13 07:57:56 +00:00
2026-09-29 11:48:52 +02:00
2026-09-11 01:48:56 +00:00
2026-10-15 14:20:44 -05:00
2026-10-07 11:43:19 +03:00
2026-09-02 11:29:35 +02:00
2026-10-13 16:24:45 +00:00
2026-08-21 23:46:27 -06:00
2026-10-15 14:20:44 -05:00
2026-10-13 07:57:56 +00:00
2026-10-05 16:52:36 -07:00
2026-10-12 15:56:40 +03:00
2026-10-05 16:52:36 -07:00
2026-10-15 14:20:44 -05:00
2026-10-13 07:57:56 +00:00
2026-10-09 16:42:41 -06:00
2026-10-13 07:57:56 +00:00
2026-09-16 14:52:21 -07:00
2026-09-23 20:08:31 +02:00
2026-10-13 16:24:45 +00:00
2026-09-27 23:34:26 +02:00
2026-08-21 23:46:27 -06:00
2026-10-14 16:34:56 +05:00
2026-09-24 15:12:28 +03:00
2026-10-05 16:52:36 -07:00
2026-10-13 07:57:56 +00:00
2026-10-09 00:58:39 +05:00
2026-10-13 07:57:56 +00:00
2026-10-15 14:20:44 -05:00
2026-10-15 13:32:40 -05:00
2026-08-25 08:12:00 -07:00
2026-09-17 18:14:08 +02:00
2026-10-11 19:57:49 +02:00
2026-10-12 15:56:40 +03:00
2026-09-29 12:23:00 +00:00
2026-10-14 12:35:48 -04:00
2026-10-02 16:40:24 -08:00
2026-08-25 16:40:41 +07:00
2026-10-05 12:15:42 +00:00
2026-10-14 14:55:29 -07:00
2026-09-26 21:41:25 +02:00
2026-10-15 14:20:44 -05:00
2026-10-15 14:39:21 +11:00
2026-09-23 20:08:31 +02:00
2026-09-09 10:16:24 +02:00
2026-09-11 16:03:44 +00:00
2026-09-11 16:03:44 +00:00
2026-09-29 09:20:31 +01:00
2026-09-29 09:20:31 +01:00
2026-09-29 09:20:31 +01:00
2026-09-14 13:47:48 -07:00
2026-10-07 11:43:19 +03:00
2026-10-07 11:43:19 +03:00
2026-09-11 01:48:56 +00:00
2026-10-13 19:15:16 +07:00
2026-10-13 19:15:16 +07:00
2026-10-05 12:52:10 -04:00
2026-10-05 12:52:10 -04:00
2026-10-01 11:49:21 -04:00
2026-10-01 11:49:21 -04:00
2026-10-01 11:49:21 -04:00
2026-10-13 19:15:16 +07:00
2026-09-14 08:31:26 -07:00
2026-10-14 14:55:29 -07:00
2026-08-24 12:06:56 -07:00
2026-08-21 23:46:27 -06:00
2026-09-24 15:12:28 +03:00
2026-08-26 11:57:56 -06:00
2026-08-26 16:17:06 +02:00
2026-10-01 16:42:51 +02:00
2026-09-21 17:42:31 +02:00
2026-09-28 09:25:01 +00:00
2026-09-21 17:42:31 +02:00
2026-08-27 10:49:13 +01:00
2026-08-24 11:20:26 +01:00
2026-08-26 13:33:13 +02:00
2026-09-21 15:58:18 +02:00
2026-10-07 15:55:04 +02:00
2026-10-12 09:53:44 +11:00
2026-09-27 16:38:30 +02:00
2026-10-11 19:57:49 +02:00
2026-10-11 19:57:49 +02:00
2026-09-29 12:23:00 +00:00
2026-09-29 12:23:00 +00:00
2026-10-07 15:55:04 +02:00
2026-10-06 13:01:11 +03:00
2026-10-06 13:01:11 +03:00
2026-09-25 18:51:55 +10:00
2026-09-25 18:51:55 +10:00
2026-09-25 18:51:55 +10:00
2026-10-12 23:58:35 +03:00
2026-10-12 23:58:35 +03:00
2026-08-26 19:49:43 +02:00
2026-10-13 16:43:15 +00:00
2026-10-14 14:55:29 -07:00
2026-10-13 23:03:08 +02:00
2026-10-13 23:03:08 +02:00
2026-10-09 00:58:39 +05:00
2026-10-09 00:58:39 +05:00
2026-10-09 00:58:39 +05:00
2026-10-13 23:03:08 +02:00
2026-08-26 15:29:26 +02:00
2026-08-26 15:29:26 +02:00
2026-09-16 11:36:45 -07:00
2026-09-28 18:46:14 +00:00
2026-08-26 11:57:56 -06:00
2026-09-14 18:31:48 -07:00
2026-09-14 18:31:48 -07:00
2026-09-28 18:46:14 +00:00
2026-09-22 23:20:24 +00:00
2026-09-22 23:20:24 +00:00
2026-10-13 16:43:15 +00:00
2026-10-13 16:43:15 +00:00
2026-10-13 16:24:45 +00:00
2026-10-13 16:24:45 +00:00
2026-09-08 17:20:53 +00:00
2026-09-17 14:33:37 -05:00
2026-08-21 10:31:01 -04:00
2026-08-21 10:31:01 -04:00
2026-08-31 11:36:43 -04:00
2026-10-13 03:43:55 +00:00
2026-09-27 23:34:26 +02:00
2026-10-14 14:55:29 -07:00
2026-10-14 14:55:29 -07:00
2026-10-14 14:55:29 -07:00
2026-09-02 12:51:33 -04:00
2026-09-10 08:21:29 -04:00
2026-09-10 08:21:29 -04:00
2026-09-11 18:13:16 -05:00
2026-09-11 18:13:16 -05:00
2026-09-17 11:11:38 +10:00
2026-09-11 18:13:16 -05:00
2026-10-13 07:57:56 +00:00
2026-08-26 11:57:56 -06:00
2026-10-07 19:03:46 +02:00
2026-10-09 16:42:41 -06:00
2026-10-09 16:42:41 -06:00
2026-09-02 09:21:36 -07:00
2026-09-02 09:21:36 -07:00
2026-09-02 09:21:36 -07:00
2026-08-21 23:46:27 -06:00
2026-09-02 09:21:36 -07:00
2026-10-13 16:24:45 +00:00
2026-10-13 16:24:45 +00:00
2026-10-15 14:38:42 -05:00
2026-10-13 03:43:55 +00:00
2026-08-26 11:57:56 -06:00
2026-10-14 13:54:17 +03:00
2026-10-15 14:38:42 -05:00
2026-10-07 11:43:19 +03:00
2026-10-07 11:43:19 +03:00
2026-09-25 13:59:53 -05:00
2026-09-21 11:04:12 +00:00
2026-08-21 23:46:27 -06:00
2026-10-15 14:20:44 -05:00
2026-09-24 11:41:32 -07:00
2026-09-24 11:41:32 -07:00
2026-09-19 00:32:51 +02:00
2026-08-26 11:57:56 -06:00
2026-10-15 14:20:44 -05:00
2026-10-15 14:20:44 -05:00
2026-10-15 14:20:44 -05:00
2026-09-21 21:06:06 +02:00