fix(ai): normalize OpenAI stream edge cases and add inline think parsing control by wsp1911 · Pull Request #245 · GCWing/BitFun

@wsp1911

…ing control

- filter redundant trailing OpenAI tool-call chunks that repeat an existing tool id without new data
- parse OpenAI-compatible `<think>...</think>` text chunks into streaming reasoning content at the handler layer
- add a model-level advanced setting to explicitly enable inline think parsing, defaulting to disabled
- wire the new setting through backend config, AI client, frontend model configuration, and onboarding defaults
- hide the preserved thinking toggle from the advanced settings UI while keeping existing config compatibility
- add tests covering inline think parsing, disabled passthrough behavior, and OpenAI stream edge cases