Files
netfelix-audio-fix/package.json
Felix Förtsch d05e037bbc
All checks were successful
Build and Push Docker Image / build (push) Successful in 1m56s
webhook: PascalCase payload + ItemAdded only, switch ✓✓ signal to ffprobe
monitoring the mqtt broker revealed two bugs and one design dead-end:

1. the jellyfin-plugin-webhook publishes pascalcase fields
   (NotificationType, ItemId, ItemType) and we were reading camelcase
   (event, itemId, itemType). every real payload was rejected by the
   first guard — the mqtt path never ingested anything.

2. the plugin has no ItemUpdated / Library.* notifications. file
   rewrites on existing items produce zero broker traffic (observed:
   transcode + manual refresh metadata + 'recently added' appearance
   → no mqtt messages). ✓✓ via webhook is structurally impossible.

fix the webhook path so brand-new library items actually get ingested,
and narrow ACCEPTED_EVENTS to just 'ItemAdded' (the only library-side
event the plugin emits).

move the ✓✓ signal from webhook-corroboration to post-execute ffprobe
via the existing verifyDesiredState helper: after ffmpeg returns 0 we
probe the output file ourselves and flip verified=1 on match. the
preflight-skipped path sets verified=1 too. renamed the db column
webhook_verified → verified (via idempotent RENAME COLUMN migration)
since the signal is no longer webhook-sourced, and updated the Done
column tooltip to reflect that ffprobe is doing the verification.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:27:22 +02:00

43 lines
1.1 KiB
JSON

{
"name": "netfelix-audio-fix",
"version": "2026.04.14.16",
"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"
}
}