feat: add dry-run workflow execution boundary

This commit is contained in:
john
2026-07-24 22:30:41 +08:00
parent 646178944d
commit c9ad841543
12 changed files with 553 additions and 17 deletions
+19 -4
View File
@@ -72,9 +72,22 @@ window and never changes the runtime mode. The first gate requires:
Passing the gate means only `manual_canary_review`; it does not authorize or
activate Canary routing.
Phase 3 adds the execution handoff boundary without enabling it:
- `workflow-execution-request-v1` normalizes authorization, timeout,
cancellation, fallback, and idempotency controls;
- `workflow-execution-decision-v1` separates the candidate engine from the
effective executor;
- Canary and Active selections emit auditable `workflow_execution_planned`
events;
- the effective engine remains Native and non-Native dispatch throws
`WORKFLOW_EXECUTION_HANDOFF_DISABLED`;
- the implementation capability is hard-disabled in code, so memindadm
configuration cannot accidentally unlock execution.
The default memindadm mode remains `off`. Canary and Active routing are not
wired to the LangGraph executor in Phase 2. Native Agent Run remains the sole
executor, including in Shadow mode.
wired to the LangGraph executor in Phase 3. Native Agent Run remains the sole
executor in every mode.
## Admin configuration
@@ -84,8 +97,10 @@ Supported modes:
- `off`: Native Agent Run only.
- `shadow`: Native executes; the configured engine may observe.
- `canary`: user allowlist and deterministic rollout percentage.
- `active`: the primary engine handles workflow-allowlisted tasks.
- `canary`: user allowlist and deterministic rollout percentage produce
Dry-run candidate decisions.
- `active`: workflow-allowlisted tasks produce Dry-run primary-engine
decisions.
`MEMIND_ORCHESTRATOR_KILL_SWITCH=1` always forces Native selection.