From 3abb5145c25db32e778b8be270d643837b15e153 Mon Sep 17 00:00:00 2001 From: Jeffrey Chen <78434827+TCOTC@users.noreply.github.com> Date: Sun, 26 Oct 2025 18:51:45 +0800 Subject: [PATCH 1/9] :art: Improve settings interface (#16203) --- app/src/config/about.ts | 18 ++++++++++++++---- app/src/mobile/settings/about.ts | 18 ++++++++++++++---- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/src/config/about.ts b/app/src/config/about.ts index 4f4415af2..8008825ae 100644 --- a/app/src/config/about.ts +++ b/app/src/config/about.ts @@ -89,10 +89,20 @@ export const about = { ${window.siyuan.languages.about2}
${window.siyuan.languages.about3.replace("${port}", location.port)}
${(() => { - const ipv4 = window.siyuan.config.localIPs.filter(ip => !(ip.startsWith("[") && ip.endsWith("]"))); - const ipv6 = window.siyuan.config.localIPs.filter(ip => (ip.startsWith("[") && ip.endsWith("]"))); - return `
${ipv4.join(" ")}
-
${ipv6.join(" ")}
`; + const ipv4Codes: string[] = []; + const ipv6Codes: string[] = []; + for (const ip of window.siyuan.config.localIPs) { + if (!ip.trim()) { + break; + } + if (ip.startsWith("[") && ip.endsWith("]")) { + ipv6Codes.push(`${ip}`); + } else { + ipv4Codes.push(`${ip}`); + } + } + return `
${ipv4Codes.join(" ")}
+
${ipv6Codes.join(" ")}
`; })()}
${window.siyuan.languages.about18}
diff --git a/app/src/mobile/settings/about.ts b/app/src/mobile/settings/about.ts index ce2988b94..30222a16c 100644 --- a/app/src/mobile/settings/about.ts +++ b/app/src/mobile/settings/about.ts @@ -36,10 +36,20 @@ export const initAbout = () => {
${window.siyuan.languages.about3.replace("${port}", location.port)}
${(() => { - const ipv4 = window.siyuan.config.localIPs.filter(ip => !(ip.startsWith("[") && ip.endsWith("]"))); - const ipv6 = window.siyuan.config.localIPs.filter(ip => (ip.startsWith("[") && ip.endsWith("]"))); - return `
${ipv4.join(" ")}
-
${ipv6.join(" ")}
`; + const ipv4Codes: string[] = []; + const ipv6Codes: string[] = []; + for (const ip of window.siyuan.config.localIPs) { + if (!ip.trim()) { + break; + } + if (ip.startsWith("[") && ip.endsWith("]")) { + ipv6Codes.push(`${ip}`); + } else { + ipv4Codes.push(`${ip}`); + } + } + return `
${ipv4Codes.join(" ")}
+
${ipv6Codes.join(" ")}
`; })()}
${window.siyuan.languages.about18}
From 923f9be756bba53650f580434d645647f5048bd1 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 26 Oct 2025 21:18:51 +0800 Subject: [PATCH 2/9] :art: Improve get os info for HarmonyOS Signed-off-by: Daniel <845765@qq.com> --- kernel/util/os_mobile.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/util/os_mobile.go b/kernel/util/os_mobile.go index dbb1a1e38..71e36c836 100644 --- a/kernel/util/os_mobile.go +++ b/kernel/util/os_mobile.go @@ -25,5 +25,8 @@ func GetOSPlatform() (plat string) { if ContainerAndroid == Container { return "Android " + MobileOSVer } + if ContainerHarmony == Container { + return "HarmonyOS " + MobileOSVer + } return "Unknown " + MobileOSVer } From 630717417625c17292487cc5786f11f185f1c865 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 26 Oct 2025 21:37:19 +0800 Subject: [PATCH 3/9] :art: Update ms store appx lang Signed-off-by: Daniel <845765@qq.com> --- app/appx/AppxManifest-arm64.xml | 11 +++++++++++ app/appx/AppxManifest.xml | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/app/appx/AppxManifest-arm64.xml b/app/appx/AppxManifest-arm64.xml index 26abccb0e..4eec375c8 100644 --- a/app/appx/AppxManifest-arm64.xml +++ b/app/appx/AppxManifest-arm64.xml @@ -17,7 +17,18 @@ assets\StoreLogo.png + + + + + + + + + + + diff --git a/app/appx/AppxManifest.xml b/app/appx/AppxManifest.xml index f76edd65e..2c6089a04 100644 --- a/app/appx/AppxManifest.xml +++ b/app/appx/AppxManifest.xml @@ -17,7 +17,18 @@ assets\StoreLogo.png + + + + + + + + + + + From bc1fe91865fb3162335f3403b19dad65622fd547 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 26 Oct 2025 21:52:14 +0800 Subject: [PATCH 4/9] :arrow_up: Upgrade kernel deps Signed-off-by: Daniel <845765@qq.com> --- kernel/go.mod | 30 +++++++++++++------------- kernel/go.sum | 60 +++++++++++++++++++++++++-------------------------- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 5f708d991..7d13fdcb8 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -58,7 +58,7 @@ require ( github.com/sashabaranov/go-openai v1.41.2 github.com/shirou/gopsutil/v4 v4.25.9 github.com/siyuan-note/dataparser v0.0.0-20250804100744-b41253b236f3 - github.com/siyuan-note/dejavu v0.0.0-20251023133203-b2133372a0ed + github.com/siyuan-note/dejavu v0.0.0-20251026135100-e21b0148537e github.com/siyuan-note/encryption v0.0.0-20250326023622-24a67e6956ec github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 github.com/siyuan-note/filelock v0.0.0-20251010020544-2603449ff16d @@ -94,23 +94,23 @@ require ( github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82 // indirect github.com/andybalholm/brotli v1.2.0 // indirect github.com/andybalholm/cascadia v1.3.3 // indirect - github.com/aws/aws-sdk-go-v2 v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2 v1.39.4 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/config v1.31.14 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.18.18 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.10 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.15 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.19 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.10 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.10 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.88.6 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.29.7 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.38.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.88.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 // indirect github.com/aws/smithy-go v1.23.1 // indirect github.com/bytedance/gopkg v0.1.3 // indirect github.com/bytedance/sonic v1.14.1 // indirect diff --git a/kernel/go.sum b/kernel/go.sum index 451a79ce7..f6fa84b66 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -56,40 +56,40 @@ github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhP github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw= github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef h1:2JGTg6JapxP9/R33ZaagQtAM4EkkSYnIAlOG5EI8gkM= github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef/go.mod h1:JS7hed4L1fj0hXcyEejnW57/7LCetXggd+vwrRnYeII= -github.com/aws/aws-sdk-go-v2 v1.39.3 h1:h7xSsanJ4EQJXG5iuW4UqgP7qBopLpj84mpkNx3wPjM= -github.com/aws/aws-sdk-go-v2 v1.39.3/go.mod h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM= +github.com/aws/aws-sdk-go-v2 v1.39.4 h1:qTsQKcdQPHnfGYBBs+Btl8QwxJeoWcOcPcixK90mRhg= +github.com/aws/aws-sdk-go-v2 v1.39.4/go.mod h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2 h1:t9yYsydLYNBk9cJ73rgPhPWqOh/52fcWDQB5b1JsKSY= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2/go.mod h1:IusfVNTmiSN3t4rhxWFaBAqn+mcNdwKtPcV16eYdgko= -github.com/aws/aws-sdk-go-v2/config v1.31.14 h1:kj/KpDqvt0UqcEL3WOvCykE9QUpBb6b23hQdnXe+elo= -github.com/aws/aws-sdk-go-v2/config v1.31.14/go.mod h1:X5PaY6QCzViihn/ru7VxnIamcJQrG9NSeTxuSKm2YtU= -github.com/aws/aws-sdk-go-v2/credentials v1.18.18 h1:5AfxTvDN0AJoA7rg/yEc0sHhl6/B9fZ+NtiQuOjWGQM= -github.com/aws/aws-sdk-go-v2/credentials v1.18.18/go.mod h1:m9mE1mJ1s7zI6rrt7V3RQU2SCgUbNaphlfqEksLp+Fs= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.10 h1:UuGVOX48oP4vgQ36oiKmW9RuSeT8jlgQgBFQD+HUiHY= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.10/go.mod h1:vM/Ini41PzvudT4YkQyE/+WiQJiQ6jzeDyU8pQKwCac= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.10 h1:mj/bdWleWEh81DtpdHKkw41IrS+r3uw1J/VQtbwYYp8= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.10/go.mod h1:7+oEMxAZWP8gZCyjcm9VicI0M61Sx4DJtcGfKYv2yKQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.10 h1:wh+/mn57yhUrFtLIxyFPh2RgxgQz/u+Yrf7hiHGHqKY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.10/go.mod h1:7zirD+ryp5gitJJ2m1BBux56ai8RIRDykXZrJSp540w= +github.com/aws/aws-sdk-go-v2/config v1.31.15 h1:gE3M4xuNXfC/9bG4hyowGm/35uQTi7bUKeYs5e/6uvU= +github.com/aws/aws-sdk-go-v2/config v1.31.15/go.mod h1:HvnvGJoE2I95KAIW8kkWVPJ4XhdrlvwJpV6pEzFQa8o= +github.com/aws/aws-sdk-go-v2/credentials v1.18.19 h1:Jc1zzwkSY1QbkEcLujwqRTXOdvW8ppND3jRBb/VhBQc= +github.com/aws/aws-sdk-go-v2/credentials v1.18.19/go.mod h1:DIfQ9fAk5H0pGtnqfqkbSIzky82qYnGvh06ASQXXg6A= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 h1:X7X4YKb+c0rkI6d4uJ5tEMxXgCZ+jZ/D6mvkno8c8Uw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11/go.mod h1:EqM6vPZQsZHYvC4Cai35UDg/f5NCEU+vp0WfbVqVcZc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11 h1:7AANQZkF3ihM8fbdftpjhken0TP9sBzFbV/Ze/Y4HXA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11/go.mod h1:NTF4QCGkm6fzVwncpkFQqoquQyOolcyXfbpC98urj+c= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11 h1:ShdtWUZT37LCAA4Mw2kJAJtzaszfSHFb5n25sdcv4YE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11/go.mod h1:7bUb2sSr2MZ3M/N+VyETLTQtInemHXb/Fl3s8CLzm0Y= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.10 h1:FHw90xCTsofzk6vjU808TSuDtDfOOKPNdz5Weyc3tUI= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.10/go.mod h1:n8jdIE/8F3UYkg8O4IGkQpn2qUmapg/1K1yl29/uf/c= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 h1:bKgSxk1TW//00PGQqYmrq83c+2myGidEclp+t9pPqVI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11/go.mod h1:vrPYCQ6rFHL8jzQA8ppu3gWX18zxjLIDGTeqDxkBmSI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 h1:xtuxji5CS0JknaXoACOunXOYOQzgfTvGAc9s2QdCJA4= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2/go.mod h1:zxwi0DIR0rcRcgdbl7E2MSOvxDyyXGBlScvBkARFaLQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.1 h1:ne+eepnDB2Wh5lHKzELgEncIqeVlQ1rSF9fEa4r5I+A= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.1/go.mod h1:u0Jkg0L+dcG1ozUq21uFElmpbmjBnhHR5DELHIme4wg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.10 h1:DRND0dkCKtJzCj4Xl4OpVbXZgfttY5q712H9Zj7qc/0= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.10/go.mod h1:tGGNmJKOTernmR2+VJ0fCzQRurcPZj9ut60Zu5Fi6us= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.10 h1:DA+Hl5adieRyFvE7pCvBWm3VOZTRexGVkXw33SUqNoY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.10/go.mod h1:L+A89dH3/gr8L4ecrdzuXUYd1znoko6myzndVGZx/DA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.88.6 h1:Hcb4yllr4GTOHC/BKjEklxWhciWMHIqzeCI9oYf1OIk= -github.com/aws/aws-sdk-go-v2/service/s3 v1.88.6/go.mod h1:N/iojY+8bW3MYol9NUMuKimpSbPEur75cuI1SmtonFM= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.7 h1:fspVFg6qMx0svs40YgRmE7LZXh9VRZvTT35PfdQR6FM= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.7/go.mod h1:BQTKL3uMECaLaUV3Zc2L4Qybv8C6BIXjuu1dOPyxTQs= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.2 h1:scVnW+NLXasGOhy7HhkdT9AGb6kjgW7fJ5xYkUaqHs0= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.2/go.mod h1:FRNCY3zTEWZXBKm2h5UBUPvCVDOecTad9KhynDyGBc0= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.8 h1:xSL4IV19pKDASL2fjWXRfTGmZddPiPPZNPpbv6uZQZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.8/go.mod h1:L1xxV3zAdB+qVrVW/pBIrIAnHFWHo6FBbFe4xOGsG/o= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2 h1:DGFpGybmutVsCuF6vSuLZ25Vh55E3VmsnJmFfjeBx4M= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2/go.mod h1:hm/wU1HDvXCFEDzOLorQnZZ/CVvPXvWEmHMSmqgQRuA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 h1:GpMf3z2KJa4RnJ0ew3Hac+hRFYLZ9DDjfgXjuW+pB54= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11/go.mod h1:6MZP3ZI4QQsgUCFTwMZA2V0sEriNQ8k2hmoHF3qjimQ= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11 h1:weapBOuuFIBEQ9OX/NVW3tFQCvSutyjZYk/ga5jDLPo= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11/go.mod h1:3C1gN4FmIVLwYSh8etngUS+f1viY6nLCDVtZmrFbDy0= +github.com/aws/aws-sdk-go-v2/service/s3 v1.88.7 h1:Wer3W0GuaedWT7dv/PiWNZGSQFSTcBY2rZpbiUp5xcA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.88.7/go.mod h1:UHKgcRSx8PVtvsc1Poxb/Co3PD3wL7P+f49P0+cWtuY= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 h1:M5nimZmugcZUO9wG7iVtROxPhiqyZX6ejS1lxlDPbTU= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.8/go.mod h1:mbef/pgKhtKRwrigPPs7SSSKZgytzP8PQ6P6JAAdqyM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 h1:S5GuJZpYxE0lKeMHKn+BRTz6PTFpgThyJ+5mYfux7BM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3/go.mod h1:X4OF+BTd7HIb3L+tc4UlWHVrpgwZZIVENU15pRDVTI0= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 h1:Ekml5vGg6sHSZLZJQJagefnVe6PmqC2oiRkBq4F7fU0= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.9/go.mod h1:/e15V+o1zFHWdH3u7lpI3rVBcxszktIKuHKCY2/py+k= github.com/aws/smithy-go v1.23.1 h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M= github.com/aws/smithy-go v1.23.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= @@ -374,8 +374,8 @@ github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d/go.mod h1:05Ut github.com/simplereach/timeutils v1.2.0/go.mod h1:VVbQDfN/FHRZa1LSqcwo4kNZ62OOyqLLGQKYB3pB0Q8= github.com/siyuan-note/dataparser v0.0.0-20250804100744-b41253b236f3 h1:EH063L0HD1f82DvddurUmEXS0obXypv8pQrcaC/zNgI= github.com/siyuan-note/dataparser v0.0.0-20250804100744-b41253b236f3/go.mod h1:8lb+SsWAPQblGbjmwEBsBdJszMCcLeECtB95fv6mReg= -github.com/siyuan-note/dejavu v0.0.0-20251023133203-b2133372a0ed h1:8Yeyw09xNtCGyjw0Jjun6ScGf5r+WyAGDe94h3Bb9dM= -github.com/siyuan-note/dejavu v0.0.0-20251023133203-b2133372a0ed/go.mod h1:VUnpgjNMd3/SJwoWFPRb4nAEfvmfajBSMnsmadNptH8= +github.com/siyuan-note/dejavu v0.0.0-20251026135100-e21b0148537e h1:g1kBny0GUKTyKTOAgw+Y0yBXU31ooK4SRwGVCmqv4eU= +github.com/siyuan-note/dejavu v0.0.0-20251026135100-e21b0148537e/go.mod h1:2uv9pVysdsZKY3Zkf18Rre/iWlZstgRC/veShQiLIOc= github.com/siyuan-note/encryption v0.0.0-20250326023622-24a67e6956ec h1:D8Sjwa+7WxP3XrIBscT4PxBZZddZ83/O+5nX1sq6g6g= github.com/siyuan-note/encryption v0.0.0-20250326023622-24a67e6956ec/go.mod h1:6iAxXPOOAG3+M4bCiKQZTQ+n4gSUx/OyHhsP57dJlS8= github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 h1:lM5v8BfNtbOL5jYwhCdMYBcYtr06IYBKjjSLAPMKTM8= From 600c888dbcd362043af103bdb1559b2b788f17f2 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 26 Oct 2025 21:55:55 +0800 Subject: [PATCH 5/9] :memo: Update changelogs Signed-off-by: Daniel <845765@qq.com> --- app/changelogs/v3.3.6/v3.3.6.md | 2 ++ app/changelogs/v3.3.6/v3.3.6_zh_CHT.md | 2 ++ app/changelogs/v3.3.6/v3.3.6_zh_CN.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/app/changelogs/v3.3.6/v3.3.6.md b/app/changelogs/v3.3.6/v3.3.6.md index 88ba0c015..70fa7ffc7 100644 --- a/app/changelogs/v3.3.6/v3.3.6.md +++ b/app/changelogs/v3.3.6/v3.3.6.md @@ -35,6 +35,8 @@ Below are the detailed changes in this version. * [Improve FSRS weight initialization](https://github.com/siyuan-note/siyuan/issues/16181) * [Embed blocks in superblocks support displaying breadcrumbs](https://github.com/siyuan-note/siyuan/issues/16183) * [Improve data synchronization](https://github.com/siyuan-note/siyuan/issues/16187) +* [Improve S3 data sync for proxied endpoints (Cloudflare Tunnel)](https://github.com/siyuan-note/siyuan/issues/16199) +* [Improve IP list address acquisition on HarmonyOS](https://github.com/siyuan-note/siyuan/issues/16202) ### Bugfix diff --git a/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md b/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md index bf7a9c67d..32ea1f89d 100644 --- a/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md +++ b/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md @@ -35,6 +35,8 @@ * [改進 FSRS 權重初始化](https://github.com/siyuan-note/siyuan/issues/16181) * [超級區塊下的嵌入區塊支援顯示麵包屑](https://github.com/siyuan-note/siyuan/issues/16183) * [改進資料同步](https://github.com/siyuan-note/siyuan/issues/16187) +* [改進 S3 資料同步代理端點(Cloudflare Tunnel)](https://github.com/siyuan-note/siyuan/issues/16199) +* [改進鴻蒙端 IP 清單取得](https://github.com/siyuan-note/siyuan/issues/16202) ### 修復缺陷 diff --git a/app/changelogs/v3.3.6/v3.3.6_zh_CN.md b/app/changelogs/v3.3.6/v3.3.6_zh_CN.md index b18f28b6b..b8a353ca7 100644 --- a/app/changelogs/v3.3.6/v3.3.6_zh_CN.md +++ b/app/changelogs/v3.3.6/v3.3.6_zh_CN.md @@ -35,6 +35,8 @@ * [改进 FSRS 权重初始化](https://github.com/siyuan-note/siyuan/issues/16181) * [超级块下的嵌入块支持显示面包屑](https://github.com/siyuan-note/siyuan/issues/16183) * [改进数据同步](https://github.com/siyuan-note/siyuan/issues/16187) +* [改进 S3 数据同步代理端点(Cloudflare Tunnel)](https://github.com/siyuan-note/siyuan/issues/16199) +* [改进鸿蒙端 IP 列表获取](https://github.com/siyuan-note/siyuan/issues/16202) ### 修复缺陷 From d5b78df9a3dbdca164168332362e0e41b632b5d2 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 27 Oct 2025 11:30:53 +0800 Subject: [PATCH 6/9] :arrow_up: Upgrade kernel deps Signed-off-by: Daniel <845765@qq.com> --- kernel/go.mod | 2 +- kernel/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/go.mod b/kernel/go.mod index 7d13fdcb8..7787f371d 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -58,7 +58,7 @@ require ( github.com/sashabaranov/go-openai v1.41.2 github.com/shirou/gopsutil/v4 v4.25.9 github.com/siyuan-note/dataparser v0.0.0-20250804100744-b41253b236f3 - github.com/siyuan-note/dejavu v0.0.0-20251026135100-e21b0148537e + github.com/siyuan-note/dejavu v0.0.0-20251027015737-2f9c052b7de3 github.com/siyuan-note/encryption v0.0.0-20250326023622-24a67e6956ec github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 github.com/siyuan-note/filelock v0.0.0-20251010020544-2603449ff16d diff --git a/kernel/go.sum b/kernel/go.sum index f6fa84b66..927b77018 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -374,8 +374,8 @@ github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d/go.mod h1:05Ut github.com/simplereach/timeutils v1.2.0/go.mod h1:VVbQDfN/FHRZa1LSqcwo4kNZ62OOyqLLGQKYB3pB0Q8= github.com/siyuan-note/dataparser v0.0.0-20250804100744-b41253b236f3 h1:EH063L0HD1f82DvddurUmEXS0obXypv8pQrcaC/zNgI= github.com/siyuan-note/dataparser v0.0.0-20250804100744-b41253b236f3/go.mod h1:8lb+SsWAPQblGbjmwEBsBdJszMCcLeECtB95fv6mReg= -github.com/siyuan-note/dejavu v0.0.0-20251026135100-e21b0148537e h1:g1kBny0GUKTyKTOAgw+Y0yBXU31ooK4SRwGVCmqv4eU= -github.com/siyuan-note/dejavu v0.0.0-20251026135100-e21b0148537e/go.mod h1:2uv9pVysdsZKY3Zkf18Rre/iWlZstgRC/veShQiLIOc= +github.com/siyuan-note/dejavu v0.0.0-20251027015737-2f9c052b7de3 h1:UpCefZAUhztZFp9njYjjeewiV+b6D/mnUpE8ip9QR/g= +github.com/siyuan-note/dejavu v0.0.0-20251027015737-2f9c052b7de3/go.mod h1:2uv9pVysdsZKY3Zkf18Rre/iWlZstgRC/veShQiLIOc= github.com/siyuan-note/encryption v0.0.0-20250326023622-24a67e6956ec h1:D8Sjwa+7WxP3XrIBscT4PxBZZddZ83/O+5nX1sq6g6g= github.com/siyuan-note/encryption v0.0.0-20250326023622-24a67e6956ec/go.mod h1:6iAxXPOOAG3+M4bCiKQZTQ+n4gSUx/OyHhsP57dJlS8= github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 h1:lM5v8BfNtbOL5jYwhCdMYBcYtr06IYBKjjSLAPMKTM8= From 1f464ca42b4e0606aefc7f46b1e67e29602cb25f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 27 Oct 2025 11:31:11 +0800 Subject: [PATCH 7/9] :art: Improve the database rollup and asset field filtering https://github.com/siyuan-note/siyuan/issues/16126 Signed-off-by: Daniel <845765@qq.com> --- kernel/av/filter.go | 105 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 88 insertions(+), 17 deletions(-) diff --git a/kernel/av/filter.go b/kernel/av/filter.go index 876d03a85..587293c56 100644 --- a/kernel/av/filter.go +++ b/kernel/av/filter.go @@ -17,6 +17,7 @@ package av import ( + "reflect" "strings" "time" @@ -192,40 +193,88 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s switch filter.Qualifier { case FilterQuantifierUndefined, FilterQuantifierAny: - if len(value.Rollup.Contents) < len(relVal.Relation.Contents) { // 说明汇总的目标字段存在空值 - if FilterOperatorIsEmpty == filter.Operator { + if FilterOperatorIsEmpty == filter.Operator { + if 1 > len(value.Rollup.Contents) { return true - } else if FilterOperatorIsNotEmpty == filter.Operator { - if 0 < len(value.Rollup.Contents) { + } + + if len(value.Rollup.Contents) < len(relVal.Relation.Contents) { // 说明汇总的目标字段存在空值 + return true + } + + for _, c := range value.Rollup.Contents { + if v := c.GetValByType(c.Type); nil == v || reflect.ValueOf(v).IsNil() { return true } } + return false + } else if FilterOperatorIsNotEmpty == filter.Operator { + if 1 > len(value.Rollup.Contents) { + return false + } + + for _, c := range value.Rollup.Contents { + if v := c.GetValByType(c.Type); nil != v && !reflect.ValueOf(v).IsNil() { + return true + } + } + return false } if 1 > len(filter.Value.Rollup.Contents) { return true } + if v := filter.Value.GetValByType(filter.Value.Rollup.Contents[0].Type); nil == v || reflect.ValueOf(v).IsNil() { + return true + } + for _, content := range value.Rollup.Contents { if content.filter(filter.Value.Rollup.Contents[0], filter.RelativeDate, filter.RelativeDate2, filter.Operator) { return true } } case FilterQuantifierAll: - if len(value.Rollup.Contents) < len(relVal.Relation.Contents) { - if FilterOperatorIsEmpty == filter.Operator { - if 1 > len(value.Rollup.Contents) { - return true - } - } else if FilterOperatorIsNotEmpty == filter.Operator { + if FilterOperatorIsEmpty == filter.Operator { + if 1 > len(value.Rollup.Contents) { + return true + } + + if len(value.Rollup.Contents) < len(relVal.Relation.Contents) { return false } + + for _, c := range value.Rollup.Contents { + if v := c.GetValByType(c.Type); nil != v && !reflect.ValueOf(v).IsNil() { + return false + } + } + return true + } else if FilterOperatorIsNotEmpty == filter.Operator { + if 1 > len(value.Rollup.Contents) { + return false + } + + if len(value.Rollup.Contents) < len(relVal.Relation.Contents) { + return false + } + + for _, c := range value.Rollup.Contents { + if v := c.GetValByType(c.Type); nil == v || reflect.ValueOf(v).IsNil() { + return false + } + } + return true } if 1 > len(filter.Value.Rollup.Contents) { return true } + if v := filter.Value.GetValByType(filter.Value.Rollup.Contents[0].Type); nil == v || reflect.ValueOf(v).IsNil() { + return true + } + for _, content := range value.Rollup.Contents { if !content.filter(filter.Value.Rollup.Contents[0], filter.RelativeDate, filter.RelativeDate2, filter.Operator) { return false @@ -234,19 +283,41 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s return true case FilterQuantifierNone: if FilterOperatorIsEmpty == filter.Operator { - if len(value.Rollup.Contents) < len(relVal.Relation.Contents) || 1 > len(value.Rollup.Contents) { + if 1 > len(value.Rollup.Contents) { return false } + + if len(value.Rollup.Contents) < len(relVal.Relation.Contents) { + return true + } + + for _, c := range value.Rollup.Contents { + if v := c.GetValByType(c.Type); nil == v || reflect.ValueOf(v).IsNil() { + return false + } + } + return true } else if FilterOperatorIsNotEmpty == filter.Operator { if 1 > len(value.Rollup.Contents) { return true } + + for _, c := range value.Rollup.Contents { + if v := c.GetValByType(c.Type); nil != v && !reflect.ValueOf(v).IsNil() { + return false + } + } + return true } if 1 > len(filter.Value.Rollup.Contents) { return true } + if v := filter.Value.GetValByType(filter.Value.Rollup.Contents[0].Type); nil == v || reflect.ValueOf(v).IsNil() { + return true + } + for _, content := range value.Rollup.Contents { if content.filter(filter.Value.Rollup.Contents[0], filter.RelativeDate, filter.RelativeDate2, filter.Operator) { return false @@ -312,7 +383,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } for _, asset := range value.MAsset { - if "" == strings.TrimSpace(asset.Content) { + if "" == strings.TrimSpace(asset.Name) && "" == strings.TrimSpace(asset.Content) { return true } } @@ -323,7 +394,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } for _, asset := range value.MAsset { - if "" != strings.TrimSpace(asset.Content) { + if "" != strings.TrimSpace(asset.Name) || "" != strings.TrimSpace(asset.Content) { return true } } @@ -354,7 +425,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } for _, asset := range value.MAsset { - if "" != strings.TrimSpace(asset.Content) { + if "" != strings.TrimSpace(asset.Name) || "" != strings.TrimSpace(asset.Content) { return false } } @@ -365,7 +436,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } for _, asset := range value.MAsset { - if "" == strings.TrimSpace(asset.Content) { + if "" == strings.TrimSpace(asset.Name) && "" == strings.TrimSpace(asset.Content) { return false } } @@ -397,7 +468,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } for _, asset := range value.MAsset { - if "" == strings.TrimSpace(asset.Content) { + if "" == strings.TrimSpace(asset.Name) && "" == strings.TrimSpace(asset.Content) { return false } } @@ -408,7 +479,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, itemID s } for _, asset := range value.MAsset { - if "" != strings.TrimSpace(asset.Content) { + if "" != strings.TrimSpace(asset.Name) || "" != strings.TrimSpace(asset.Content) { return false } } From ea95d62801a6486db06ae158ac0b268b03f3cb38 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 27 Oct 2025 16:57:52 +0800 Subject: [PATCH 8/9] :memo: Update changelogs Signed-off-by: Daniel <845765@qq.com> --- app/changelogs/v3.3.6/v3.3.6.md | 1 + app/changelogs/v3.3.6/v3.3.6_zh_CHT.md | 1 + app/changelogs/v3.3.6/v3.3.6_zh_CN.md | 1 + 3 files changed, 3 insertions(+) diff --git a/app/changelogs/v3.3.6/v3.3.6.md b/app/changelogs/v3.3.6/v3.3.6.md index 70fa7ffc7..8e80ac09c 100644 --- a/app/changelogs/v3.3.6/v3.3.6.md +++ b/app/changelogs/v3.3.6/v3.3.6.md @@ -35,6 +35,7 @@ Below are the detailed changes in this version. * [Improve FSRS weight initialization](https://github.com/siyuan-note/siyuan/issues/16181) * [Embed blocks in superblocks support displaying breadcrumbs](https://github.com/siyuan-note/siyuan/issues/16183) * [Improve data synchronization](https://github.com/siyuan-note/siyuan/issues/16187) +* [Improve list item editing](https://github.com/siyuan-note/siyuan/issues/16196) * [Improve S3 data sync for proxied endpoints (Cloudflare Tunnel)](https://github.com/siyuan-note/siyuan/issues/16199) * [Improve IP list address acquisition on HarmonyOS](https://github.com/siyuan-note/siyuan/issues/16202) diff --git a/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md b/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md index 32ea1f89d..0f84de215 100644 --- a/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md +++ b/app/changelogs/v3.3.6/v3.3.6_zh_CHT.md @@ -35,6 +35,7 @@ * [改進 FSRS 權重初始化](https://github.com/siyuan-note/siyuan/issues/16181) * [超級區塊下的嵌入區塊支援顯示麵包屑](https://github.com/siyuan-note/siyuan/issues/16183) * [改進資料同步](https://github.com/siyuan-note/siyuan/issues/16187) +* [改進清單項目編輯](https://github.com/siyuan-note/siyuan/issues/16196) * [改進 S3 資料同步代理端點(Cloudflare Tunnel)](https://github.com/siyuan-note/siyuan/issues/16199) * [改進鴻蒙端 IP 清單取得](https://github.com/siyuan-note/siyuan/issues/16202) diff --git a/app/changelogs/v3.3.6/v3.3.6_zh_CN.md b/app/changelogs/v3.3.6/v3.3.6_zh_CN.md index b8a353ca7..f345ca706 100644 --- a/app/changelogs/v3.3.6/v3.3.6_zh_CN.md +++ b/app/changelogs/v3.3.6/v3.3.6_zh_CN.md @@ -35,6 +35,7 @@ * [改进 FSRS 权重初始化](https://github.com/siyuan-note/siyuan/issues/16181) * [超级块下的嵌入块支持显示面包屑](https://github.com/siyuan-note/siyuan/issues/16183) * [改进数据同步](https://github.com/siyuan-note/siyuan/issues/16187) +* [改进列表项编辑](https://github.com/siyuan-note/siyuan/issues/16196) * [改进 S3 数据同步代理端点(Cloudflare Tunnel)](https://github.com/siyuan-note/siyuan/issues/16199) * [改进鸿蒙端 IP 列表获取](https://github.com/siyuan-note/siyuan/issues/16202) From d154b050837e70985fe8e9ebb5a5024d13d25582 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 27 Oct 2025 17:14:25 +0800 Subject: [PATCH 9/9] :technologist: Add an internal kernel API `/api/outline/getDocOutlineAndStorage` https://github.com/siyuan-note/siyuan/issues/16206 Signed-off-by: Daniel <845765@qq.com> --- kernel/api/outline.go | 35 +++++++++++++++++++++++++++++++++++ kernel/api/router.go | 5 ++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/kernel/api/outline.go b/kernel/api/outline.go index 83c35c6e3..893a278ef 100644 --- a/kernel/api/outline.go +++ b/kernel/api/outline.go @@ -25,6 +25,41 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func getDocOutlineAndStorage(c *gin.Context) { + ret := gulu.Ret.NewResult() + defer c.JSON(http.StatusOK, ret) + + arg, ok := util.JsonArg(c, ret) + if !ok { + return + } + + if nil == arg["id"] { + return + } + preview := false + if previewArg := arg["preview"]; nil != previewArg { + preview = previewArg.(bool) + } + rootID := arg["id"].(string) + data, err := model.GetOutlineStorage(rootID) + if err != nil { + ret.Code = -1 + ret.Msg = err.Error() + return + } + headings, err := model.Outline(rootID, preview) + if err != nil { + ret.Code = 1 + ret.Msg = err.Error() + return + } + ret.Data = map[string]any{ + "headings": headings, + "storage": data, + } +} + func getDocOutline(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) diff --git a/kernel/api/router.go b/kernel/api/router.go index 4dfa9b025..09346da5d 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -81,7 +81,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/storage/updateRecentDocViewTime", model.CheckAuth, updateRecentDocViewTime) ginServer.Handle("POST", "/api/storage/updateRecentDocCloseTime", model.CheckAuth, updateRecentDocCloseTime) ginServer.Handle("POST", "/api/storage/updateRecentDocOpenTime", model.CheckAuth, updateRecentDocOpenTime) - + ginServer.Handle("POST", "/api/storage/getOutlineStorage", model.CheckAuth, getOutlineStorage) ginServer.Handle("POST", "/api/storage/setOutlineStorage", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, setOutlineStorage) ginServer.Handle("POST", "/api/storage/removeOutlineStorage", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, removeOutlineStorage) @@ -151,9 +151,12 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/history/getHistoryItems", model.CheckAuth, model.CheckAdminRole, getHistoryItems) ginServer.Handle("POST", "/api/outline/getDocOutline", model.CheckAuth, getDocOutline) + ginServer.Handle("POST", "/api/outline/getDocOutlineAndStorage", model.CheckAuth, getDocOutlineAndStorage) + ginServer.Handle("POST", "/api/bookmark/getBookmark", model.CheckAuth, getBookmark) ginServer.Handle("POST", "/api/bookmark/renameBookmark", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, renameBookmark) ginServer.Handle("POST", "/api/bookmark/removeBookmark", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, removeBookmark) + ginServer.Handle("POST", "/api/tag/getTag", model.CheckAuth, getTag) ginServer.Handle("POST", "/api/tag/renameTag", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, renameTag) ginServer.Handle("POST", "/api/tag/removeTag", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, removeTag)