{ "_README": "THE preserved-user-state set for self-update and reinstall. install.py reads this list and keeps a matching fallback; apply_update.ps1 carries the same Preserve array. build_runtime_assets.py checks both against this document and the updater documentation before building. Preserve existing user state, but install defaults when it does not yet exist. Application code must never enter this list. The live database inside _internal needs separate preservation. uninstall.py has a separate intentional removal/retention policy and is NOT a consumer of this contract.", "preserve": [ "config.json", "external_mcps.json", "contacts.json", "data.keys", "DB", "application", "applications", "content_generated", "Temp", "context_files", "doc_generated", "documentation", "Templates", "Uninstaller.exe" ], "_notes": { "config.json": "every provider key + every setting the user chose", "external_mcps.json": "the External MCP catalog AND its active set - secrets live in its env blocks", "contacts.json": "the people the messaging agents resolve by name", "DB": "chat history and the enable/disable toggles", "Temp": "scratch, but also pasted screenshots the user may still be referring to", "Templates": "scaffolded project trees - deliverables, not build output", "Uninstaller.exe": "keep the existing client until the verified packaged replacement is available" } }