This commit is contained in:
onysd 2026-08-26 02:53:47 +03:00
parent 1c9a192a96
commit f3c4e3c60b
12 changed files with 95 additions and 16 deletions

View file

@ -42,7 +42,7 @@ export function App() {
return (
<PermissionsProvider permissions={session.permissions ?? []} hideThirdPartyVerification={session.hide_third_party_verification ?? true}>
<Shell actor={session.actor} route={route} navigate={navigate} onLogout={() => setSession(null)}>
<Shell actor={session.actor} build={session.build} route={route} navigate={navigate} onLogout={() => setSession(null)}>
<Routes route={route} navigate={navigate} />
</Shell>
</PermissionsProvider>

View file

@ -41,12 +41,14 @@ export function BootScreen() {
export function Shell({
actor,
build,
route,
navigate,
onLogout,
children
}: {
actor: string;
build?: { commit: string; short_commit: string; dirty: boolean; build_time: string };
route: RouteState;
navigate: Navigate;
onLogout: () => void;
@ -143,6 +145,11 @@ export function Shell({
</nav>
<div className="sidebar-status">
<span className="sidebar-label">{"Version: O7"}</span>
{build?.short_commit && (
<span className="sidebar-label sidebar-build" title={build.commit + (build.dirty ? " (uncommitted changes)" : "")}>
{`Build: ${build.short_commit}${build.dirty ? "+" : ""}`}
</span>
)}
</div>
</aside>
<div className="workspace">

View file

@ -263,6 +263,13 @@ a {
letter-spacing: 0.04em;
}
.sidebar-build {
font-weight: 500;
text-transform: none;
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
opacity: 0.7;
}
.nav-list {
display: grid;
gap: 4px;

View file

@ -584,6 +584,14 @@ export type AdminSession = {
// comment. Used by Server Settings' Restart/Update flow to detect a
// genuinely new admin process after asking it to bounce.
boot_id?: string;
// This admin binary's own build -- shown under "Version" in the sidebar
// footer so an operator can tell which build is actually running.
build?: {
commit: string;
short_commit: string;
dirty: boolean;
build_time: string;
};
};
export type AdminLoginResult = AdminSession & {