All checks were successful
Build and Push Docker Image / build (push) Successful in 1m11s
user reported ad astra got the double checkmark instantly after
transcode — correct, and correct to flag: the post-execute
verifyDesiredState ran ffprobe on the file we had just written, so it
tautologically matched the plan every time. not a second opinion.
replaced the flow with the semantics we actually wanted:
1. refreshItem now returns { refreshed: boolean } — true when jellyfin's
DateLastRefreshed actually advanced within the timeout, false when it
didn't. callers can tell 'jellyfin really re-probed' apart from
'we timed out waiting'.
2. handOffToJellyfin post-job: refresh → (only if refreshed=true) fetch
fresh streams → upsertJellyfinItem(source='webhook'). the rescan SQL
sets verified=1 exactly when the fresh analysis sees is_noop=1, so
✓✓ now means 'jellyfin independently re-probed the file we wrote
and agrees it matches the plan'. if jellyfin sees a drifted layout
the plan flips back to pending so the user notices instead of the
job silently rubber-stamping a bad output.
3. dropped the post-execute ffprobe block. the preflight-skipped branch
no longer self-awards verified=1 either; it now does the same hand-
off so jellyfin's re-probe drives the ✓✓ in that branch too.
refreshItem's other two callers (review /rescan, subtitles /rescan)
ignore the return value — their semantics haven't changed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
43 lines
1.1 KiB
JSON
43 lines
1.1 KiB
JSON
{
|
|
"name": "netfelix-audio-fix",
|
|
"version": "2026.04.14.20",
|
|
"scripts": {
|
|
"dev:server": "NODE_ENV=development bun --hot server/index.tsx",
|
|
"dev:client": "vite",
|
|
"dev": "concurrently \"bun run dev:server\" \"bun run dev:client\"",
|
|
"build": "vite build",
|
|
"start": "bun server/index.tsx",
|
|
"lint": "biome check .",
|
|
"format": "biome format . --write",
|
|
"test": "bun test"
|
|
},
|
|
"dependencies": {
|
|
"@internationalized/date": "^3.12.0",
|
|
"@tanstack/react-form": "^1.28.3",
|
|
"@tanstack/react-router": "^1.163.3",
|
|
"clsx": "^2.1.1",
|
|
"hono": "^4",
|
|
"mqtt": "^5.15.1",
|
|
"react": "19",
|
|
"react-aria-components": "^1.16.0",
|
|
"react-dom": "19",
|
|
"ssh2": "^1",
|
|
"tailwind-merge": "^3.5.0",
|
|
"zod": "^4.3.6",
|
|
"zustand": "^5.0.11"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.4.4",
|
|
"@tailwindcss/vite": "^4.2.1",
|
|
"@tanstack/router-plugin": "^1.163.3",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/ssh2": "^1",
|
|
"@vitejs/plugin-react-swc": "^4.2.3",
|
|
"bun-types": "latest",
|
|
"concurrently": "^9.2.1",
|
|
"tailwindcss": "^4.2.1",
|
|
"vite": "^7.3.1"
|
|
}
|
|
}
|