Wie am besten Custom Fields Defaults und Category Setting Logs handhaben

Ja, das ist knifflig. Ich nehme an, die meisten Plugins stoßen nicht auf dieses Problem, da ihr ‘Standardwert’ für die Kategorieeinstellung ein Nullwert ist.

Hattest du eine Idee für eine Kern-API-Änderung, die die Situation verbessern könnte?

Völlig ungetestet, aber ich denke, wir könnten im Moment etwas auf die Beine stellen, indem wir ein rohes HTML-Eingabefeld verwenden (beachte Kleinbuchstaben input anstelle der bidirektional gebundenen <Input-Komponente von Ember).

<input
  value={{or category.custom_fields.my_field "default value"}}
  {{on "change" this.updateMyFieldValue}}
/>

Mit dieser Strategie haben wir die Kontrolle darüber, wie Werte aus der Modellinstanz gelesen/geschrieben werden. Wenn also ein Wert in der Benutzeroberfläche auf den Standardwert gesetzt wird, können wir diesen als ‘null’ in die benutzerdefinierten Felder schreiben:

@action
updateMyFieldValue(event){
  let newValue = event.target.value;
  if(newValue === "default value"){
    newValue = null;
  }

  this.category.set("custom_fields.my_field", newValue);
}

(und dann würdest du die Standardwertkonfiguration entfernen, die du in (1) des OP beschrieben hast)