gsxdsm
de2cad7535
fix(workflows): reject missing plan review artifacts ( #2390 )
...
## Summary
Workflows could reach Plan Review without an authoritative PROMPT.md,
producing misleading approvals or stranding the task. Planning now
verifies durable prompt persistence before releasing the card, and every
workflow entry/review surface fails closed when its required plan is
absent. Confirmed absence triggers bounded automatic replanning;
TaskStore read outages retry in place; exhausted recovery parks visibly
without consuming review-fix budget or overriding pause, manual-review,
terminal, or merge-confirmed state.
Related: FN-8455
## Validation
- Focused workflow-artifact, graph-recovery, review, writer, and triage
regression suites pass.
- @fusion/engine typecheck passes.
- Repository lint, changeset validation, and diff checks pass.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Plan Review now fails closed when `PROMPT.md` is missing or blank,
returning a revision request with a typed `failureValue`.
* Required workflow artifacts are treated as missing unless they exist
with non-empty content; read failures are handled separately.
* Recovery now deterministically chooses replan vs “park-failed” with
bounded retries, and records a `task:required-artifact-missing` audit
event.
* **Workflow Improvements**
* Triage and approval now persist `PROMPT.md` through the dedicated
prompt-write flow and verify it was stored exactly.
* Optional-group remediation preserves typed required-artifact missing
failures for pre-merge fixes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-21 17:06:26 -07:00
..
2026-07-21 17:06:26 -07:00
2026-05-23 02:29:38 -07:00
2026-07-14 22:16:16 -07:00
2026-07-15 13:34:30 -07:00
2026-07-13 19:07:58 -07:00
2026-05-29 20:05:14 -07:00
2026-07-17 08:53:44 -07:00
2026-06-29 04:12:13 -07:00
2026-05-21 12:04:58 -07:00
2026-06-26 16:14:44 -07:00
2026-07-20 10:13:57 -07:00
2026-07-21 13:36:05 -07:00
2026-07-06 19:03:07 -07:00
2026-06-13 04:54:59 -07:00
2026-06-04 22:53:02 -07:00
2026-07-20 16:08:00 -07:00
2026-06-22 01:37:59 -07:00
2026-07-19 22:43:13 -07:00
2026-07-12 10:04:29 -07:00
2026-07-16 00:01:17 -07:00
2026-07-20 11:26:08 -07:00
2026-07-19 22:43:13 -07:00
2026-07-10 07:46:52 -07:00
2026-07-15 16:17:37 -07:00
2026-07-16 20:50:18 -07:00
2026-07-15 11:13:56 -07:00
2026-07-20 12:32:01 -07:00
2026-07-21 17:06:26 -07:00
2026-06-30 12:56:03 -07:00
2026-07-03 22:04:45 -07:00
2026-07-16 17:05:29 -07:00
2026-07-18 17:08:35 -07:00
2026-06-21 16:23:42 -07:00
2026-06-07 20:43:44 -07:00
2026-07-19 12:08:10 -07:00
2026-05-21 12:49:50 -07:00
2026-07-14 22:16:16 -07:00
2026-06-22 03:04:21 -07:00
2026-05-23 00:03:12 -07:00
2026-07-16 13:48:00 -07:00
2026-06-15 12:34:44 -07:00
2026-06-26 16:14:44 -07:00
2026-06-15 02:30:41 -07:00
2026-06-04 16:16:50 -07:00
2026-07-21 15:30:31 -07:00
2026-07-16 16:34:09 -07:00
2026-07-16 18:13:37 -07:00
2026-06-01 08:23:02 -07:00
2026-07-14 22:16:16 -07:00
2026-07-14 22:16:16 -07:00
2026-06-07 23:03:38 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 22:16:16 -07:00
2026-06-26 00:57:32 -07:00
2026-07-21 17:06:26 -07:00
2026-07-13 19:07:58 -07:00
2026-07-15 12:54:16 -07:00
2026-07-19 22:43:13 -07:00
2026-07-13 19:07:58 -07:00
2026-05-29 07:11:00 -07:00
2026-07-14 17:02:47 -07:00
2026-06-25 08:35:44 -07:00
2026-07-13 19:07:58 -07:00
2026-07-21 13:36:05 -07:00
2026-07-18 01:23:31 -07:00
2026-07-19 12:08:10 -07:00
2026-07-02 13:07:16 -07:00
2026-07-01 09:41:20 -07:00
2026-07-15 12:49:43 -07:00
2026-06-26 11:56:12 -07:00
2026-07-18 21:58:29 -07:00
2026-07-14 08:18:52 -07:00
2026-07-18 21:58:29 -07:00
2026-06-26 00:57:32 -07:00
2026-07-15 22:43:24 -07:00
2026-07-02 11:38:32 -07:00
2026-07-15 10:06:32 -07:00
2026-06-22 19:48:50 -07:00
2026-07-15 22:43:24 -07:00
2026-06-25 20:12:20 -07:00
2026-07-16 21:42:44 -07:00
2026-05-28 15:04:41 -07:00
2026-07-16 15:42:22 -07:00
2026-05-26 21:57:31 -07:00
2026-07-16 00:01:17 -07:00
2026-07-18 14:42:59 -07:00
2026-07-16 00:01:17 -07:00
2026-07-15 14:44:35 -07:00
2026-07-19 16:00:28 -07:00
2026-07-15 14:44:35 -07:00
2026-07-13 19:07:58 -07:00
2026-05-23 09:59:50 -07:00
2026-07-16 00:01:17 -07:00
2026-07-11 22:16:48 -07:00
2026-05-21 16:30:31 -07:00
2026-07-19 16:00:28 -07:00
2026-07-19 12:08:10 -07:00
2026-07-14 22:13:30 -07:00
2026-07-13 19:07:58 -07:00
2026-07-17 17:28:36 -07:00
2026-07-19 22:43:13 -07:00
2026-07-19 22:43:13 -07:00
2026-06-13 16:16:52 -07:00
2026-06-19 23:50:37 +00:00
2026-06-29 08:49:59 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-09 19:58:06 -07:00
2026-07-16 21:42:44 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-15 13:32:33 -07:00
2026-07-19 22:43:13 -07:00
2026-07-20 01:07:14 -07:00
2026-07-04 21:28:16 -07:00
2026-07-19 17:25:02 -07:00
2026-07-08 15:09:26 -07:00
2026-06-04 12:44:43 -07:00
2026-07-14 22:13:30 -07:00
2026-06-04 07:34:02 -07:00
2026-06-07 21:19:10 -07:00
2026-07-14 12:41:10 -07:00
2026-07-17 17:28:09 -07:00
2026-07-13 19:07:58 -07:00
2026-07-16 21:07:06 -07:00
2026-07-13 19:07:58 -07:00
2026-07-18 12:21:08 -07:00
2026-07-19 16:52:02 -07:00
2026-07-21 15:30:31 -07:00
2026-07-13 19:07:58 -07:00
2026-07-19 16:52:02 -07:00
2026-06-11 21:00:23 -07:00
2026-07-17 09:47:40 -07:00
2026-07-16 18:13:37 -07:00
2026-06-04 22:53:02 -07:00
2026-07-12 13:57:08 -07:00
2026-07-15 22:53:49 -07:00
2026-07-21 17:06:26 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-10 22:25:21 -07:00
2026-07-15 20:53:05 -07:00
2026-06-07 23:03:38 -07:00
2026-07-01 16:38:27 -07:00
2026-07-16 14:44:07 -07:00
2026-07-16 16:34:09 -07:00
2026-07-16 16:34:09 -07:00
2026-07-21 17:06:26 -07:00
2026-07-15 08:44:11 -07:00
2026-07-15 19:43:08 -07:00
2026-07-08 12:29:14 -04:00
2026-07-21 15:30:31 -07:00
2026-07-16 00:01:17 -07:00
2026-07-16 00:01:17 -07:00
2026-07-16 15:42:22 -07:00
2026-07-16 15:42:22 -07:00
2026-07-20 13:40:50 -07:00
2026-07-15 10:38:04 -07:00
2026-07-19 15:38:31 -07:00
2026-07-12 11:15:52 -07:00
2026-05-23 14:26:57 -07:00
2026-05-30 21:53:00 -07:00
2026-06-04 14:01:55 -07:00
2026-06-29 03:15:30 -07:00
2026-07-19 22:43:13 -07:00
2026-05-31 23:24:53 -07:00
2026-06-18 00:39:01 -07:00
2026-06-23 10:30:50 -07:00
2026-07-05 11:31:48 -07:00
2026-07-16 01:52:10 -07:00
2026-05-28 21:23:48 -07:00
2026-07-14 08:17:36 -07:00
2026-07-15 21:00:45 -07:00
2026-07-15 20:14:25 -07:00
2026-07-15 20:14:25 -07:00
2026-07-21 17:06:26 -07:00
2026-07-17 17:28:36 -07:00
2026-07-15 08:44:11 -07:00
2026-07-15 08:44:11 -07:00
2026-07-21 12:17:47 -07:00
2026-06-29 10:32:51 -07:00
2026-07-01 00:51:01 -07:00
2026-06-04 07:34:02 -07:00
2026-07-21 17:06:26 -07:00
2026-06-29 18:05:44 -07:00
2026-06-25 22:33:08 -07:00
2026-07-21 12:17:47 -07:00
2026-06-11 08:43:27 -07:00
2026-07-15 15:34:43 -07:00
2026-07-19 12:08:10 -07:00
2026-07-01 00:51:01 -07:00
2026-07-01 00:51:01 -07:00
2026-07-01 00:51:01 -07:00
2026-07-01 00:51:01 -07:00
2026-06-30 00:09:36 -07:00
2026-07-21 17:06:26 -07:00
2026-07-19 22:07:55 -07:00
2026-07-19 22:07:55 -07:00
2026-07-07 10:25:11 -07:00
2026-06-21 23:02:46 -07:00
2026-07-19 17:05:05 -07:00
2026-07-16 13:48:00 -07:00
2026-06-25 08:34:44 -07:00
2026-07-14 22:16:16 -07:00
2026-06-26 13:13:46 -07:00
2026-06-04 13:04:15 -07:00
2026-06-12 12:49:34 -07:00
2026-07-19 23:47:53 -07:00
2026-07-19 23:47:53 -07:00
2026-05-23 15:13:17 -07:00
2026-07-13 19:07:58 -07:00