{"total":481,"page":1,"limit":20,"hasMore":true,"grouped":{"2026-08-06":[{"sha":"a83b65b565d972a5a9e0725843af450fb2650f38","node_id":"C_kwDOTlxYddoAKGE4M2I2NWI1NjVkOTcyYTVhOWUwNzI1ODQzYWY0NTBmYjI2NTBmMzg","commit":{"author":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:31:19Z"},"committer":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:31:19Z"},"message":"feat(izole-ag): panel host'una sinirli cleartext ve sunucudan turetilen kiosk saati\n\nOynatici, internete cikisi olmayan kapali aglarda calisacak sekilde\nuyarlandi (agda yalniz sunucu ve televizyonlar var).\n\nAg guvenligi:\n- Release ag guvenlik yapilandirmasi artik panel adresinden URETILIYOR\n  (GenerateNetworkSecurityConfig). Panel HTTPS ise cleartext hicbir adrese\n  acilmaz; HTTP ise YALNIZ o host icin acilir, base-config kapali kalir\n- Manifest, yapilandirmayi tpicNetworkSecurityConfig placeholder'i ile\n  varyanta gore secer; uretilen kaynak ayri adla durur ki src/main'deki\n  kati varsayilanla catismasin\n- scripts/kurulum.sh --lan ve kurulum.bat lan: izole ag modu, acik uyariyla\n- Gerekce: izole agda public CA'dan sertifika alinamaz; internal CA ise TLS\n  gecerliligini cihaz saatine baglar ve NTP'siz agda saati bozulan TV panele\n  hic baglanamaz — tum filo tek elektrik kesintisiyle dusebilir\n\nKiosk saati (sozlesme 1.1.0):\n- ServerTimeSource: her manifest senkronunda sunucu zamanini capa olarak\n  saklar, iki senkron arasini monotonik sayacla sayar\n- Capa 1 saatten eskiyse saat ve tarih hic cizilmez; yanlis saat gostermek\n  hic gostermemekten kotudur\n- KioskChrome saati LocalServerClock uzerinden bu kaynaktan alir; cihazin\n  duvar saati artik ekrana cizilmiyor\n- Bozuk serverTime manifesti reddettirmez, yalniz saati dusurur\n- Yetki dustugunde capa da sifirlanir\n- Diagnostics ekraninda sunucu saati ve cihaz sapmasi gosteriliyor (saha teshisi)\n\nSozlesme dizini ve ortak dokumanlar tpic-web ile bayt-bayt senkron.","tree":{"sha":"8f4f8156f3fbc734f68153c1187e669960ac1a10","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/trees/8f4f8156f3fbc734f68153c1187e669960ac1a10"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/commits/a83b65b565d972a5a9e0725843af450fb2650f38","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQC84aJra\nbQx15HMBYsi+JbkAROaDg4dN3cnfnjccj0M4oWZizZpxzE6u7vWbiVYAoUaU8QqJXjabl5QPjEbn\nXgQ=\n-----END SSH SIGNATURE-----","payload":"tree 8f4f8156f3fbc734f68153c1187e669960ac1a10\nparent 4d04bcf1db830429560572dc801915d4293c88f0\nauthor Claude <noreply@anthropic.com> 1785983479 +0000\ncommitter Claude <noreply@anthropic.com> 1785983479 +0000\n\nfeat(izole-ag): panel host'una sinirli cleartext ve sunucudan turetilen kiosk saati\n\nOynatici, internete cikisi olmayan kapali aglarda calisacak sekilde\nuyarlandi (agda yalniz sunucu ve televizyonlar var).\n\nAg guvenligi:\n- Release ag guvenlik yapilandirmasi artik panel adresinden URETILIYOR\n  (GenerateNetworkSecurityConfig). Panel HTTPS ise cleartext hicbir adrese\n  acilmaz; HTTP ise YALNIZ o host icin acilir, base-config kapali kalir\n- Manifest, yapilandirmayi tpicNetworkSecurityConfig placeholder'i ile\n  varyanta gore secer; uretilen kaynak ayri adla durur ki src/main'deki\n  kati varsayilanla catismasin\n- scripts/kurulum.sh --lan ve kurulum.bat lan: izole ag modu, acik uyariyla\n- Gerekce: izole agda public CA'dan sertifika alinamaz; internal CA ise TLS\n  gecerliligini cihaz saatine baglar ve NTP'siz agda saati bozulan TV panele\n  hic baglanamaz — tum filo tek elektrik kesintisiyle dusebilir\n\nKiosk saati (sozlesme 1.1.0):\n- ServerTimeSource: her manifest senkronunda sunucu zamanini capa olarak\n  saklar, iki senkron arasini monotonik sayacla sayar\n- Capa 1 saatten eskiyse saat ve tarih hic cizilmez; yanlis saat gostermek\n  hic gostermemekten kotudur\n- KioskChrome saati LocalServerClock uzerinden bu kaynaktan alir; cihazin\n  duvar saati artik ekrana cizilmiyor\n- Bozuk serverTime manifesti reddettirmez, yalniz saati dusurur\n- Yetki dustugunde capa da sifirlanir\n- Diagnostics ekraninda sunucu saati ve cihaz sapmasi gosteriliyor (saha teshisi)\n\nSozlesme dizini ve ortak dokumanlar tpic-web ile bayt-bayt senkron.\n","verified_at":"2026-08-06T02:31:51Z"}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/a83b65b565d972a5a9e0725843af450fb2650f38","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/a83b65b565d972a5a9e0725843af450fb2650f38","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/a83b65b565d972a5a9e0725843af450fb2650f38/comments","author":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"4d04bcf1db830429560572dc801915d4293c88f0","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/4d04bcf1db830429560572dc801915d4293c88f0","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/4d04bcf1db830429560572dc801915d4293c88f0"}],"repo":{"name":"tpic-app","full_name":"fyildirim-debug/tpic-app","html_url":"https://github.com/fyildirim-debug/tpic-app","language":"Kotlin","description":"TPIC Android TV dijital tabela oynaticisi (native Kotlin + Compose for TV)","private":true}},{"sha":"24821cea63cae420267991b90a69f92773083b95","node_id":"C_kwDORUglhdoAKDI0ODIxY2VhNjNjYWU0MjAyNjc5OTFiOTBhNjlmOTI3NzMwODNiOTU","commit":{"author":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:30:52Z"},"committer":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:30:52Z"},"message":"feat(izole-kurulum): internetsiz agda calisan sunucu dagitimi ve sunucu saati\n\nPanel, internete cikisi olmayan kapali aglara (yalniz sunucu + televizyonlar)\ndagitilabilir hale getirildi.\n\nDagitim paketi:\n- next.config.js output: \"standalone\" — imaj kucuk ve kendi kendine yeter\n- Dockerfile: cok asamali uretim imaji; prisma CLI ayri ve eksiksiz bir agacla\n  /tools altina kurulur, seed betigi derleme aninda tek dosyaya paketlenir\n  (calisma imajinda tsx ve seed bagimliliklari gerekmesin diye)\n- docker-compose.prod.yml: postgres host portuna acilmaz, panel yalniz\n  secilen arayuze baglanir\n- scripts/paket-olustur.sh: internetli makinede cevrimdisi paket uretir\n- scripts/izole-kurulum.sh: izole sunucuda docker load + migrate + seed + dogrulama\n- .env.izole.example, .dockerignore, dist/ gitignore\n\nSozlesme 1.1.0 — kiosk saati:\n- Manifeste serverTime alani eklendi (ISO-8601, UTC, milisaniyeli)\n- Sozlesmeye clock bolumu: capa kurali, monotonik ilerleme, bayatlama esigi\n- Izole agda NTP olmadigi ve RTC pili olmayan TV kutulari her elektrik\n  kesintisinde saatlerini yitirdigi icin cihazin duvar saati guvenilmez;\n  kiosk saatinin tek referansi sunucudur\n\nDokumantasyon:\n- docs/IZOLE_KURULUM.md (iki repoda ayni): topoloji, paketleme, kurulum,\n  HTTPS yerine host'a sinirli cleartext tercihinin gerekcesi, saat, yedekleme,\n  kurulum kontrol listesi, sorun giderme\n- ENTEGRASYON.md uyum matrisi 1.1.0 satiri ve saat bolumu\n- SECURITY.md 6.1: izole agda tasima katmani ve kabul edilen risk\n- MOBILE_API.md ve oynatici sartnamesinde serverTime","tree":{"sha":"5c0ad77f2174c47db7f63c25d7d555690fb8e166","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/trees/5c0ad77f2174c47db7f63c25d7d555690fb8e166"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/commits/24821cea63cae420267991b90a69f92773083b95","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQOJPrbKs\nlOmcoefWO9iAvTMpZqaGD3lMt2Y+/P/yjBjGfZ3wodJcXrzuMfTabuJgTXjERrlaC4JvEdHH1t4e\n7Qg=\n-----END SSH SIGNATURE-----","payload":"tree 5c0ad77f2174c47db7f63c25d7d555690fb8e166\nparent 57e0b81b11e9826b65a121575bffed0a26e559a0\nauthor Claude <noreply@anthropic.com> 1785983452 +0000\ncommitter Claude <noreply@anthropic.com> 1785983452 +0000\n\nfeat(izole-kurulum): internetsiz agda calisan sunucu dagitimi ve sunucu saati\n\nPanel, internete cikisi olmayan kapali aglara (yalniz sunucu + televizyonlar)\ndagitilabilir hale getirildi.\n\nDagitim paketi:\n- next.config.js output: \"standalone\" — imaj kucuk ve kendi kendine yeter\n- Dockerfile: cok asamali uretim imaji; prisma CLI ayri ve eksiksiz bir agacla\n  /tools altina kurulur, seed betigi derleme aninda tek dosyaya paketlenir\n  (calisma imajinda tsx ve seed bagimliliklari gerekmesin diye)\n- docker-compose.prod.yml: postgres host portuna acilmaz, panel yalniz\n  secilen arayuze baglanir\n- scripts/paket-olustur.sh: internetli makinede cevrimdisi paket uretir\n- scripts/izole-kurulum.sh: izole sunucuda docker load + migrate + seed + dogrulama\n- .env.izole.example, .dockerignore, dist/ gitignore\n\nSozlesme 1.1.0 — kiosk saati:\n- Manifeste serverTime alani eklendi (ISO-8601, UTC, milisaniyeli)\n- Sozlesmeye clock bolumu: capa kurali, monotonik ilerleme, bayatlama esigi\n- Izole agda NTP olmadigi ve RTC pili olmayan TV kutulari her elektrik\n  kesintisinde saatlerini yitirdigi icin cihazin duvar saati guvenilmez;\n  kiosk saatinin tek referansi sunucudur\n\nDokumantasyon:\n- docs/IZOLE_KURULUM.md (iki repoda ayni): topoloji, paketleme, kurulum,\n  HTTPS yerine host'a sinirli cleartext tercihinin gerekcesi, saat, yedekleme,\n  kurulum kontrol listesi, sorun giderme\n- ENTEGRASYON.md uyum matrisi 1.1.0 satiri ve saat bolumu\n- SECURITY.md 6.1: izole agda tasima katmani ve kabul edilen risk\n- MOBILE_API.md ve oynatici sartnamesinde serverTime\n","verified_at":"2026-08-06T02:31:34Z"}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/24821cea63cae420267991b90a69f92773083b95","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/24821cea63cae420267991b90a69f92773083b95","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/24821cea63cae420267991b90a69f92773083b95/comments","author":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"57e0b81b11e9826b65a121575bffed0a26e559a0","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/57e0b81b11e9826b65a121575bffed0a26e559a0","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/57e0b81b11e9826b65a121575bffed0a26e559a0"}],"repo":{"name":"tpic-web","full_name":"fyildirim-debug/tpic-web","html_url":"https://github.com/fyildirim-debug/tpic-web","language":"TypeScript","description":null,"private":true}}],"2026-08-04":[{"sha":"4d04bcf1db830429560572dc801915d4293c88f0","node_id":"C_kwDOTlxYddoAKDRkMDRiY2YxZGI4MzA0Mjk1NjA1NzJkYzgwMTkxNWQ0MjkzYzg4ZjA","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:41Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:41Z"},"message":"Kiosk yüzeyi yeniden tasarlandı: tek tema, altı şema\n\nOnaylanan \"TPIC Ekran Düzenleri\" tasarımı oynatıcıya uygulandı. Yayına giren\ngirdiler video, görsel ve kayan yazıyla sınırlandı; marka kilidi ve saat\ndüzen bileşeni olmaktan çıkıp temanın çizdiği üstyapıya taşındı.\n\nÇizim katmanı:\n- KioskTheme jetonları, KioskScale tuval-ekran çevirici ve KioskChrome künyesi\n  eklendi; künye tam sahnede ışık perdesinde, çerçeveli sahnede 150 px şeritte\n- MediaCaption: medya başlığı, alt etiket, slot sırası ve ilerleme çizgileri\n- TickerComponent sabit DUYURU rozetiyle yeniden yazıldı\n- BrandComponent, ClockComponent, TextComponent ve EmptyComponent kaldırıldı;\n  işlevleri tema üstyapısına ve MediaCaption'a taşındı\n- Video artık RESIZE_MODE_FIT ile letterbox oynatılıyor; kırpılan video altyazı\n  ve logo kaybediyordu\n\nSözleşme ve model:\n- ComponentBinding: video/görsel slotları title ve caption taşıyor, marka ve\n  saat bileşenleri ChromeSlot'a düşüp çizilmiyor\n- Manifeste device alanı eklendi (DTO, DeviceIdentity modeli ve mapper); künye\n  sağ tarafında bölge ve cihaz adı gösteriliyor\n- Space Grotesk, IBM Plex Sans ve IBM Plex Mono yazı tipleri res/font altına\n  gömüldü\n\nAltyapı:\n- .gitattributes ile contract/ ve senkron belgeleri LF'e sabitlendi; böylece\n  contract.sha256 kilidi Windows checkout'unda da tutuyor\n\nCo-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>","tree":{"sha":"a3ed05dc51f5fbb540642f1098ac0c4ba2eec8d9","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/trees/a3ed05dc51f5fbb540642f1098ac0c4ba2eec8d9"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/commits/4d04bcf1db830429560572dc801915d4293c88f0","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/4d04bcf1db830429560572dc801915d4293c88f0","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/4d04bcf1db830429560572dc801915d4293c88f0","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/4d04bcf1db830429560572dc801915d4293c88f0/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"1f1a6c34ac17b4b8873595a4f64685928d958b8a","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/1f1a6c34ac17b4b8873595a4f64685928d958b8a","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/1f1a6c34ac17b4b8873595a4f64685928d958b8a"}],"repo":{"name":"tpic-app","full_name":"fyildirim-debug/tpic-app","html_url":"https://github.com/fyildirim-debug/tpic-app","language":"Kotlin","description":"TPIC Android TV dijital tabela oynaticisi (native Kotlin + Compose for TV)","private":true}},{"sha":"57e0b81b11e9826b65a121575bffed0a26e559a0","node_id":"C_kwDORUglhdoAKDU3ZTBiODFiMTFlOTgyNmI2NWExMjE1NzViZmZlZDBhMjZlNTU5YTA","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:17Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:17Z"},"message":"Kiosk yüzeyi yeniden tasarlandı, yayın planı düzenleme eklendi\n\nOnaylanan \"TPIC Ekran Düzenleri\" tasarımı uygulandı. Yayına giren girdiler\nvideo, görsel ve kayan yazıyla sınırlandı; marka kilidi ve saat düzen\nbileşeni olmaktan çıkıp tema üstyapısına taşındı. On iki sistem düzeninin\nyerini altı şema aldı.\n\nKiosk çizimi:\n- KioskCanvas tuvali, KioskChrome künyesi (marka kilidi + saat) ve iki sahne\n  biçimi: tam sahne ışık perdeli, çerçeveli sahne 150 px künye şeritli\n- Medya künyesi: başlık, alt etiket, slot sırası ve ilerleme çizgileri\n- Kayan yazı bandı sabit DUYURU rozetiyle yeniden yazıldı\n- Tipografi Space Grotesk, IBM Plex Sans ve IBM Plex Mono ailelerine geçti\n\nPanel:\n- Video ve görsel bileşenleri props.title ve props.caption taşıyor; düzen\n  editörüne bu alanlar için giriş paneli eklendi\n- Ekran düzenleri kartları artık gerçek medya ve künyeyle çiziliyor\n- Yayın planı düzenleme: PUT /api/yayin-planlari/[id], updateScheduleSchema\n  ve updateSchedule servisi. Çakışma denetiminde plan kendisi hariç tutulur;\n  yayında olan planın süresi uzatılabilsin diye başlangıç tarihinin gelecekte\n  olma şartı güncellemede aranmaz\n- prisma/seed.ts eskiyen sistem düzen ve şablonlarını temizliyor\n- TPIC kurumsal sitesinden örnek içerik aktaran betik eklendi\n\nAltyapı:\n- .gitattributes ile contract/ ve senkron belgeleri LF'e sabitlendi; böylece\n  contract.sha256 kilidi Windows checkout'unda da tutuyor\n- Sözleşme testindeki Windows yol ayracı karşılaştırması düzeltildi\n\nCo-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>","tree":{"sha":"70c738b1245a182ec7a8ecb1ea1bc35971690eba","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/trees/70c738b1245a182ec7a8ecb1ea1bc35971690eba"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/commits/57e0b81b11e9826b65a121575bffed0a26e559a0","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/57e0b81b11e9826b65a121575bffed0a26e559a0","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/57e0b81b11e9826b65a121575bffed0a26e559a0","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/57e0b81b11e9826b65a121575bffed0a26e559a0/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"4f0403d2958c150ff16b38cc5203b502f690123c","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/4f0403d2958c150ff16b38cc5203b502f690123c","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/4f0403d2958c150ff16b38cc5203b502f690123c"}],"repo":{"name":"tpic-web","full_name":"fyildirim-debug/tpic-web","html_url":"https://github.com/fyildirim-debug/tpic-web","language":"TypeScript","description":null,"private":true}},{"sha":"551ba6401e28e1b2d0c5d4f6919273b2971cb800","node_id":"C_kwDOQZc9mNoAKDU1MWJhNjQwMWUyOGUxYjJkMGM1ZDRmNjkxOTI3M2IyOTcxY2I4MDA","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-04T10:51:19Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-04T10:51:19Z"},"message":"feat(site): ArnexLab sitesi furkanyildirim.com yonlendirme sayfasina donusturuldu\n\n- 10 saniyelik geri sayimli, halka animasyonlu yonlendirme ekrani eklendi\n- JS calismazsa devreye giren meta refresh yedegi eklendi\n- ArnexLab kimligine uygun koyu tema ve zumrut vurgu rengi uygulandi\n- Portfolyo icerigi ve kullanilmayan GitHub API katmani kaldirildi\n- Metadata, favicon ve Organization schema ArnexLab icin guncellendi","tree":{"sha":"debe4aec8355ddf6e58adaf112bc5f03f677fe5f","url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/git/trees/debe4aec8355ddf6e58adaf112bc5f03f677fe5f"},"url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/git/commits/551ba6401e28e1b2d0c5d4f6919273b2971cb800","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQCfg6i/u\nqlCHHHTaJnJIT31DPh8fYPF0xBNiUeXa3Lt0ohOjuY0klGLgZ4aYhJEBKzCCLfzV9ssRXFCCsi8u\nyAY=\n-----END SSH SIGNATURE-----","payload":"tree debe4aec8355ddf6e58adaf112bc5f03f677fe5f\nparent 166bba53ae7c7d03954abffdd0dff548a2db13a0\nauthor Furkan YILDIRIM <posta@furkanyildirim.com> 1785840679 +0000\ncommitter Furkan YILDIRIM <posta@furkanyildirim.com> 1785840679 +0000\n\nfeat(site): ArnexLab sitesi furkanyildirim.com yonlendirme sayfasina donusturuldu\n\n- 10 saniyelik geri sayimli, halka animasyonlu yonlendirme ekrani eklendi\n- JS calismazsa devreye giren meta refresh yedegi eklendi\n- ArnexLab kimligine uygun koyu tema ve zumrut vurgu rengi uygulandi\n- Portfolyo icerigi ve kullanilmayan GitHub API katmani kaldirildi\n- Metadata, favicon ve Organization schema ArnexLab icin guncellendi\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/commits/551ba6401e28e1b2d0c5d4f6919273b2971cb800","html_url":"https://github.com/fyildirim-debug/arnexlabwebsite/commit/551ba6401e28e1b2d0c5d4f6919273b2971cb800","comments_url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/commits/551ba6401e28e1b2d0c5d4f6919273b2971cb800/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"166bba53ae7c7d03954abffdd0dff548a2db13a0","url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/commits/166bba53ae7c7d03954abffdd0dff548a2db13a0","html_url":"https://github.com/fyildirim-debug/arnexlabwebsite/commit/166bba53ae7c7d03954abffdd0dff548a2db13a0"}],"repo":{"name":"arnexlabwebsite","full_name":"fyildirim-debug/arnexlabwebsite","html_url":"https://github.com/fyildirim-debug/arnexlabwebsite","language":"TypeScript","description":null,"private":true}}],"2026-08-03":[{"sha":"6ebb522901460a7ae74ead5f8223dc54da38967f","node_id":"C_kwDOTpLoHtoAKDZlYmI1MjI5MDE0NjBhN2FlNzRlYWQ1ZjgyMjNkYzU0ZGEzODk2N2Y","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:24:34Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:24:34Z"},"message":"feat: GNOME Shell frontend alongside the KDE plasmoid\n\nThe plasmoid only runs under Plasma, so the project had nothing to offer\non GNOME. This adds a second frontend in gnome/ that draws the same data\nin the GNOME top bar, and teaches install.sh to target either desktop.\n\nBoth frontends share their presentation rules rather than reimplementing\nthem: gnome/lib/codexbar.js is a straight port of the helpers in\npackage/contents/ui/main.qml — window parsing and de-duplication, the\nquota colour ladder, pace-aware colouring, provider naming, countdowns,\nthe localised pace and cost lines, and the crossing-based alert logic.\nKeeping the rules in one readable module means \"75 % used\" looks the same\non both desktops, and it can be exercised with plain gjs.\n\nThe GNOME side owns only what is GNOME: a PanelMenu.Button with one chip\nper provider, a popup of provider cards, GLib timers, Gio.Subprocess\npolling and Main.notify. Notable choices:\n\n- The CLI is spawned as an argv array, never through a shell, because the\n  CLI path and the provider filter come from user settings.\n- Countdown labels are kept and refreshed on a low-priority tick instead\n  of rebuilding cards, and the tick idles while the popup is closed.\n- Sparklines are drawn with St.DrawingArea/Cairo: one repaint handler is\n  cheaper than 64 actors and sub-pixel bar widths stay evenly spaced.\n- Settings changes are split into redraw-only and refetch keys so tweaking\n  the panel does not hit the network.\n- disable() tears down timers, cancellables and signal handlers, as the\n  review guidelines require for lock-screen disable.\n\nSettings move to GSettings with kebab-case keys mirroring the KConfigXT\nentries one for one; prefs.js exposes all twelve through libadwaita.\n\ninstall.sh now detects the desktop from XDG_CURRENT_DESKTOP, falls back to\nwhich tools exist, and accepts --kde, --gnome and --all; a per-target\nfailure no longer aborts the other. uninstall.sh is new and symmetric.\nThe KDE package is untouched.","tree":{"sha":"8a4ab5348ead56e11c6c74bb2b5853d0084b1ce0","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/8a4ab5348ead56e11c6c74bb2b5853d0084b1ce0"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/6ebb522901460a7ae74ead5f8223dc54da38967f","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/6ebb522901460a7ae74ead5f8223dc54da38967f","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/6ebb522901460a7ae74ead5f8223dc54da38967f","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/6ebb522901460a7ae74ead5f8223dc54da38967f/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"cf649a6f72cdb2394878019f891c3225b246d07d","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/cf649a6f72cdb2394878019f891c3225b246d07d","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/cf649a6f72cdb2394878019f891c3225b246d07d"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","node_id":"C_kwDOTnDMj9oAKDhkMGVkYWZkMzdhMWM1ZGIwMGMyYTVjMDNlZWZjMmNmM2QxZmE2NWE","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:01:36Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:01:36Z"},"message":"fix: run on libadwaita 1.5 and let the desktop match the window\n\nAdw.Spinner was added in libadwaita 1.6, so the requirement page raised\nAttributeError and the window never opened on Ubuntu 24.04, Zorin OS 18\nand Debian 12. A make_spinner() helper now prefers Adw.Spinner and falls\nback to Gtk.Spinner, which GTK 4 has always had and which looks identical\nat 32x32.\n\nThe window also reported WM_CLASS \"python3\", because GTK derives it from\nargv[0] and the script is run through the interpreter. Neither GNOME Shell\nnor Plasma could tie the window to the .desktop file, so it drew a generic\nicon and refused to group with the launcher. main() now calls\nGLib.set_prgname(APP_ID) and the desktop entry declares the matching\nStartupWMClass.","tree":{"sha":"c3b9c60f60c955d020638e5bc2e00b7d1c41ac7f","url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/git/trees/c3b9c60f60c955d020638e5bc2e00b7d1c41ac7f"},"url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/git/commits/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/commits/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","html_url":"https://github.com/fyildirim-debug/github-project-downloader/commit/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","comments_url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/commits/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"13027871ce88f9a6144442bea1f4192cbc3282a6","url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/commits/13027871ce88f9a6144442bea1f4192cbc3282a6","html_url":"https://github.com/fyildirim-debug/github-project-downloader/commit/13027871ce88f9a6144442bea1f4192cbc3282a6"}],"repo":{"name":"github-project-downloader","full_name":"fyildirim-debug/github-project-downloader","html_url":"https://github.com/fyildirim-debug/github-project-downloader","language":"Python","description":"Lists your GitHub repositories and clones the selected one into any folder, straight from the file manager context menu. GTK4/libadwaita, six languages.","private":false}}],"2026-08-02":[{"sha":"303f24ac2b9918edb2bc5e8fc821a8c001266fbb","node_id":"C_kwDORRP2O9oAKDMwM2YyNGFjMmI5OTE4ZWRiMmJjNWU4ZmM4MjFhOGMwMDEyNjZmYmI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:48:29Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:48:29Z"},"message":"fix(epg): kok elemandan sonra yorum iceren XMLTV artik reddedilmiyor\n\nyayinakisi.co gibi bazi saglayicilar `</tv>` ardina imza yorumu ekliyor. XML\nkok elemandan sonra yorum ve isleme yonergesine izin verdigi halde kesik icerik\nkontrolu belgenin tam olarak `</tv>` ile bitmesini sart kosuyordu; saglam bir\nrehber \"icerik kesilmis olabilir\" hatasiyla reddediliyordu.\n\nKontrol artik sondaki bosluk, yorum ve isleme yonergelerini ayikladiktan sonra\nyapiliyor. Akis kuyrugu 64 bayttan 4 KB'a cikarildi ki parcalara bolunmus bir\nyorum blogu da dogru degerlendirilsin. Gercekten kesik iceriklerin reddi\nkorunuyor.","tree":{"sha":"c17657e673a474788946604a536285578b8d52e9","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/c17657e673a474788946604a536285578b8d52e9"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/303f24ac2b9918edb2bc5e8fc821a8c001266fbb","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQCaA4nAd\nllxKQqSgVIVw3yQByYXdQH99jTQpOkR+zv814q1m8J/ujVFNKJsnAwo0Ijbl4dqOCvDOdLSKuqbH\niw4=\n-----END SSH SIGNATURE-----","payload":"tree c17657e673a474788946604a536285578b8d52e9\nparent bae81b24cad7201e1cc52948f303f8814f7b792b\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785710909 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785710909 +0000\n\nfix(epg): kok elemandan sonra yorum iceren XMLTV artik reddedilmiyor\n\nyayinakisi.co gibi bazi saglayicilar `</tv>` ardina imza yorumu ekliyor. XML\nkok elemandan sonra yorum ve isleme yonergesine izin verdigi halde kesik icerik\nkontrolu belgenin tam olarak `</tv>` ile bitmesini sart kosuyordu; saglam bir\nrehber \"icerik kesilmis olabilir\" hatasiyla reddediliyordu.\n\nKontrol artik sondaki bosluk, yorum ve isleme yonergelerini ayikladiktan sonra\nyapiliyor. Akis kuyrugu 64 bayttan 4 KB'a cikarildi ki parcalara bolunmus bir\nyorum blogu da dogru degerlendirilsin. Gercekten kesik iceriklerin reddi\nkorunuyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/303f24ac2b9918edb2bc5e8fc821a8c001266fbb","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/303f24ac2b9918edb2bc5e8fc821a8c001266fbb","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/303f24ac2b9918edb2bc5e8fc821a8c001266fbb/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"bae81b24cad7201e1cc52948f303f8814f7b792b","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/bae81b24cad7201e1cc52948f303f8814f7b792b","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/bae81b24cad7201e1cc52948f303f8814f7b792b"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"bae81b24cad7201e1cc52948f303f8814f7b792b","node_id":"C_kwDORRP2O9oAKGJhZTgxYjI0Y2FkNzIwMWUxY2M1Mjk0OGYzMDNmODgxNGY3Yjc5MmI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:40:14Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:40:14Z"},"message":"merge: yapay zeka asistani (162 arac) main'e alindi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla calisan, uygulamanin tamamini\nsunucu tarafi araclarla yoneten sohbet asistani; Markdown'li cevaplar, hesap\nayarlarindaki saglayici formu, katalog aramasiyla saglayici arac limitini asma\nve oturumla birebir esitlenmis yetki siniri. Ayrica Traefik onunde calisan\nDokploy compose dosyasi.","tree":{"sha":"585864fb563494650649946ae2c54d050ae81cee","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/585864fb563494650649946ae2c54d050ae81cee"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/bae81b24cad7201e1cc52948f303f8814f7b792b","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQECZHYU7\n9HRKnmRSLHLS9mY26QCYAT+CM2S911jMBiY5JD7X4k8AThPFaDbG9R8/H3aeH//zHnWxWEFK1Hze\ndwE=\n-----END SSH SIGNATURE-----","payload":"tree 585864fb563494650649946ae2c54d050ae81cee\nparent ce9feae644c12a03064846ccf62fd5768c32a1dd\nparent 57ca017e60c6c7aa722e4f0980d6b13092e73520\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785710414 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785710414 +0000\n\nmerge: yapay zeka asistani (162 arac) main'e alindi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla calisan, uygulamanin tamamini\nsunucu tarafi araclarla yoneten sohbet asistani; Markdown'li cevaplar, hesap\nayarlarindaki saglayici formu, katalog aramasiyla saglayici arac limitini asma\nve oturumla birebir esitlenmis yetki siniri. Ayrica Traefik onunde calisan\nDokploy compose dosyasi.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/bae81b24cad7201e1cc52948f303f8814f7b792b","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/bae81b24cad7201e1cc52948f303f8814f7b792b","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/bae81b24cad7201e1cc52948f303f8814f7b792b/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"ce9feae644c12a03064846ccf62fd5768c32a1dd","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/ce9feae644c12a03064846ccf62fd5768c32a1dd"},{"sha":"57ca017e60c6c7aa722e4f0980d6b13092e73520","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/57ca017e60c6c7aa722e4f0980d6b13092e73520"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"57ca017e60c6c7aa722e4f0980d6b13092e73520","node_id":"C_kwDORRP2O9oAKDU3Y2EwMTdlNjBjNmM3YWE3MjJlNGYwOTgwZDZiMTMwOTJlNzM1MjA","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:27:26Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:27:26Z"},"message":"fix(ai): kategori kopyalama artik akis adresini degistirmiyor\n\nAyni listede bir akis adresi yalnizca bir kez bulunabildigi icin duplicate_category\nkopyalara ?copy=... parametresi ekliyordu; bu, bazi saglayicilarda oynatmayi\nbozabilir. Arac artik kategorinin bos bir kopyasini olusturuyor ve kanallarin\nneden kopyalanmadigini modele acikliyor.","tree":{"sha":"585864fb563494650649946ae2c54d050ae81cee","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/585864fb563494650649946ae2c54d050ae81cee"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQILv3ABm\nQUrSTSx83ZNbD7WP1iSY15sGLEFclzk3iswKK68/uIxre75GCInV6Cqgh288liHcOoqBp1p8mj7P\nfwk=\n-----END SSH SIGNATURE-----","payload":"tree 585864fb563494650649946ae2c54d050ae81cee\nparent 46bf1b90e2f0d9f054255171cef51190cead2646\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785709646 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785709646 +0000\n\nfix(ai): kategori kopyalama artik akis adresini degistirmiyor\n\nAyni listede bir akis adresi yalnizca bir kez bulunabildigi icin duplicate_category\nkopyalara ?copy=... parametresi ekliyordu; bu, bazi saglayicilarda oynatmayi\nbozabilir. Arac artik kategorinin bos bir kopyasini olusturuyor ve kanallarin\nneden kopyalanmadigini modele acikliyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/57ca017e60c6c7aa722e4f0980d6b13092e73520","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"46bf1b90e2f0d9f054255171cef51190cead2646","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/46bf1b90e2f0d9f054255171cef51190cead2646","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/46bf1b90e2f0d9f054255171cef51190cead2646"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"46bf1b90e2f0d9f054255171cef51190cead2646","node_id":"C_kwDORRP2O9oAKDQ2YmYxYjkwZTJmMGQ5ZjA1NDI1NTE3MWNlZjUxMTkwY2VhZDI2NDY","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:25:47Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:25:47Z"},"message":"feat(ai): yetenek katalogu 162 araca cikarildi, Markdown ve yetki esitligi\n\nAraclar konu bazli modullere ayrildi (playlists, categories, channels, epg,\nimports, exports, account) ve 55'ten 162'ye cikarildi: liste kopyalama ve\nkarsilastirma, kategori birlestirme/bolme/otomatik siniflandirma, kanal adi\ntemizleme (kalite etiketi, harf duzeni, on ek/son ek), akis adresinde\nbul-degistir, mukerrer temizleme, cok olcutlu siralama, tekil EPG eslestirme ve\noneri, kutuphaneden kaynak ekleme, kategori secmeli Xtream import, gorunum ve\npaylasim yonetimi, hesap/kullanim raporlari.\n\nSaglayicilar istek basina arac sayisini sinirladigi icin (OpenAI'de 128) her\nturda ilk 120 arac ve uc meta arac gonderilir; model listesinde olmayan bir\nyetenegi search_capabilities ile bulup invoke_capability ile ayni yetki\nkontrollerinden gecerek calistirir.\n\nAsistan cevaplari Markdown olarak isleniyor: govde once HTML olarak kacislanir,\netiketler ancak sonra bilinen kaliplardan uretilir, http(s) disi baglanti\nsemalari baglanti yapilmaz.\n\nYetki, oturum sahibiyle birebir esitlendi: kimlik yalnizca oturumdan alinir,\nmodel argumanlarindaki userId/user_id/ownerId/is_admin anahtarlari araca\nulasmadan ayiklanir, oturumsuz cagri reddedilir ve katalogda hicbir yonetici\naraci yer almaz.","tree":{"sha":"b97244babd41ac5c96a6b2524ae8b0c0e792ee78","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/b97244babd41ac5c96a6b2524ae8b0c0e792ee78"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/46bf1b90e2f0d9f054255171cef51190cead2646","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQD2GPKon\n+KiBDEHkh84wJuhIN+fffvEnr2s5z3sjmpowtcZkhWGO8qKn/ovK04+kRxsHtqC9vxKOX7PIdM7f\npQQ=\n-----END SSH SIGNATURE-----","payload":"tree b97244babd41ac5c96a6b2524ae8b0c0e792ee78\nparent 2708b1c49ae0da28b4fdd29877df02c7765d7b41\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785709547 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785709547 +0000\n\nfeat(ai): yetenek katalogu 162 araca cikarildi, Markdown ve yetki esitligi\n\nAraclar konu bazli modullere ayrildi (playlists, categories, channels, epg,\nimports, exports, account) ve 55'ten 162'ye cikarildi: liste kopyalama ve\nkarsilastirma, kategori birlestirme/bolme/otomatik siniflandirma, kanal adi\ntemizleme (kalite etiketi, harf duzeni, on ek/son ek), akis adresinde\nbul-degistir, mukerrer temizleme, cok olcutlu siralama, tekil EPG eslestirme ve\noneri, kutuphaneden kaynak ekleme, kategori secmeli Xtream import, gorunum ve\npaylasim yonetimi, hesap/kullanim raporlari.\n\nSaglayicilar istek basina arac sayisini sinirladigi icin (OpenAI'de 128) her\nturda ilk 120 arac ve uc meta arac gonderilir; model listesinde olmayan bir\nyetenegi search_capabilities ile bulup invoke_capability ile ayni yetki\nkontrollerinden gecerek calistirir.\n\nAsistan cevaplari Markdown olarak isleniyor: govde once HTML olarak kacislanir,\netiketler ancak sonra bilinen kaliplardan uretilir, http(s) disi baglanti\nsemalari baglanti yapilmaz.\n\nYetki, oturum sahibiyle birebir esitlendi: kimlik yalnizca oturumdan alinir,\nmodel argumanlarindaki userId/user_id/ownerId/is_admin anahtarlari araca\nulasmadan ayiklanir, oturumsuz cagri reddedilir ve katalogda hicbir yonetici\naraci yer almaz.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/46bf1b90e2f0d9f054255171cef51190cead2646","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/46bf1b90e2f0d9f054255171cef51190cead2646","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/46bf1b90e2f0d9f054255171cef51190cead2646/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"2708b1c49ae0da28b4fdd29877df02c7765d7b41","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/2708b1c49ae0da28b4fdd29877df02c7765d7b41"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"cf649a6f72cdb2394878019f891c3225b246d07d","node_id":"C_kwDOTpLoHtoAKGNmNjQ5YTZmNzJjZGIyMzk0ODc4MDE5Zjg5MWMzMjI1YjI0NmQwN2Q","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T22:24:28Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T22:24:28Z"},"message":"icons: fix Claude logo not rendering (duplicate fill attribute)\n\nThe single <path> in claude.svg declared `fill` twice. Qt's XML parser\ntreats a redefined attribute as fatal, so QSvgRenderer rejected the whole\ndocument (isValid=false, defaultSize -1x-1) and Kirigami.Icon drew\nnothing. Dropped the duplicate.\n\nAlso replaced the root `width=\"1em\" height=\"1em\"` with 24x24; Qt SVG\nTiny 1.2 has no `em` unit support.","tree":{"sha":"e7cb7688231f8bec5fa1a65f60e03c038f316f31","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/e7cb7688231f8bec5fa1a65f60e03c038f316f31"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/cf649a6f72cdb2394878019f891c3225b246d07d","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/cf649a6f72cdb2394878019f891c3225b246d07d","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/cf649a6f72cdb2394878019f891c3225b246d07d","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/cf649a6f72cdb2394878019f891c3225b246d07d/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"2d6ab10a995231532e8002e443c8aee14ba69f6a","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/2d6ab10a995231532e8002e443c8aee14ba69f6a"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"2708b1c49ae0da28b4fdd29877df02c7765d7b41","node_id":"C_kwDORRP2O9oAKDI3MDhiMWM0OWFlMGRhMjhiNGZkZDI5ODc3ZGYwMmM3NzY1ZDdiNDE","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:04:12Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:04:12Z"},"message":"fix(ai): saglayici hata gerekcesi gorunur oldu, ayarlar hesap sayfasina eklendi\n\n400 yanitlarinda yalnizca \"Uzak sunucu HTTP 400 dondurdu\" goruluyordu; safeFetch\nartik istenildiginde hata govdesini (en fazla 16 KB) yakaliyor ve asistan\nsaglayicinin gerekcesini kullaniciya ve sunucu gunlugune yaziyor. Temperature\nveya tool_choice reddedilen modellerde istek bir kez sadelestirilip yeniden\ndeneniyor.\n\nArac semalari gecit uyumlulugu icin sadelestirildi: additionalProperties\nkaldirildi ve parametresiz iki arac gercek istege bagli alan aldi — OpenAI\nsemasini Anthropic/Gemini bicimine ceviren gecitler bos properties ve ek\nanahtarlarda 400 donebiliyor.\n\nAyar formu AiSettingsForm bilesenine tasindi; hem sohbet paneli hem de hesap\nayarlari sayfasi ayni formu kullaniyor, biri kaydettiginde digeri guncelleniyor.","tree":{"sha":"7c5f0218bba9df7674f96cefaa7d49676aef6723","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/7c5f0218bba9df7674f96cefaa7d49676aef6723"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQLiuPzcY\nf3jS6tOHBOJMa6WsxjAxGKK5Hqx8eyysWBK3+ZvQmv8EtOOojAGhCsHzV82wi3HsnQS/VwzEdkWo\nCgM=\n-----END SSH SIGNATURE-----","payload":"tree 7c5f0218bba9df7674f96cefaa7d49676aef6723\nparent 902d4d4c041604cafd46802693f6d9d8e2c570ce\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785708252 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785708252 +0000\n\nfix(ai): saglayici hata gerekcesi gorunur oldu, ayarlar hesap sayfasina eklendi\n\n400 yanitlarinda yalnizca \"Uzak sunucu HTTP 400 dondurdu\" goruluyordu; safeFetch\nartik istenildiginde hata govdesini (en fazla 16 KB) yakaliyor ve asistan\nsaglayicinin gerekcesini kullaniciya ve sunucu gunlugune yaziyor. Temperature\nveya tool_choice reddedilen modellerde istek bir kez sadelestirilip yeniden\ndeneniyor.\n\nArac semalari gecit uyumlulugu icin sadelestirildi: additionalProperties\nkaldirildi ve parametresiz iki arac gercek istege bagli alan aldi — OpenAI\nsemasini Anthropic/Gemini bicimine ceviren gecitler bos properties ve ek\nanahtarlarda 400 donebiliyor.\n\nAyar formu AiSettingsForm bilesenine tasindi; hem sohbet paneli hem de hesap\nayarlari sayfasi ayni formu kullaniyor, biri kaydettiginde digeri guncelleniyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/2708b1c49ae0da28b4fdd29877df02c7765d7b41","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"902d4d4c041604cafd46802693f6d9d8e2c570ce","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/902d4d4c041604cafd46802693f6d9d8e2c570ce"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"902d4d4c041604cafd46802693f6d9d8e2c570ce","node_id":"C_kwDORRP2O9oAKDkwMmQ0ZDRjMDQxNjA0Y2FmZDQ2ODAyNjkzZjZkOWQ4ZTJjNTcwY2U","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:52:50Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:52:50Z"},"message":"chore(deploy): Traefik onunde calisan Dokploy compose dosyasi eklendi","tree":{"sha":"9088ec8480d16fd20e0a919a7b981d03340e18cb","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/9088ec8480d16fd20e0a919a7b981d03340e18cb"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQMmFGclo\nlOjOt8UMShHpcOmxZu3opuIatuUthB8kxwxDDExMODcoK8W8d4Lg02aZNDKnzzQWD2N1/iQT+Vd5\n7Q8=\n-----END SSH SIGNATURE-----","payload":"tree 9088ec8480d16fd20e0a919a7b981d03340e18cb\nparent 9e8e70f25f6a06b79d93d70621778ea9d907a2bc\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785707570 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785707570 +0000\n\nchore(deploy): Traefik onunde calisan Dokploy compose dosyasi eklendi\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/902d4d4c041604cafd46802693f6d9d8e2c570ce","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"9e8e70f25f6a06b79d93d70621778ea9d907a2bc","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/9e8e70f25f6a06b79d93d70621778ea9d907a2bc"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"9e8e70f25f6a06b79d93d70621778ea9d907a2bc","node_id":"C_kwDORRP2O9oAKDllOGU3MGYyNWY2YTA2Yjc5ZDkzZDcwNjIxNzc4ZWE5ZDkwN2EyYmM","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:48:42Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:48:42Z"},"message":"feat(ai): uygulamanin tamamini yoneten yapay zeka asistani eklendi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla (base URL + API anahtari +\nsaglayicidan cekilen model listesi) calisan sohbet asistani. Sunucu tarafinda\n55 arac ile playlist/kategori/kanal yonetimi, siralama, toplu yeniden\nadlandirma, EPG eslestirme ve rehberden logo cekme, M3U/Xtream import-sync,\npaylasim, filtre kurallari, saglik taramasi, yedekler ve iki playlisti\ntekillestirerek birlestirme yapabiliyor.\n\nAraclar mevcut servis katmanini cagirdigi icin sahiplik ve dogrulama kurallari\ndegismiyor. Yikici araclar izin anahtariyla kapatilabiliyor, calisan her arac\nsohbette iz olarak gosteriliyor. API anahtari AES-256-GCM ile sifreli\nsaklaniyor ve istemciye hicbir zaman donmuyor.","tree":{"sha":"080eea742f36014a0b2a68696e6765168449acdb","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/080eea742f36014a0b2a68696e6765168449acdb"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQMJZwrVA\np0oL3tRQx0xFSAhIJDaU760V9h02aruuj5uwqArtisZQuBzcuYhfrOBtJBiLSX0PYLkt0G2p31UE\nyg4=\n-----END SSH SIGNATURE-----","payload":"tree 080eea742f36014a0b2a68696e6765168449acdb\nparent ce9feae644c12a03064846ccf62fd5768c32a1dd\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785707322 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785707322 +0000\n\nfeat(ai): uygulamanin tamamini yoneten yapay zeka asistani eklendi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla (base URL + API anahtari +\nsaglayicidan cekilen model listesi) calisan sohbet asistani. Sunucu tarafinda\n55 arac ile playlist/kategori/kanal yonetimi, siralama, toplu yeniden\nadlandirma, EPG eslestirme ve rehberden logo cekme, M3U/Xtream import-sync,\npaylasim, filtre kurallari, saglik taramasi, yedekler ve iki playlisti\ntekillestirerek birlestirme yapabiliyor.\n\nAraclar mevcut servis katmanini cagirdigi icin sahiplik ve dogrulama kurallari\ndegismiyor. Yikici araclar izin anahtariyla kapatilabiliyor, calisan her arac\nsohbette iz olarak gosteriliyor. API anahtari AES-256-GCM ile sifreli\nsaklaniyor ve istemciye hicbir zaman donmuyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"ce9feae644c12a03064846ccf62fd5768c32a1dd","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/ce9feae644c12a03064846ccf62fd5768c32a1dd"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"2d6ab10a995231532e8002e443c8aee14ba69f6a","node_id":"C_kwDOTpLoHtoAKDJkNmFiMTBhOTk1MjMxNTMyZTgwMDJlNDQzYzhhZWUxNGJhNjlmNmE","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:56:54Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:56:54Z"},"message":"auth: refresh OAuth tokens in the bridge; graphs: detailed per-window history\n\nThe widget showed \"credential is expired\" whenever no omp session had been\nrunning: the bridge only copied whatever token the omp database held, and\nCodexBar refuses to refresh CLI-owned credential files. The bridge now\nrefreshes expired/near-expiry tokens itself against the same endpoints omp\nuses (Kimi device-flow client on auth.kimi.com, Claude Code client on\napi.anthropic.com), writes the rotated pair back into the omp database so\nboth sides stay in sync, and serializes refreshes with an flock so parallel\nwidget polls cannot spend a rotating refresh token twice. Failures stay\nsilent and fall back to the previous behaviour.\n\nHistory is now recorded as [timestamp, usedPercent] pairs, so graphs can be\nspaced by real time and captioned with the span they cover.\n\nThe graph itself is rewritten: full width under each quota bar instead of a\n48x12 strip next to the label, zero baseline with an adaptive top (min 20%,\n30% headroom) so quiet series stay legible, 75%/90% warning guides, the\nnewest sample highlighted, and a \"last 1h 31m\" style caption. It is built\nfrom Items rather than a Canvas because a Canvas in a Plasma popup silently\nskips painting when its paint request loses the availability race.\n\nValues cross into QML as QVariantList, where Array.isArray() is false even\nfor real arrays; pair detection is shape-based now, which is what kept the\nscale NaN and the graph invisible.","tree":{"sha":"668c1e525e6af2eac12f1ca8046391cd5e2f32b0","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/668c1e525e6af2eac12f1ca8046391cd5e2f32b0"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/2d6ab10a995231532e8002e443c8aee14ba69f6a","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"038fc841ca95965f9cf278edfd92fcfa35ce2257","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/038fc841ca95965f9cf278edfd92fcfa35ce2257"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"038fc841ca95965f9cf278edfd92fcfa35ce2257","node_id":"C_kwDOTpLoHtoAKDAzOGZjODQxY2E5NTk2NWY5Y2YyNzhlZGZkOTJmY2ZhMzVjZTIyNTc","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:10:32Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:10:32Z"},"message":"compact: restore brand logos, show every quota window with calm styling\n\n- claude.svg had no fill, so the logo only worked as a tinted mask and\n  degraded to an unreadable blob at panel size; give it the brand color\n  and render all provider icons unmasked (true logo shapes) in both the\n  compact view and the provider cards.\n- Compact view shows every quota window again (5h session and weekly),\n  not just the most constrained one. Labels stay dimmed, numbers use the\n  theme text color; severity color and bold only kick in at <= 25% left,\n  so the panel stays quiet unless a quota is actually running out.\n- Tooltip now lists every window per provider with localized labels.","tree":{"sha":"897c342a6ec1d13334128e4b591d5e7aaa9aaaf9","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/897c342a6ec1d13334128e4b591d5e7aaa9aaaf9"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/038fc841ca95965f9cf278edfd92fcfa35ce2257","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"3e6a30266b8233feb2cd2cae31d8e27130d3882b","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/3e6a30266b8233feb2cd2cae31d8e27130d3882b","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/3e6a30266b8233feb2cd2cae31d8e27130d3882b"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"4eabcc701594602ca4223a3b55b935b603fc6d82","node_id":"C_kwDOTVyAh9oAKDRlYWJjYzcwMTU5NDYwMmNhNDIyM2EzYjU1YjkzNWI2MDNmYzZkODI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T00:11:34Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T00:11:34Z"},"message":"v1.7.5.0 (vc90) — FİLM & DİZİ bölümü + Ayarlar yeniden tasarımı\n\nSİNEMA (yeni ui/screens/cinema/): sekmeli vitrin (FİLMLER|DİZİLER, backdrop +\nhero + poster rayları), film/dizi ortak detay ekranı, sinema tasarım dili.\nRota Routes.CINEMA + hızlı menü girişi; oynatma mevcut VOD_PLAYER'a düşer.\nHero listenin içindedir: sabitken ikinci raya inince üstteki ray yarıda\nkırpılıp yalnız poster başlıkları görünüyordu.\n\nKÜNYE: get_vod_info / get_series_info.info -> MediaDetail (özet, oyuncular,\nyönetmen, tür, ülke, süre, puan). Dizide bölümler + künye TEK çağrıda.\nPaneller aynı bilgiyi farklı anahtarla verdiğinden yedek okunur\n(plot->description, cast->actors, duration->episode_run_time); yinelenen\nisimler tekilleştirilir, bölüm adından \"Dizi - S01E01 -\" öneki soyulur.\nKurallar CinemaMetadataTest (14 vaka) ile bağlandı.\n\nMİGRASYON: includeVod v1.0.17.3'te koda false sabitlenmişti (VOD sunulmuyordu)\n-> mevcut Xtream hesapları için tek seferlik, idempotent migrateIncludeVod().\n\nAYARLAR (SettingsKit.kt): üç bölge (ikonlu ray + ayar listesi + yardım sütunu),\ntek satır dili, tek elden çizilmiş ikon seti. Dar rayda uzun kategori adları\nkırpılıyordu -> railLabel (rayda kısa, başlıkta tam ad).\n\nKünye etiketi softWrap=false: büyük yazı ölçeğinde \"OYUNCULAR\" harf harf alt\nalta kırılıyordu.\n\nDoğrulama: temiz kurulum -> kayıt/giriş -> profil -> Xtream playlist -> canlı\nyayın -> vitrin -> film künyesi + oynatma -> dizi künyesi + bölüm oynatma,\nhepsi R8 (assembleR8Test) APK'sında emülatörde. apksigner v1+v2 true.\nAppwrite latest: vc90 / 1.7.5.0, MD5 03b02bbd... = yerel APK, notes byte\ndüzeyinde CLAUDE.md tablosuyla birebir.","tree":{"sha":"75e8371614f3b190c63d5bcec1acc116b995a635","url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/git/trees/75e8371614f3b190c63d5bcec1acc116b995a635"},"url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/git/commits/4eabcc701594602ca4223a3b55b935b603fc6d82","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/commits/4eabcc701594602ca4223a3b55b935b603fc6d82","html_url":"https://github.com/fyildirim-debug/FyPlayer/commit/4eabcc701594602ca4223a3b55b935b603fc6d82","comments_url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/commits/4eabcc701594602ca4223a3b55b935b603fc6d82/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"484731e18c8770352ff625dbe3ad50ccc109a919","url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/commits/484731e18c8770352ff625dbe3ad50ccc109a919","html_url":"https://github.com/fyildirim-debug/FyPlayer/commit/484731e18c8770352ff625dbe3ad50ccc109a919"}],"repo":{"name":"FyPlayer","full_name":"fyildirim-debug/FyPlayer","html_url":"https://github.com/fyildirim-debug/FyPlayer","language":"Kotlin","description":null,"private":true}}],"2026-08-01":[{"sha":"ce9feae644c12a03064846ccf62fd5768c32a1dd","node_id":"C_kwDORRP2O9oAKGNlOWZlYWU2NDRjMTJhMDMwNjQ4NDZjY2Y2MmZkNTc2OGMzMmExZGQ","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T23:37:59Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T23:37:59Z"},"message":"chore: data/ çalışma zamanı dizinini gitignore'a ekle (yedekler ve logolar)","tree":{"sha":"00f9d5e79312457672c5b251b7da97f584ea9b80","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/00f9d5e79312457672c5b251b7da97f584ea9b80"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/ce9feae644c12a03064846ccf62fd5768c32a1dd","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"842d59abd1c150dda27db8c506391dc7d7ca82db","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/842d59abd1c150dda27db8c506391dc7d7ca82db","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/842d59abd1c150dda27db8c506391dc7d7ca82db"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"842d59abd1c150dda27db8c506391dc7d7ca82db","node_id":"C_kwDORRP2O9oAKDg0MmQ1OWFiZDFjMTUwZGRhMjdkYjhjNTA2MzkxZGM3ZDdjYTgyZGI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T17:52:49Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T17:52:49Z"},"message":"release: v1.9.0.0 — otomasyon: zamanlanmış sync, yedekleme, akış sağlığı, çoklu kaynak\n\n- Zamanlanmış oto-sync: playlist/EPG aralığı + scheduler + sync öncesi yedek\n- Yedekleme/geri yükleme: gzip snapshot, retention 10, yeni/üzerine restore\n- Akış sağlık taraması: SSRF-safe HEAD/Range, 10 eşzamanlı, kanal rozetleri + ölü filtresi\n- Regex filtre kuralları: sıralı include/exclude, sync öncesi uygulanır, pattern testi\n- Çoklu Xtream kaynağı: playlist_sources, sync-all, doğal kategori birleşimi, güvenli uzlaştırma\n- Gelişmiş filtreler: logosuz/EPG'siz/duplike/ölü/kontrolsüz + filtreli sayaç\n- iptv-org EPG kaynak kütüphanesi, kalıcı EPG eşleştirme profilleri\n- Görünüm şablonları: gizli kategori setleri + export entegrasyonu\n- Quick wins: mobil sıralama, klavye kısayolları, URL deep-link, ConfirmModal,\n  paylaşım iptali, Xtream kimlik düzenleme, oturum yönetimi, header tema,\n  gerçek import ilerlemesi","tree":{"sha":"28a8ae821edf9b6914ec9084a7b27ad5427d38f6","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/28a8ae821edf9b6914ec9084a7b27ad5427d38f6"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/842d59abd1c150dda27db8c506391dc7d7ca82db","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/842d59abd1c150dda27db8c506391dc7d7ca82db","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/842d59abd1c150dda27db8c506391dc7d7ca82db","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/842d59abd1c150dda27db8c506391dc7d7ca82db/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"b742c992ba81d6b954c4c593ccbcc978e5ffe461","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/b742c992ba81d6b954c4c593ccbcc978e5ffe461","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/b742c992ba81d6b954c4c593ccbcc978e5ffe461"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}}]},"commits":[{"sha":"a83b65b565d972a5a9e0725843af450fb2650f38","node_id":"C_kwDOTlxYddoAKGE4M2I2NWI1NjVkOTcyYTVhOWUwNzI1ODQzYWY0NTBmYjI2NTBmMzg","commit":{"author":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:31:19Z"},"committer":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:31:19Z"},"message":"feat(izole-ag): panel host'una sinirli cleartext ve sunucudan turetilen kiosk saati\n\nOynatici, internete cikisi olmayan kapali aglarda calisacak sekilde\nuyarlandi (agda yalniz sunucu ve televizyonlar var).\n\nAg guvenligi:\n- Release ag guvenlik yapilandirmasi artik panel adresinden URETILIYOR\n  (GenerateNetworkSecurityConfig). Panel HTTPS ise cleartext hicbir adrese\n  acilmaz; HTTP ise YALNIZ o host icin acilir, base-config kapali kalir\n- Manifest, yapilandirmayi tpicNetworkSecurityConfig placeholder'i ile\n  varyanta gore secer; uretilen kaynak ayri adla durur ki src/main'deki\n  kati varsayilanla catismasin\n- scripts/kurulum.sh --lan ve kurulum.bat lan: izole ag modu, acik uyariyla\n- Gerekce: izole agda public CA'dan sertifika alinamaz; internal CA ise TLS\n  gecerliligini cihaz saatine baglar ve NTP'siz agda saati bozulan TV panele\n  hic baglanamaz — tum filo tek elektrik kesintisiyle dusebilir\n\nKiosk saati (sozlesme 1.1.0):\n- ServerTimeSource: her manifest senkronunda sunucu zamanini capa olarak\n  saklar, iki senkron arasini monotonik sayacla sayar\n- Capa 1 saatten eskiyse saat ve tarih hic cizilmez; yanlis saat gostermek\n  hic gostermemekten kotudur\n- KioskChrome saati LocalServerClock uzerinden bu kaynaktan alir; cihazin\n  duvar saati artik ekrana cizilmiyor\n- Bozuk serverTime manifesti reddettirmez, yalniz saati dusurur\n- Yetki dustugunde capa da sifirlanir\n- Diagnostics ekraninda sunucu saati ve cihaz sapmasi gosteriliyor (saha teshisi)\n\nSozlesme dizini ve ortak dokumanlar tpic-web ile bayt-bayt senkron.","tree":{"sha":"8f4f8156f3fbc734f68153c1187e669960ac1a10","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/trees/8f4f8156f3fbc734f68153c1187e669960ac1a10"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/commits/a83b65b565d972a5a9e0725843af450fb2650f38","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQC84aJra\nbQx15HMBYsi+JbkAROaDg4dN3cnfnjccj0M4oWZizZpxzE6u7vWbiVYAoUaU8QqJXjabl5QPjEbn\nXgQ=\n-----END SSH SIGNATURE-----","payload":"tree 8f4f8156f3fbc734f68153c1187e669960ac1a10\nparent 4d04bcf1db830429560572dc801915d4293c88f0\nauthor Claude <noreply@anthropic.com> 1785983479 +0000\ncommitter Claude <noreply@anthropic.com> 1785983479 +0000\n\nfeat(izole-ag): panel host'una sinirli cleartext ve sunucudan turetilen kiosk saati\n\nOynatici, internete cikisi olmayan kapali aglarda calisacak sekilde\nuyarlandi (agda yalniz sunucu ve televizyonlar var).\n\nAg guvenligi:\n- Release ag guvenlik yapilandirmasi artik panel adresinden URETILIYOR\n  (GenerateNetworkSecurityConfig). Panel HTTPS ise cleartext hicbir adrese\n  acilmaz; HTTP ise YALNIZ o host icin acilir, base-config kapali kalir\n- Manifest, yapilandirmayi tpicNetworkSecurityConfig placeholder'i ile\n  varyanta gore secer; uretilen kaynak ayri adla durur ki src/main'deki\n  kati varsayilanla catismasin\n- scripts/kurulum.sh --lan ve kurulum.bat lan: izole ag modu, acik uyariyla\n- Gerekce: izole agda public CA'dan sertifika alinamaz; internal CA ise TLS\n  gecerliligini cihaz saatine baglar ve NTP'siz agda saati bozulan TV panele\n  hic baglanamaz — tum filo tek elektrik kesintisiyle dusebilir\n\nKiosk saati (sozlesme 1.1.0):\n- ServerTimeSource: her manifest senkronunda sunucu zamanini capa olarak\n  saklar, iki senkron arasini monotonik sayacla sayar\n- Capa 1 saatten eskiyse saat ve tarih hic cizilmez; yanlis saat gostermek\n  hic gostermemekten kotudur\n- KioskChrome saati LocalServerClock uzerinden bu kaynaktan alir; cihazin\n  duvar saati artik ekrana cizilmiyor\n- Bozuk serverTime manifesti reddettirmez, yalniz saati dusurur\n- Yetki dustugunde capa da sifirlanir\n- Diagnostics ekraninda sunucu saati ve cihaz sapmasi gosteriliyor (saha teshisi)\n\nSozlesme dizini ve ortak dokumanlar tpic-web ile bayt-bayt senkron.\n","verified_at":"2026-08-06T02:31:51Z"}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/a83b65b565d972a5a9e0725843af450fb2650f38","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/a83b65b565d972a5a9e0725843af450fb2650f38","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/a83b65b565d972a5a9e0725843af450fb2650f38/comments","author":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"4d04bcf1db830429560572dc801915d4293c88f0","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/4d04bcf1db830429560572dc801915d4293c88f0","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/4d04bcf1db830429560572dc801915d4293c88f0"}],"repo":{"name":"tpic-app","full_name":"fyildirim-debug/tpic-app","html_url":"https://github.com/fyildirim-debug/tpic-app","language":"Kotlin","description":"TPIC Android TV dijital tabela oynaticisi (native Kotlin + Compose for TV)","private":true}},{"sha":"24821cea63cae420267991b90a69f92773083b95","node_id":"C_kwDORUglhdoAKDI0ODIxY2VhNjNjYWU0MjAyNjc5OTFiOTBhNjlmOTI3NzMwODNiOTU","commit":{"author":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:30:52Z"},"committer":{"name":"Claude","email":"noreply@anthropic.com","date":"2026-08-06T02:30:52Z"},"message":"feat(izole-kurulum): internetsiz agda calisan sunucu dagitimi ve sunucu saati\n\nPanel, internete cikisi olmayan kapali aglara (yalniz sunucu + televizyonlar)\ndagitilabilir hale getirildi.\n\nDagitim paketi:\n- next.config.js output: \"standalone\" — imaj kucuk ve kendi kendine yeter\n- Dockerfile: cok asamali uretim imaji; prisma CLI ayri ve eksiksiz bir agacla\n  /tools altina kurulur, seed betigi derleme aninda tek dosyaya paketlenir\n  (calisma imajinda tsx ve seed bagimliliklari gerekmesin diye)\n- docker-compose.prod.yml: postgres host portuna acilmaz, panel yalniz\n  secilen arayuze baglanir\n- scripts/paket-olustur.sh: internetli makinede cevrimdisi paket uretir\n- scripts/izole-kurulum.sh: izole sunucuda docker load + migrate + seed + dogrulama\n- .env.izole.example, .dockerignore, dist/ gitignore\n\nSozlesme 1.1.0 — kiosk saati:\n- Manifeste serverTime alani eklendi (ISO-8601, UTC, milisaniyeli)\n- Sozlesmeye clock bolumu: capa kurali, monotonik ilerleme, bayatlama esigi\n- Izole agda NTP olmadigi ve RTC pili olmayan TV kutulari her elektrik\n  kesintisinde saatlerini yitirdigi icin cihazin duvar saati guvenilmez;\n  kiosk saatinin tek referansi sunucudur\n\nDokumantasyon:\n- docs/IZOLE_KURULUM.md (iki repoda ayni): topoloji, paketleme, kurulum,\n  HTTPS yerine host'a sinirli cleartext tercihinin gerekcesi, saat, yedekleme,\n  kurulum kontrol listesi, sorun giderme\n- ENTEGRASYON.md uyum matrisi 1.1.0 satiri ve saat bolumu\n- SECURITY.md 6.1: izole agda tasima katmani ve kabul edilen risk\n- MOBILE_API.md ve oynatici sartnamesinde serverTime","tree":{"sha":"5c0ad77f2174c47db7f63c25d7d555690fb8e166","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/trees/5c0ad77f2174c47db7f63c25d7d555690fb8e166"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/commits/24821cea63cae420267991b90a69f92773083b95","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQOJPrbKs\nlOmcoefWO9iAvTMpZqaGD3lMt2Y+/P/yjBjGfZ3wodJcXrzuMfTabuJgTXjERrlaC4JvEdHH1t4e\n7Qg=\n-----END SSH SIGNATURE-----","payload":"tree 5c0ad77f2174c47db7f63c25d7d555690fb8e166\nparent 57e0b81b11e9826b65a121575bffed0a26e559a0\nauthor Claude <noreply@anthropic.com> 1785983452 +0000\ncommitter Claude <noreply@anthropic.com> 1785983452 +0000\n\nfeat(izole-kurulum): internetsiz agda calisan sunucu dagitimi ve sunucu saati\n\nPanel, internete cikisi olmayan kapali aglara (yalniz sunucu + televizyonlar)\ndagitilabilir hale getirildi.\n\nDagitim paketi:\n- next.config.js output: \"standalone\" — imaj kucuk ve kendi kendine yeter\n- Dockerfile: cok asamali uretim imaji; prisma CLI ayri ve eksiksiz bir agacla\n  /tools altina kurulur, seed betigi derleme aninda tek dosyaya paketlenir\n  (calisma imajinda tsx ve seed bagimliliklari gerekmesin diye)\n- docker-compose.prod.yml: postgres host portuna acilmaz, panel yalniz\n  secilen arayuze baglanir\n- scripts/paket-olustur.sh: internetli makinede cevrimdisi paket uretir\n- scripts/izole-kurulum.sh: izole sunucuda docker load + migrate + seed + dogrulama\n- .env.izole.example, .dockerignore, dist/ gitignore\n\nSozlesme 1.1.0 — kiosk saati:\n- Manifeste serverTime alani eklendi (ISO-8601, UTC, milisaniyeli)\n- Sozlesmeye clock bolumu: capa kurali, monotonik ilerleme, bayatlama esigi\n- Izole agda NTP olmadigi ve RTC pili olmayan TV kutulari her elektrik\n  kesintisinde saatlerini yitirdigi icin cihazin duvar saati guvenilmez;\n  kiosk saatinin tek referansi sunucudur\n\nDokumantasyon:\n- docs/IZOLE_KURULUM.md (iki repoda ayni): topoloji, paketleme, kurulum,\n  HTTPS yerine host'a sinirli cleartext tercihinin gerekcesi, saat, yedekleme,\n  kurulum kontrol listesi, sorun giderme\n- ENTEGRASYON.md uyum matrisi 1.1.0 satiri ve saat bolumu\n- SECURITY.md 6.1: izole agda tasima katmani ve kabul edilen risk\n- MOBILE_API.md ve oynatici sartnamesinde serverTime\n","verified_at":"2026-08-06T02:31:34Z"}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/24821cea63cae420267991b90a69f92773083b95","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/24821cea63cae420267991b90a69f92773083b95","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/24821cea63cae420267991b90a69f92773083b95/comments","author":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"claude","id":81847,"node_id":"MDQ6VXNlcjgxODQ3","avatar_url":"https://avatars.githubusercontent.com/u/81847?v=4","gravatar_id":"","url":"https://api.github.com/users/claude","html_url":"https://github.com/claude","followers_url":"https://api.github.com/users/claude/followers","following_url":"https://api.github.com/users/claude/following{/other_user}","gists_url":"https://api.github.com/users/claude/gists{/gist_id}","starred_url":"https://api.github.com/users/claude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claude/subscriptions","organizations_url":"https://api.github.com/users/claude/orgs","repos_url":"https://api.github.com/users/claude/repos","events_url":"https://api.github.com/users/claude/events{/privacy}","received_events_url":"https://api.github.com/users/claude/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"57e0b81b11e9826b65a121575bffed0a26e559a0","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/57e0b81b11e9826b65a121575bffed0a26e559a0","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/57e0b81b11e9826b65a121575bffed0a26e559a0"}],"repo":{"name":"tpic-web","full_name":"fyildirim-debug/tpic-web","html_url":"https://github.com/fyildirim-debug/tpic-web","language":"TypeScript","description":null,"private":true}},{"sha":"4d04bcf1db830429560572dc801915d4293c88f0","node_id":"C_kwDOTlxYddoAKDRkMDRiY2YxZGI4MzA0Mjk1NjA1NzJkYzgwMTkxNWQ0MjkzYzg4ZjA","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:41Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:41Z"},"message":"Kiosk yüzeyi yeniden tasarlandı: tek tema, altı şema\n\nOnaylanan \"TPIC Ekran Düzenleri\" tasarımı oynatıcıya uygulandı. Yayına giren\ngirdiler video, görsel ve kayan yazıyla sınırlandı; marka kilidi ve saat\ndüzen bileşeni olmaktan çıkıp temanın çizdiği üstyapıya taşındı.\n\nÇizim katmanı:\n- KioskTheme jetonları, KioskScale tuval-ekran çevirici ve KioskChrome künyesi\n  eklendi; künye tam sahnede ışık perdesinde, çerçeveli sahnede 150 px şeritte\n- MediaCaption: medya başlığı, alt etiket, slot sırası ve ilerleme çizgileri\n- TickerComponent sabit DUYURU rozetiyle yeniden yazıldı\n- BrandComponent, ClockComponent, TextComponent ve EmptyComponent kaldırıldı;\n  işlevleri tema üstyapısına ve MediaCaption'a taşındı\n- Video artık RESIZE_MODE_FIT ile letterbox oynatılıyor; kırpılan video altyazı\n  ve logo kaybediyordu\n\nSözleşme ve model:\n- ComponentBinding: video/görsel slotları title ve caption taşıyor, marka ve\n  saat bileşenleri ChromeSlot'a düşüp çizilmiyor\n- Manifeste device alanı eklendi (DTO, DeviceIdentity modeli ve mapper); künye\n  sağ tarafında bölge ve cihaz adı gösteriliyor\n- Space Grotesk, IBM Plex Sans ve IBM Plex Mono yazı tipleri res/font altına\n  gömüldü\n\nAltyapı:\n- .gitattributes ile contract/ ve senkron belgeleri LF'e sabitlendi; böylece\n  contract.sha256 kilidi Windows checkout'unda da tutuyor\n\nCo-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>","tree":{"sha":"a3ed05dc51f5fbb540642f1098ac0c4ba2eec8d9","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/trees/a3ed05dc51f5fbb540642f1098ac0c4ba2eec8d9"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/git/commits/4d04bcf1db830429560572dc801915d4293c88f0","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/4d04bcf1db830429560572dc801915d4293c88f0","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/4d04bcf1db830429560572dc801915d4293c88f0","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/4d04bcf1db830429560572dc801915d4293c88f0/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"1f1a6c34ac17b4b8873595a4f64685928d958b8a","url":"https://api.github.com/repos/fyildirim-debug/tpic-app/commits/1f1a6c34ac17b4b8873595a4f64685928d958b8a","html_url":"https://github.com/fyildirim-debug/tpic-app/commit/1f1a6c34ac17b4b8873595a4f64685928d958b8a"}],"repo":{"name":"tpic-app","full_name":"fyildirim-debug/tpic-app","html_url":"https://github.com/fyildirim-debug/tpic-app","language":"Kotlin","description":"TPIC Android TV dijital tabela oynaticisi (native Kotlin + Compose for TV)","private":true}},{"sha":"57e0b81b11e9826b65a121575bffed0a26e559a0","node_id":"C_kwDORUglhdoAKDU3ZTBiODFiMTFlOTgyNmI2NWExMjE1NzViZmZlZDBhMjZlNTU5YTA","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:17Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-04T21:33:17Z"},"message":"Kiosk yüzeyi yeniden tasarlandı, yayın planı düzenleme eklendi\n\nOnaylanan \"TPIC Ekran Düzenleri\" tasarımı uygulandı. Yayına giren girdiler\nvideo, görsel ve kayan yazıyla sınırlandı; marka kilidi ve saat düzen\nbileşeni olmaktan çıkıp tema üstyapısına taşındı. On iki sistem düzeninin\nyerini altı şema aldı.\n\nKiosk çizimi:\n- KioskCanvas tuvali, KioskChrome künyesi (marka kilidi + saat) ve iki sahne\n  biçimi: tam sahne ışık perdeli, çerçeveli sahne 150 px künye şeritli\n- Medya künyesi: başlık, alt etiket, slot sırası ve ilerleme çizgileri\n- Kayan yazı bandı sabit DUYURU rozetiyle yeniden yazıldı\n- Tipografi Space Grotesk, IBM Plex Sans ve IBM Plex Mono ailelerine geçti\n\nPanel:\n- Video ve görsel bileşenleri props.title ve props.caption taşıyor; düzen\n  editörüne bu alanlar için giriş paneli eklendi\n- Ekran düzenleri kartları artık gerçek medya ve künyeyle çiziliyor\n- Yayın planı düzenleme: PUT /api/yayin-planlari/[id], updateScheduleSchema\n  ve updateSchedule servisi. Çakışma denetiminde plan kendisi hariç tutulur;\n  yayında olan planın süresi uzatılabilsin diye başlangıç tarihinin gelecekte\n  olma şartı güncellemede aranmaz\n- prisma/seed.ts eskiyen sistem düzen ve şablonlarını temizliyor\n- TPIC kurumsal sitesinden örnek içerik aktaran betik eklendi\n\nAltyapı:\n- .gitattributes ile contract/ ve senkron belgeleri LF'e sabitlendi; böylece\n  contract.sha256 kilidi Windows checkout'unda da tutuyor\n- Sözleşme testindeki Windows yol ayracı karşılaştırması düzeltildi\n\nCo-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>","tree":{"sha":"70c738b1245a182ec7a8ecb1ea1bc35971690eba","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/trees/70c738b1245a182ec7a8ecb1ea1bc35971690eba"},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/git/commits/57e0b81b11e9826b65a121575bffed0a26e559a0","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/57e0b81b11e9826b65a121575bffed0a26e559a0","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/57e0b81b11e9826b65a121575bffed0a26e559a0","comments_url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/57e0b81b11e9826b65a121575bffed0a26e559a0/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"4f0403d2958c150ff16b38cc5203b502f690123c","url":"https://api.github.com/repos/fyildirim-debug/tpic-web/commits/4f0403d2958c150ff16b38cc5203b502f690123c","html_url":"https://github.com/fyildirim-debug/tpic-web/commit/4f0403d2958c150ff16b38cc5203b502f690123c"}],"repo":{"name":"tpic-web","full_name":"fyildirim-debug/tpic-web","html_url":"https://github.com/fyildirim-debug/tpic-web","language":"TypeScript","description":null,"private":true}},{"sha":"551ba6401e28e1b2d0c5d4f6919273b2971cb800","node_id":"C_kwDOQZc9mNoAKDU1MWJhNjQwMWUyOGUxYjJkMGM1ZDRmNjkxOTI3M2IyOTcxY2I4MDA","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-04T10:51:19Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-04T10:51:19Z"},"message":"feat(site): ArnexLab sitesi furkanyildirim.com yonlendirme sayfasina donusturuldu\n\n- 10 saniyelik geri sayimli, halka animasyonlu yonlendirme ekrani eklendi\n- JS calismazsa devreye giren meta refresh yedegi eklendi\n- ArnexLab kimligine uygun koyu tema ve zumrut vurgu rengi uygulandi\n- Portfolyo icerigi ve kullanilmayan GitHub API katmani kaldirildi\n- Metadata, favicon ve Organization schema ArnexLab icin guncellendi","tree":{"sha":"debe4aec8355ddf6e58adaf112bc5f03f677fe5f","url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/git/trees/debe4aec8355ddf6e58adaf112bc5f03f677fe5f"},"url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/git/commits/551ba6401e28e1b2d0c5d4f6919273b2971cb800","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQCfg6i/u\nqlCHHHTaJnJIT31DPh8fYPF0xBNiUeXa3Lt0ohOjuY0klGLgZ4aYhJEBKzCCLfzV9ssRXFCCsi8u\nyAY=\n-----END SSH SIGNATURE-----","payload":"tree debe4aec8355ddf6e58adaf112bc5f03f677fe5f\nparent 166bba53ae7c7d03954abffdd0dff548a2db13a0\nauthor Furkan YILDIRIM <posta@furkanyildirim.com> 1785840679 +0000\ncommitter Furkan YILDIRIM <posta@furkanyildirim.com> 1785840679 +0000\n\nfeat(site): ArnexLab sitesi furkanyildirim.com yonlendirme sayfasina donusturuldu\n\n- 10 saniyelik geri sayimli, halka animasyonlu yonlendirme ekrani eklendi\n- JS calismazsa devreye giren meta refresh yedegi eklendi\n- ArnexLab kimligine uygun koyu tema ve zumrut vurgu rengi uygulandi\n- Portfolyo icerigi ve kullanilmayan GitHub API katmani kaldirildi\n- Metadata, favicon ve Organization schema ArnexLab icin guncellendi\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/commits/551ba6401e28e1b2d0c5d4f6919273b2971cb800","html_url":"https://github.com/fyildirim-debug/arnexlabwebsite/commit/551ba6401e28e1b2d0c5d4f6919273b2971cb800","comments_url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/commits/551ba6401e28e1b2d0c5d4f6919273b2971cb800/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"166bba53ae7c7d03954abffdd0dff548a2db13a0","url":"https://api.github.com/repos/fyildirim-debug/arnexlabwebsite/commits/166bba53ae7c7d03954abffdd0dff548a2db13a0","html_url":"https://github.com/fyildirim-debug/arnexlabwebsite/commit/166bba53ae7c7d03954abffdd0dff548a2db13a0"}],"repo":{"name":"arnexlabwebsite","full_name":"fyildirim-debug/arnexlabwebsite","html_url":"https://github.com/fyildirim-debug/arnexlabwebsite","language":"TypeScript","description":null,"private":true}},{"sha":"6ebb522901460a7ae74ead5f8223dc54da38967f","node_id":"C_kwDOTpLoHtoAKDZlYmI1MjI5MDE0NjBhN2FlNzRlYWQ1ZjgyMjNkYzU0ZGEzODk2N2Y","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:24:34Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:24:34Z"},"message":"feat: GNOME Shell frontend alongside the KDE plasmoid\n\nThe plasmoid only runs under Plasma, so the project had nothing to offer\non GNOME. This adds a second frontend in gnome/ that draws the same data\nin the GNOME top bar, and teaches install.sh to target either desktop.\n\nBoth frontends share their presentation rules rather than reimplementing\nthem: gnome/lib/codexbar.js is a straight port of the helpers in\npackage/contents/ui/main.qml — window parsing and de-duplication, the\nquota colour ladder, pace-aware colouring, provider naming, countdowns,\nthe localised pace and cost lines, and the crossing-based alert logic.\nKeeping the rules in one readable module means \"75 % used\" looks the same\non both desktops, and it can be exercised with plain gjs.\n\nThe GNOME side owns only what is GNOME: a PanelMenu.Button with one chip\nper provider, a popup of provider cards, GLib timers, Gio.Subprocess\npolling and Main.notify. Notable choices:\n\n- The CLI is spawned as an argv array, never through a shell, because the\n  CLI path and the provider filter come from user settings.\n- Countdown labels are kept and refreshed on a low-priority tick instead\n  of rebuilding cards, and the tick idles while the popup is closed.\n- Sparklines are drawn with St.DrawingArea/Cairo: one repaint handler is\n  cheaper than 64 actors and sub-pixel bar widths stay evenly spaced.\n- Settings changes are split into redraw-only and refetch keys so tweaking\n  the panel does not hit the network.\n- disable() tears down timers, cancellables and signal handlers, as the\n  review guidelines require for lock-screen disable.\n\nSettings move to GSettings with kebab-case keys mirroring the KConfigXT\nentries one for one; prefs.js exposes all twelve through libadwaita.\n\ninstall.sh now detects the desktop from XDG_CURRENT_DESKTOP, falls back to\nwhich tools exist, and accepts --kde, --gnome and --all; a per-target\nfailure no longer aborts the other. uninstall.sh is new and symmetric.\nThe KDE package is untouched.","tree":{"sha":"8a4ab5348ead56e11c6c74bb2b5853d0084b1ce0","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/8a4ab5348ead56e11c6c74bb2b5853d0084b1ce0"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/6ebb522901460a7ae74ead5f8223dc54da38967f","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/6ebb522901460a7ae74ead5f8223dc54da38967f","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/6ebb522901460a7ae74ead5f8223dc54da38967f","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/6ebb522901460a7ae74ead5f8223dc54da38967f/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"cf649a6f72cdb2394878019f891c3225b246d07d","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/cf649a6f72cdb2394878019f891c3225b246d07d","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/cf649a6f72cdb2394878019f891c3225b246d07d"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","node_id":"C_kwDOTnDMj9oAKDhkMGVkYWZkMzdhMWM1ZGIwMGMyYTVjMDNlZWZjMmNmM2QxZmE2NWE","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:01:36Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-03T16:01:36Z"},"message":"fix: run on libadwaita 1.5 and let the desktop match the window\n\nAdw.Spinner was added in libadwaita 1.6, so the requirement page raised\nAttributeError and the window never opened on Ubuntu 24.04, Zorin OS 18\nand Debian 12. A make_spinner() helper now prefers Adw.Spinner and falls\nback to Gtk.Spinner, which GTK 4 has always had and which looks identical\nat 32x32.\n\nThe window also reported WM_CLASS \"python3\", because GTK derives it from\nargv[0] and the script is run through the interpreter. Neither GNOME Shell\nnor Plasma could tie the window to the .desktop file, so it drew a generic\nicon and refused to group with the launcher. main() now calls\nGLib.set_prgname(APP_ID) and the desktop entry declares the matching\nStartupWMClass.","tree":{"sha":"c3b9c60f60c955d020638e5bc2e00b7d1c41ac7f","url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/git/trees/c3b9c60f60c955d020638e5bc2e00b7d1c41ac7f"},"url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/git/commits/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/commits/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","html_url":"https://github.com/fyildirim-debug/github-project-downloader/commit/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a","comments_url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/commits/8d0edafd37a1c5db00c2a5c03eefc2cf3d1fa65a/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"13027871ce88f9a6144442bea1f4192cbc3282a6","url":"https://api.github.com/repos/fyildirim-debug/github-project-downloader/commits/13027871ce88f9a6144442bea1f4192cbc3282a6","html_url":"https://github.com/fyildirim-debug/github-project-downloader/commit/13027871ce88f9a6144442bea1f4192cbc3282a6"}],"repo":{"name":"github-project-downloader","full_name":"fyildirim-debug/github-project-downloader","html_url":"https://github.com/fyildirim-debug/github-project-downloader","language":"Python","description":"Lists your GitHub repositories and clones the selected one into any folder, straight from the file manager context menu. GTK4/libadwaita, six languages.","private":false}},{"sha":"303f24ac2b9918edb2bc5e8fc821a8c001266fbb","node_id":"C_kwDORRP2O9oAKDMwM2YyNGFjMmI5OTE4ZWRiMmJjNWU4ZmM4MjFhOGMwMDEyNjZmYmI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:48:29Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:48:29Z"},"message":"fix(epg): kok elemandan sonra yorum iceren XMLTV artik reddedilmiyor\n\nyayinakisi.co gibi bazi saglayicilar `</tv>` ardina imza yorumu ekliyor. XML\nkok elemandan sonra yorum ve isleme yonergesine izin verdigi halde kesik icerik\nkontrolu belgenin tam olarak `</tv>` ile bitmesini sart kosuyordu; saglam bir\nrehber \"icerik kesilmis olabilir\" hatasiyla reddediliyordu.\n\nKontrol artik sondaki bosluk, yorum ve isleme yonergelerini ayikladiktan sonra\nyapiliyor. Akis kuyrugu 64 bayttan 4 KB'a cikarildi ki parcalara bolunmus bir\nyorum blogu da dogru degerlendirilsin. Gercekten kesik iceriklerin reddi\nkorunuyor.","tree":{"sha":"c17657e673a474788946604a536285578b8d52e9","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/c17657e673a474788946604a536285578b8d52e9"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/303f24ac2b9918edb2bc5e8fc821a8c001266fbb","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQCaA4nAd\nllxKQqSgVIVw3yQByYXdQH99jTQpOkR+zv814q1m8J/ujVFNKJsnAwo0Ijbl4dqOCvDOdLSKuqbH\niw4=\n-----END SSH SIGNATURE-----","payload":"tree c17657e673a474788946604a536285578b8d52e9\nparent bae81b24cad7201e1cc52948f303f8814f7b792b\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785710909 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785710909 +0000\n\nfix(epg): kok elemandan sonra yorum iceren XMLTV artik reddedilmiyor\n\nyayinakisi.co gibi bazi saglayicilar `</tv>` ardina imza yorumu ekliyor. XML\nkok elemandan sonra yorum ve isleme yonergesine izin verdigi halde kesik icerik\nkontrolu belgenin tam olarak `</tv>` ile bitmesini sart kosuyordu; saglam bir\nrehber \"icerik kesilmis olabilir\" hatasiyla reddediliyordu.\n\nKontrol artik sondaki bosluk, yorum ve isleme yonergelerini ayikladiktan sonra\nyapiliyor. Akis kuyrugu 64 bayttan 4 KB'a cikarildi ki parcalara bolunmus bir\nyorum blogu da dogru degerlendirilsin. Gercekten kesik iceriklerin reddi\nkorunuyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/303f24ac2b9918edb2bc5e8fc821a8c001266fbb","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/303f24ac2b9918edb2bc5e8fc821a8c001266fbb","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/303f24ac2b9918edb2bc5e8fc821a8c001266fbb/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"bae81b24cad7201e1cc52948f303f8814f7b792b","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/bae81b24cad7201e1cc52948f303f8814f7b792b","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/bae81b24cad7201e1cc52948f303f8814f7b792b"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"bae81b24cad7201e1cc52948f303f8814f7b792b","node_id":"C_kwDORRP2O9oAKGJhZTgxYjI0Y2FkNzIwMWUxY2M1Mjk0OGYzMDNmODgxNGY3Yjc5MmI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:40:14Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:40:14Z"},"message":"merge: yapay zeka asistani (162 arac) main'e alindi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla calisan, uygulamanin tamamini\nsunucu tarafi araclarla yoneten sohbet asistani; Markdown'li cevaplar, hesap\nayarlarindaki saglayici formu, katalog aramasiyla saglayici arac limitini asma\nve oturumla birebir esitlenmis yetki siniri. Ayrica Traefik onunde calisan\nDokploy compose dosyasi.","tree":{"sha":"585864fb563494650649946ae2c54d050ae81cee","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/585864fb563494650649946ae2c54d050ae81cee"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/bae81b24cad7201e1cc52948f303f8814f7b792b","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQECZHYU7\n9HRKnmRSLHLS9mY26QCYAT+CM2S911jMBiY5JD7X4k8AThPFaDbG9R8/H3aeH//zHnWxWEFK1Hze\ndwE=\n-----END SSH SIGNATURE-----","payload":"tree 585864fb563494650649946ae2c54d050ae81cee\nparent ce9feae644c12a03064846ccf62fd5768c32a1dd\nparent 57ca017e60c6c7aa722e4f0980d6b13092e73520\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785710414 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785710414 +0000\n\nmerge: yapay zeka asistani (162 arac) main'e alindi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla calisan, uygulamanin tamamini\nsunucu tarafi araclarla yoneten sohbet asistani; Markdown'li cevaplar, hesap\nayarlarindaki saglayici formu, katalog aramasiyla saglayici arac limitini asma\nve oturumla birebir esitlenmis yetki siniri. Ayrica Traefik onunde calisan\nDokploy compose dosyasi.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/bae81b24cad7201e1cc52948f303f8814f7b792b","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/bae81b24cad7201e1cc52948f303f8814f7b792b","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/bae81b24cad7201e1cc52948f303f8814f7b792b/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"ce9feae644c12a03064846ccf62fd5768c32a1dd","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/ce9feae644c12a03064846ccf62fd5768c32a1dd"},{"sha":"57ca017e60c6c7aa722e4f0980d6b13092e73520","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/57ca017e60c6c7aa722e4f0980d6b13092e73520"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"57ca017e60c6c7aa722e4f0980d6b13092e73520","node_id":"C_kwDORRP2O9oAKDU3Y2EwMTdlNjBjNmM3YWE3MjJlNGYwOTgwZDZiMTMwOTJlNzM1MjA","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:27:26Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:27:26Z"},"message":"fix(ai): kategori kopyalama artik akis adresini degistirmiyor\n\nAyni listede bir akis adresi yalnizca bir kez bulunabildigi icin duplicate_category\nkopyalara ?copy=... parametresi ekliyordu; bu, bazi saglayicilarda oynatmayi\nbozabilir. Arac artik kategorinin bos bir kopyasini olusturuyor ve kanallarin\nneden kopyalanmadigini modele acikliyor.","tree":{"sha":"585864fb563494650649946ae2c54d050ae81cee","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/585864fb563494650649946ae2c54d050ae81cee"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQILv3ABm\nQUrSTSx83ZNbD7WP1iSY15sGLEFclzk3iswKK68/uIxre75GCInV6Cqgh288liHcOoqBp1p8mj7P\nfwk=\n-----END SSH SIGNATURE-----","payload":"tree 585864fb563494650649946ae2c54d050ae81cee\nparent 46bf1b90e2f0d9f054255171cef51190cead2646\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785709646 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785709646 +0000\n\nfix(ai): kategori kopyalama artik akis adresini degistirmiyor\n\nAyni listede bir akis adresi yalnizca bir kez bulunabildigi icin duplicate_category\nkopyalara ?copy=... parametresi ekliyordu; bu, bazi saglayicilarda oynatmayi\nbozabilir. Arac artik kategorinin bos bir kopyasini olusturuyor ve kanallarin\nneden kopyalanmadigini modele acikliyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/57ca017e60c6c7aa722e4f0980d6b13092e73520","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/57ca017e60c6c7aa722e4f0980d6b13092e73520/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"46bf1b90e2f0d9f054255171cef51190cead2646","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/46bf1b90e2f0d9f054255171cef51190cead2646","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/46bf1b90e2f0d9f054255171cef51190cead2646"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"46bf1b90e2f0d9f054255171cef51190cead2646","node_id":"C_kwDORRP2O9oAKDQ2YmYxYjkwZTJmMGQ5ZjA1NDI1NTE3MWNlZjUxMTkwY2VhZDI2NDY","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:25:47Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:25:47Z"},"message":"feat(ai): yetenek katalogu 162 araca cikarildi, Markdown ve yetki esitligi\n\nAraclar konu bazli modullere ayrildi (playlists, categories, channels, epg,\nimports, exports, account) ve 55'ten 162'ye cikarildi: liste kopyalama ve\nkarsilastirma, kategori birlestirme/bolme/otomatik siniflandirma, kanal adi\ntemizleme (kalite etiketi, harf duzeni, on ek/son ek), akis adresinde\nbul-degistir, mukerrer temizleme, cok olcutlu siralama, tekil EPG eslestirme ve\noneri, kutuphaneden kaynak ekleme, kategori secmeli Xtream import, gorunum ve\npaylasim yonetimi, hesap/kullanim raporlari.\n\nSaglayicilar istek basina arac sayisini sinirladigi icin (OpenAI'de 128) her\nturda ilk 120 arac ve uc meta arac gonderilir; model listesinde olmayan bir\nyetenegi search_capabilities ile bulup invoke_capability ile ayni yetki\nkontrollerinden gecerek calistirir.\n\nAsistan cevaplari Markdown olarak isleniyor: govde once HTML olarak kacislanir,\netiketler ancak sonra bilinen kaliplardan uretilir, http(s) disi baglanti\nsemalari baglanti yapilmaz.\n\nYetki, oturum sahibiyle birebir esitlendi: kimlik yalnizca oturumdan alinir,\nmodel argumanlarindaki userId/user_id/ownerId/is_admin anahtarlari araca\nulasmadan ayiklanir, oturumsuz cagri reddedilir ve katalogda hicbir yonetici\naraci yer almaz.","tree":{"sha":"b97244babd41ac5c96a6b2524ae8b0c0e792ee78","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/b97244babd41ac5c96a6b2524ae8b0c0e792ee78"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/46bf1b90e2f0d9f054255171cef51190cead2646","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQD2GPKon\n+KiBDEHkh84wJuhIN+fffvEnr2s5z3sjmpowtcZkhWGO8qKn/ovK04+kRxsHtqC9vxKOX7PIdM7f\npQQ=\n-----END SSH SIGNATURE-----","payload":"tree b97244babd41ac5c96a6b2524ae8b0c0e792ee78\nparent 2708b1c49ae0da28b4fdd29877df02c7765d7b41\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785709547 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785709547 +0000\n\nfeat(ai): yetenek katalogu 162 araca cikarildi, Markdown ve yetki esitligi\n\nAraclar konu bazli modullere ayrildi (playlists, categories, channels, epg,\nimports, exports, account) ve 55'ten 162'ye cikarildi: liste kopyalama ve\nkarsilastirma, kategori birlestirme/bolme/otomatik siniflandirma, kanal adi\ntemizleme (kalite etiketi, harf duzeni, on ek/son ek), akis adresinde\nbul-degistir, mukerrer temizleme, cok olcutlu siralama, tekil EPG eslestirme ve\noneri, kutuphaneden kaynak ekleme, kategori secmeli Xtream import, gorunum ve\npaylasim yonetimi, hesap/kullanim raporlari.\n\nSaglayicilar istek basina arac sayisini sinirladigi icin (OpenAI'de 128) her\nturda ilk 120 arac ve uc meta arac gonderilir; model listesinde olmayan bir\nyetenegi search_capabilities ile bulup invoke_capability ile ayni yetki\nkontrollerinden gecerek calistirir.\n\nAsistan cevaplari Markdown olarak isleniyor: govde once HTML olarak kacislanir,\netiketler ancak sonra bilinen kaliplardan uretilir, http(s) disi baglanti\nsemalari baglanti yapilmaz.\n\nYetki, oturum sahibiyle birebir esitlendi: kimlik yalnizca oturumdan alinir,\nmodel argumanlarindaki userId/user_id/ownerId/is_admin anahtarlari araca\nulasmadan ayiklanir, oturumsuz cagri reddedilir ve katalogda hicbir yonetici\naraci yer almaz.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/46bf1b90e2f0d9f054255171cef51190cead2646","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/46bf1b90e2f0d9f054255171cef51190cead2646","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/46bf1b90e2f0d9f054255171cef51190cead2646/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"2708b1c49ae0da28b4fdd29877df02c7765d7b41","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/2708b1c49ae0da28b4fdd29877df02c7765d7b41"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"cf649a6f72cdb2394878019f891c3225b246d07d","node_id":"C_kwDOTpLoHtoAKGNmNjQ5YTZmNzJjZGIyMzk0ODc4MDE5Zjg5MWMzMjI1YjI0NmQwN2Q","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T22:24:28Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T22:24:28Z"},"message":"icons: fix Claude logo not rendering (duplicate fill attribute)\n\nThe single <path> in claude.svg declared `fill` twice. Qt's XML parser\ntreats a redefined attribute as fatal, so QSvgRenderer rejected the whole\ndocument (isValid=false, defaultSize -1x-1) and Kirigami.Icon drew\nnothing. Dropped the duplicate.\n\nAlso replaced the root `width=\"1em\" height=\"1em\"` with 24x24; Qt SVG\nTiny 1.2 has no `em` unit support.","tree":{"sha":"e7cb7688231f8bec5fa1a65f60e03c038f316f31","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/e7cb7688231f8bec5fa1a65f60e03c038f316f31"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/cf649a6f72cdb2394878019f891c3225b246d07d","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/cf649a6f72cdb2394878019f891c3225b246d07d","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/cf649a6f72cdb2394878019f891c3225b246d07d","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/cf649a6f72cdb2394878019f891c3225b246d07d/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"2d6ab10a995231532e8002e443c8aee14ba69f6a","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/2d6ab10a995231532e8002e443c8aee14ba69f6a"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"2708b1c49ae0da28b4fdd29877df02c7765d7b41","node_id":"C_kwDORRP2O9oAKDI3MDhiMWM0OWFlMGRhMjhiNGZkZDI5ODc3ZGYwMmM3NzY1ZDdiNDE","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:04:12Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T22:04:12Z"},"message":"fix(ai): saglayici hata gerekcesi gorunur oldu, ayarlar hesap sayfasina eklendi\n\n400 yanitlarinda yalnizca \"Uzak sunucu HTTP 400 dondurdu\" goruluyordu; safeFetch\nartik istenildiginde hata govdesini (en fazla 16 KB) yakaliyor ve asistan\nsaglayicinin gerekcesini kullaniciya ve sunucu gunlugune yaziyor. Temperature\nveya tool_choice reddedilen modellerde istek bir kez sadelestirilip yeniden\ndeneniyor.\n\nArac semalari gecit uyumlulugu icin sadelestirildi: additionalProperties\nkaldirildi ve parametresiz iki arac gercek istege bagli alan aldi — OpenAI\nsemasini Anthropic/Gemini bicimine ceviren gecitler bos properties ve ek\nanahtarlarda 400 donebiliyor.\n\nAyar formu AiSettingsForm bilesenine tasindi; hem sohbet paneli hem de hesap\nayarlari sayfasi ayni formu kullaniyor, biri kaydettiginde digeri guncelleniyor.","tree":{"sha":"7c5f0218bba9df7674f96cefaa7d49676aef6723","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/7c5f0218bba9df7674f96cefaa7d49676aef6723"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQLiuPzcY\nf3jS6tOHBOJMa6WsxjAxGKK5Hqx8eyysWBK3+ZvQmv8EtOOojAGhCsHzV82wi3HsnQS/VwzEdkWo\nCgM=\n-----END SSH SIGNATURE-----","payload":"tree 7c5f0218bba9df7674f96cefaa7d49676aef6723\nparent 902d4d4c041604cafd46802693f6d9d8e2c570ce\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785708252 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785708252 +0000\n\nfix(ai): saglayici hata gerekcesi gorunur oldu, ayarlar hesap sayfasina eklendi\n\n400 yanitlarinda yalnizca \"Uzak sunucu HTTP 400 dondurdu\" goruluyordu; safeFetch\nartik istenildiginde hata govdesini (en fazla 16 KB) yakaliyor ve asistan\nsaglayicinin gerekcesini kullaniciya ve sunucu gunlugune yaziyor. Temperature\nveya tool_choice reddedilen modellerde istek bir kez sadelestirilip yeniden\ndeneniyor.\n\nArac semalari gecit uyumlulugu icin sadelestirildi: additionalProperties\nkaldirildi ve parametresiz iki arac gercek istege bagli alan aldi — OpenAI\nsemasini Anthropic/Gemini bicimine ceviren gecitler bos properties ve ek\nanahtarlarda 400 donebiliyor.\n\nAyar formu AiSettingsForm bilesenine tasindi; hem sohbet paneli hem de hesap\nayarlari sayfasi ayni formu kullaniyor, biri kaydettiginde digeri guncelleniyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/2708b1c49ae0da28b4fdd29877df02c7765d7b41","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/2708b1c49ae0da28b4fdd29877df02c7765d7b41/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"902d4d4c041604cafd46802693f6d9d8e2c570ce","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/902d4d4c041604cafd46802693f6d9d8e2c570ce"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"902d4d4c041604cafd46802693f6d9d8e2c570ce","node_id":"C_kwDORRP2O9oAKDkwMmQ0ZDRjMDQxNjA0Y2FmZDQ2ODAyNjkzZjZkOWQ4ZTJjNTcwY2U","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:52:50Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:52:50Z"},"message":"chore(deploy): Traefik onunde calisan Dokploy compose dosyasi eklendi","tree":{"sha":"9088ec8480d16fd20e0a919a7b981d03340e18cb","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/9088ec8480d16fd20e0a919a7b981d03340e18cb"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQMmFGclo\nlOjOt8UMShHpcOmxZu3opuIatuUthB8kxwxDDExMODcoK8W8d4Lg02aZNDKnzzQWD2N1/iQT+Vd5\n7Q8=\n-----END SSH SIGNATURE-----","payload":"tree 9088ec8480d16fd20e0a919a7b981d03340e18cb\nparent 9e8e70f25f6a06b79d93d70621778ea9d907a2bc\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785707570 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785707570 +0000\n\nchore(deploy): Traefik onunde calisan Dokploy compose dosyasi eklendi\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/902d4d4c041604cafd46802693f6d9d8e2c570ce","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/902d4d4c041604cafd46802693f6d9d8e2c570ce/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"9e8e70f25f6a06b79d93d70621778ea9d907a2bc","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/9e8e70f25f6a06b79d93d70621778ea9d907a2bc"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"9e8e70f25f6a06b79d93d70621778ea9d907a2bc","node_id":"C_kwDORRP2O9oAKDllOGU3MGYyNWY2YTA2Yjc5ZDkzZDcwNjIxNzc4ZWE5ZDkwN2EyYmM","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:48:42Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T21:48:42Z"},"message":"feat(ai): uygulamanin tamamini yoneten yapay zeka asistani eklendi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla (base URL + API anahtari +\nsaglayicidan cekilen model listesi) calisan sohbet asistani. Sunucu tarafinda\n55 arac ile playlist/kategori/kanal yonetimi, siralama, toplu yeniden\nadlandirma, EPG eslestirme ve rehberden logo cekme, M3U/Xtream import-sync,\npaylasim, filtre kurallari, saglik taramasi, yedekler ve iki playlisti\ntekillestirerek birlestirme yapabiliyor.\n\nAraclar mevcut servis katmanini cagirdigi icin sahiplik ve dogrulama kurallari\ndegismiyor. Yikici araclar izin anahtariyla kapatilabiliyor, calisan her arac\nsohbette iz olarak gosteriliyor. API anahtari AES-256-GCM ile sifreli\nsaklaniyor ve istemciye hicbir zaman donmuyor.","tree":{"sha":"080eea742f36014a0b2a68696e6765168449acdb","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/080eea742f36014a0b2a68696e6765168449acdb"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","comment_count":0,"verification":{"verified":false,"reason":"unknown_key","signature":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgrLzsfFISF4by8Q+FKz27YpkK1USsBB+m\namu1QkJnbDsAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAAQMJZwrVA\np0oL3tRQx0xFSAhIJDaU760V9h02aruuj5uwqArtisZQuBzcuYhfrOBtJBiLSX0PYLkt0G2p31UE\nyg4=\n-----END SSH SIGNATURE-----","payload":"tree 080eea742f36014a0b2a68696e6765168449acdb\nparent ce9feae644c12a03064846ccf62fd5768c32a1dd\nauthor Furkan Yıldırım <posta@furkanyildirim.com> 1785707322 +0000\ncommitter Furkan Yıldırım <posta@furkanyildirim.com> 1785707322 +0000\n\nfeat(ai): uygulamanin tamamini yoneten yapay zeka asistani eklendi\n\nKullanicinin kendi OpenAI uyumlu saglayicisiyla (base URL + API anahtari +\nsaglayicidan cekilen model listesi) calisan sohbet asistani. Sunucu tarafinda\n55 arac ile playlist/kategori/kanal yonetimi, siralama, toplu yeniden\nadlandirma, EPG eslestirme ve rehberden logo cekme, M3U/Xtream import-sync,\npaylasim, filtre kurallari, saglik taramasi, yedekler ve iki playlisti\ntekillestirerek birlestirme yapabiliyor.\n\nAraclar mevcut servis katmanini cagirdigi icin sahiplik ve dogrulama kurallari\ndegismiyor. Yikici araclar izin anahtariyla kapatilabiliyor, calisan her arac\nsohbette iz olarak gosteriliyor. API anahtari AES-256-GCM ile sifreli\nsaklaniyor ve istemciye hicbir zaman donmuyor.\n","verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/9e8e70f25f6a06b79d93d70621778ea9d907a2bc","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/9e8e70f25f6a06b79d93d70621778ea9d907a2bc/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"ce9feae644c12a03064846ccf62fd5768c32a1dd","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/ce9feae644c12a03064846ccf62fd5768c32a1dd"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"2d6ab10a995231532e8002e443c8aee14ba69f6a","node_id":"C_kwDOTpLoHtoAKDJkNmFiMTBhOTk1MjMxNTMyZTgwMDJlNDQzYzhhZWUxNGJhNjlmNmE","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:56:54Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:56:54Z"},"message":"auth: refresh OAuth tokens in the bridge; graphs: detailed per-window history\n\nThe widget showed \"credential is expired\" whenever no omp session had been\nrunning: the bridge only copied whatever token the omp database held, and\nCodexBar refuses to refresh CLI-owned credential files. The bridge now\nrefreshes expired/near-expiry tokens itself against the same endpoints omp\nuses (Kimi device-flow client on auth.kimi.com, Claude Code client on\napi.anthropic.com), writes the rotated pair back into the omp database so\nboth sides stay in sync, and serializes refreshes with an flock so parallel\nwidget polls cannot spend a rotating refresh token twice. Failures stay\nsilent and fall back to the previous behaviour.\n\nHistory is now recorded as [timestamp, usedPercent] pairs, so graphs can be\nspaced by real time and captioned with the span they cover.\n\nThe graph itself is rewritten: full width under each quota bar instead of a\n48x12 strip next to the label, zero baseline with an adaptive top (min 20%,\n30% headroom) so quiet series stay legible, 75%/90% warning guides, the\nnewest sample highlighted, and a \"last 1h 31m\" style caption. It is built\nfrom Items rather than a Canvas because a Canvas in a Plasma popup silently\nskips painting when its paint request loses the availability race.\n\nValues cross into QML as QVariantList, where Array.isArray() is false even\nfor real arrays; pair detection is shape-based now, which is what kept the\nscale NaN and the graph invisible.","tree":{"sha":"668c1e525e6af2eac12f1ca8046391cd5e2f32b0","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/668c1e525e6af2eac12f1ca8046391cd5e2f32b0"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/2d6ab10a995231532e8002e443c8aee14ba69f6a","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/2d6ab10a995231532e8002e443c8aee14ba69f6a/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"038fc841ca95965f9cf278edfd92fcfa35ce2257","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/038fc841ca95965f9cf278edfd92fcfa35ce2257"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"038fc841ca95965f9cf278edfd92fcfa35ce2257","node_id":"C_kwDOTpLoHtoAKDAzOGZjODQxY2E5NTk2NWY5Y2YyNzhlZGZkOTJmY2ZhMzVjZTIyNTc","commit":{"author":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:10:32Z"},"committer":{"name":"Furkan YILDIRIM","email":"posta@furkanyildirim.com","date":"2026-08-02T20:10:32Z"},"message":"compact: restore brand logos, show every quota window with calm styling\n\n- claude.svg had no fill, so the logo only worked as a tinted mask and\n  degraded to an unreadable blob at panel size; give it the brand color\n  and render all provider icons unmasked (true logo shapes) in both the\n  compact view and the provider cards.\n- Compact view shows every quota window again (5h session and weekly),\n  not just the most constrained one. Labels stay dimmed, numbers use the\n  theme text color; severity color and bold only kick in at <= 25% left,\n  so the panel stays quiet unless a quota is actually running out.\n- Tooltip now lists every window per provider with localized labels.","tree":{"sha":"897c342a6ec1d13334128e4b591d5e7aaa9aaaf9","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/trees/897c342a6ec1d13334128e4b591d5e7aaa9aaaf9"},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/git/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/038fc841ca95965f9cf278edfd92fcfa35ce2257","comments_url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/038fc841ca95965f9cf278edfd92fcfa35ce2257/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"3e6a30266b8233feb2cd2cae31d8e27130d3882b","url":"https://api.github.com/repos/fyildirim-debug/codexbar-kde/commits/3e6a30266b8233feb2cd2cae31d8e27130d3882b","html_url":"https://github.com/fyildirim-debug/codexbar-kde/commit/3e6a30266b8233feb2cd2cae31d8e27130d3882b"}],"repo":{"name":"codexbar-kde","full_name":"fyildirim-debug/codexbar-kde","html_url":"https://github.com/fyildirim-debug/codexbar-kde","language":"JavaScript","description":null,"private":false}},{"sha":"4eabcc701594602ca4223a3b55b935b603fc6d82","node_id":"C_kwDOTVyAh9oAKDRlYWJjYzcwMTU5NDYwMmNhNDIyM2EzYjU1YjkzNWI2MDNmYzZkODI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T00:11:34Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-02T00:11:34Z"},"message":"v1.7.5.0 (vc90) — FİLM & DİZİ bölümü + Ayarlar yeniden tasarımı\n\nSİNEMA (yeni ui/screens/cinema/): sekmeli vitrin (FİLMLER|DİZİLER, backdrop +\nhero + poster rayları), film/dizi ortak detay ekranı, sinema tasarım dili.\nRota Routes.CINEMA + hızlı menü girişi; oynatma mevcut VOD_PLAYER'a düşer.\nHero listenin içindedir: sabitken ikinci raya inince üstteki ray yarıda\nkırpılıp yalnız poster başlıkları görünüyordu.\n\nKÜNYE: get_vod_info / get_series_info.info -> MediaDetail (özet, oyuncular,\nyönetmen, tür, ülke, süre, puan). Dizide bölümler + künye TEK çağrıda.\nPaneller aynı bilgiyi farklı anahtarla verdiğinden yedek okunur\n(plot->description, cast->actors, duration->episode_run_time); yinelenen\nisimler tekilleştirilir, bölüm adından \"Dizi - S01E01 -\" öneki soyulur.\nKurallar CinemaMetadataTest (14 vaka) ile bağlandı.\n\nMİGRASYON: includeVod v1.0.17.3'te koda false sabitlenmişti (VOD sunulmuyordu)\n-> mevcut Xtream hesapları için tek seferlik, idempotent migrateIncludeVod().\n\nAYARLAR (SettingsKit.kt): üç bölge (ikonlu ray + ayar listesi + yardım sütunu),\ntek satır dili, tek elden çizilmiş ikon seti. Dar rayda uzun kategori adları\nkırpılıyordu -> railLabel (rayda kısa, başlıkta tam ad).\n\nKünye etiketi softWrap=false: büyük yazı ölçeğinde \"OYUNCULAR\" harf harf alt\nalta kırılıyordu.\n\nDoğrulama: temiz kurulum -> kayıt/giriş -> profil -> Xtream playlist -> canlı\nyayın -> vitrin -> film künyesi + oynatma -> dizi künyesi + bölüm oynatma,\nhepsi R8 (assembleR8Test) APK'sında emülatörde. apksigner v1+v2 true.\nAppwrite latest: vc90 / 1.7.5.0, MD5 03b02bbd... = yerel APK, notes byte\ndüzeyinde CLAUDE.md tablosuyla birebir.","tree":{"sha":"75e8371614f3b190c63d5bcec1acc116b995a635","url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/git/trees/75e8371614f3b190c63d5bcec1acc116b995a635"},"url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/git/commits/4eabcc701594602ca4223a3b55b935b603fc6d82","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/commits/4eabcc701594602ca4223a3b55b935b603fc6d82","html_url":"https://github.com/fyildirim-debug/FyPlayer/commit/4eabcc701594602ca4223a3b55b935b603fc6d82","comments_url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/commits/4eabcc701594602ca4223a3b55b935b603fc6d82/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"484731e18c8770352ff625dbe3ad50ccc109a919","url":"https://api.github.com/repos/fyildirim-debug/FyPlayer/commits/484731e18c8770352ff625dbe3ad50ccc109a919","html_url":"https://github.com/fyildirim-debug/FyPlayer/commit/484731e18c8770352ff625dbe3ad50ccc109a919"}],"repo":{"name":"FyPlayer","full_name":"fyildirim-debug/FyPlayer","html_url":"https://github.com/fyildirim-debug/FyPlayer","language":"Kotlin","description":null,"private":true}},{"sha":"ce9feae644c12a03064846ccf62fd5768c32a1dd","node_id":"C_kwDORRP2O9oAKGNlOWZlYWU2NDRjMTJhMDMwNjQ4NDZjY2Y2MmZkNTc2OGMzMmExZGQ","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T23:37:59Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T23:37:59Z"},"message":"chore: data/ çalışma zamanı dizinini gitignore'a ekle (yedekler ve logolar)","tree":{"sha":"00f9d5e79312457672c5b251b7da97f584ea9b80","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/00f9d5e79312457672c5b251b7da97f584ea9b80"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/ce9feae644c12a03064846ccf62fd5768c32a1dd","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/ce9feae644c12a03064846ccf62fd5768c32a1dd/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"842d59abd1c150dda27db8c506391dc7d7ca82db","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/842d59abd1c150dda27db8c506391dc7d7ca82db","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/842d59abd1c150dda27db8c506391dc7d7ca82db"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}},{"sha":"842d59abd1c150dda27db8c506391dc7d7ca82db","node_id":"C_kwDORRP2O9oAKDg0MmQ1OWFiZDFjMTUwZGRhMjdkYjhjNTA2MzkxZGM3ZDdjYTgyZGI","commit":{"author":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T17:52:49Z"},"committer":{"name":"Furkan Yıldırım","email":"posta@furkanyildirim.com","date":"2026-08-01T17:52:49Z"},"message":"release: v1.9.0.0 — otomasyon: zamanlanmış sync, yedekleme, akış sağlığı, çoklu kaynak\n\n- Zamanlanmış oto-sync: playlist/EPG aralığı + scheduler + sync öncesi yedek\n- Yedekleme/geri yükleme: gzip snapshot, retention 10, yeni/üzerine restore\n- Akış sağlık taraması: SSRF-safe HEAD/Range, 10 eşzamanlı, kanal rozetleri + ölü filtresi\n- Regex filtre kuralları: sıralı include/exclude, sync öncesi uygulanır, pattern testi\n- Çoklu Xtream kaynağı: playlist_sources, sync-all, doğal kategori birleşimi, güvenli uzlaştırma\n- Gelişmiş filtreler: logosuz/EPG'siz/duplike/ölü/kontrolsüz + filtreli sayaç\n- iptv-org EPG kaynak kütüphanesi, kalıcı EPG eşleştirme profilleri\n- Görünüm şablonları: gizli kategori setleri + export entegrasyonu\n- Quick wins: mobil sıralama, klavye kısayolları, URL deep-link, ConfirmModal,\n  paylaşım iptali, Xtream kimlik düzenleme, oturum yönetimi, header tema,\n  gerçek import ilerlemesi","tree":{"sha":"28a8ae821edf9b6914ec9084a7b27ad5427d38f6","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/trees/28a8ae821edf9b6914ec9084a7b27ad5427d38f6"},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/git/commits/842d59abd1c150dda27db8c506391dc7d7ca82db","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/842d59abd1c150dda27db8c506391dc7d7ca82db","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/842d59abd1c150dda27db8c506391dc7d7ca82db","comments_url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/842d59abd1c150dda27db8c506391dc7d7ca82db/comments","author":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"fyildirim-debug","id":106303434,"node_id":"U_kgDOBlYPyg","avatar_url":"https://avatars.githubusercontent.com/u/106303434?v=4","gravatar_id":"","url":"https://api.github.com/users/fyildirim-debug","html_url":"https://github.com/fyildirim-debug","followers_url":"https://api.github.com/users/fyildirim-debug/followers","following_url":"https://api.github.com/users/fyildirim-debug/following{/other_user}","gists_url":"https://api.github.com/users/fyildirim-debug/gists{/gist_id}","starred_url":"https://api.github.com/users/fyildirim-debug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fyildirim-debug/subscriptions","organizations_url":"https://api.github.com/users/fyildirim-debug/orgs","repos_url":"https://api.github.com/users/fyildirim-debug/repos","events_url":"https://api.github.com/users/fyildirim-debug/events{/privacy}","received_events_url":"https://api.github.com/users/fyildirim-debug/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"b742c992ba81d6b954c4c593ccbcc978e5ffe461","url":"https://api.github.com/repos/fyildirim-debug/M3uEditor/commits/b742c992ba81d6b954c4c593ccbcc978e5ffe461","html_url":"https://github.com/fyildirim-debug/M3uEditor/commit/b742c992ba81d6b954c4c593ccbcc978e5ffe461"}],"repo":{"name":"M3uEditor","full_name":"fyildirim-debug/M3uEditor","html_url":"https://github.com/fyildirim-debug/M3uEditor","language":"JavaScript","description":"Self-hosted IPTV playlist manager — edit, categorize and share M3U playlists with native Xtream Codes integration, EPG support and drag-and-drop sorting. Vue 3 + Express + PostgreSQL. MIT licensed.","private":false}}]}