Route stats background mode through isolated daemon and defer in-app startup to live daemon (#58)

This commit is contained in:
2026-04-26 19:26:01 -07:00
committed by GitHub
parent d8934647a9
commit 53aa58d044
11 changed files with 333 additions and 20 deletions
+46
View File
@@ -5,6 +5,7 @@ import {
normalizeLaunchMpvExtraArgs,
normalizeStartupArgv,
normalizeLaunchMpvTargets,
resolveStatsDaemonCommandAction,
sanitizeHelpEnv,
sanitizeLaunchMpvEnv,
sanitizeStartupEnv,
@@ -164,6 +165,51 @@ test('stats-daemon entry helper detects internal daemon commands', () => {
assert.equal(shouldHandleStatsDaemonCommandAtEntry(['SubMiner.AppImage', '--start'], {}), false);
});
test('stats-daemon entry helper detects public background stats commands', () => {
assert.equal(
shouldHandleStatsDaemonCommandAtEntry(
['SubMiner.AppImage', '--stats', '--stats-background'],
{},
),
true,
);
assert.equal(
shouldHandleStatsDaemonCommandAtEntry(['SubMiner.AppImage', '--stats', '--stats-stop'], {}),
true,
);
assert.equal(
shouldHandleStatsDaemonCommandAtEntry(['SubMiner.AppImage', '--stats-background'], {}),
true,
);
assert.equal(
shouldHandleStatsDaemonCommandAtEntry(['SubMiner.AppImage', '--stats-background'], {
ELECTRON_RUN_AS_NODE: '1',
}),
false,
);
assert.equal(shouldHandleStatsDaemonCommandAtEntry(['SubMiner.AppImage', '--stats'], {}), false);
});
test('stats-daemon entry helper resolves daemon action for public and internal commands', () => {
assert.equal(
resolveStatsDaemonCommandAction(['SubMiner.AppImage', '--stats-daemon-start']),
'start',
);
assert.equal(
resolveStatsDaemonCommandAction(['SubMiner.AppImage', '--stats-daemon-stop']),
'stop',
);
assert.equal(
resolveStatsDaemonCommandAction(['SubMiner.AppImage', '--stats', '--stats-background']),
'start',
);
assert.equal(
resolveStatsDaemonCommandAction(['SubMiner.AppImage', '--stats', '--stats-stop']),
'stop',
);
assert.equal(resolveStatsDaemonCommandAction(['SubMiner.AppImage', '--stats']), null);
});
test('sanitizeStartupEnv suppresses warnings and lsfg layer', () => {
const env = sanitizeStartupEnv({
VK_INSTANCE_LAYERS: 'foo:lsfg-vk:bar',