From 83db37ed31acd44739d1def3c2e361728775f3f6 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 12 Jan 2026 21:03:55 +0200 Subject: [PATCH] fix(server): app-info not showing data dir --- apps/client/src/widgets/dialogs/about.tsx | 27 ++++++++++--------- apps/server/src/main.ts | 10 +++++-- apps/server/src/services/app_info.ts | 12 ++------- packages/trilium-core/src/index.ts | 10 +++++-- .../trilium-core/src/services/app_info.ts | 6 +++-- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/apps/client/src/widgets/dialogs/about.tsx b/apps/client/src/widgets/dialogs/about.tsx index f09cca319..420fa1646 100644 --- a/apps/client/src/widgets/dialogs/about.tsx +++ b/apps/client/src/widgets/dialogs/about.tsx @@ -1,13 +1,14 @@ -import Modal from "../react/Modal.js"; +import type { AppInfo } from "@triliumnext/commons"; +import type { CSSProperties } from "preact/compat"; +import { useState } from "preact/hooks"; + import { t } from "../../services/i18n.js"; -import { formatDateTime } from "../../utils/formatters.js"; +import openService from "../../services/open.js"; import server from "../../services/server.js"; import utils from "../../services/utils.js"; -import openService from "../../services/open.js"; -import { useState } from "preact/hooks"; -import type { CSSProperties } from "preact/compat"; -import type { AppInfo } from "@triliumnext/commons"; +import { formatDateTime } from "../../utils/formatters.js"; import { useTriliumEvent } from "../react/hooks.jsx"; +import Modal from "../react/Modal.js"; export default function AboutDialog() { const [appInfo, setAppInfo] = useState(null); @@ -54,15 +55,15 @@ export default function AboutDialog() { {t("about.build_revision")} - {appInfo?.buildRevision && {appInfo.buildRevision}} + {appInfo?.buildRevision && {appInfo.buildRevision}} - + { appInfo?.dataDirectory && {t("about.data_directory")} {appInfo?.dataDirectory && ()} - + } @@ -76,8 +77,8 @@ function DirectoryLink({ directory, style }: { directory: string, style?: CSSPro openService.openDirectory(directory); }; - return {directory} - } else { - return {directory}; - } + return {directory}; + } + return {directory}; + } diff --git a/apps/server/src/main.ts b/apps/server/src/main.ts index ceb5fca43..4998f8c01 100644 --- a/apps/server/src/main.ts +++ b/apps/server/src/main.ts @@ -4,9 +4,11 @@ */ import { initializeCore } from "@triliumnext/core"; +import path from "path"; import ClsHookedExecutionContext from "./cls_provider.js"; import NodejsCryptoProvider from "./crypto_provider.js"; +import dataDirs from "./services/data_dir.js"; import BetterSqlite3Provider from "./sql_provider.js"; async function startApplication() { @@ -40,11 +42,15 @@ async function startApplication() { // the maxEntityChangeId has been incremented during failed transaction, need to recalculate entity_changes.recalculateMaxEntityChangeId(); - } + }, }, crypto: new NodejsCryptoProvider(), executionContext: new ClsHookedExecutionContext(), - translations: (await import("./services/i18n.js")).initializeTranslations + translations: (await import("./services/i18n.js")).initializeTranslations, + extraAppInfo: { + nodeVersion: process.version, + dataDirectory: path.resolve(dataDirs.TRILIUM_DATA_DIR) + } }); const startTriliumServer = (await import("./www.js")).default; await startTriliumServer(); diff --git a/apps/server/src/services/app_info.ts b/apps/server/src/services/app_info.ts index 497bbb102..d7402a847 100644 --- a/apps/server/src/services/app_info.ts +++ b/apps/server/src/services/app_info.ts @@ -1,11 +1,3 @@ -import { AppInfo } from "@triliumnext/commons"; -import { app_info as coreAppInfo } from "@triliumnext/core"; -import path from "path"; +import { app_info } from "@triliumnext/core"; -import dataDir from "./data_dir.js"; - -export default { - ...coreAppInfo, - nodeVersion: process.version, - dataDirectory: path.resolve(dataDir.TRILIUM_DATA_DIR), -} satisfies AppInfo; +export default app_info; diff --git a/packages/trilium-core/src/index.ts b/packages/trilium-core/src/index.ts index de18e947c..418d809a5 100644 --- a/packages/trilium-core/src/index.ts +++ b/packages/trilium-core/src/index.ts @@ -5,6 +5,7 @@ import { initSql } from "./services/sql/index"; import { SqlService, SqlServiceParams } from "./services/sql/sql"; import { initMessaging, MessagingProvider } from "./services/messaging/index"; import { initTranslations, TranslationProvider } from "./services/i18n"; +import appInfo from "./services/app_info"; export type * from "./services/sql/types"; export * from "./services/sql/index"; @@ -67,18 +68,23 @@ export type { NoteParams } from "./services/notes"; export * as sanitize from "./services/sanitizer"; export * as routes from "./routes"; -export function initializeCore({ dbConfig, executionContext, crypto, translations, messaging }: { +export function initializeCore({ dbConfig, executionContext, crypto, translations, messaging, extraAppInfo }: { dbConfig: SqlServiceParams, executionContext: ExecutionContext, crypto: CryptoProvider, translations: TranslationProvider, - messaging?: MessagingProvider + messaging?: MessagingProvider, + extraAppInfo?: { + nodeVersion: string; + dataDirectory: string; + }; }) { initLog(); initCrypto(crypto); initSql(new SqlService(dbConfig, getLog())); initContext(executionContext); initTranslations(translations); + Object.assign(appInfo, extraAppInfo); if (messaging) { initMessaging(messaging); } diff --git a/packages/trilium-core/src/services/app_info.ts b/packages/trilium-core/src/services/app_info.ts index 269b15b35..0aa1097c9 100644 --- a/packages/trilium-core/src/services/app_info.ts +++ b/packages/trilium-core/src/services/app_info.ts @@ -6,7 +6,7 @@ const APP_DB_VERSION = 233; const SYNC_VERSION = 36; const CLIPPER_PROTOCOL_VERSION = "1.0"; -export default { +const appInfo: AppInfo = { appVersion: packageJson.version, dbVersion: APP_DB_VERSION, syncVersion: SYNC_VERSION, @@ -14,4 +14,6 @@ export default { buildRevision: build.buildRevision, clipperProtocolVersion: CLIPPER_PROTOCOL_VERSION, utcDateTime: new Date().toISOString() -} satisfies AppInfo; +} + +export default appInfo;