v29.29
🧾 Lajkto Music patchlog
## v29.29 - AzuraCast rádio bridge jen pro jednoznačně neexplicitní skladby (2026-07-25) - Přidán bezpečný automatický bridge z Lajkto Music do AzuraCast stanice 212, playlistu `Lajkto Music Rotation` a složky `Lajkto schvalene`. - Kandidátem je pouze schválený release s aktivní rádiovou licencí; placený release navíc musí mít potvrzené ONCE release ID. - Album i konkrétní skladba musí mít explicitní příznak jednoznačně uložený jako NE. Hodnota ANO, chybějící hodnota nebo neznámý formát je terminální stopka. - Terminální stopky se zapisují do `data/radio_bridge_state.json` a automatika je znovu nezkouší. - Primárně se přenáší původní FLAC přes současný AzuraCast upload endpoint. Při odmítnutí formátu/velikosti lze použít dočasný MP3 320 kb/s přes ffmpeg. - Po uploadu se nastaví interpret, název, album, žánr, ISRC a přiřazení do playlistu. Duplicitám brání fingerprint zdrojového souboru a metadat i kontrola vzdálené cesty. - Přidány `admin_radio_bridge.php`, `radio_bridge_lib.php`, CLI cron `cron/radio_bridge_sync.php`, bezpečná šablona radio secrets a instalační skript. - API klíč není v balíku natvrdo. `data/radio.secrets.local.php`, `data/secrets.local.php`, ONCE token, `data/`, `uploads/`, smlouvy, kredity a stávající PATCH/PUT nástroje se nepřepisují. ## v29.28 - Úplná admin viditelnost podepsaných dokumentů (2026-07-25) - Administrace Dokumenty nově obsahuje „Úplný registr podepsaných dokumentů": čte data/contracts, data/powers a data/radio_licenses přímo z disku, rekurzivně včetně archivních podsložek. - Registr nepoužívá žádný filtr podle existence distribuční smlouvy, plné moci, oprávnění uživatele ani stavu jeho účtu. Zobrazuje se úplně každý uložený dokument každého uživatele. - Dokumenty ve stavu signed_by_client (a granted_by_client u plných mocí) jsou v registru okamžitě vidět a majitel je může přímo z registru podepsat / potvrdit stávajícími akcemi aplikace (counter_sign, power_accept, radio_license_accept). - Registr zobrazuje: uživatele, jméno, interpreta/pseudonym, typ dokumentu, stav, datum a čas podpisu klienta, IP podpisu (je-li uložena), hash a ID dokumentu, náhled klientského podpisu a odkazy na detail. - Nový admin detail admin_document_view.php zobrazí i archivní a nestandardní záznamy (defenzivní fallbacky názvů polí), včetně kompletního JSON záznamu jen pro čtení. - Nový endpoint admin_document_signature.php zpřístupňuje PNG podpisy výhradně admin týmu (require_admin), s ochranou proti path traversal. - Poškozený nebo nečitelný JSON záznam se v registru zobrazí také, označený jako poškozený – nikdy se tiše neskryje. - Vyhledávací pole registru je pouze ruční klientský filtr; ve výchozím stavu je vždy zobrazeno vše. - Změna je čistě zobrazovací: nemaže dokumenty, nemění podpisy, právní texty ani stavy a nic neoznačuje automaticky jako kompletní. - Původní sekce Smlouvy / Plné moci / Licence a všechny funkce v29.27 zůstávají beze změny. data/, uploads/, data/secrets.local.php a ONCE API token se nemění. ## v29.27 - Licence pro Lajkto Music a internetové rádio (2026-07-25) - Přidán třetí samostatný elektronicky podepisovaný dokument vedle distribuční smlouvy a plné moci. - Poskytovatel uděluje nevýhradní bezúplatnou licenci k přehrávání katalogu v internetovém rádiu a na lajkto.eu/music. - Evidují se podpisy obou stran, identifikační údaje, čas, IP, user-agent, verze dokumentu a kontrolní hashe. - Uživatel uvádí stav zastupování OSA a INTERGRAMEM; dokument výslovně zachovává neodvolatelné a kolektivně spravované nároky. - Bez přijaté licence nelze založit ani odeslat nové vydání a katalog se nezobrazuje ve veřejném streamu. Majitel a admin mají nadále neveřejný náhled. - Existující alba, metadata, FLAC soubory, obaly, kredity, playlisty, API token a nástroje ONCE se nemažou ani nemigrují. ## v29.24 – Oprava dědičnosti primary artisty (2026-07-21) - Track `primary_artist_name` správně dědí album `artist_name`, nikoli `title`. - Starý chybný vzor, kdy všechny skladby obsahují jako interpreta název alba, se při zobrazení a ONCE payloadu bezpečně ignoruje. - Přidán samostatný CLI nástroj pro kontrolovaný opravný zápis se zálohou; instalace jej automaticky nespouští. - Nové album předvyplňuje interpreta z `artist_name`, ne z C-Line. - `data/`, `uploads/`, token, audio, covery, kredity, smlouvy, playlisty a PATCH/PUT se instalací nemění. ## v29.23 – Obnovená trvalá cache obalů alb (2026-07-20) - Nezměněné obaly se načítají z trvalé Cache Storage. - Změněný obal má nové `?v=filemtime`, a proto se stáhne znovu. - Aktualizace aplikace už nemaže media cache. - Service Worker maže pouze vlastní staré cache Lajkto Music, ne cache jiných aplikací. - `data/`, `uploads/`, kredity, smlouvy, playlisty, uživatelská data a ONCE token zůstávají beze změny. ## v29.22 – Oprava: zachovaný token a PATCH/PUT (2026-07-20) - `data/secrets.local.php` se nepřepisuje, nemaže ani nemigruje; existující ONCE token zůstává beze změny. - Původní admin funkce PATCH/PUT pro opravu primary artist a artist mappingu jsou plně zachované. - Partner diagnostika, discovery, webhooky a GET stavové kontroly zůstávají přidané vedle původních nástrojů. - Instalace je možná přímo nad dodanou výchozí verzí i nad v29.21 a v obou případech chrání `data/` a `uploads/`. ## v29.21 – ONCE Partner Ready + datová pojistka (2026-07-20) - Oficiální REST tok ONCE: discovery metadata, `/me`, kredity, from-url upload, AI/ACR preflight, release status a podepsaný webhook. - Ochrana proti duplicitám: existující `once_release_id` se znovu nePOSTuje; neurčitý timeout blokuje automatický retry. - Asset cache podle SHA-256 zabraňuje zbytečnému opakovanému uploadu stejného obalu a audia. - Placené album se do interního streamu schválí až po potvrzeném ONCE release ID. - `release.json` se ukládá atomicky se zámkem a validní zálohou `release.json.bak`. - Admin ONCE nástroje zachovávají původní ruční PATCH/PUT opravy a doplňují oficiální REST diagnostiku a webhooky. - Patch nemění ani nemaže uživatelské kredity, smlouvy, alba, playlisty či uploady. # Lajkto Music v29.3 Datum: 2026-07-10 - ADD: Tlačítko + Playlist ve streamu nově otevře seznam existujících playlistů. - ADD: Skladbu lze přidat do vybraného playlistu jedním klikem. - ADD: V playlist okně lze rovnou vytvořit nový playlist. - FIX: Už není nutné ručně psát název playlistu naslepo. - FIX: Patchlog aktualizován na v29.3. # Lajkto Music v29.2 Datum: 2026-07-10 - FIX: Tlačítka Sdílet a Playlist ve spodním přehrávači už nejsou šedivá, ale mají stejný moderní styl. - FIX: Sdílecí odkaz na skladbu nyní nese i cover a album metadata. - ADD: stream_song.php nově generuje Open Graph / Twitter metadata pro náhled odkazu. - ADD: Sdílený odkaz umí zobrazit cover, název skladby, interpreta a album. - FIX: Patchlog aktualizován na v29.2. # Lajkto Music v29.1 Datum: 2026-07-10 - FIX: Tlačítka Sdílet a + Playlist ve streamu přesunuta vedle názvu skladby, ne pod řádek. - FIX: Upraveno zobrazení tlačítek ve streamu, aby držela v jedné linii u tracku. - FIX: Patchlog aktualizován, aby nezůstával na staré v28/v29 informaci. - ADD: Stream skladby mají přímý sdílecí odkaz přes stream_song.php. - ADD: Stream skladby lze ukládat do playlistů. - ADD: Playlisty jsou dostupné na /music/playlists.php. - NOTE: Čas kola se tímto patchem neměnil, protože už funguje. # Lajkto Music v29 Datum: 2026-07-10 - Verze navýšena z v28 na v29. - Doplněn patchlog. - Přidána stránka Patchlog. - Přidána stránka Playlisty. - Připraven základ pro sdílení stream skladeb přes odkazy. - Připraven základ pro vytváření playlistů. - Čas kola se tímto patchem neměnil. ## v29.36.1 · Team Auto Rights Version Fix · 2026-07-29 - nábor: žádost → screening → nabídka/protinabídka → akceptace → podpis člena → protipodpis majitele - automatická aktivace a ukončení práv podle týmové role - oddělení A&R, Release, Marketing, Podpora a Komunita - A&R leady, reklamace, promo checklisty a kvartální Pool 7 % - audit podpisů: verze textu, SHA-256, IP, user-agent a neměnný finální HTML snapshot - bezpečný capability model bez globálního povýšení člena na admina - stávající API tokeny, secrets, releasy, kredity a uživatelská data zůstávají nedotčené ## v29.36.2 · Team Auto Rights + Permission Repair · 2026-07-29 - oprava HTTP 500 způsobeného režimem 0640 a nevhodnou skupinou pro Apache - nouzové doplnění chybějících původních souborů z přesné předpatchové zálohy - týmový nábor, nabídka pozice, dvojí elektronický podpis a automatická práva podle role - zachovány HHS patche, ONCE primary-role-credits, API konfigurace, tokeny, secrets, releasy, kredity a smluvní data ## v29.37.0 · Executive Deputy + Electronic Power of Attorney · 2026-07-29 - neveřejná role Výkonný zástupce provozovatele aktivovaná až elektronickou plnou mocí podepsanou členem a Jiřím Holým - výrazné tlačítko TÝMOVÉ SMLOUVY A PLNÉ MOCI přímo v Teamu a samostatný registr všech týmových dokumentů - zástupce může běžný nábor, nabídky, protipodpisy, releasy, ONCE, A&R, podporu, marketing, rádio, playlisty a reporty - skutečné ukončení smlouvy, licence, týmové dohody nebo plné moci může provést pouze majitel; zástupce jen postoupí návrh - zástupce může vrátit pouze dříve odečtený kredit s auditní vazbou na původní transakci; nový kredit připisuje pouze majitel - žádný API token, secret, klíč, produkční integrace, release ani smluvní data nebyly součástí patchovaných souborů ## v29.37.1 · Team Contacts · 2026-07-29 - nová sekce Kontakty na tým dole na stránce Team, dostupná všem přihlášeným uživatelům Lajkto Music - každý aktivní člen a majitel mají kartu se jménem, systémovou funkcí, oddělením, vlastní fotografií a bio do 250 znaků - fotografii a bio si upravuje každý sám; roli a oddělení nelze samovolně přepsat - fotografie jsou ukládány mimo veřejný web do data/ a servírovány chráněným endpointem pouze přihlášeným uživatelům - povoleny jsou JPG, PNG a WebP do 5 MB; kontroluje se skutečný typ a rozměr obrázku - API tokeny, secrets, distribuční klíče, releasy, kredity, smlouvy a plná moc zůstávají beze změny ## v29.37.2 · Public Team Directory · 2026-07-29 - team.php je veřejně přístupný i bez přihlášení jako katalog aktivního týmu - veřejnost vidí fotografii, jméno, funkci, oddělení, bio a dobrovolně zveřejněný kontakt - otevřené pozice jsou veřejně viditelné; podání žádosti vyžaduje přihlášení přes Lajkto - interní žádosti, smlouvy, plné moci, Pool, ONCE, kredity a pracovní moduly zůstávají pouze přihlášeným a oprávněným - profilové fotografie aktivních členů jsou veřejně dostupné pouze přes bezpečný read-only endpoint - každý člen může nastavit veřejný e-mail, telefon nebo HTTPS odkaz; soukromý e-mail účtu se nezveřejňuje automaticky - do patičky Lajkto Music bylo přidáno viditelné tlačítko Tým, včetně přihlašovací stránky - API tokeny, secrets, distribuční klíče, releasy, kredity, smlouvy a plné moci zůstávají beze změny ## v29.38.1 · Referral Integration Fix · 2026-07-29 - opraven integrační bod pro reálný produkční marker v29.36.1; původní v29.38.0 skončila bezpečně před zápisem - dobrovolná referral smlouva pro libovolného registrovaného uživatele staršího 18 let, včetně členů Teamu - povinný manuál musí být celý otevřen, potvrzen a auditován před odemčením elektronického podpisu smlouvy - smlouvu podepisuje partner a výhradně majitel Jiří Holý ji protipodepisuje a aktivuje - po aktivaci se vytváří unikátní Referral ID ve formátu FFR + bezpečný kód - každý ne-majitelský účet musí při prvním vstupu do Music zadat Referral ID nebo zvolit Nemám Referral ID - majitel může při doložené chybě Referral ID zpětně doplnit nebo opravit; strom a nevyplacené výpočty se přepočítají - Moje odměny obsahují profil, Referral ID, přímé klienty, referral strom, čekající podklady, výpočty a kolektivní budget - honorář: 30 % podíl provozovatele; z něj 7 % kolektivní budget; ze zbytku 2 % referral odměna - referral odměna = přijatý honorář × 30 % × 93 % × 2 % = 0,558 % z přijatého honoráře - 7% budget se při zápisu honoráře rovnoměrně rozdělí mezi aktivní členy Teamu podle snapshotu k datu přijetí - výplata referral odměny má datum splatnosti nejpozději 30 kalendářních dnů od přijetí honoráře - ukončení smlouvy, krácení nevyplacené odměny a označení výplaty může provést pouze majitel - aktivní Referral ID se veřejně zobrazuje na kontaktní kartě člena Teamu pod avatarem - tokeny, secrets, ONCE/DISTPIPE klíče, kredity, releasy a stávající smlouvy nebyly přepsány ## v29.39.0 · Role Playbooks + System Map · 2026-07-30 - nová výrazná karta „Co je mojí náplní práce a jak postupovat“ přímo v Teamu - aktivní člen vidí pouze podrobný manuál své přidělené role; majitel vidí všechny manuály pro kontrolu oddělení - samostatný Referral partner vidí navíc svůj referral pracovní postup a odkazy na povinný manuál a odměny - detailní postupy pro A&R, Release/Distribuci, Marketing, Podporu/Reklamace/Spory, Komunitu/Onboarding, Výkonného zástupce a původního admina - každý manuál obsahuje poslání, odpovědnosti, kroky, spolupráci, pravomoci, eskalace, zákazy, praktický případ a závěrečný checklist - nová stránka sitemap.php jako lidská Mapa Lajkto Music s vyhledáváním a seskupením sekcí - Mapa zobrazuje pouze veřejné stránky a sekce, ke kterým má přihlášený účet oprávnění - tlačítko Mapa je přidané do horní navigace a jako stále viditelné plovoucí tlačítko - API tokeny, secrets, ONCE/DISTPIPE klíče, data releasů, smlouvy, kredity a uživatelská data nebyly změněny ## v29.39.1 · Referral Work + Client Tickets · 2026-07-30 - opraven přístup „Moje náplň“ pro uživatele s aktivní Referral smlouvou, i když není členem Teamu - Referral-only partner vidí výhradně manuál Referral partnera; nezískává žádnou týmovou roli ani interní oprávnění - Mapa i horní navigace zobrazí „Moje náplň“ také aktivnímu Referral partnerovi - každý přihlášený klient vidí výrazné tlačítko „Podpora“ a položku „Nahlásit problém / Moje tickety“ v Mapě - klientský ticket obsahuje kategorii, dotčenou věc, předmět, dopad, Release ID/UPC/ISRC, podrobný popis a bezpečnou přílohu - dopad klienta se mapuje na předběžnou prioritu: drobný → nízká, omezuje → normální, blokuje → vysoká, bezpečnost/finance → urgentní - pracovník podpory ověřuje interní prioritu, stav, přidělení a veřejnou odpověď; klient vidí pouze své tickety - přílohy JPG/PNG/WebP/PDF do 8 MB jsou uložené v chráněném DATA_DIR a vydávají se přes autorizovaný endpoint - existující team_complaints.json zůstává kompatibilní; staré tickety se neztrácejí - API tokeny, secrets, ONCE/DISTPIPE klíče, releasy, smlouvy, kredity a existující uživatelská data nebyly změněny ## v29.39.2 · Streaming Home Floating Buttons Hide · 2026-07-30 - domovská stránka streamingu zůstává výchozí stránkou Lajkto Music - na /music/, index.php a stream.php se nezobrazují plovoucí tlačítka „Mapa“ a „Podpora“, aby nepřekážela kartám skladeb ani spodnímu přehrávači - horní navigace „Mapa“ a „Podpora“ zůstává dostupná - na ostatních stránkách Lajkto Music plovoucí tlačítka zůstávají beze změny - nebyly změněny streaming, přehrávač, tickety, oprávnění, smlouvy, kredity, API tokeny, ONCE/DISTPIPE klíče ani secrets