feat(server): auto-update UI via remote manifest

This commit is contained in:
Shantur Rathore
2026-01-22 15:12:32 +00:00
parent db3c13c463
commit a014ce555a
9 changed files with 1441 additions and 56 deletions

View File

@@ -5,6 +5,7 @@ import AdvancedSettingsModal from "./advanced-settings-modal"
import DirectoryBrowserDialog from "./directory-browser-dialog"
import Kbd from "./kbd"
import { openNativeFolderDialog, supportsNativeDialogs } from "../lib/native/native-functions"
import VersionPill from "./version-pill"
const codeNomadLogo = new URL("../images/CodeNomad-Icon.png", import.meta.url).href
@@ -248,6 +249,9 @@ const FolderSelectionView: Component<FolderSelectionViewProps> = (props) => {
</div>
<h1 class="mb-2 text-3xl font-semibold text-primary">CodeNomad</h1>
<p class="text-base text-secondary">Select a folder to start coding with AI</p>
<div class="mt-2 flex justify-center">
<VersionPill />
</div>
</div>

View File

@@ -0,0 +1,38 @@
import { Show, createEffect, createSignal } from "solid-js"
import type { ServerMeta } from "../../../server/src/api-types"
import { getServerMeta } from "../lib/server-meta"
export default function VersionPill() {
const [meta, setMeta] = createSignal<ServerMeta | null>(null)
createEffect(() => {
void getServerMeta()
.then((result) => setMeta(result))
.catch(() => setMeta(null))
})
const serverVersion = () => meta()?.serverVersion
const uiVersion = () => meta()?.ui?.version
const uiSource = () => meta()?.ui?.source
return (
<Show when={serverVersion() || uiVersion()}>
<div class="text-[11px] text-muted whitespace-nowrap">
<Show when={serverVersion()}>
{(v) => <span>App {v()}</span>}
</Show>
<Show when={uiVersion()}>
{(v) => (
<>
<span class="mx-2">·</span>
<span>
UI {v()}
<Show when={uiSource()}>{(s) => <span class="opacity-70"> ({s()})</span>}</Show>
</span>
</>
)}
</Show>
</div>
</Show>
)
}