Steven
Steven5 min čítania

Štyri vydania za dvadsaťšesť hodín: jazykové inštalatérstvo a „bridge release"

GeekBye od v1.7.6 po v1.8.1: nastavenie jazyka, ktoré nikdy neopustilo laptop, Cmd+/ overlay, ktorý ukazuje tvoje skutočné klávesové skratky, verzia s nulou zmien v kóde — a sliepka a vajce pri migrácii auto-update feedu.

Inžinierstvo
Vydania
Desktop
Vydania GeekBye
Štyri vydania za dvadsaťšesť hodín: jazykové inštalatérstvo a „bridge release"

Medzi štvrtkovým ránom a piatkovým popoludním vo februári 2026 GeekBye vydal štyri vydania: v1.7.6, v1.7.7, v1.8.0 a v1.8.1 — šestnásť commitov, približne dvadsaťšesť hodín medzi prvým tagom a posledným. Ani jedno z nich samo osebe nie je titulka. Dokopy sú portrétom toho, čo týždne malých vydaní naozaj obsahujú: feature konečne dokončujúci svoju cestu, quality-of-life overlay, číslo verzie bez akéhokoľvek kódu vnútri a jeden naozaj poučný kus release engineeringu.

Jazyk, ktorý nikdy neopustil laptop

GeekBye má nastavenie jazyka transkriptov od septembra 2025. Fungovalo — lokálne. Vyber španielčinu a lokálna speech-to-text pipeline poslušne prepisovala španielčinu. Ale pregrepuj kódovú základňu v1.7.5 na to nastavenie a nájdeš ho presne na troch miestach: v audio handleri, v UI nastavení a v hooku nastavení. Nie v API klientovi. Nie v trackeri sedení. Štyri mesiace bol každý request opúšťajúci stroj slepý na jazyk: backendové záznamy sedení netušili, aký jazyk reprezentujú, a AI chat dostával španielske transkripty bez náznaku, že sú španielske.

v1.7.6 je vydanie, v ktorom nastavenie dokončilo svoju cestu — dva commity, jeden deň. Štart audio sedenia teraz nesie transcriptLanguage v payloade a stream-chat request na AI získal to isté pole, pretiahnuté cez malý helper, ktorý číta nastavenie a zámerne vracia undefined, keď je auto alebo nenastavené, takže staršie backendy degradujú elegantne, namiesto toho, aby sa dusili poľom, ktoré nepoznajú. V diffe sa skrýva aj tichá bonusová oprava: aby sa jazyk dal odovzdať, štart sedenia sa musel presunúť za vyriešenie jazyka — čo, ako to čítame, zároveň zavrelo chybovú cestu, v ktorej sedenie mohlo byť naštartované (a započítané do limitov) a o chvíľu osirotené, keď riešenie jazyka zlyhalo.

Ponaučenie sa zovšeobecňuje: nastavenie nie je dodané, keď má UI a efekt. Dodané je vtedy, keď sa dostane ku každému konzumentovi, ktorý by o ňom mal vedieť. To naše sa štyri mesiace zastavilo na hranici siete a nikto si to nevšimol, pretože lokálne správanie — to viditeľné — bolo celý čas správne. (Pre poriadok: toto bol hrubý prvý pokus o prácu s jazykom; naučiť AI, aby naozaj odpovedala v jazyku konverzácie, je oveľa neskoršia kapitola tohto príbehu.)

Cmd+/ — overlay, ktorý neklame o tvojich keybindingoch

Používateľský feature v1.8.0 je overlay klávesových skratiek pod Cmd+/ — 193 riadkov nového komponentu a jedno dizajnové rozhodnutie hodné ukradnutia: nevykresľuje zahardkódovaný ťahák. Načíta živú konfiguráciu skratiek a vykreslí customKeys || defaultKeys, takže používateľ, ktorý si klávesy premapoval, vidí svoje klávesy. Overlay skratiek, ktorý ukazuje defaulty niekomu, kto si ich zmenil, nie je dokumentácia; je to dezinformácia s peknou typografiou.

