diff --git a/apps/roam/scripts/compile.ts b/apps/roam/scripts/compile.ts index f4ff4e83b..cb8cbf102 100644 --- a/apps/roam/scripts/compile.ts +++ b/apps/roam/scripts/compile.ts @@ -2,6 +2,22 @@ import esbuild from "esbuild"; import fs from "fs"; import path from "path"; import { z } from "zod"; + +const getVersion = (): string => { + try { + const packageJson = JSON.parse( + fs.readFileSync(path.join(process.cwd(), "package.json"), "utf8"), + ) as { version?: string }; + return packageJson.version || "-"; + } catch (error) { + console.warn("Failed to read version from package.json:", error); + return "-"; + } +}; + +const getBuildDate = (): string => { + return new Date().toISOString().split("T")[0]; // YYYY-MM-DD format +}; let envContents = null; try { @@ -146,6 +162,8 @@ export const compile = ({ "process.env.SUPABASE_URL": `"${dbEnv.SUPABASE_URL}"`, "process.env.SUPABASE_ANON_KEY": `"${dbEnv.SUPABASE_ANON_KEY}"`, "process.env.NEXT_API_ROOT": `"${dbEnv.NEXT_API_ROOT || ""}"`, + "window.__DISCOURSE_GRAPH_VERSION__": `"${getVersion()}"`, + "window.__DISCOURSE_GRAPH_BUILD_DATE__": `"${getBuildDate()}"`, }, sourcemap: process.env.NODE_ENV === "production" ? undefined : "inline", minify: process.env.NODE_ENV === "production", diff --git a/apps/roam/src/components/settings/Settings.tsx b/apps/roam/src/components/settings/Settings.tsx index 6046fa158..058c5f103 100644 --- a/apps/roam/src/components/settings/Settings.tsx +++ b/apps/roam/src/components/settings/Settings.tsx @@ -25,6 +25,7 @@ import sendErrorEmail from "~/utils/sendErrorEmail"; import HomePersonalSettings from "./HomePersonalSettings"; import refreshConfigTree from "~/utils/refreshConfigTree"; import { FeedbackWidget } from "~/components/BirdEatsBugs"; +import { getVersionWithDate } from "~/utils/getVersion"; type SectionHeaderProps = { children: React.ReactNode; @@ -230,17 +231,23 @@ export const SettingsDialog = ({ /> - +
+ +
+
+ + v{getVersionWithDate().version}-{getVersionWithDate().buildDate} + +
{/*