Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
6c5edc7
feat: add standalone desktop runtime foundations
selmant Aug 22, 2026
43c4ec3
feat: record managed job cancellation
selmant Aug 22, 2026
b98887a
feat: serialize scheduled heavy jobs
selmant Aug 22, 2026
28f0fb0
feat: track scheduled light jobs
selmant Aug 22, 2026
a4c080a
test: cover shared cache budget eviction
selmant Aug 22, 2026
50a1451
feat: derive image cache limits from desktop budget
selmant Aug 22, 2026
0972b30
build: pin cron parser for scheduler catch-up
selmant Aug 22, 2026
fa05c6b
feat: add cron catch-up eligibility policy
selmant Aug 22, 2026
bd50b05
feat: maintain image cache on server startup
selmant Aug 22, 2026
616ee90
feat: queue coalesced desktop job catch-up
selmant Aug 22, 2026
9b9cfe5
feat: resume desktop catch-up after playback
selmant Aug 22, 2026
bd88c06
fix: report managed runtime shutdown state
selmant Aug 22, 2026
d764ba4
refactor: expose managed Foreseerr startup runtime
selmant Aug 22, 2026
f33497e
feat: parameterize managed server bind address
selmant Aug 22, 2026
8f99602
refactor: separate Foreseerr process launcher
selmant Aug 22, 2026
97eec10
fix: reserve managed child stdout for readiness
selmant Aug 22, 2026
db93728
feat: authorize browser cache clearing through desktop ticket
selmant Aug 22, 2026
5996c34
feat: add standalone cache controls
selmant Aug 22, 2026
2b7c35d
fix: include browser cache in desktop clear all
selmant Aug 22, 2026
96d689e
fix: derive managed status from start runtime
selmant Aug 22, 2026
11ac295
fix: run download tracker once per desktop launch
selmant Aug 22, 2026
ed7429c
fix: honor managed runtime in job catch-up
selmant Aug 22, 2026
4c98db2
test: cover desktop catch-up boundaries
selmant Aug 22, 2026
191d8a5
test: cover browser cache authorization tickets
selmant Aug 22, 2026
285d19d
fix: await native browser cache clear result
selmant Aug 22, 2026
7a07588
feat: recognize standalone runtime recovery event
selmant Aug 22, 2026
724b96e
feat: recognize standalone runtime recovery retry
selmant Aug 22, 2026
e4418f1
fix: clean managed runtime after startup failure
selmant Aug 22, 2026
c1d393b
feat: share library artwork memory budget
selmant Aug 22, 2026
5d578b1
fix: clear in-memory artwork with image cache
selmant Aug 22, 2026
9239879
feat: add native standalone log recovery action
selmant Aug 22, 2026
52a56fb
fix: cancel pending desktop catch-up on shutdown
selmant Aug 22, 2026
61705f9
feat: report managed database schema in readiness
selmant Aug 22, 2026
f90c4e6
fix: admit native browser cache ticket redemption
selmant Aug 22, 2026
ad77a96
fix: defer desktop catch-up until CEF is ready
selmant Aug 22, 2026
f66793f
feat: add native remote recovery setup action
selmant Aug 22, 2026
da6ad0a
fix: reset managed server after graceful stop
selmant Aug 22, 2026
78a13fb
fix: start desktop catch-up after initial user setup
selmant Aug 22, 2026
7816e51
fix: log managed server bound port
selmant Aug 22, 2026
1aac18e
fix: keep standalone application URL in memory
selmant Aug 22, 2026
6f49d2b
fix: resume heavy jobs deferred by desktop playback
selmant Aug 22, 2026
0f3e73b
fix: manage manual library scans through scheduler
selmant Aug 22, 2026
c1a20cf
fix: drain playback-deferred heavy jobs serially
selmant Aug 22, 2026
8be9171
fix: keep direct settings mutations from persisting loopback URL
selmant Aug 22, 2026
331833d
fix: normalize standalone application URL persistence guard
selmant Aug 22, 2026
b820e5b
feat: expose desktop mode preferences from settings
selmant Aug 22, 2026
85ef754
fix: persist desktop login and keep play on the LAN Jellyfin session
selmant Aug 22, 2026
7d008cf
feat: prefer LAN Jellyfin with external fallback for desktop play
selmant Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions launcher.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env node
function ignoreBrokenStdio(stream) {
if (!stream || typeof stream.on !== 'function') {
return;
}
stream.on('error', (error) => {
if (
error &&
(error.code === 'EPIPE' || error.code === 'ERR_STREAM_DESTROYED')
) {
return;
}
});
}
ignoreBrokenStdio(process.stdout);
ignoreBrokenStdio(process.stderr);
import('./dist/launcher.js');
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
"scripts": {
"preinstall": "npx only-allow pnpm",
"postinstall": "next telemetry disable",
"dev": "nodemon -e ts,json,yml --watch server --watch seerr-api.yml --exec 'ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/index.ts'",
"dev": "nodemon -e ts,json,yml --watch server --watch seerr-api.yml --exec 'ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/launcher.ts'",
"build:server": "tsc --project server/tsconfig.build.json && copyfiles -u 2 server/templates/**/*.{html,pug} dist/templates && copyfiles -u 2 \"server/i18n/locale/*.json\" dist/i18n && tsc-alias -p server/tsconfig.build.json",
"build:next": "next build",
"build": "pnpm build:next && pnpm build:server",
"lint": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\" --cache",
"lintfix": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\" --fix",
"test": "node server/test/index.mts",
"start": "NODE_ENV=production node dist/index.js",
"start": "NODE_ENV=production node dist/launcher.js",
"i18n:extract": "ts-node --project server/tsconfig.json server/i18n/extractMessages.ts",
"migration:generate": "ts-node -r tsconfig-paths/register --project server/tsconfig.json ./node_modules/typeorm/cli.js migration:generate -d server/datasource.ts",
"migration:create": "ts-node -r tsconfig-paths/register --project server/tsconfig.json ./node_modules/typeorm/cli.js migration:create -d server/datasource.ts",
Expand Down Expand Up @@ -57,6 +57,7 @@
"cookie-parser": "1.4.7",
"copy-to-clipboard": "4.0.0",
"country-flag-icons": "1.6.16",
"cron-parser": "4.9.0",
"cronstrue": "3.14.0",
"dns-caching": "^0.2.9",
"email-templates": "13.0.1",
Expand Down
Loading
Loading