Skip to content

Releases: Cyserrex/Taut

Taut v1.6.6

Choose a tag to compare

@github-actions github-actions released this 13 Sep 11:29

Full Changelog: v1.6.5...v1.6.6

Taut v1.6.5

Choose a tag to compare

@github-actions github-actions released this 13 Sep 11:14

Full Changelog: v1.6.4...v1.6.5

Taut v1.6.4

Choose a tag to compare

@github-actions github-actions released this 13 Sep 10:45

Full Changelog: v1.6.3...v1.6.4

Taut v1.6.3

Choose a tag to compare

@github-actions github-actions released this 13 Sep 10:10

Full Changelog: v1.6.2...v1.6.3

Taut v1.6.2

Choose a tag to compare

@github-actions github-actions released this 13 Sep 08:35

Full Changelog: v1.6.1...v1.6.2

Taut v1.6.1 — Firefox tidak lagi menaikkan ws:// jadi wss://

Choose a tag to compare

@Cyserrex Cyserrex released this 13 Sep 08:01

Ekstensi Firefox akhirnya benar-benar bisa menghubungi servernya.

Penyebabnya

Ekstensi tidak pernah bisa menyambung di Firefox — dan bukan karena ditolak server. Server bercatat rinci selama 40 detik tidak menerima satu pun upaya koneksi. Firefox tidak pernah mengirimnya ke jaringan.

Konsol ekstensi menyebutkan sebabnya:

Firefox tidak dapat tersambung dengan server di wss://127.0.0.1:8787/ws?role=host

Padahal tidak ada satu baris kode pun yang menulis wss://. Kodenya menulis ws://.

Yang menaikkannya adalah CSP bawaan Manifest V3 di Firefox, yang memuat upgrade-insecure-requests. Aturan itu memaksa setiap koneksi tak terenkripsi menjadi terenkripsi — dan server Taut tidak bicara TLS; ia hanya melayani jaringan rumah.

Chrome tidak menambahkan aturan itu ke CSP bawaannya. Itu sebabnya Chrome berfungsi normal sejak awal sementara Firefox tidak pernah bisa.

Perbaikannya

Ekstensi Firefox kini menyatakan CSP-nya sendiri, yang menggantikan bawaan seutuhnya — ketatnya sama, hanya tanpa peningkatan paksa itu:

"content_security_policy": {
  "extension_pages": "script-src 'self'; object-src 'self';"
}

Manifest Chrome dibiarkan memakai bawaannya.

Dua hal, bukan satu

Firefox menuntut keduanya, dan memperbaiki salah satu saja tidak cukup:

  1. Izin host untuk alamat loopback — diperbaiki di v1.4.1
  2. CSP tanpa upgrade-insecure-requests — diperbaiki di rilis ini

Gejala khasnya: baris "tab YouTube Music aktif" hijau sementara "Server Taut belum ditemukan" merah selamanya.

Yang perlu kamu lakukan

Pemakai Firefox — tandatangani ulang dan pasang, lalu klik ikon Taut → Berikan izin:

npm run sign:firefox

Pemakai Chrome/Edge/Brave — tidak ada. Kamu tidak pernah terkena masalah ini.

Taut.exe dan APK tidak berubah dan tidak perlu diperbarui dari v1.6.0.

Catatan

Diagnosis pertama saya — soal izin host — benar tapi tidak lengkap, dan saya sempat menyarankan menandatangani ulang untuk perbaikan yang belum menyelesaikan masalah. Yang akhirnya menutup teka-tekinya adalah pesan error yang menyebut skema berbeda dari yang tertulis di kode. Tanpa membuka konsol ekstensi, saya masih akan menebak.

Taut v1.6.0 — layar kunci, timer tidur, cadangan tombol media

Choose a tag to compare

@Cyserrex Cyserrex released this 13 Sep 07:34

