chore(release): prepare for v0.98.0

This commit is contained in:
Elian Doran 2025-08-17 22:46:16 +03:00
parent 87878dd6a7
commit 2e0f606a7a
No known key found for this signature in database
14 changed files with 177 additions and 88 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@triliumnext/client", "name": "@triliumnext/client",
"version": "0.97.2", "version": "0.98.0",
"description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)", "description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)",
"private": true, "private": true,
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",

View File

@ -1,6 +1,6 @@
{ {
"name": "@triliumnext/desktop", "name": "@triliumnext/desktop",
"version": "0.97.2", "version": "0.98.0",
"description": "Build your personal knowledge base with Trilium Notes", "description": "Build your personal knowledge base with Trilium Notes",
"private": true, "private": true,
"main": "main.cjs", "main": "main.cjs",

View File

@ -1,6 +1,6 @@
{ {
"name": "@triliumnext/server", "name": "@triliumnext/server",
"version": "0.97.2", "version": "0.98.0",
"description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.", "description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
"private": true, "private": true,
"dependencies": { "dependencies": {

View File

@ -1,6 +1,6 @@
<p>Trilium supports configuration via a file named <code>config.ini</code> and <p>Trilium supports configuration via a file named <code>config.ini</code> and
environment variables. Please review the file named <a href="https://github.com/TriliumNext/Trilium/blob/develop/apps/server/src/assets/config-sample.ini">config-sample.ini</a> in environment variables. Please review the file named <a href="https://github.com/TriliumNext/Trilium/blob/main/apps/server/src/assets/config-sample.ini">config-sample.ini</a> in
the <a href="https://github.com/TriliumNext/Trilium">Notes</a> repository the <a href="https://github.com/TriliumNext/Trilium">Trilium</a> repository
to see what values are supported.</p> to see what values are supported.</p>
<p>You can provide the same values via environment variables instead of the <code>config.ini</code> file, <p>You can provide the same values via environment variables instead of the <code>config.ini</code> file,
and these environment variables use the following format:</p> and these environment variables use the following format:</p>

View File

@ -231,23 +231,17 @@
first, then adds fuzzy matching when needed.</p> first, then adds fuzzy matching when needed.</p>
<h3>How Progressive Search Works</h3> <h3>How Progressive Search Works</h3>
<ol> <ol>
<li> <li><strong>Phase 1 - Exact Matching</strong>: When you search, Trilium first
<p><strong>Phase 1 - Exact Matching</strong>: When you search, Trilium first looks for exact matches of your search terms. This handles the vast majority
looks for exact matches of your search terms. This handles the vast majority of searches (90%+) and returns results almost instantly.</li>
of searches (90%+) and returns results almost instantly.</p> <li><strong>Phase 2 - Fuzzy Fallback</strong>: If Phase 1 doesn't find enough
</li> high-quality results (fewer than 5 results with good relevance scores),
<li> Trilium automatically adds fuzzy matching to find results with typos or
<p><strong>Phase 2 - Fuzzy Fallback</strong>: If Phase 1 doesn't find enough spelling variations.</li>
high-quality results (fewer than 5 results with good relevance scores), <li><strong>Result Ordering</strong>: Exact matches always appear before fuzzy
Trilium automatically adds fuzzy matching to find results with typos or matches, regardless of individual scores. This ensures that when you search
spelling variations.</p> for "project", notes containing the exact word "project" will appear before
</li> notes containing similar words like "projects" or "projection".</li>
<li>
<p><strong>Result Ordering</strong>: Exact matches always appear before fuzzy
matches, regardless of individual scores. This ensures that when you search
for "project", notes containing the exact word "project" will appear before
notes containing similar words like "projects" or "projection".</p>
</li>
</ol> </ol>
<h3>Progressive Search Behavior</h3> <h3>Progressive Search Behavior</h3>
<ul> <ul>

View File

@ -2,9 +2,9 @@
<p>There are two types of error logs, both of which are useful when reporting <p>There are two types of error logs, both of which are useful when reporting
bugs.</p> bugs.</p>
<ul> <ul>
<li data-list-item-id="e5d891396e04bcb9d78ea10421e8ee6be"><a class="reference-link" href="#root/pOsGYCXsbNQG/BgmBlOIl72jZ/qzNzp9LYQyPT/_help_bnyigUA2UK7s">Backend (server) logs</a> <li><a class="reference-link" href="#root/_help_bnyigUA2UK7s">Backend (server) logs</a>
</li> </li>
<li data-list-item-id="e94ecb76c9af944e47bf8b5c5dabf027a"><a class="reference-link" href="#root/pOsGYCXsbNQG/BgmBlOIl72jZ/qzNzp9LYQyPT/_help_9yEHzMyFirZR">Frontend logs</a> <li><a class="reference-link" href="#root/_help_9yEHzMyFirZR">Frontend logs</a>
</li> </li>
</ul> </ul>
<h2>Providing sensitive data</h2> <h2>Providing sensitive data</h2>

View File

@ -1,10 +1,10 @@
<h2>Accessing via the backend log</h2> <h2>Accessing via the backend log</h2>
<p>In the&nbsp;<a class="reference-link" href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/_help_x3i7MxGccDuM">Global menu</a>, <p>In the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>,
go to Advanced → Show backend log</p> go to Advanced → Show backend log</p>
<h2>Location on the disk</h2> <h2>Location on the disk</h2>
<p>Backend logs are stored on the file system. To find them, open the&nbsp; <p>Backend logs are stored on the file system. To find them, open the&nbsp;
<a <a
class="reference-link" href="#root/pOsGYCXsbNQG/Otzi9La2YAUX/_help_tAassRL4RSQL">Data directory</a>, go to the <code>log</code> subdirectory and find the class="reference-link" href="#root/_help_tAassRL4RSQL">Data directory</a>, go to the <code>log</code> subdirectory and find the
latest log file, e.g. <code>trilium-2022-12-14.log</code>.&nbsp;</p> latest log file, e.g. <code>trilium-2022-12-14.log</code>.&nbsp;</p>
<h2>Reporting backend bugs</h2> <h2>Reporting backend bugs</h2>
<p>You can attach the whole file to the bug report (preferable) or open it <p>You can attach the whole file to the bug report (preferable) or open it
@ -15,12 +15,18 @@
in order to reduce the space consumption.</p> in order to reduce the space consumption.</p>
<p>It's possible to change the retention period by modifying the&nbsp; <p>It's possible to change the retention period by modifying the&nbsp;
<a <a
class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_Gzjqa934BdH4">Configuration (config.ini or environment variables)</a>&nbsp;via the <code>.ini</code> file:</p><pre><code class="language-text-x-trilium-auto">[Logging] class="reference-link" href="#root/_help_Gzjqa934BdH4">Configuration (config.ini or environment variables)</a>&nbsp;via the <code>.ini</code> file:</p><pre><code class="language-text-x-trilium-auto">[Logging]
retentionDays=7</code></pre> retentionDays=7</code></pre>
<p>Or via the environment variable <code>TRILIUM_LOGGING_RETENTION_DAYS</code>.</p> <p>Or via the environment variable <code>TRILIUM_LOGGING_RETENTION_DAYS</code>.</p>
<aside <p>Special cases:</p>
class="admonition note"> <ul>
<li>Positive values indicate the number of days worth of logs to keep</li>
<li>A value of 0 results with the default value (90 days) to be used</li>
<li>Negative values (e.g. <code>-1</code>) result with all logs to be kept,
irrespective how ancient and numerous (and</li>
</ul>
<aside class="admonition note">
<p>If you set the retention days to a low number, you might notice that not <p>If you set the retention days to a low number, you might notice that not
all the log files are being deleted. This is because a minimum number of all the log files are being deleted. This is because a minimum number of
logs (7 at the time of writing) is maintained at all times.</p> logs (7 at the time of writing) is maintained at all times.</p>
</aside> </aside>

View File

@ -5,9 +5,9 @@
console is cleared on app restart.</p> console is cleared on app restart.</p>
<p>If that doesn't work, then:</p> <p>If that doesn't work, then:</p>
<ul> <ul>
<li data-list-item-id="e1f836ac8425c0d56072614c40c996bbd">in Trilium desktop app, go to top-left menu button -&gt; Advanced -&gt; <li>in Trilium desktop app, go to top-left menu button -&gt; Advanced -&gt;
Open Dev Tools</li> Open Dev Tools</li>
<li data-list-item-id="e8bd27605bedefe884b826a1899413a6d">In Firefox/Chrome right-click anywhere in the page and click Inspect:</li> <li>In Firefox/Chrome right-click anywhere in the page and click Inspect:</li>
</ul> </ul>
<p> <p>
<img src="Frontend logs_error-logs-f.png"> <img src="Frontend logs_error-logs-f.png">

View File

@ -61,6 +61,32 @@
"attachments": [], "attachments": [],
"dirFileName": "Release Notes", "dirFileName": "Release Notes",
"children": [ "children": [
{
"isClone": false,
"noteId": "PLUoryywi0BC",
"notePath": [
"hD3V4hiu2VW4",
"PLUoryywi0BC"
],
"title": "v0.98.0",
"notePosition": 10,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "relation",
"name": "template",
"value": "wyurrlcDl416",
"isInheritable": false,
"position": 60
}
],
"format": "markdown",
"dataFileName": "v0.98.0.md",
"attachments": []
},
{ {
"isClone": false, "isClone": false,
"noteId": "lvOuiWsLDv8F", "noteId": "lvOuiWsLDv8F",
@ -69,7 +95,7 @@
"lvOuiWsLDv8F" "lvOuiWsLDv8F"
], ],
"title": "v0.97.2", "title": "v0.97.2",
"notePosition": 10, "notePosition": 20,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -95,7 +121,7 @@
"OtFZ6Nd9vM3n" "OtFZ6Nd9vM3n"
], ],
"title": "v0.97.1", "title": "v0.97.1",
"notePosition": 20, "notePosition": 30,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -121,7 +147,7 @@
"SJZ5PwfzHSQ1" "SJZ5PwfzHSQ1"
], ],
"title": "v0.97.0", "title": "v0.97.0",
"notePosition": 30, "notePosition": 40,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -147,7 +173,7 @@
"mYXFde3LuNR7" "mYXFde3LuNR7"
], ],
"title": "v0.96.0", "title": "v0.96.0",
"notePosition": 40, "notePosition": 50,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -173,7 +199,7 @@
"jthwbL0FdaeU" "jthwbL0FdaeU"
], ],
"title": "v0.95.0", "title": "v0.95.0",
"notePosition": 50, "notePosition": 60,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -199,7 +225,7 @@
"7HGYsJbLuhnv" "7HGYsJbLuhnv"
], ],
"title": "v0.94.1", "title": "v0.94.1",
"notePosition": 60, "notePosition": 70,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -225,7 +251,7 @@
"Neq53ujRGBqv" "Neq53ujRGBqv"
], ],
"title": "v0.94.0", "title": "v0.94.0",
"notePosition": 70, "notePosition": 80,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -251,7 +277,7 @@
"VN3xnce1vLkX" "VN3xnce1vLkX"
], ],
"title": "v0.93.0", "title": "v0.93.0",
"notePosition": 80, "notePosition": 90,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -269,7 +295,7 @@
"WRaBfQqPr6qo" "WRaBfQqPr6qo"
], ],
"title": "v0.92.7", "title": "v0.92.7",
"notePosition": 90, "notePosition": 100,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -295,7 +321,7 @@
"a2rwfKNmUFU1" "a2rwfKNmUFU1"
], ],
"title": "v0.92.6", "title": "v0.92.6",
"notePosition": 100, "notePosition": 110,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -313,7 +339,7 @@
"fEJ8qErr0BKL" "fEJ8qErr0BKL"
], ],
"title": "v0.92.5-beta", "title": "v0.92.5-beta",
"notePosition": 110, "notePosition": 120,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -331,7 +357,7 @@
"kkkZQQGSXjwy" "kkkZQQGSXjwy"
], ],
"title": "v0.92.4", "title": "v0.92.4",
"notePosition": 120, "notePosition": 130,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -349,7 +375,7 @@
"vAroNixiezaH" "vAroNixiezaH"
], ],
"title": "v0.92.3-beta", "title": "v0.92.3-beta",
"notePosition": 130, "notePosition": 140,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -367,7 +393,7 @@
"mHEq1wxAKNZd" "mHEq1wxAKNZd"
], ],
"title": "v0.92.2-beta", "title": "v0.92.2-beta",
"notePosition": 140, "notePosition": 150,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -385,7 +411,7 @@
"IykjoAmBpc61" "IykjoAmBpc61"
], ],
"title": "v0.92.1-beta", "title": "v0.92.1-beta",
"notePosition": 150, "notePosition": 160,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -403,7 +429,7 @@
"dq2AJ9vSBX4Y" "dq2AJ9vSBX4Y"
], ],
"title": "v0.92.0-beta", "title": "v0.92.0-beta",
"notePosition": 160, "notePosition": 170,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -421,7 +447,7 @@
"3a8aMe4jz4yM" "3a8aMe4jz4yM"
], ],
"title": "v0.91.6", "title": "v0.91.6",
"notePosition": 170, "notePosition": 180,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -439,7 +465,7 @@
"8djQjkiDGESe" "8djQjkiDGESe"
], ],
"title": "v0.91.5", "title": "v0.91.5",
"notePosition": 180, "notePosition": 190,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -457,7 +483,7 @@
"OylxVoVJqNmr" "OylxVoVJqNmr"
], ],
"title": "v0.91.4-beta", "title": "v0.91.4-beta",
"notePosition": 190, "notePosition": 200,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -475,7 +501,7 @@
"tANGQDvnyhrj" "tANGQDvnyhrj"
], ],
"title": "v0.91.3-beta", "title": "v0.91.3-beta",
"notePosition": 200, "notePosition": 210,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -493,7 +519,7 @@
"hMoBfwSoj1SC" "hMoBfwSoj1SC"
], ],
"title": "v0.91.2-beta", "title": "v0.91.2-beta",
"notePosition": 210, "notePosition": 220,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -511,7 +537,7 @@
"a2XMSKROCl9z" "a2XMSKROCl9z"
], ],
"title": "v0.91.1-beta", "title": "v0.91.1-beta",
"notePosition": 220, "notePosition": 230,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -529,7 +555,7 @@
"yqXFvWbLkuMD" "yqXFvWbLkuMD"
], ],
"title": "v0.90.12", "title": "v0.90.12",
"notePosition": 230, "notePosition": 240,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -547,7 +573,7 @@
"veS7pg311yJP" "veS7pg311yJP"
], ],
"title": "v0.90.11-beta", "title": "v0.90.11-beta",
"notePosition": 240, "notePosition": 250,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -565,7 +591,7 @@
"sq5W9TQxRqMq" "sq5W9TQxRqMq"
], ],
"title": "v0.90.10-beta", "title": "v0.90.10-beta",
"notePosition": 250, "notePosition": 260,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -583,7 +609,7 @@
"yFEGVCUM9tPx" "yFEGVCUM9tPx"
], ],
"title": "v0.90.9-beta", "title": "v0.90.9-beta",
"notePosition": 260, "notePosition": 270,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -601,7 +627,7 @@
"o4wAGqOQuJtV" "o4wAGqOQuJtV"
], ],
"title": "v0.90.8", "title": "v0.90.8",
"notePosition": 270, "notePosition": 280,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -634,7 +660,7 @@
"i4A5g9iOg9I0" "i4A5g9iOg9I0"
], ],
"title": "v0.90.7-beta", "title": "v0.90.7-beta",
"notePosition": 280, "notePosition": 290,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -652,7 +678,7 @@
"ThNf2GaKgXUs" "ThNf2GaKgXUs"
], ],
"title": "v0.90.6-beta", "title": "v0.90.6-beta",
"notePosition": 290, "notePosition": 300,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -670,7 +696,7 @@
"G4PAi554kQUr" "G4PAi554kQUr"
], ],
"title": "v0.90.5-beta", "title": "v0.90.5-beta",
"notePosition": 300, "notePosition": 310,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -697,7 +723,7 @@
"zATRobGRCmBn" "zATRobGRCmBn"
], ],
"title": "v0.90.4", "title": "v0.90.4",
"notePosition": 310, "notePosition": 320,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -715,7 +741,7 @@
"sCDLf8IKn3Iz" "sCDLf8IKn3Iz"
], ],
"title": "v0.90.3", "title": "v0.90.3",
"notePosition": 320, "notePosition": 330,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -733,7 +759,7 @@
"VqqyBu4AuTjC" "VqqyBu4AuTjC"
], ],
"title": "v0.90.2-beta", "title": "v0.90.2-beta",
"notePosition": 330, "notePosition": 340,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -751,7 +777,7 @@
"RX3Nl7wInLsA" "RX3Nl7wInLsA"
], ],
"title": "v0.90.1-beta", "title": "v0.90.1-beta",
"notePosition": 340, "notePosition": 350,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -769,7 +795,7 @@
"GyueACukPWjk" "GyueACukPWjk"
], ],
"title": "v0.90.0-beta", "title": "v0.90.0-beta",
"notePosition": 350, "notePosition": 360,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",
@ -787,7 +813,7 @@
"wyurrlcDl416" "wyurrlcDl416"
], ],
"title": "Release Template", "title": "Release Template",
"notePosition": 360, "notePosition": 370,
"prefix": null, "prefix": null,
"isExpanded": false, "isExpanded": false,
"type": "text", "type": "text",

