diff --git a/src/omnibase_core/models/delegation/wire/model_delegation_result.py b/src/omnibase_core/models/delegation/wire/model_delegation_result.py index 8318ab6a18..1a3f0abbdb 100644 --- a/src/omnibase_core/models/delegation/wire/model_delegation_result.py +++ b/src/omnibase_core/models/delegation/wire/model_delegation_result.py @@ -134,6 +134,18 @@ class ModelDelegationResult(BaseModel): "(e.g. a remote-agent A2A terminal). OMN-13649." ), ) + # string-id-ok: tenant_id is a named tenant identifier, not a UUID + tenant_id: str | None = Field( + default=None, + description=( + "Multi-tenant isolation identifier carried from the originating " + "request (or the ONEX_TENANT_ID env-var fallback at " + "request-acceptance). OPERATOR-ACCEPTED INTERIM (OMN-14058): None " + "means no tenant identity was resolved and the delegation " + "projection falls back to the shared 'omninode' tenant column " + "default. The durable per-tenant identity design is OMN-14107." + ), + ) @model_validator(mode="after") def validate_total_tokens(self) -> Self: diff --git a/src/omnibase_core/models/delegation/wire/model_delegation_wire_request.py b/src/omnibase_core/models/delegation/wire/model_delegation_wire_request.py index 46210fe95a..f6e28fb71e 100644 --- a/src/omnibase_core/models/delegation/wire/model_delegation_wire_request.py +++ b/src/omnibase_core/models/delegation/wire/model_delegation_wire_request.py @@ -159,6 +159,17 @@ class ModelDelegationRequest(BaseModel): default=(), description="Request-level quality checks enforced by the quality gate.", ) + # string-id-ok: tenant_id is a named tenant identifier, not a UUID + tenant_id: str | None = Field( + default=None, + description=( + "Multi-tenant isolation identifier. OPERATOR-ACCEPTED INTERIM " + "(OMN-14058): when unset, the orchestrator falls back to the " + "ONEX_TENANT_ID env var at request-acceptance so delegation " + "projections stop defaulting to the shared 'omninode' tenant. " + "The durable per-tenant identity design is OMN-14107." + ), + ) @model_validator(mode="after") def _validate_compliance_loop_config(self) -> Self: