OpenAI added as third LLM provider (GPT-5.5, GPT-5.4 Nano)
nforum adds OpenAI support alongside Claude and Gemini, following the same BYOK pattern already established for the other two providers.
The feature commit (860e6ff) is mostly additive. A new backend/src/lib/llm/openai.ts implements streamOpenAI and completeOpenAIText with streaming tool-call accumulation. Migration 001_add_openai_api_key.sql adds an openai_api_key column to user_profiles. The frontend's ModelToggle.tsx and modelAvailability.ts get an "OpenAI" group gated on key presence. Model ids: gpt-5.5 for main, gpt-5.4-nano for mid-tier (tabular review) and low-tier (title generation). Provider routing in models.ts matches on gpt-, o1-, o3-, and o4- prefixes.
The diff touches 19 files but the changes are largely mechanical extensions of existing patterns - the implementation is self-contained and doesn't restructure anything.
Note: this PR landed before the LocalLLM/vLLM PR, and a separate reconciling merge later unified both under a single openai.ts with a getClient(model) factory. If you pull this topic in isolation, also check that merge to understand what the combined state looks like.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?