Tiga fitur sekaligus. Dua di antaranya sengaja dipilih karena tidak bergantung sama sekali pada struktur halaman YouTube Music — bagian yang paling mungkin rusak sendiri suatu hari.

Kendali di layar kunci HP

Lagu yang sedang diputar kini muncul di layar kunci dan panel notifikasi Android, lengkap dengan tombol sebelumnya / putar-jeda / berikutnya.

Mengganti lagu tidak perlu membuka kunci HP, mencari aplikasi, lalu menekan tombol — untuk sesuatu yang seharusnya satu ketukan.

Berlaku selama Taut masih terbuka. Sengaja tanpa foreground service: sejak Android 14, service bertipe mediaPlayback menuntut aplikasinya benar-benar mengeluarkan suara, sementara Taut hanya remote. Sesinya dimiliki activity, yang sudah mencakup keadaan tersering — HP diletakkan dengan Taut menyala.

Android 13+ akan meminta izin notifikasi saat pertama dibuka. Kalau ditolak, Taut tetap berfungsi penuh; hanya kendali di layar kunci yang tidak muncul.

Timer tidur

Tombol baru di bawah kendali volume: berhenti dalam 15 / 30 / 45 / 60 menit.

Hitung mundurnya berjalan di PC, bukan di HP — jadi HP boleh ditutup, dikunci, atau kehabisan baterai. Sisa waktunya tetap tampil di remote selama terhubung.

Satu pengaman yang penting: perintah putar/jeda bersifat menjungkit. Kalau musiknya sudah berhenti sendiri saat waktunya habis, Taut membiarkannya — tanpa itu, timer justru menyalakan musik tengah malam. Perilaku ini diuji langsung, bukan diasumsikan.

Cadangan tombol media

Kalau suatu hari YouTube Music mengubah tampilannya dan ekstensinya rusak, sekarang Taut tidak mati total: putar/jeda, berikutnya, dan sebelumnya dikirim sebagai tombol media Windows.

Kasar — Windows tidak tahu tab mana yang dimaksud, dan perintahnya bisa mendarat di pemutar lain yang terakhir berbunyi — tapi tidak bergantung pada struktur halaman YouTube sama sekali.

Volume, geser posisi, suka, acak, dan ulangi tidak punya padanan tombol media; untuk itu ekstensinya memang harus diperbaiki.

Catatan pengembangan

SendInput untuk tombol media ditolak Windows dengan ERROR_INVALID_PARAMETER meski ukuran strukturnya sudah benar — struktur INPUT memuat union yang ternyata sulit disusun tepat lewat interop. Diganti keybd_event, yang tidak punya struktur sama sekali dan langsung bekerja.

MediaButtonReceiver bawaan AndroidX juga tidak dipakai: ia mencari komponen MediaBrowserService yang tidak dimiliki Taut, lalu diam-diam mengembalikan PendingIntent kosong — tombolnya tampil tapi tidak melakukan apa-apa.

Berkas

Berkas Perlu diperbarui?
Taut-v1.6.0.exe Ya — timer tidur dan cadangan tombol media ada di sini
taut-v1.6.0.apk Ya — kendali layar kunci ada di sini
taut-chrome.zip / taut-firefox.zip Tidak berubah
taut-v1.6.0.zip Kode sumber lengkap

Yang belum terbukti

Timer tidur dan cadangan tombol media sudah diuji end-to-end di sini — termasuk memastikan timer tidak menyalakan musik yang sudah berhenti.

Kendali di layar kunci belum pernah dilihat di perangkat sungguhan. Kodenya terkompilasi bersih dan seluruhnya defensif — kalau ada yang gagal, aplikasinya tetap berfungsi seperti sebelumnya — tapi apakah notifikasinya benar-benar muncul dan tombolnya benar-benar bekerja, hanya bisa dibuktikan di HP. Kabari kalau ada yang aneh.

Taut v1.5.1 — volume tab dan volume Windows, dua-duanya

