Sub-task of #96
Parse KTAVI_* environment variables and deep-merge them over the config file values in loadConfig(). Use flat naming convention mapped to nested paths (e.g. POLIRA_AI_TEXT_MODEL → ai.textModel). Validate env values through the existing zod schema.
Only behavioral settings — credential env vars (OPENAI_API_KEY, CLOUDINARY_*) stay separate.
Sub-task of #96
Parse
KTAVI_*environment variables and deep-merge them over the config file values inloadConfig(). Use flat naming convention mapped to nested paths (e.g.POLIRA_AI_TEXT_MODEL→ai.textModel). Validate env values through the existing zod schema.Only behavioral settings — credential env vars (
OPENAI_API_KEY,CLOUDINARY_*) stay separate.