mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-09-28 18:08:11 +03:00
1.4 KiB
1.4 KiB
Repository guidance
- Repositories are the persistence authority for domain collections and documents such as profiles, subscriptions,
routing configurations, and TUN settings. Application preferences and current selections may use
AppSettingsat their owning controller/application boundary. Keep Qt/UI/workflow concerns out of repository implementations. - Preserve stable IDs, ordering, unknown compatible fields, legacy migrations, and subscription ownership. Display names and row indexes are not identities.
- Subscription synchronization may update only profiles explicitly managed by that subscription and identified by stable profile keys. Never delete user-created or another subscription's data.
- Public collection access currently returns live mutable application-owned collections for compatibility. Document this honestly and avoid introducing a second cached copy; new mutations should flow through named repository operations when practical.
- Load failures retain recoverable data where possible and log actionable context. Never silently replace malformed explicit configuration with unrelated defaults when doing so loses user intent.
- Singleton repository caches are application-lifetime finite objects and must be reset/sandboxed in tests.
Verification
- Test old/current schemas, unknown fields, ordering, stable identity, subscription isolation, malformed persisted data, round trips, and isolated temporary settings.