Choose a tag to compare

@Cyserrex Cyserrex released this 13 Sep 07:24

Perbaikan untuk v1.5.0. Rilis sebelumnya membuat slider mengatur volume Windows — dan dengan itu menghapus satu-satunya cara mengubah volume tab YouTube Music dari HP.

Itu keliru: saya mengganti satu kendali dengan yang lain, padahal seharusnya menambah.

Sekarang keduanya ada

Volume Windows dan volume tab dua hal berbeda, dan keduanya berguna:

  • Volume Windows menentukan seberapa keras PC bersuara
  • Volume tab menyeimbangkan YouTube Music terhadap aplikasi lain

Satu slider dipakai bergantian — ketuk keterangan di bawah slider untuk berpindah. Pilihanmu diingat, jadi tidak perlu diatur ulang tiap membuka remote.

Kalau suaramu terasa hilang setelah v1.5.0

Kemungkinan besar tidak ada yang rusak — volume Windows-mu memang sedang rendah, dan sebelumnya slider tidak pernah menunjukkannya. Ketuk keterangan di bawah slider untuk memeriksa keduanya.

Catatan untuk pengembang

windows/build.js kini menerima --out, supaya membangun salinan uji tidak memaksa menutup Taut yang sedang dipakai — Windows mengunci .exe yang sedang berjalan.

Berkas

Berkas Untuk siapa
Taut-v1.5.1.exe Perbarui ini. Halaman remote ada di dalamnya.
taut-chrome.zip / taut-firefox.zip Ekstensi — tidak berubah
taut-v1.5.1.apk Aplikasi Android — tidak berubah
taut-v1.5.1.zip Kode sumber lengkap

Ekstensi dan APK tidak perlu dipasang ulang.

Taut v1.5.0 — volume Windows dari HP

Choose a tag to compare

@Cyserrex Cyserrex released this 13 Sep 07:15

Slider volume di HP sekarang mengatur volume Windows.

Masalahnya

Slider itu sebelumnya hanya mengatur elemen video di dalam tab YouTube Music. Kalau volume Windows sedang di 20%, batas atasnya tetap 20% — slider di HP menunjuk 70%, tapi suaranya tetap pelan, dan dari HP tidak ada cara mengetahui kenapa.

Ekstensi browser memang tidak bisa menyentuh volume sistem; tidak ada API-nya. Di sinilah gunanya server berupa program Windows asli: Taut.exe bisa memanggil Core Audio API.

Yang berubah

  • Slider volume mengatur volume Windows, dan tombol bisu mengikuti
  • Keterangan di bawah slider menyebutkan yang sedang dikendalikan — "Volume Windows" atau "Volume tab" — karena tanpa itu tidak ada cara membedakannya dari layar HP
  • Tombol volume fisik HP di aplikasi Android ikut mengatur volume Windows
  • Volume Windows ikut dilaporkan ke HP, jadi kalau kamu mengubahnya di PC, slider di HP menyusul sendiri

Kalau menjalankan server versi Node.js, slider kembali mengatur volume tab seperti sebelumnya dan keterangannya berubah jadi "Volume tab". Tidak ada yang rusak, hanya kemampuannya memang tidak ada di sana.

Pengujian

Interop COM untuk Core Audio adalah bagian yang paling mudah salah — urutan method di antarmuka wajib sama persis dengan vtable-nya, dan melewatkan satu baris saja membuat panggilan berikutnya mendarat di alamat yang salah tanpa peringatan apa pun.

Diuji berlapis: membaca volume, mengubahnya dua kali, memeriksa hasil bacanya, lalu mengembalikan ke nilai semula. Lalu sekali lagi end-to-end — menggeser slider dari halaman remote, dan membaca volume Windows lewat kode terpisah di luar Taut sebagai pembanding.

Berkas

