From d097aad0325531ba0515dc30cd65d500af6b2116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kacprzak?= Date: Fri, 23 Oct 2026 20:03:11 +0200 Subject: [PATCH] Record successful six-hour native channel synchronization and deployment --- README.md | 6 ++++ channel-sync-verification-20261023.json | 45 +++++++++++++++++++++++++ deployment-7.0.10-20261023.json | 20 +++++++++++ deployment-7.0.11-20261023.json | 18 ++++++++++ deployment-7.0.9-20261023.json | 23 +++++++++++++ 5 files changed, 112 insertions(+) create mode 100644 channel-sync-verification-20261023.json create mode 100644 deployment-7.0.10-20261023.json create mode 100644 deployment-7.0.11-20261023.json create mode 100644 deployment-7.0.9-20261023.json diff --git a/README.md b/README.md index edc61c0..5204e63 100644 --- a/README.md +++ b/README.md @@ -88,3 +88,9 @@ Przed natywnym odświeżeniem zapisuje własny checkpoint w `data/decoder-integr ### 7.0.11 — czas pełnego importu EPG 7.0.10 wdrożono o17:27UTC. Zadanie startowe poprawnie uruchomiło natywny RefreshGuide i wprowadziło aktualne referencje Pulsu/Pulsu2/WP/TVN24. Pełny import7dni EPG przekroczył jednak narzucone5min i został anulowany o17:32:55UTC. Własna synchronizacja prawidłowo zgłosiła błąd i zachowała checkpoint216starych wpisów; nie oznaczono importu jako udanego. W7.0.11 usunięto własny limit czasu natywnego zadania — używane są zwykłe zasady jego wykonania i anulowania. Limit30s dotyczy tylko wstępnego pobrania bukietu. Dodano regresję na brak krótkiego MaxRuntimeTicks. Checkpoint i natywne preferencje pozostają zgodne pomiędzy7.0.10 i7.0.11, więc start nowej wersji ponawia migrację z oryginalnego stanu sprzed odświeżenia. + +### Potwierdzone wdrożenie i pierwszy pełny przebieg7.0.11 + +Wdrożenie17:35:43–17:36:05UTC: świeży loader7.0.11, DLL SHA256 `10107a4e9c81c972f9d98b664ec9f14208f5e1dd95df769760f3540955089ade`, ustawienia serwera i wrappery bez zmian, nagranie dekodera zachowane. NativeRefreshGuide zakończyło7min8s importu o17:43:14UTC, po czym zadanie wtyczki zakończyło się statusemCompleted. Checkpoint odzyskano i wyczyszczono po powodzeniu, zapisano fingerprint oraz czas ostatniej synchronizacji. Przeniesiono4zmienione identyfikatory. Natywna biblioteka ma214unikalnych kanałów (216pozycji bukietu), nowe referencje Puls/Puls2/WP/TVN24 są obecne. Zadanie nie ma nadpisanych wyzwalaczy, więc korzysta ze sprawdzonego domyślnego harmonogramu6h/start z wdrożonej DLL. + +121 kontroli backendu PASS; build bez ostrzeżeń i błędów. Produkcyjne sprawdzenie: `channel-sync-verification-20261023.json`; odczyt `BaseItems` oraz samychID `Users` służy wyłącznie kontroli metadanych, bez pól uwierzytelniania. 26historycznych plików preferencji nie ma już właścicieli w19bieżących kontach; zachowano je, nie przepisując danych usuniętych użytkowników. Zawierają32odwołania do4starych kanałów; nie są to preferencje bieżących kont. Nie jest to pełny test wszystkich klientów ani naprawa przerywanego braku AV Polsatu Sport1. Użytkownik potwierdził odtwarzanie Polsatu SportExtra1 po ponownym uruchomieniu tego samego kanału; pierwsza próba nie rozpoznała AV po22s, kolejna otworzyła się po5,35s bez zmiany referencji i konfiguracji dekodera. diff --git a/channel-sync-verification-20261023.json b/channel-sync-verification-20261023.json new file mode 100644 index 0000000..a702e1b --- /dev/null +++ b/channel-sync-verification-20261023.json @@ -0,0 +1,45 @@ +{ + "verified_utc": "2026-10-23T17:47:24.731251+00:00", + "scope": "Plugin health, scheduled-task results, native channel metadata and preference references; no authenticated player startup", + "server_version": "12.2.0", + "plugin_version": "7.0.11.0", + "plugin_status": "Active", + "plugin_sha256": "10107a4e9c81c972f9d98b664ec9f14208f5e1dd95df769760f3540955089ade", + "tasks": { + "RefreshGuide": { + "Key": "RefreshGuide", + "Status": "Completed", + "StartTimeUtc": "2026-10-23T17:36:05.8679643Z", + "EndTimeUtc": "2026-10-23T17:43:14.7481938Z", + "has_custom_triggers": false + }, + "Enigma2ChannelSync": { + "Key": "Enigma2ChannelSync", + "Status": "Completed", + "StartTimeUtc": "2026-10-23T17:36:05.2797565Z", + "EndTimeUtc": "2026-10-23T17:43:14.8422276Z", + "has_custom_triggers": false + } + }, + "last_synchronized_utc": "2026-10-23T17:43:14.8379332Z", + "pending_recovery": false, + "fingerprint_saved": true, + "default_interval_hours": 6, + "interval_verified": true, + "native_channels": 214, + "migrated_references_present": { + "Puls": true, + "Puls2": true, + "WP": true, + "TVN24": true + }, + "preference_files": 26, + "preference_channel_references": 1772, + "preference_references_missing_native_channel": 32, + "current_users": 19, + "current_user_preference_files": 0, + "orphaned_preference_files_retained": 26, + "current_user_preference_references_missing_native_channel": 0, + "active_receiver_recordings": 1, + "synchronization_verified": true +} diff --git a/deployment-7.0.10-20261023.json b/deployment-7.0.10-20261023.json new file mode 100644 index 0000000..873e837 --- /dev/null +++ b/deployment-7.0.10-20261023.json @@ -0,0 +1,20 @@ +{ + "plugin": "7.0.10.0", + "backup": "/var/lib/jellyfin/decoder-plugin-backups/plugin-only-20261023T172732990384Z", + "ready": true, + "sha256": "d9f6e3de77a2c859e3f3a80da1165a3ff9834fba25f175255ca412f0fdaf4fd2", + "fresh_plugin_load_confirmed": true, + "server_configuration_and_wrappers_unchanged": true, + "started_utc": "2026-10-23T17:27:32.680450+00:00", + "finished_utc": "2026-10-23T17:27:54.906504+00:00", + "source_commit": "2e7662f", + "receiver_recordings_before": 1, + "receiver_recordings_after": 1, + "receiver_active_recordings_preserved": true, + "receiver_restarted": false, + "user_preference_files_before": 26, + "user_preference_files_after": 26, + "user_preference_files_changed": 0, + "client_playback_verified": false, + "synchronization_verified": false +} diff --git a/deployment-7.0.11-20261023.json b/deployment-7.0.11-20261023.json new file mode 100644 index 0000000..7eba12a --- /dev/null +++ b/deployment-7.0.11-20261023.json @@ -0,0 +1,18 @@ +{ + "plugin": "7.0.11.0", + "backup": "/var/lib/jellyfin/decoder-plugin-backups/plugin-only-20261023T173543864167Z", + "ready": true, + "sha256": "10107a4e9c81c972f9d98b664ec9f14208f5e1dd95df769760f3540955089ade", + "fresh_plugin_load_confirmed": true, + "server_configuration_and_wrappers_unchanged": true, + "started_utc": "2026-10-23T17:35:43.842449+00:00", + "finished_utc": "2026-10-23T17:36:05.515593+00:00", + "source_commit": "eb95d10", + "receiver_recordings_before": 1, + "receiver_recordings_after": 1, + "receiver_active_recordings_preserved": true, + "receiver_restarted": false, + "recovery_checkpoint_present_before_deployment": true, + "client_playback_verified": false, + "synchronization_verified": false +} diff --git a/deployment-7.0.9-20261023.json b/deployment-7.0.9-20261023.json new file mode 100644 index 0000000..60546fc --- /dev/null +++ b/deployment-7.0.9-20261023.json @@ -0,0 +1,23 @@ +{ + "plugin": "7.0.9.0", + "backup": "/var/lib/jellyfin/decoder-plugin-backups/plugin-only-20261023T170741733074Z", + "ready": true, + "sha256": "8db3b3700ef417c591f2361e013e20c601052bd35bc124f449c899183950c986", + "fresh_plugin_load_confirmed": true, + "server_configuration_and_wrappers_unchanged": true, + "started_utc": "2026-10-23T17:07:41.709901+00:00", + "finished_utc": "2026-10-23T17:07:49.246332+00:00", + "plugin_configuration_unchanged": true, + "user_preferences_unchanged": true, + "user_preference_files": 26, + "web_module_unchanged": true, + "receiver_recordings_before": 2, + "receiver_recordings_after": 2, + "receiver_active_recordings_preserved": true, + "receiver_restarted": false, + "source_commits": [ + "4ff46f5", + "50b39fa" + ], + "client_playback_verified": false +}