From 3cc50d8b869c3b6668aaf90cf218c181ca50958b Mon Sep 17 00:00:00 2001 From: Li <175231748+linkmodo@users.noreply.github.com> Date: Sat, 11 Jul 2026 19:17:28 -0400 Subject: [PATCH] fix: stop warning about the removed 'surround' key on every file load PR #432 removed ExposureConfig.surround (dim-surround gamma, superseded by Snap), but every edit saved before that still carries the key in edits.db / sidecars, so from_flat_dict logged "Dropping unknown config keys: ['surround']" on every file load for upgrading users. Track deliberately-removed fields in a legacy set that drops silently; genuinely unknown keys keep the warning. --- negpy/domain/models.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/negpy/domain/models.py b/negpy/domain/models.py index 38c5e335..fba22bbb 100644 --- a/negpy/domain/models.py +++ b/negpy/domain/models.py @@ -388,7 +388,13 @@ def from_flat_dict(cls, data: Dict[str, Any]) -> "WorkspaceConfig": for cc in config_classes: valid_keys.update(cc.__dataclass_fields__.keys()) - unknown = set(data) - valid_keys + # Fields deliberately removed from the config over time. Every edit saved + # before the removal still carries them, so they'd otherwise warn on every + # file load; drop silently and keep the warning for truly unknown keys. + # surround: dim-surround print gamma, removed in #432 (replaced by Snap). + legacy_keys = {"surround"} + + unknown = set(data) - valid_keys - legacy_keys if unknown: logger.warning("Dropping unknown config keys: %s", sorted(unknown))