From 959ba5b82fb94dcbf582b8c55ef57b8117f021ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Feb 2026 06:25:26 +0000 Subject: [PATCH] chore(release): Update version to v1.4.422 --- CHANGELOG.md | 10 ++++++++++ cmd/fabric/version.go | 2 +- cmd/generate_changelog/changelog.db | Bin 4079616 -> 4087808 bytes cmd/generate_changelog/incoming/2031.txt | 7 ------- nix/pkgs/fabric/version.nix | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 cmd/generate_changelog/incoming/2031.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index d55ebb18..92b89741 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## v1.4.422 (2026-02-26) + +### PR [#2031](https://github.com/danielmiessler/Fabric/pull/2031) by [ksylvan](https://github.com/ksylvan): Web UI: Add Vendor Filter Dropdown to Model Selection UI + +- Add a vendor selector dropdown to filter available models in the chat UI +- Introduce `selectedVendor` writable store and `vendorNames` derived store with sorted, unique vendor names +- Add `filteredModels` derived store to dynamically filter models by the selected vendor +- Fix model deduplication to use a `vendor:name` composite key, with models sorted by vendor then name (case-insensitive) +- Display the vendor prefix in model option labels for improved clarity + ## v1.4.421 (2026-02-26) ### PR [#2029](https://github.com/danielmiessler/Fabric/pull/2029) by [ksylvan](https://github.com/ksylvan): Web UI: Fix streaming chat: tokens now accumulate in order into a single message diff --git a/cmd/fabric/version.go b/cmd/fabric/version.go index 2f906bdd..ad23058e 100644 --- a/cmd/fabric/version.go +++ b/cmd/fabric/version.go @@ -1,3 +1,3 @@ package main -var version = "v1.4.421" +var version = "v1.4.422" diff --git a/cmd/generate_changelog/changelog.db b/cmd/generate_changelog/changelog.db index 0abf15e93f901c846fbe4784ceaf36bab7c70edf..15844af880b39a77c08a41ac4af8000b14492b15 100644 GIT binary patch delta 9079 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 delta 1485 zcmcK3T})e5902fp?ztcRgwio|Z1Y||TH2May|?s(vW~Lt!Kld^6$uEgpo__dtf9n( zD6@je)dg8=vm76cHH*oJUrd_iJjjfh8j?jSFYaw!kqx7J5M?jKIQ_RXVJ1Fk%pQIZ z=lswA{?9r8b5mbzqEu=VrFZgHhQT*7awoEW8ds$KB4_jah6j^lM-rn)lH()Ks$MnV z_Ns0*@T6A_x3z`U_P(t-+3O2?yjJ>>-XXToJAivjOg?t z!!U=-W1_s!=*Yf(DM}uZSUX13n|buPvHIS;s=w!bhdt3*^ufL0#FiCG9}-$UR{GEkJAg7$Ug4n95^cF@9gIdI`V7tsp22G9taKr^rb zJ7}SWoFkAzS12z#n-JO4;2dLLROq`6PKyz_=v=F_5%a1~sp`?LdYoVnz3OqfE|}ps zPe3PdH+~K0iLT_j_}42exn@|da=@SC+Z-fuUDlJ+t1j*CoSXAIXyk_LE93w9f)=^$ z0FG@(hXf)xl$WnJ1Rt#a22utaNAZX9aD}qyisk1AY(y zK{{s&b+6)^I7r0xP=>y<9-3fDG|e`W9UCE|c3>j}+UbFf@a2BIE~cp%>sUdwCZ?a| zwRBGhP50~@o5gho>sis@rZuIyqMlj}kzc