What's Changed
- fix: resolve citations when model prepends a toolu_ prefix by @miurla in #888
- fix: handle compound TLDs in citation domain display by @miurla in #889
- fix: card pasted content by size only, not line count by @miurla in #892
- Add knowledge library notes by @miurla in #893
- Add paginated library notes loading by @miurla in #895
- Remove note save button shown event by @miurla in #896
- Retire related_q_style_v2 A/B; render follow-ups as inline link by @miurla in #897
- Use signed URLs for uploaded files by @miurla in #898
- Force Vercel runtime to Node.js by @miurla in #899
- Stabilize attachment image previews by @miurla in #900
- Make related questions conditional by @miurla in #901
- Support signed library file reattachments by @miurla in #903
- Place Add attachment menu below trigger by @miurla in #904
- perf(rls): wrap current_setting() in (select …) for per-statement evaluation by @dmitrymaranik in #902
- fix(db): correct 0016 journal timestamp and fix format CI break by @miurla in #905
- Gate related questions behind related_questions_enabled flag by @miurla in #906
- fix: handle bare string for include_domains/exclude_domains in Zod schema search tools by @simply24365 in #910
- fix(search): keep images in model-facing tool output by @miurla in #914
- Revert "Gate related questions behind related_questions_enabled flag" by @miurla in #915
- refactor: migrate Langfuse integration from langfuse-vercel to JS SDK v5 by @miurla in #917
- feat: make overall daily chat limit configurable via env by @miurla in #919
- feat(analytics): track overall chat limit checks by @miurla in #920
- fix(analytics): deliver rate-limit events via after() by @miurla in #921
- Compact historical agent messages without provider-specific pruning by @miurla in #922
- Switch cloud models to GPT-5.6 Luna by @miurla in #923
- Reduce title generation overhead by @miurla in #924
- fix(feedback): send Langfuse score once per feedback action by @miurla in #925
- fix(render): restore related-questions spec emission on the current model by @miurla in #926
- fix(streaming): log structural diagnostics for provider API errors by @miurla in #928
- fix(streaming): mark the research span as ERROR when the stream fails by @miurla in #930
- fix(streaming): keep the prompt prefix stable across turns by @miurla in #932
- fix(streaming): stop rewriting source context as turns are appended by @miurla in #933
- fix(streaming): stop recoverable tool errors from failing the research trace by @miurla in #934
- fix(streaming): mark the research span when the answer is empty by @miurla in #937
- fix(prompts): show an image block in the worked answer examples by @miurla in #938
- fix(prompts): number citations by result position, not by tool call by @miurla in #939
- fix(prompts): keep spec fences out of the worked answer example by @miurla in #940
- fix(storage): sign file URLs from a fixed window so attachments stay cached by @miurla in #941
- feat(streaming): cap how many attachments are replayed to the model by @miurla in #942
- fix(storage): treat a blank signing window as unset, not as disabled by @miurla in #943
- fix(streaming): record provider API call diagnostics on the failing trace by @miurla in #945
- fix: deduplicate repeated attachments instead of replaying every copy by @miurla in #947
- fix(errors): describe a failed tool call by its resource, not by the app by @miurla in #949
- feat(streaming): bound replayed attachments by weight, not only by count by @miurla in #951
- fix(upload): reject files whose contents are not a supported format by @miurla in #952
- fix(errors): classify a malformed provider request instead of a generic 400 by @miurla in #953
- fix(fetch): reject a tool argument that is not a URL before requesting it by @miurla in #955
- fix(tracing): distinguish unclassified stream failures from one another and from user aborts by @miurla in #956
- fix(openai): set per-chat prompt cache key by @sushanttiwari-14 in #959
- fix(streaming): keep replayed source context from splitting a surrogate pair by @miurla in #960
- fix(search): describe a failed provider request by its HTTP status by @miurla in #961
- fix(search): surface complete Brave failures by @sushanttiwari-14 in #964
- fix(tracing): record whether a stream failure happened before the first generation by @miurla in #965
- fix: stabilize related questions in deep chats by @sushanttiwari-14 in #966
- fix(prompt): keep the related-questions reminder out of replayed history by @miurla in #967
New Contributors
- @dmitrymaranik made their first contribution in #902
- @simply24365 made their first contribution in #910
- @sushanttiwari-14 made their first contribution in #959
Full Changelog: v1.5.0...v1.6.0