V22: Add an env dimension for cordoning work across nodes that share a DB
and a stack slug.
Complements Cyclium.Env (which already folds env into dedup/claim/output
keys) by giving the framework durable columns to scope on:
source_envoncyclium_episodes/cyclium_workflow_instances— mirrorssource_stack(V18) so recovery sweeps and workflow reconciliation only pick up orphans created by the same env. Unlikesource_stack(whereNULLmeans "match any stack"),source_envis matched by strict equality: aNULLrow belongs to the unset/default env, so an env-tagged node won't recover the default node's work and vice-versa. Legacy rows areNULLand therefore owned by the unset-env (default) node.envoncyclium_findings— scopes finding upserts/reads so each env keeps its own active finding per key. The unique index is widened to includeenvso two envs can each hold an active finding with the samefinding_key.source_envoncyclium_trigger_requests— mirrorssource_stack(V14) so theTriggerRequests.Polleron a full-mode node only claims deferred requests from its own env. Each env's trigger-only nodes feed that env's full nodes.
This makes a config like "RC node = :full with recovery on, sharing prod's DB
but tagged env: "rc"" operate fully independently of the prod node.