Files
git.stella-ops.org/docs/features/checked/taskrunner/pack-run-approval-gates.md
2026-02-14 09:11:48 +02:00

2.0 KiB

Pack Run Approval Gates

Module

TaskRunner

Status

IMPLEMENTED

Description

Approval gate system for task packs with coordinator, decision service, state tracking, and gate state updating.

Implementation Details

  • Approval coordinator: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Core/Execution/PackRunApprovalCoordinator.cs -- orchestrates approval gate flow
  • Approval state: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Core/Execution/PackRunApprovalState.cs -- approval state tracking model
  • Approval status: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Core/Execution/PackRunApprovalStatus.cs -- approval status enum
  • Approval store interface: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Core/Execution/IPackRunApprovalStore.cs -- approval persistence contract
  • Gate state updater: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Core/Execution/PackRunGateStateUpdater.cs -- updates gate states during execution
  • Decision service: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Infrastructure/Execution/PackRunApprovalDecisionService.cs -- processes approval decisions
  • File-based store: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Infrastructure/Execution/FilePackRunApprovalStore.cs -- file-backed approval persistence
  • Postgres store: src/TaskRunner/__Libraries/StellaOps.TaskRunner.Persistence/Postgres/Repositories/PostgresPackRunApprovalStore.cs -- PostgreSQL approval persistence
  • Tests: src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Tests/PackRunApprovalCoordinatorTests.cs, PackRunApprovalDecisionServiceTests.cs, PackRunGateStateUpdaterTests.cs
  • Source: Feature matrix scan

E2E Test Plan

  • Verify approval gates block execution until approved
  • Test approval coordinator handles multi-approver gates
  • Verify gate state transitions (pending -> approved/rejected)
  • Test approval persistence survives service restart
  • Verify rejected gates prevent pack run continuation