Per-provider state used to live as flat keys in [ai] with naming conventions to avoid collisions: <name>_url, <name>_models, <name>_default_model, and the bare <name> for the API token. Custom settings (/ai set custom) never made it to disk at all — they only lived in the runtime AIProvider.settings hash table and were lost on restart. Move every per-provider field into a [ai/<name>] subsection of the keyfile with stable key names: [ai/openai] url=https://api.openai.com/ key=sk-... default_model=gpt-4 models=gpt-4;gpt-3.5-turbo setting.tools=enabled [ai] now keeps only the global "defaults_initialized" sentinel. Migration runs once in _prefs_load: collect provider names from the old <name>_url keys, then move url/models/default_model/token of each provider into its subsection and drop the flat keys. Idempotent on subsequent loads. prefs_ai_* API surface kept compatible; storage backend changes only. Adds: prefs_ai_remove_section() — wipe whole subsection in one call prefs_ai_{set,get,remove,list}_setting() — persist custom settings ai_client wiring: - ai_set_provider_setting now writes to prefs as well as the runtime hash table; ai_client_init loads them back on startup. - ai_remove_provider replaces four prefs_ai_remove_* calls with a single prefs_ai_remove_section.
CProof
CProof is a console based XMPP chat client based on Profanity.
See the Quick Start Guide for information on installing and using CProof.
Project
CProof enables you to communicate with privacy, freedom and comfort. Our open-source chat application delivers secure, end-to-end encrypted messaging (OTR, PGP, OMEMO, OX) built on the trusted XMPP protocol. With a decentralized design, you can connect directly or even host your own server, keeping your data in your hands. Whether you're chatting with friends or collaborating securely, CProof makes private communication simple, reliable, and truly yours.
Installation
Check our installation guide for detailed instructions.
How to contribute
See our Helping Out page for a concise summary of ways to help us.
Review the Contributing Guide and Code Overview pages for advanced technical details.
Getting help
Prior to asking questions, check our User Guide, then check out the FAQ.
If you are still having a problem then search the issue tracker.
As a last resort, feel free to write us on support@jabber.tech or create a new issue depending on what your problem is.
Links
Website
Feel free to visit our website: jabber.space.
You may also check the repository if you like, available on git.jabber.space/devs/profanity.
Plugins
Plugins repository: https://git.jabber.space/devs/cproof-plugins
