feat: multi-material overlays, presentation guides, and release prebuilds

Align control/presentation with presentation screen rect and darkness z-order; sync window titles and session window cleanup. Pack Win/Mac/Linux with npmRebuild disabled and release-native-prep for classic-level and sharp.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-08-03 11:28:18 +08:00
parent 61446dacfc
commit 2979d06f1c
41 changed files with 1060 additions and 252 deletions
+10
View File
@@ -11,6 +11,7 @@ void test('package.json: конфиг electron-builder (mac/win/linux)', () => {
build: {
appId: string;
asar: boolean;
npmRebuild: boolean;
asarUnpack: string[];
extraResources: { from: string; to: string }[];
mac: { target: unknown; artifactName?: string };
@@ -25,6 +26,11 @@ void test('package.json: конфиг electron-builder (mac/win/linux)', () => {
assert.ok(pkg.build);
assert.equal(pkg.build.appId, 'com.ttrpgplayer.app');
assert.equal(pkg.build.asar, true, 'релизный артефакт: app.asar без «голого» дерева dist в .app/.exe');
assert.equal(
pkg.build.npmRebuild,
false,
'N-API prebuilds (classic-level, sharp @img) — без node-gyp / Visual Studio на pack',
);
assert.ok(Array.isArray(pkg.build.asarUnpack));
assert.ok(pkg.build.asarUnpack.some((p) => p.includes('preload')));
assert.ok(Array.isArray(pkg.build.extraResources));
@@ -56,6 +62,10 @@ void test('package.json: конфиг electron-builder (mac/win/linux)', () => {
pkg.build.asarUnpack.some((p) => p.includes('@img')),
'sharp native binaries live under node_modules/@img',
);
assert.ok(
pkg.build.asarUnpack.some((p) => p.includes('classic-level')),
'Foundry DB: classic-level stays unpacked with its prebuilds',
);
});
void test('package.json: pack:mac runs release-mac-prep before electron-builder', () => {