
Empat Rilis dalam Dua Puluh Enam Jam: Perpipaan Bahasa dan Sebuah Bridge Release
GeekBye v1.7.6 sampai v1.8.1: setelan bahasa yang tidak pernah meninggalkan laptop, overlay Cmd+/ yang menampilkan keybinding aslimu, versi tanpa satu pun perubahan kode — dan dilema ayam-dan-telur saat memigrasikan feed auto-update.
Antara Kamis pagi dan Jumat sore di bulan Februari 2026, GeekBye merilis empat rilis: v1.7.6, v1.7.7, v1.8.0, dan v1.8.1 — enam belas commit, sekitar dua puluh enam jam antara tag pertama dan yang terakhir. Tidak ada satu pun yang jadi headline sendirian. Bersama-sama, mereka adalah potret dari isi sebenarnya minggu-minggu rilis kecil: fitur yang akhirnya menuntaskan perjalanannya, overlay quality-of-life, nomor versi tanpa kode di dalamnya, dan satu potong release engineering yang benar-benar mendidik.
Bahasa yang tidak pernah meninggalkan laptop
GeekBye punya setelan bahasa transkrip sejak September 2025. Ia bekerja — secara lokal. Pilih bahasa Spanyol dan pipeline speech-to-text on-device dengan patuh mentranskripsikan bahasa Spanyol. Tapi grep codebase v1.7.5 untuk setelan itu dan kamu menemukannya di persis tiga tempat: handler audio, UI Settings, dan hook settings. Tidak di klien API. Tidak di pelacak sesi. Selama empat bulan, setiap request yang meninggalkan mesin buta bahasa: catatan sesi backend tidak tahu bahasa apa yang mereka wakili, dan chat AI menerima transkrip bahasa Spanyol tanpa petunjuk apa pun bahwa itu bahasa Spanyol.
v1.7.6 adalah rilis tempat setelan itu menuntaskan perjalanannya — dua commit, satu hari. Awal sesi audio kini membawa transcriptLanguage di payload-nya, dan request stream-chat AI mendapat field yang sama, dijalin lewat helper kecil yang membaca setelannya dan sengaja mengembalikan undefined saat nilainya auto atau belum diset, sehingga backend yang lebih tua terdegradasi dengan anggun alih-alih tersedak field yang tidak mereka kenal. Ada juga bonus perbaikan diam-diam yang bersembunyi di diff-nya: untuk bisa meneruskan bahasa, awal sesi harus dipindah ke setelah resolusi bahasa — yang, menurut pembacaan kami, juga menutup jalur error di mana sebuah sesi bisa dimulai (dan dihitung terhadap limit) lalu jadi yatim saat resolusi bahasa gagal sesaat kemudian.
Pelajarannya bisa digeneralisasi: sebuah setelan belum dirilis saat ia punya UI dan efek. Ia dirilis saat ia mencapai setiap konsumen yang seharusnya tahu tentangnya. Punya kami berhenti di perbatasan jaringan selama empat bulan, dan tidak ada yang sadar, karena perilaku lokalnya — perilaku yang terlihat — benar sepanjang waktu. (Ini adalah lintasan pertama yang kasar untuk penanganan bahasa, sekadar catatan; mengajari AI untuk benar-benar menjawab dalam bahasa percakapan adalah bab yang jauh lebih belakangan dari cerita ini.)
Cmd+/ — overlay yang tidak berbohong soal keybinding-mu
Fitur v1.8.0 yang menghadap user adalah overlay shortcut keyboard di Cmd+/ — 193 baris komponen baru, dan satu keputusan desain yang layak dicuri: ia tidak me-render contekan hardcoded. Ia mengambil konfigurasi shortcut yang live dan me-render customKeys || defaultKeys, sehingga user yang me-remap tombolnya melihat tombol miliknya. Overlay shortcut yang menampilkan default ke orang yang sudah mengubahnya bukanlah dokumentasi; itu misinformasi dengan tipografi yang bagus.
Sisanya adalah sentuhan-sentuhan kecil kebenaran perilaku: overlay-nya memposisikan diri di kiri atau kanan kartu aplikasi tergantung sisi layar mana yang punya ruang, dan menutup dengan Escape, dengan Cmd+/ lagi, atau dengan klik di luar. Cmd+/ sendiri bergabung ke sistem preset yang bisa di-remap yang sama dengan setiap shortcut lain — dan itu penting, karena Cmd+/ adalah "toggle comment" di kebanyakan editor, dan tool untuk developer tidak boleh menduduki tombol editor yang tidak bisa kamu pindahkan.
Bridge release
Engineering yang menarik terjadi di nomor-nomor versi yang tidak akan dilirik dua kali oleh siapa pun. v1.8.0 juga memigrasikan rilis proyek ke organisasi GitHub baru — beres-beres organisasi di permukaan, kecuali satu sifat auto-update desktop: URL feed tertanam di binary. Setiap instalasi v1.8.0 mem-polling rilis organisasi baru. Dan setiap instalasi di luar sana — semuanya v1.7.7 atau lebih tua — mem-polling yang lama, selamanya, kecuali sesuatu muncul di sana.
Itulah dilema ayam-dan-telur: publikasikan rilis berikutnya hanya ke repo baru dan seluruh armada yang ada tidak akan pernah melihatnya. Enam belas menit setelah tag v1.8.0, sebuah flag baru mendarat di script rilis: --publish-owner, yang menulis ulang ke mana electron-builder mengunggah artefak setelah build — secara eksplisit "tanpa memengaruhi kode aplikasi yang dikompilasi", seperti kata komentar di kodenya. Itulah seluruh triknya, dan itu persis jahitan yang tepat: feed yang tertanam di binary dan tujuan unggah artefak adalah dua keputusan berbeda, dan sebuah migrasi butuh keduanya dipisahkan untuk satu rilis. Build v1.8.1 menunjuk ke feed baru, unggah ke repo lama; klien lama melihat update di sana, memasangnya, dan terbangun sambil mem-polling organisasi baru. Pesan commit-nya menyebut ini "bridge release", dan itu nama yang tepat. v1.8.1 di-tag dua jam dua puluh menit setelah v1.8.0. (Untuk kisah asal-usul kenapa proyek ini memperlakukan auto-update dengan hormat yang nyaris jadi rasa takut, lihat auto-update yang membuat aplikasi kami tak bisa dibunuh.)
Dan v1.7.7? Satu commit. Bump versinya itu sendiri. Tanpa perbaikan, tanpa revert, tanpa penjelasan di history — pembacaan terbaik kami adalah publish yang perlu dijalankan ulang, dan kami lebih suka mengakuinya daripada mengarang cerita. Kadang sebuah nomor versi ada karena merilis software adalah proses dunia nyata dengan cegukan dunia nyata, bukan fungsi murni dari source tree. Soal kenapa 1.7 menjadi 1.8: tidak ada commit yang bilang, tapi migrasi feed adalah batas kompatibilitas yang bermakna — setiap binary 1.8.x menatap organisasi yang berbeda dari setiap binary 1.7.x — dan itu lebih pantas mendapat bump minor daripada fitur mana pun.
Tiga hal yang diajarkan minggu ini
- Telusuri sebuah setelan sampai ke setiap konsumennya. Preferensi bahasa "selesai" selama empat bulan sementara backend tetap buta. Perilaku lokal yang terlihat benar itulah yang justru membuat celahnya bertahan — pertanyaan auditnya adalah "siapa lagi yang seharusnya tahu nilai ini?", diajukan di setiap perbatasan.
- Render config yang live, bukan dokumentasi. Overlay shortcut membaca sumber kebenaran yang sama yang dipakai sistem shortcut. Apa pun selain itu akan melenceng begitu seorang user melakukan kustomisasi pertama kali.
- Migrasi feed butuh satu rilis yang hidup di dua dunia. Feed baru di binary, repo lama untuk unggahan. Kalau tooling rilismu tidak bisa memisahkan dua target itu, tambahkan flag-nya sebelum kamu membutuhkannya — punya kami datang enam belas menit setelah dibutuhkan, yang cukup dekat untuk dihitung.
Untuk bab sebelumnya dalam kisah v1, halaman login ADALAH demonya (v1.7.5); dan untuk keseluruhan alurnya, anatomi merilis software sampai sempurna.