Berkas Untuk siapa
Taut-v1.5.0.exe Perbarui ini. Fitur volume ada di sini.
taut-chrome.zip Ekstensi Chrome/Edge/Brave
taut-firefox.zip Ekstensi Firefox
taut-v1.5.0.apk Aplikasi Android
taut-v1.5.0.zip Kode sumber lengkap

Ekstensi dan APK tidak berubah — keduanya tidak perlu dipasang ulang. Halaman remote yang menampilkan slider dimuat dari server, jadi memperbarui Taut.exe saja sudah cukup.

Taut v1.4.1 — ekstensi Firefox akhirnya bisa menghubungi servernya

Choose a tag to compare

@Cyserrex Cyserrex released this 13 Sep 07:03

Perbaikan penting untuk pengguna Firefox. Ekstensi Taut tidak pernah bisa menghubungi servernya sendiri di Firefox — popup selamanya menampilkan "Server Taut belum ditemukan" meski server berjalan dan HP sudah terhubung.

Apa yang salah

Ekstensi membuka WebSocket ke ws://127.0.0.1:8787 — ke komputer kamu sendiri. Untuk alamat itu, host_permissions tidak menyebut apa pun; yang dideklarasikan hanya music.youtube.com.

  • Chrome tidak menggubris: koneksi WebSocket dari background boleh ke mana saja tanpa izin, jadi kekurangan ini tidak pernah terasa di sana.
  • Firefox menuntut izin untuk setiap alamat yang dihubungi ekstensi, termasuk komputer sendiri. Tidak dideklarasikan berarti diblokir — diam-diam, tanpa pesan apa pun di popup.

Gejalanya khas: baris "1 tab YouTube Music aktif" hijau (izin situs sudah diberikan, skrip berhasil masuk) sementara "Server Taut belum ditemukan" merah selamanya.

Kekurangan ini ada sejak dukungan Firefox ditambahkan di v1.1.0.

Perbaikannya

  • Manifest Firefox kini mendeklarasikan http:// dan ws:// ke 127.0.0.1 dan localhost. Pola pencocokan mengabaikan nomor port, jadi satu entri mencakup port berapa pun.
  • Manifest Chrome dibiarkan apa adanya — menambahkan izin di sana hanya memunculkan peringatan saat pemasangan tanpa guna.
  • Popup meminta izin sesuai apa yang dideklarasikan manifest, bukan daftar terpisah yang ditulis ulang. Daftar terpisah itulah yang tadinya melenceng.
  • Teks petunjuk di popup masih menyuruh npm start dan scan QR di terminal — dua hal yang sudah tidak ada di alur normal. Sekarang mengarahkan ke Taut.exe.

Yang perlu kamu lakukan

Pemakai Chrome/Edge/Brave — tidak ada. Kamu tidak pernah terkena masalah ini. Ekstensi yang sudah terpasang tetap bekerja.

Pemakai Firefox — tandatangani ulang dan pasang, lalu klik ikon Taut → Berikan izin. Langkah terakhir itu yang selama ini tidak pernah ada:

npm run sign:firefox

APK Android dan Taut.exe tidak berubah dan tidak perlu dipasang ulang. Tidak ada perubahan protokol; HP yang sudah dipasangkan tetap berfungsi.

Catatan

Kekurangan ini lolos karena saya memvalidasi ekstensi Firefox dengan validator resmi Mozilla — yang menerimanya tanpa keluhan — tapi tidak pernah benar-benar menjalankannya di Firefox. Validator memeriksa bentuk manifest, bukan apakah izin yang dideklarasikan cukup untuk apa yang dilakukan kodenya.

Berkas

Berkas Untuk siapa
Taut-v1.4.1.exe Server untuk PC Windows
taut-chrome.zip Ekstensi Chrome/Edge/Brave
taut-firefox.zip Ekstensi Firefox — inilah yang diperbaiki
taut-v1.4.1.apk Aplikasi Android
taut-v1.4.1.zip Kode sumber lengkap