## Scope |Target|Change| |---|---| |DTO|`common/dto/manager/v2/config/request.py` — 1 field| |Adapter|None| |Tests|`tests/unit/common/dto/manager/v2/config/test_request.py` and any other `SENTINEL` references| ## Common work - DTO: `X | Sentinel | None = Field(default=SENTINEL)` → `X | None | Unset = Field(default=UNSET)`, importing from `ai.backend.common.tristate.unset` - Adapter: `TriState.from_unset` for nullable columns, `OptionalState.from_unset` for non-nullable columns - Unify `Field(description=...)` wording to "Omit to leave unchanged; null clears." (drop "null clears" for non-nullable fields) - Tests: `SENTINEL` → `UNSET`, `Sentinel` → `Unset` - News fragment `changes/<PR#>.enhance.md` ## Done when - Zero `Sentinel` / `SENTINEL` references remain in this domain - Verified with `./bai admin config update`: field omitted → unchanged, `null` → cleared, value → updated JIRA Issue: BA-7752
Scope
common/dto/manager/v2/config/request.py— 1 fieldtests/unit/common/dto/manager/v2/config/test_request.pyand any otherSENTINELreferencesCommon work
X | Sentinel | None = Field(default=SENTINEL)→X | None | Unset = Field(default=UNSET), importing fromai.backend.common.tristate.unsetTriState.from_unsetfor nullable columns,OptionalState.from_unsetfor non-nullable columnsField(description=...)wording to "Omit to leave unchanged; null clears." (drop "null clears" for non-nullable fields)SENTINEL→UNSET,Sentinel→Unsetchanges/<PR#>.enhance.mdDone when
Sentinel/SENTINELreferences remain in this domain./bai admin config update: field omitted → unchanged,null→ cleared, value → updatedJIRA Issue: BA-7752