View File

@ -0,0 +1,63 @@
# v0.98.0
> [!IMPORTANT]
> If you enjoyed this release, consider showing a token of appreciation by:
>
> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Trilium) (top-right).
> * Considering a one-time or recurrent donation to the [lead developer](https://github.com/eliandoran) via [GitHub Sponsors](https://github.com/sponsors/eliandoran) or [PayPal](https://paypal.me/eliandoran).
## 💡 Key highlights
* [Enhanced Search with Fuzzy Matching and Better UX](https://github.com/TriliumNext/Trilium/pull/6536) by @perfectra1n
* For Linux users, RPM packages are now GPG-signed.
* The keys must be imported once per device, before installation: `sudo rpm --import https://triliumnotes.org/RPM-GPG-KEY-trilium`
## 🐞 Bugfixes
* The "chat with notes" icon re-appears on 0.97.2's Launchbar after update, even though the LLM feature was disabled before
* Board view: sub-children (recursive) not displayed.
* [Canvas: unable to open internal note path links](https://github.com/TriliumNext/Trilium/issues/6606)
* Delay when opening a Text note for the first time
* Search term is not highlighted in preview search result
* ETAPI: Save note revision if needed by @perfectra1n
* [No update notification in the global menu](https://github.com/TriliumNext/Trilium/pull/6657) by @SiriusXT
## ✨ Improvements
* Zen mode is now supported on mobile by @Papierkorb2292
* Code notes: new Cobalt2 theme by @hulmgulm
* Existing users will be prompted with a message at the start of the application (and an option to dismiss it permanently):
* To enable background effects on Windows, since it has become stable.
* To use the TriliumNext theme.
* The built-in themes were renamed:
* TriliumNext themes become simply Trilium
* The Light/Dark/Auto themes become Legacy
* [Clean up old backend logs](https://github.com/TriliumNext/Trilium/pull/6609) by @perfectra1n
## 📖 Documentation
* update doc references from triliumnext/notes to triliumnext/trilium by @perfectra1n
* Simple Update/Autoupdate Script by @serossi
* Improve OIDC docs by @JYC333
* Traditional Chinese README by @francistw
* README improvements by @meichthys
## 🌍 Internationalization
* Improvements to multiple languages:
* Chinese (Traditional)
* Spanish
* Some work started on new languages:
Portuguese (Brazil), Japanese, Russian, Serbian, Italian, Greek, Catalan
* Added new languages:
* Russian (translations by @questamor)
* Japanese language (translations by [acwr47](https://hosted.weblate.org/user/acwr47/))\[…\]
## 🛠️ Technical updates
* Add duplicateSubtree to backend API by @Geekswordsman
* Fixed CVE-2025-54798 in `tmp` dependency
* Remove unnecessary idea directory by @GrantZhu1001
* Support getting an attribute value by ID in BNote by @Geekswordsman
* only run nightly.yml on TriliumNext/Trilium by @maphew
* All the dialogs have been converted to React/Preact for better maintainability. **If you notice any regressions, please report them.**

View File

@ -9141,10 +9141,24 @@
{ {
"type": "relation", "type": "relation",
"name": "internalLink", "name": "internalLink",
"value": "x59R8J8KV5Bp", "value": "bnyigUA2UK7s",
"isInheritable": false,
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "9yEHzMyFirZR",
"isInheritable": false, "isInheritable": false,
"position": 20 "position": 20
}, },
{
"type": "relation",
"name": "internalLink",
"value": "x59R8J8KV5Bp",
"isInheritable": false,
"position": 30
},
{ {
"type": "label", "type": "label",
"name": "shareAlias", "name": "shareAlias",
@ -9152,20 +9166,6 @@
"isInheritable": false, "isInheritable": false,
"position": 30 "position": 30
}, },
{
"type": "relation",
"name": "internalLink",
"value": "bnyigUA2UK7s",
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "9yEHzMyFirZR",
"isInheritable": false,
"position": 50
},
{ {
"type": "label", "type": "label",
"name": "iconClass", "name": "iconClass",
@ -9207,14 +9207,14 @@
{ {
"type": "relation", "type": "relation",
"name": "internalLink", "name": "internalLink",
"value": "tAassRL4RSQL", "value": "x3i7MxGccDuM",
"isInheritable": false, "isInheritable": false,
"position": 10 "position": 10
}, },
{ {
"type": "relation", "type": "relation",
"name": "internalLink", "name": "internalLink",
"value": "x3i7MxGccDuM", "value": "tAassRL4RSQL",
"isInheritable": false, "isInheritable": false,
"position": 20 "position": 20
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@triliumnext/source", "name": "@triliumnext/source",
"version": "0.97.2", "version": "0.98.0",
"description": "Build your personal knowledge base with Trilium Notes", "description": "Build your personal knowledge base with Trilium Notes",
"directories": { "directories": {
"doc": "docs" "doc": "docs"

View File

@ -1,6 +1,6 @@
{ {
"name": "@triliumnext/commons", "name": "@triliumnext/commons",
"version": "0.97.2", "version": "0.98.0",
"description": "Shared library between the clients (e.g. browser, Electron) and the server, mostly for type definitions and utility methods.", "description": "Shared library between the clients (e.g. browser, Electron) and the server, mostly for type definitions and utility methods.",
"private": true, "private": true,
"type": "module", "type": "module",