Unset inherit_parent_scope silently wipes stored scope on save (data loss)
## Problem Follow-up to: #3586294+s Parent: #3586310+s _**This issue should be verified prior to working on it to make sure it is valid.**_ This problem should be fixed here: #3586218+s On the 3586218 branch, `inherit_parent_scope` has an entity-level default of TRUE and `AiContextItem::inheritsParentScope()` returns TRUE when the field is empty. `preSave()` then clears stored `scope` and `target_entities` whenever the item inherits. This destroys data in three ways: - **Deploy window:** between code deploy and `drush updb`, any save of an existing custom-scope subcontext — including cron, since the scheduler service runs inside the same `preSave()` — permanently wipes its scope before update 10011 can backfill. - **Programmatic saves (BC break):** `AiContextItem::create(['parent' => $p->id(), 'scope' => [...]])->save()` — valid API usage on 1.0.x — now silently discards the scope. Affects importers, migrations, ECA, recipes, and any submodule/site code. - **Revision reverts:** update 10011 only backfills default revisions; pre-update revisions keep NULL forever, so reverting one wipes scope even after the update ran. ## Proposed resolution Make the empty-value path infer instead of defaulting TRUE — return FALSE when stored non-global scope or target entities exist (mirroring the update 10011 heuristic). Set the entity-level field default to FALSE and keep the TRUE default in the form only (`buildInheritParentScopeElement()` already defaults to TRUE when the field is empty, so form UX is unchanged). Publish a change record for the new field and the effective-vs-stored scope semantics of `isGlobal()`, `getTargetEntities()`, `hasTargetEntities()`, `matchesTargetEntity()`, and `AiContextScopeIndexService::indexItem()`, which now resolve through the parent. Add tests for the NULL-fallback and revision-revert scenarios. ## AI usage - [x] AI assisted issue
issue