From 8c9c3135abf280e0f47f7807bb1f152ece4eaf2c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 17 Jan 2026 14:50:18 +0000 Subject: [PATCH] chore(release): Update version to v1.4.381 --- CHANGELOG.md | 10 ++++++++++ cmd/fabric/version.go | 2 +- cmd/generate_changelog/changelog.db | Bin 3657728 -> 3686400 bytes cmd/generate_changelog/incoming/1940.txt | 7 ------- nix/pkgs/fabric/version.nix | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 cmd/generate_changelog/incoming/1940.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 41cc79ae..f806cf2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## v1.4.381 (2026-01-17) + +### PR [#1940](https://github.com/danielmiessler/Fabric/pull/1940) by [ksylvan](https://github.com/ksylvan): Rewrite Ollama chat handler to support proper streaming responses + +- Refactor Ollama chat handler to support proper streaming responses with real-time SSE data parsing +- Replace single-read body parsing with streaming bufio.Scanner approach and implement writeOllamaResponse helper function +- Add comprehensive error handling improvements including proper HTTP error responses instead of log.Fatal to prevent server crashes +- Fix upstream error handling to return stringified error payloads and validate Fabric chat URL hosts +- Implement proper request context propagation and align duration fields to int64 nanosecond precision for consistency + ## v1.4.380 (2026-01-16) ### PR [#1936](https://github.com/danielmiessler/Fabric/pull/1936) by [ksylvan](https://github.com/ksylvan): New Vendor: Microsoft Copilot diff --git a/cmd/fabric/version.go b/cmd/fabric/version.go index 70980458..aef4ab52 100644 --- a/cmd/fabric/version.go +++ b/cmd/fabric/version.go @@ -1,3 +1,3 @@ package main -var version = "v1.4.380" +var version = "v1.4.381" diff --git a/cmd/generate_changelog/changelog.db b/cmd/generate_changelog/changelog.db index 530885df7fd5e62eb82282a52b69b69fa20b8aa5..445df9171eb6b6b60b54610a9a5275381ab54b5f 100644 GIT binary patch delta 29313 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 XDLx)J?cB^}AjZYpnRIa41Qh&VXnV1O delta 4984 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 diff --git a/cmd/generate_changelog/incoming/1940.txt b/cmd/generate_changelog/incoming/1940.txt deleted file mode 100644 index e050114c..00000000 --- a/cmd/generate_changelog/incoming/1940.txt +++ /dev/null @@ -1,7 +0,0 @@ -### PR [#1940](https://github.com/danielmiessler/Fabric/pull/1940) by [ksylvan](https://github.com/ksylvan): Rewrite Ollama chat handler to support proper streaming responses - -- Refactor Ollama chat handler to support proper streaming responses with real-time SSE data parsing -- Replace single-read body parsing with streaming bufio.Scanner approach and implement writeOllamaResponse helper function -- Add comprehensive error handling improvements including proper HTTP error responses instead of log.Fatal to prevent server crashes -- Fix upstream error handling to return stringified error payloads and validate Fabric chat URL hosts -- Implement proper request context propagation and align duration fields to int64 nanosecond precision for consistency diff --git a/nix/pkgs/fabric/version.nix b/nix/pkgs/fabric/version.nix index d398939b..94ea6611 100644 --- a/nix/pkgs/fabric/version.nix +++ b/nix/pkgs/fabric/version.nix @@ -1 +1 @@ -"1.4.380" +"1.4.381"