What's Changed
- fix(knowledge): preserve HTTP URLs in knowledge base documents by @Raymond8196 in #14983
- fix(ai): thread idle timeout handle to stream chunk adapter by @GeorgeDong32 in #15056
- fix(ci): improve GitCode sync reliability by @zhibisora in #15063
- fix(image): convert assistant image blocks to base64 for multi-turn editing by @Raymond8196 in #15011
- fix(agent): invalidate provider cache on settings changes by @404-Page-Found in #14596
- fix: recognize ctrl by uniKey value by @kovsu in #15002
- hotfix(aiCore): prevent crash when model.provider not found (#14999) by @DeJeune in #15001
- fix: align provider model list actions by @kangfenmao in #15078
- fix(agents): use task name as session name for cron task sessions by @Kingzi49 in #15053
- fix: resolve ENOENT in OpenMinerU preprocessing caused by MinerU ZIP structure change by @suujonH in #15061
- fix: clean up OAuth tokens when deleting MCP server by @xr843 in #14083
- fix: exclude deepseek-r1 models from function_calling capability by @404-Page-Found in #15102
- fix: auto-expand MCP tool approval card so action buttons are immediately visible by @LWWZH in #15080
- hotfix: add environment variable for claude code provider management by @kovsu in #15089
- fix(agents): preserve updatedAt timestamps when creating new agents by @LWWZH in #14675
- fix(aiCore): Qiniu PDF fallback for GPT-5.4 by @404-Page-Found in #15090
- fix(code-tools): handle Codex CLI reserved provider IDs by @GeorgeDong32 in #15068
- chore: release v1.9.6 by @kangfenmao in #15116
New Contributors
Full Changelog: v1.9.5...v1.9.6