ALL-2003: Expose condition target fields + validate requirement conditions
failedAgent: will-engineer
Priority: 3
Branch:
wilbo/all-2003-condition-target-fieldsPR: #12815
Linear: ALL-2003
Backend work for stage requirement conditional visibility. Add availableConditionTargetFields query, ensure updateRequirement persists/clears condition (pass condition:null to remove), treat requirements with empty/missing condition target as inapplicable (not blocking) in computeStateStatus, and emit validation warnings for unknown factKeys. Files: domains/program/src/services/lifecycle-definition/entities.ts, domains/program/src/services/stage-requirements/updateRequirement.ts, domains/program/src/services/lifecycle-instance/predicates.ts, domains/program/src/services/lifecycle-instance/computeStateStatus.ts, domains/program/src/subgraph/schema.graphql. Out of scope: compound conditions, circular dep detection, frontend UI.
Event Timeline
created
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed