PLAN 4.3 writes app.json when the session modified a setting. The store compared the live configuration with the loaded one instead, so a setting changed and changed back was never written. Each section now records a dirty flag in its setters; assigning the current value is not a change and the load-time field fallbacks are cleared after reading.