v29.29

🧾 Lajkto Music patchlog

← Zpět do Music · Playlisty

## 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