- **Fixed: clearing a `component_settings` field in the Advanced Settings
  modal had no effect (issue #2121).** `SystemSettings.tsx`'s
  `handleSaveComponentSettings` skipped any field the user cleared to an
  empty string when building the coerced values object, but then still
  spread the OLD stored value back in via
  `{ ...existingForComponent, ...coerced }` — so clearing a field (or
  re-narrowing/re-widening a list-like field such as a file converter's
  `convert_extensions`, which goes through this same generic per-field save
  path) silently kept the stale value server-side, with no way to revert a
  single field short of a full Reset-to-Defaults. Fixed by distinguishing an
  explicit clear (field now empty, previously non-empty) from a no-op
  (field already empty): for the former, the key is actively deleted from
  the merged settings object sent to `updatePipelineSettings`, so the
  component falls back to its `Settings` dataclass default at read time
  instead of retaining the stale value.
  - Test: `frontend/tests/system-settings-flows.ct.tsx` covers clearing a
    previously-saved field and asserts the mutation is called with that key
    absent (not present with an empty string) from `componentSettings`.
