The defaults_initialized sentinel only makes sense when prefs is loaded. Three unit tests use ai_client_setup, which calls ai_client_init without loading prefs — prefs_ai_get_providers was bailing on the seeding branch because of the prefs NULL check, leaving ai_client with zero providers and breaking tests that expect at least one default. Decouple the two concerns: - Always seed openai/perplexity into the in-memory result list when the configured set is empty and we haven't already seeded. - Only persist the seeded providers and write the defaults_initialized flag when prefs is actually available. In production this is identical to the previous behaviour; in tests without prefs the old "always-return-defaults" semantics is preserved without a persistence side effect. Also reflow ai_client.c JSON escape switch and HTTP-error ternary to satisfy clang-format 18 (CI checks).
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
