Prepared release v0.9.28 (#279)

This commit is contained in:
Thorsten Sommer 2025-02-09 18:06:24 +01:00 committed by GitHub
parent c0b7016c3a
commit c9474c55b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 133 additions and 53 deletions

View File

@ -13,6 +13,7 @@ public partial class Changelog
public static readonly Log[] LOGS = public static readonly Log[] LOGS =
[ [
new (203, "v0.9.28, build 203 (2025-02-09 16:33 UTC)", "v0.9.28.md"),
new (202, "v0.9.27, build 202 (2025-01-21 18:24 UTC)", "v0.9.27.md"), new (202, "v0.9.27, build 202 (2025-01-21 18:24 UTC)", "v0.9.27.md"),
new (201, "v0.9.26, build 201 (2025-01-13 19:11 UTC)", "v0.9.26.md"), new (201, "v0.9.26, build 201 (2025-01-13 19:11 UTC)", "v0.9.26.md"),
new (200, "v0.9.25, build 200 (2025-01-04 18:33 UTC)", "v0.9.25.md"), new (200, "v0.9.25, build 200 (2025-01-04 18:33 UTC)", "v0.9.25.md"),

View File

@ -47,8 +47,8 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="CodeBeam.MudBlazor.Extensions" Version="7.1.0" /> <PackageReference Include="CodeBeam.MudBlazor.Extensions" Version="7.1.0" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.72" /> <PackageReference Include="HtmlAgilityPack" Version="1.11.72" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="9.0.0" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="9.0.1" />
<PackageReference Include="MudBlazor" Version="7.15.0" /> <PackageReference Include="MudBlazor" Version="7.16.0" />
<PackageReference Include="MudBlazor.Markdown" Version="7.14.0" /> <PackageReference Include="MudBlazor.Markdown" Version="7.14.0" />
<PackageReference Include="ReverseMarkdown" Version="4.6.0" /> <PackageReference Include="ReverseMarkdown" Version="4.6.0" />
</ItemGroup> </ItemGroup>

View File

@ -2,11 +2,11 @@
def main [] {} def main [] {}
def are_assets_exist [rid: string]: string -> bool { def are_assets_exist [rid: string] {
$"bin/release/net8.0/($rid)/publish/wwwroot/_content/MudBlazor/MudBlazor.min.css" | path exists $"bin/release/net8.0/($rid)/publish/wwwroot/_content/MudBlazor/MudBlazor.min.css" | path exists
} }
def "main help" []: nothing -> nothing { def "main help" [] {
print "Usage: nu build.nu [action]" print "Usage: nu build.nu [action]"
print "" print ""
print "Optional Actions:" print "Optional Actions:"
@ -26,7 +26,7 @@ def "main help" []: nothing -> nothing {
print "" print ""
} }
def "main prepare" [action: string]: string -> nothing { def "main prepare" [action: string] {
if (update_app_version $action) { if (update_app_version $action) {
main fix_web_assets main fix_web_assets
inc_build_number inc_build_number
@ -36,7 +36,7 @@ def "main prepare" [action: string]: string -> nothing {
} }
} }
def "main metadata" []: nothing -> nothing { def "main metadata" [] {
update_dotnet_version update_dotnet_version
update_rust_version update_rust_version
update_mudblazor_version update_mudblazor_version
@ -46,7 +46,7 @@ def "main metadata" []: nothing -> nothing {
update_license_year "Pages/About.razor.cs" update_license_year "Pages/About.razor.cs"
} }
def "main fix_web_assets" []: nothing -> nothing { def "main fix_web_assets" [] {
# Get the matching RIDs for the current OS: # Get the matching RIDs for the current OS:
let rids = get_rids let rids = get_rids
@ -70,7 +70,7 @@ def "main fix_web_assets" []: nothing -> nothing {
} }
} }
def "main publish" []: nothing -> nothing { def "main publish" [] {
main metadata main metadata
@ -139,7 +139,7 @@ def "main publish" []: nothing -> nothing {
print "Building done." print "Building done."
} }
def get_rids []: nothing -> list { def get_rids [] {
# Define the list of RIDs to build for, cf. https://learn.microsoft.com/en-us/dotnet/core/rid-catalog: # Define the list of RIDs to build for, cf. https://learn.microsoft.com/en-us/dotnet/core/rid-catalog:
let rids = ["win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-arm64", "osx-x64"] let rids = ["win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-arm64", "osx-x64"]
@ -163,7 +163,7 @@ def get_rids []: nothing -> list {
$rids $rids
} }
def get_os []: nothing -> string { def get_os [] {
let os = (sys host).name | str downcase let os = (sys host).name | str downcase
if $os =~ "linux" { if $os =~ "linux" {
return "linux" return "linux"
@ -171,7 +171,7 @@ def get_os []: nothing -> string {
$os $os
} }
def update_build_time []: nothing -> nothing { def update_build_time [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut build_time = $meta_lines.1 mut build_time = $meta_lines.1
@ -183,7 +183,7 @@ def update_build_time []: nothing -> nothing {
$meta_lines | save --raw --force ../../metadata.txt $meta_lines | save --raw --force ../../metadata.txt
} }
def inc_build_number []: nothing -> nothing { def inc_build_number [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut build_number = $meta_lines.2 | into int mut build_number = $meta_lines.2 | into int
@ -195,7 +195,7 @@ def inc_build_number []: nothing -> nothing {
$meta_lines | save --raw --force ../../metadata.txt $meta_lines | save --raw --force ../../metadata.txt
} }
def update_dotnet_version []: nothing -> nothing { def update_dotnet_version [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut dotnet_sdk_version = $meta_lines.3 mut dotnet_sdk_version = $meta_lines.3
mut dotnet_version = $meta_lines.4 mut dotnet_version = $meta_lines.4
@ -215,7 +215,7 @@ def update_dotnet_version []: nothing -> nothing {
$meta_lines | save --raw --force ../../metadata.txt $meta_lines | save --raw --force ../../metadata.txt
} }
def update_rust_version []: nothing -> nothing { def update_rust_version [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut rust_version = $meta_lines.5 mut rust_version = $meta_lines.5
@ -229,7 +229,7 @@ def update_rust_version []: nothing -> nothing {
$meta_lines | save --raw --force ../../metadata.txt $meta_lines | save --raw --force ../../metadata.txt
} }
def update_mudblazor_version []: nothing -> nothing { def update_mudblazor_version [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut mudblazor_version = $meta_lines.6 mut mudblazor_version = $meta_lines.6
@ -242,7 +242,7 @@ def update_mudblazor_version []: nothing -> nothing {
$meta_lines | save --raw --force ../../metadata.txt $meta_lines | save --raw --force ../../metadata.txt
} }
def update_tauri_version []: nothing -> nothing { def update_tauri_version [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut tauri_version = $meta_lines.7 mut tauri_version = $meta_lines.7
@ -276,7 +276,7 @@ def update_license_year [licence_file: string] {
$updated_license_text | save --raw --force $licence_file $updated_license_text | save --raw --force $licence_file
} }
def update_app_version [action: string]: string -> bool { def update_app_version [action: string] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut app_version = $meta_lines.0 mut app_version = $meta_lines.0
@ -321,7 +321,7 @@ def update_app_version [action: string]: string -> bool {
return true return true
} }
def update_project_commit_hash []: nothing -> nothing { def update_project_commit_hash [] {
mut meta_lines = open --raw ../../metadata.txt | lines mut meta_lines = open --raw ../../metadata.txt | lines
mut commit_hash = $meta_lines.8 mut commit_hash = $meta_lines.8
@ -356,7 +356,7 @@ def update_project_commit_hash []: nothing -> nothing {
$meta_lines | save --raw --force ../../metadata.txt $meta_lines | save --raw --force ../../metadata.txt
} }
def update_changelog []: nothing -> nothing { def update_changelog [] {
# Get all changelog files: # Get all changelog files:
let all_changelog_files = glob wwwroot/changelog/*.md let all_changelog_files = glob wwwroot/changelog/*.md

View File

@ -24,11 +24,11 @@
}, },
"Microsoft.Extensions.FileProviders.Embedded": { "Microsoft.Extensions.FileProviders.Embedded": {
"type": "Direct", "type": "Direct",
"requested": "[9.0.0, )", "requested": "[9.0.1, )",
"resolved": "9.0.0", "resolved": "9.0.1",
"contentHash": "6Ev1goLIvggLF6uCs6oZvdr9JM+2b1Zj+4FLdBWNW5iw3tm2BymVIb0yMsjnQTBWL7YUmqVWH3u45hSqOfvuqg==", "contentHash": "Pnw9plviwRguhVxHjthooumWH8yUxfF54tuu/+VoVBOuqBmzu6VUnn4NGf3eVkEO1k5q2nihOIAQL/7UMemSmQ==",
"dependencies": { "dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "9.0.0" "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1"
} }
}, },
"Microsoft.NET.ILLink.Tasks": { "Microsoft.NET.ILLink.Tasks": {
@ -39,9 +39,9 @@
}, },
"MudBlazor": { "MudBlazor": {
"type": "Direct", "type": "Direct",
"requested": "[7.15.0, )", "requested": "[7.16.0, )",
"resolved": "7.15.0", "resolved": "7.16.0",
"contentHash": "b2+hO7ZTGwsGhu9SoowuNe2ETeF1GzExpg/hIYR++rSh+vy4v/QD0iOsrATWv3LdFJXSgk3d1+XIr5srW3jBiA==", "contentHash": "68bEFn7MLCyOB4yYxtvZG+AA+bZbxBDcIOhnSVFrHrAg8LLXVw1LxHCp9EyRktlREpnoAO1JxINp+5WeHc9Z4w==",
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Components": "8.0.8", "Microsoft.AspNetCore.Components": "8.0.8",
"Microsoft.AspNetCore.Components.Web": "8.0.8", "Microsoft.AspNetCore.Components.Web": "8.0.8",
@ -147,10 +147,10 @@
}, },
"Microsoft.Extensions.FileProviders.Abstractions": { "Microsoft.Extensions.FileProviders.Abstractions": {
"type": "Transitive", "type": "Transitive",
"resolved": "9.0.0", "resolved": "9.0.1",
"contentHash": "uK439QzYR0q2emLVtYzwyK3x+T5bTY4yWsd/k/ZUS9LR6Sflp8MIdhGXW8kQCd86dQD4tLqvcbLkku8qHY263Q==", "contentHash": "DguZYt1DWL05+8QKWL3b6bW7A2pC5kYFMY5iXM6W2M23jhvcNa8v6AU8PvVJBcysxHwr9/jax0agnwoBumsSwg==",
"dependencies": { "dependencies": {
"Microsoft.Extensions.Primitives": "9.0.0" "Microsoft.Extensions.Primitives": "9.0.1"
} }
}, },
"Microsoft.Extensions.Localization": { "Microsoft.Extensions.Localization": {
@ -188,8 +188,8 @@
}, },
"Microsoft.Extensions.Primitives": { "Microsoft.Extensions.Primitives": {
"type": "Transitive", "type": "Transitive",
"resolved": "9.0.0", "resolved": "9.0.1",
"contentHash": "N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg==" "contentHash": "bHtTesA4lrSGD1ZUaMIx6frU3wyy0vYtTa/hM6gGQu5QNrydObv8T5COiGUWsisflAfmsaFOe9Xvw5NSO99z0g=="
}, },
"Microsoft.JSInterop": { "Microsoft.JSInterop": {
"type": "Transitive", "type": "Transitive",
@ -205,9 +205,6 @@
"type": "Transitive", "type": "Transitive",
"resolved": "0.16.9", "resolved": "0.16.9",
"contentHash": "7WaVMHklpT3Ye2ragqRIwlFRsb6kOk63BOGADV0fan3ulVfGLUYkDi5yNUsZS/7FVNkWbtHAlDLmu4WnHGfqvQ==" "contentHash": "7WaVMHklpT3Ye2ragqRIwlFRsb6kOk63BOGADV0fan3ulVfGLUYkDi5yNUsZS/7FVNkWbtHAlDLmu4WnHGfqvQ=="
},
"ericlientv1": {
"type": "Project"
} }
}, },
"net8.0/osx-arm64": {} "net8.0/osx-arm64": {}

View File

@ -1,8 +1,9 @@
# v0.9.28, build 203 (2025-0x-xx xx:xx UTC) # v0.9.28, build 203 (2025-02-09 16:33 UTC)
- Added an information view to all data sources to the data source configuration page. The data source configuration is a preview feature behind the RAG feature flag. - Added an information view to all data sources to the data source configuration page. The data source configuration is a preview feature behind the RAG feature flag.
- Added a ERI ((E)xternal (R)etrieval (I)nterface) client for communication with any ERI server. - Added a ERI ((E)xternal (R)etrieval (I)nterface) client for communication with any ERI server.
- Added the option to select the default app provider in the assistant settings under provider selection. Thank you, Peer (`peerschuett`), for reporting the issue. - Added the option to select the default app provider in the assistant settings under provider selection. Thank you, Peer (`peerschuett`), for reporting the issue.
- Added `donework` as financial supporter. Thank you, Dominic! - Added `donework` as financial supporter. Thank you, Dominic!
- Added content contributors to the supporter page. We thank Luc (`DevNullx64`) for his build script contribution as well as Kerstin (`KeSah001`) for creating the Wiki pages. - Added content contributors to the supporter page. We thank Luc (`DevNullx64`) for his build script contribution as well as Kerstin (`KeSah001`) for creating the Wiki pages.
- Improved the resource handling when loading models. - Improved the resource handling when loading models.
- Improved the build script to support Arch Linux and other Linux distributions, along with Rust nightly environments. Thanks `SolsticeSpectrum` for the contribution. - Improved the build script to support Arch Linux and other Linux distributions, along with Rust nightly environments. Thanks `SolsticeSpectrum` for the contribution.
- Upgraded the dependencies Rust, .NET, OpenSSL, MudBlazor, `rand`, `rand_chacha`, and others to the latest usable versions.

View File

@ -1,9 +1,9 @@
0.9.27 0.9.28
2025-01-21 18:24:04 UTC 2025-02-09 16:33:40 UTC
202 203
8.0.111 (commit f3835a7fb4) 8.0.112 (commit f7cd007b9d)
8.0.11 (commit 9cb3b725e3) 8.0.12 (commit 89ef51c5d8)
1.84.0 (commit 9fc6b4312) 1.84.1 (commit e71f9a9a9)
7.15.0 7.16.0
1.8.1 1.8.1
940459ca467, release 6da4cf1425f, release

87
runtime/Cargo.lock generated
View File

@ -1310,6 +1310,18 @@ dependencies = [
"wasi 0.11.0+wasi-snapshot-preview1", "wasi 0.11.0+wasi-snapshot-preview1",
] ]
[[package]]
name = "getrandom"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"
dependencies = [
"cfg-if",
"libc",
"wasi 0.13.3+wasi-0.2.2",
"windows-targets 0.52.6",
]
[[package]] [[package]]
name = "gimli" name = "gimli"
version = "0.29.0" version = "0.29.0"
@ -2319,7 +2331,7 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]] [[package]]
name = "mindwork-ai-studio" name = "mindwork-ai-studio"
version = "0.9.27" version = "0.9.28"
dependencies = [ dependencies = [
"aes", "aes",
"arboard", "arboard",
@ -2333,8 +2345,8 @@ dependencies = [
"once_cell", "once_cell",
"openssl", "openssl",
"pbkdf2", "pbkdf2",
"rand 0.8.5", "rand 0.9.0",
"rand_chacha 0.3.1", "rand_chacha 0.9.0",
"rcgen", "rcgen",
"reqwest 0.12.4", "reqwest 0.12.4",
"rocket", "rocket",
@ -3238,6 +3250,17 @@ dependencies = [
"rand_core 0.6.4", "rand_core 0.6.4",
] ]
[[package]]
name = "rand"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
dependencies = [
"rand_chacha 0.9.0",
"rand_core 0.9.0",
"zerocopy",
]
[[package]] [[package]]
name = "rand_chacha" name = "rand_chacha"
version = "0.2.2" version = "0.2.2"
@ -3258,6 +3281,16 @@ dependencies = [
"rand_core 0.6.4", "rand_core 0.6.4",
] ]
[[package]]
name = "rand_chacha"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
"rand_core 0.9.0",
]
[[package]] [[package]]
name = "rand_core" name = "rand_core"
version = "0.5.1" version = "0.5.1"
@ -3276,6 +3309,16 @@ dependencies = [
"getrandom 0.2.15", "getrandom 0.2.15",
] ]
[[package]]
name = "rand_core"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff"
dependencies = [
"getrandom 0.3.1",
"zerocopy",
]
[[package]] [[package]]
name = "rand_hc" name = "rand_hc"
version = "0.2.0" version = "0.2.0"
@ -5025,6 +5068,15 @@ version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasi"
version = "0.13.3+wasi-0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"
dependencies = [
"wit-bindgen-rt",
]
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.92" version = "0.2.92"
@ -5625,6 +5677,15 @@ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]]
name = "wit-bindgen-rt"
version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
dependencies = [
"bitflags 2.6.0",
]
[[package]] [[package]]
name = "write16" name = "write16"
version = "1.0.0" version = "1.0.0"
@ -5766,6 +5827,26 @@ dependencies = [
"synstructure", "synstructure",
] ]
[[package]]
name = "zerocopy"
version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
]
[[package]] [[package]]
name = "zerofrom" name = "zerofrom"
version = "0.1.5" version = "0.1.5"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "mindwork-ai-studio" name = "mindwork-ai-studio"
version = "0.9.27" version = "0.9.28"
edition = "2021" edition = "2021"
description = "MindWork AI Studio" description = "MindWork AI Studio"
authors = ["Thorsten Sommer"] authors = ["Thorsten Sommer"]
@ -20,8 +20,8 @@ flexi_logger = "0.29.8"
log = { version = "0.4", features = ["kv"] } log = { version = "0.4", features = ["kv"] }
once_cell = "1.20" once_cell = "1.20"
rocket = { version = "0.5.1", features = ["json", "tls"] } rocket = { version = "0.5.1", features = ["json", "tls"] }
rand = "0.8" rand = "0.9"
rand_chacha = "0.3.1" rand_chacha = "0.9"
base64 = "0.22.1" base64 = "0.22.1"
cipher = { version = "0.4.4", features = ["std"] } cipher = { version = "0.4.4", features = ["std"] }
aes = "0.8.4" aes = "0.8.4"

View File

@ -8,7 +8,7 @@ use rocket::request::FromRequest;
/// The API token used to authenticate requests. /// The API token used to authenticate requests.
pub static API_TOKEN: Lazy<APIToken> = Lazy::new(|| { pub static API_TOKEN: Lazy<APIToken> = Lazy::new(|| {
let mut token = [0u8; 32]; let mut token = [0u8; 32];
let mut rng = rand_chacha::ChaChaRng::from_entropy(); let mut rng = rand_chacha::ChaChaRng::from_os_rng();
rng.fill_bytes(&mut token); rng.fill_bytes(&mut token);
let token = APIToken::from_bytes(token.to_vec()); let token = APIToken::from_bytes(token.to_vec());

View File

@ -32,7 +32,7 @@ pub static ENCRYPTION: Lazy<Encryption> = Lazy::new(|| {
// We use a cryptographically secure pseudo-random number generator // We use a cryptographically secure pseudo-random number generator
// to generate the secret password & salt. ChaCha20Rng is the algorithm // to generate the secret password & salt. ChaCha20Rng is the algorithm
// of our choice: // of our choice:
let mut rng = rand_chacha::ChaChaRng::from_entropy(); let mut rng = rand_chacha::ChaChaRng::from_os_rng();
// Fill the secret key & salt with random bytes: // Fill the secret key & salt with random bytes:
rng.fill_bytes(&mut secret_key); rng.fill_bytes(&mut secret_key);

View File

@ -6,7 +6,7 @@
}, },
"package": { "package": {
"productName": "MindWork AI Studio", "productName": "MindWork AI Studio",
"version": "0.9.27" "version": "0.9.28"
}, },
"tauri": { "tauri": {
"allowlist": { "allowlist": {