[PR #9964] Serialize stub for dynamic profiles #27835

Open
opened 2026-01-31 09:24:33 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/9964

State: closed
Merged: Yes


#9962 was caused by a serialization bug. Technically, ToJson works
as intended: if the current layer has any values set, write them out to
the json. However, on first load, the dynamic profile Profile objects
are actually empty (because they inherit from base layer, then the
dynamic profile generator). This means that ToJson writes the dynamic
profiles as empty objects {}. Then, on reload, we see that the dynamic
profiles aren't in the JSON, and we write them again.

To get around this issue, we added a simple check to Profile::ToJson:
if we have a source, make sure we write out the name, guid, hidden, and
source. This is intended to align with Profile::GenerateStub.

Closes #9962

**Original Pull Request:** https://github.com/microsoft/terminal/pull/9964 **State:** closed **Merged:** Yes --- #9962 was caused by a serialization bug. _Technically_, `ToJson` works as intended: if the current layer has any values set, write them out to the json. However, on first load, the dynamic profile `Profile` objects are actually empty (because they inherit from base layer, then the dynamic profile generator). This means that `ToJson` writes the dynamic profiles as empty objects `{}`. Then, on reload, we see that the dynamic profiles aren't in the JSON, and we write them again. To get around this issue, we added a simple check to `Profile::ToJson`: if we have a source, make sure we write out the name, guid, hidden, and source. This is intended to align with `Profile::GenerateStub`. Closes #9962
claunia added the pull-request label 2026-01-31 09:24:33 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#27835