Sublime-style Build-n versioning + About box

Build n = commit count, baked at build time into a gitignored
version.gen.ts (postinstall + all build scripts regenerate it). About
lives in the macOS app menu and as a footer row in the options popover
(the cross-platform path), showing build, commit, date and engines.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jokin
2026-07-13 23:55:39 +02:00
co-authored by Claude Fable 5
parent 14b92b33a4
commit d80d5c23dc
9 changed files with 112 additions and 6 deletions
+7 -1
View File
@@ -1,12 +1,18 @@
// The single place to rebrand the app. Everything (window title, bundle name,
// app-data directory, UI header, icon) reads from here.
import { BUILD } from "./version.gen";
export const BRANDING = {
appName: "miniSCP",
identifier: "es.teknes.miniscp",
// Previous app names: their app-data folders are migrated on boot
// (see migrateLegacyDataDir in src/bun/store/paths.ts).
legacyNames: ["BunSCP"],
version: "0.1.0",
// Sublime-style versioning: n = commit count (scripts/gen-version.ts).
// `version` stays semver-shaped for electrobun's config/updater.
version: `0.1.${BUILD.number}`,
buildLabel: `Build ${BUILD.number}`,
build: BUILD,
// macOS build converts this .iconset folder into AppIcon.icns.
// Regenerate from assets/icon.png with scripts/gen-iconset.sh.
icon: "assets/icon.iconset",
+2
View File
@@ -137,6 +137,8 @@ export type AppRPC = {
moveToTrash: { params: { path: string }; response: Result };
/** Native column-picker menu (right-click on the list headers). */
showColumnsMenu: { params: { visible: ColumnKey[] }; response: Result };
/** Native About box (name, Build n, commit, engine versions). */
showAbout: { params: Record<string, never>; response: Result };
// editor windows
/** Main window only: open (or focus) a native editor window. */
openEditor: { params: EditorOpenContext; response: Result };