Zvyšok sú malé korektnostné dotyky: overlay sa umiestni naľavo alebo napravo od karty aplikácie podľa toho, na ktorej strane obrazovky je miesto, a zavrie sa na Escape, na opätovné Cmd+/ alebo na klik mimo. Samotné Cmd+/ sa pripája k tomu istému premapovateľnému systému presetov ako každá iná skratka — čo je dôležité, pretože Cmd+/ je „toggle comment" (zakomentovať) vo väčšine editorov a nástroj pre vývojárov by nemal okupovať editorový kláves, ktorý sa nedá presunúť.

„Bridge release" — premosťovacie vydanie

Zaujímavé inžinierstvo sa odohralo v číslach verzií, na ktoré by sa nikto dvakrát nepozrel. v1.8.0 zároveň zmigroval vydania projektu do novej GitHub organizácie — na povrchu organizačné upratovanie, nebyť jednej vlastnosti desktopového auto-update: URL feedu je zapečená v binárke. Každá inštalácia v1.8.0 dopytuje vydania novej organizácie. A každá inštalácia vonku vo svete — všetky v1.7.7 alebo staršie — dopytuje tú starú, navždy, pokiaľ sa tam niečo neobjaví.

To je tá sliepka a vajce: publikuj svoje ďalšie vydanie len do nového repa a celá existujúca flotila ho nikdy neuvidí. Šestnásť minút po tagu v1.8.0 pristál v release skripte nový flag: --publish-owner, ktorý prepisuje, kam electron-builder nahráva artefakty po builde — explicitne „bez ovplyvnenia skompilovaného kódu aplikácie", ako to formuluje komentár v kóde. To je celý trik a je to presne ten správny šev: feed zapečený v binárke a cieľ uploadu artefaktov sú dve rôzne rozhodnutia a migrácia ich potrebuje na jedno vydanie odpojiť. Zbuildi v1.8.1 mieriace na nový feed, nahraj ho do starého repa; starí klienti tam uvidia update, nainštalujú ho a zobudia sa dopytujúc novú organizáciu. Commit message to nazýva „bridge release" — premosťovacie vydanie — a je to správne meno. v1.8.1 bol otagovaný dve hodiny a dvadsať minút po v1.8.0. (Pre pôvodný príbeh, prečo tento projekt zaobchádza s auto-update s rešpektom hraničiacim so strachom, pozri auto-update, ktorý spravil našu appku nezabiteľnou.)

A v1.7.7? Jeden commit. Samotný version bump. Žiadna oprava, žiadny revert, žiadne vysvetlenie v histórii — naše najlepšie čítanie je publish, ktorý bolo treba spustiť znova, a radšej to priznáme, než by sme si vymýšľali príbeh. Niekedy číslo verzie existuje, pretože vydávanie softvéru je proces z reálneho sveta so škytavkami z reálneho sveta, nie čistá funkcia zdrojového stromu. A prečo sa 1.7 vôbec stalo 1.8: žiadny commit to nehovorí, ale migrácia feedu je tá zmysluplná hranica kompatibility — každá binárka 1.8.x sa pozerá na inú organizáciu než každá binárka 1.7.x — a to si zaslúži minor bump viac než akýkoľvek feature.

Tri veci, ktoré nás tento týždeň naučil

  1. Vystopuj nastavenie ku každému konzumentovi. Jazyková preferencia bola „hotová" štyri mesiace, zatiaľ čo backend zostával slepý. Práve to, že viditeľné, lokálne správanie bolo správne, nechalo medzeru prežiť — audítorská otázka znie „kto ešte by mal poznať túto hodnotu?", položená na každej hranici.
  2. Vykresľuj živú konfiguráciu, nie dokumentáciu. Overlay skratiek číta ten istý zdroj pravdy, ktorý používa systém skratiek. Čokoľvek iné sa rozíde pri prvej používateľskej customizácii.
  3. Migrácia feedu potrebuje jedno vydanie žijúce v oboch svetoch. Nový feed v binárke, staré repo pre upload. Ak tvoj release tooling nevie tieto dva ciele oddeliť, pridaj flag skôr, než ho budeš potrebovať — ten náš prišiel šestnásť minút po tom, čo bol potrebný, čo je dosť blízko na to, aby sa to počítalo.

Pre predchádzajúcu kapitolu príbehu v1 — prihlasovacia stránka JE demo (v1.7.5); a pre celý oblúk, anatómiu dodávania softvéru do dokonalosti.