gsxdsm
a6ce7f89ef
FN-8987: expose release-gate verdicts for Promote visibility
Expose server-evaluated release-gate state so Promote controls accurately reflect approval readiness.
- Attach transient release-gate verdicts to task API responses.
- Preserve only fresh REST verdicts across task snapshots and render them in task cards.
- Align hold-release gating and document the Promote-state contract.
Files changed:
.changeset/fn-8987-release-gate-verdict.md | 7 +
docs/dashboard-guide.md | 4 +
docs/solutions/workflow-learnings/project-union-versus-per-task-lanes.md | 1 +
docs/workflow-steps.md | 4 +
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 2 +
packages/core/src/types/task/task-core.ts | 20 +++
packages/dashboard/app/components/TaskCard.tsx | 3 +-
packages/dashboard/app/components/__tests__/TaskCard.test.tsx | 31 ++++
packages/dashboard/app/hooks/__tests__/useTasks.test.ts | 26 ++++
packages/dashboard/app/hooks/useTasks.ts | 135 +++++++++++++++--
packages/dashboard/app/utils/__tests__/releaseGate.contract.test.ts | 29 ++++
packages/dashboard/app/utils/__tests__/releaseGate.test.ts | 49 ++++++
packages/dashboard/app/utils/releaseGate.ts | 26 ++++
packages/dashboard/app/utils/reviewBudgetApproval.ts | 9 ++
packages/dashboard/src/routes/register-task-workflow-routes.ts | 20 ++-
packages/engine/src/__tests__/release-gate-verdict.test.ts | 40 +++++
packages/engine/src/execution/hold-release.ts | 166 +++++++++------------
packages/engine/src/index.ts | 3 +
20 files changed, 469 insertions(+), 110 deletions(-)
Fusion-Task-Id: FN-8987
Fusion-Task-Lineage: 6f1742bc-2b2b-4a32-9be5-92160335d90d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-11 14:22:14 -07:00
..
2026-08-11 13:34:27 -07:00
2026-07-16 14:08:43 -07:00
2026-08-11 14:22:14 -07:00
2026-08-03 09:04:45 -07:00
2026-08-09 09:14:56 -07:00
2026-08-02 23:09:48 -07:00
2026-07-30 12:03:07 -07:00
2026-07-24 22:32:49 -07:00
2026-07-23 18:39:10 -07:00
2026-07-26 12:01:19 -07:00
2026-07-26 12:01:19 -07:00
2026-08-03 12:15:19 -07:00
2026-07-13 13:58:35 -07:00
2026-08-09 13:33:16 -10:00
2026-07-26 13:15:36 -07:00
2026-07-19 18:45:27 -07:00
2026-08-08 22:55:38 -07:00
2026-07-25 22:52:53 -07:00
2026-07-22 18:46:46 -07:00
2026-07-14 22:13:30 -07:00
2026-08-10 02:25:03 -07:00
2026-07-17 12:00:26 -07:00
2026-07-13 19:07:58 -07:00
2026-07-03 21:45:20 -07:00
2026-06-05 03:56:29 -07:00
2026-06-15 02:30:41 -07:00
2026-06-05 03:41:54 -07:00
2026-07-02 15:00:40 -07:00
2026-07-09 19:58:03 -07:00
2026-08-09 04:37:47 -07:00
2026-07-19 18:59:36 -07:00
2026-07-26 12:01:19 -07:00
2026-07-13 23:16:36 -07:00
2026-07-26 13:15:36 -07:00
2026-07-15 10:07:20 -07:00
2026-07-15 19:29:02 -07:00
2026-06-30 00:03:37 -07:00
2026-07-30 12:03:07 -07:00
2026-06-10 10:34:36 -07:00
2026-07-30 12:03:07 -07:00
2026-07-30 07:14:54 -07:00
2026-08-01 06:09:04 -07:00
2026-08-09 07:06:06 -07:00
2026-08-09 09:14:56 -07:00
2026-07-02 19:01:09 -07:00
2026-08-01 10:45:13 -07:00
2026-07-30 12:03:07 -07:00
2026-08-01 04:08:57 -07:00
2026-07-02 11:38:34 -07:00
2026-07-30 12:03:07 -07:00
2026-08-01 06:09:04 -07:00
2026-07-30 12:03:07 -07:00
2026-08-01 03:19:00 -07:00
2026-07-15 21:58:46 -07:00
2026-07-13 23:16:36 -07:00
2026-07-09 19:58:03 -07:00
2026-07-07 22:04:55 -07:00
2026-07-18 13:18:08 -07:00
2026-07-17 13:31:42 -07:00
2026-08-09 04:50:30 -07:00
2026-07-13 19:07:58 -07:00
2026-07-26 12:01:19 -07:00
2026-08-09 08:31:26 -07:00
2026-08-09 08:31:26 -07:00
2026-07-30 12:03:07 -07:00
2026-07-26 12:01:19 -07:00
2026-07-24 22:32:49 -07:00
2026-07-24 22:32:49 -07:00
2026-07-23 18:39:10 -07:00
2026-08-11 01:30:04 -07:00
2026-08-09 06:51:22 -07:00
2026-07-14 22:16:16 -07:00
2026-07-19 15:45:45 -07:00
2026-07-14 08:18:52 -07:00
2026-07-14 22:16:16 -07:00
2026-07-30 12:03:07 -07:00
2026-08-09 08:31:26 -07:00
2026-07-26 12:01:19 -07:00
2026-07-24 22:32:49 -07:00
2026-06-28 01:17:22 -07:00
2026-06-16 15:08:24 -07:00
2026-08-01 06:09:04 -07:00
2026-07-23 17:27:59 -07:00
2026-08-03 09:04:45 -07:00
2026-07-31 13:23:20 -07:00
2026-07-18 10:55:50 -07:00
2026-07-19 20:42:05 -07:00
2026-07-18 14:23:14 -07:00
2026-07-18 17:06:34 -07:00
2026-08-08 22:55:38 -07:00
2026-07-14 22:13:30 -07:00
2026-08-11 05:45:36 -07:00
2026-08-03 09:04:45 -07:00
2026-07-26 12:01:19 -07:00
2026-07-17 12:00:26 -07:00
2026-08-09 08:31:26 -07:00
2026-08-09 09:14:56 -07:00
2026-07-15 10:38:04 -07:00
2026-08-09 14:39:17 -07:00
2026-07-24 22:32:49 -07:00
2026-08-09 13:22:32 -10:00
2026-07-30 12:03:07 -07:00
2026-07-30 15:16:24 -07:00
2026-07-26 12:01:19 -07:00
2026-07-10 23:42:10 -07:00
2026-07-13 19:07:58 -07:00
2026-07-19 13:34:25 -07:00
2026-08-01 08:52:08 -07:00
2026-07-26 12:01:19 -07:00