gsxdsm
c7c879905b
FN-8903: add event-driven GitHub CI merge checks
Persist ingested GitHub CI signals and use them to assess merge readiness.
- Store project-scoped GitHub check states with retention maintenance.
- Resolve configured required checks from ingested signals during PR merge decisions.
- Add delivery, lifecycle, persistence, and retention coverage with operator documentation.
Files changed:
.changeset/fn-8903-event-driven-checks.md | 7 ++
docs/architecture.md | 1 +
docs/settings-reference.md | 2 +-
docs/signals-connectors.md | 2 +-
.../src/commands/__tests__/task-lifecycle.test.ts | 50 ++++++++-
packages/cli/src/commands/task-lifecycle.ts | 7 +-
.../core/src/__tests__/ingested-checks.test.ts | 66 +++++++++++
.../postgres/github-check-states.pg.test.ts | 71 ++++++++++++
packages/core/src/config/index.ts | 1 +
packages/core/src/config/ingested-checks.ts | 32 ++++++
packages/core/src/index.ts | 10 ++
.../0048_fn_8903_github_check_states.sql | 32 ++++++
packages/core/src/postgres/schema-applier.ts | 15 ++-
packages/core/src/postgres/schema/project.ts | 29 ++++-
.../core/src/task-store/async/async-ci-checks.ts | 104 ++++++++++++++++++
packages/core/src/task-store/async/index.ts | 1 +
packages/core/src/types.ts | 2 +
packages/dashboard/src/__tests__/github.test.ts | 121 ++++++++++++++++++++-
.../src/__tests__/register-signal-routes.test.ts | 81 +++++++++++++-
packages/dashboard/src/github.ts | 74 +++++++++----
.../dashboard/src/routes/register-git-github.ts | 29 +++--
.../dashboard/src/routes/register-signal-routes.ts | 10 +-
.../src/routes/register-task-workflow-routes.ts | 14 ++-
packages/dashboard/src/signal-source.ts | 23 ++++
packages/dashboard/src/signal-sources/github.ts | 2 +
.../self-healing-github-check-retention.test.ts | 121 +++++++++++++++++++++
packages/engine/src/self-healing.ts | 23 ++++
27 files changed, 878 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-8903
Fusion-Task-Lineage: b2643587-c568-4b6c-8b3a-d50a6165963d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-09 09:14:56 -07:00
..
2026-08-09 09:14:56 -07:00
2026-08-09 00:41:18 -07:00
2026-08-03 10:58:19 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-07 21:43:28 -07:00
2026-08-09 06:01:02 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 04:37:47 -07:00
2026-08-03 00:20:53 -07:00
2026-07-13 19:07:58 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 06:01:02 -07:00
2026-08-07 20:56:52 -07:00
2026-08-09 00:01:44 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 04:50:30 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-07-20 10:13:57 -07:00
2026-08-09 04:50:30 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 06:01:02 -07:00
2026-08-07 20:27:04 -07:00
2026-08-08 21:04:10 -07:00
2026-08-07 21:18:24 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 00:41:18 -07:00
2026-08-09 00:41:18 -07:00
2026-07-30 21:50:37 -07:00
2026-08-01 08:20:29 -07:00
2026-08-04 10:52:12 -07:00
2026-08-02 17:06:38 -07:00
2026-08-09 00:41:18 -07:00
2026-08-07 01:36:34 -07:00
2026-07-23 10:31:22 -07:00
2026-08-07 01:36:34 -07:00
2026-08-07 01:36:34 -07:00
2026-07-25 20:46:07 -07:00
2026-08-04 19:31:06 -07:00
2026-08-04 00:20:08 -07:00
2026-07-30 00:00:46 -07:00
2026-08-04 00:20:08 -07:00
2026-08-09 04:50:30 -07:00
2026-08-09 04:50:30 -07:00
2026-07-27 17:37:20 -07:00
2026-07-24 23:57:49 -07:00
2026-08-09 04:37:47 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 09:14:56 -07:00
2026-07-30 23:13:34 -07:00
2026-08-09 03:15:00 -07:00
2026-08-03 00:20:53 -07:00
2026-07-27 13:30:13 -07:00
2026-08-03 00:20:53 -07:00