OpenAI tomonidan ishlab chiqilgan Codex CLI dasturining so'nggi 0.157.0 versiyasida foydalanuvchi sessiyasi ochilganda fon daemoni avtomatik tarzda ishga tushadi. Bu xususiyat, birinchi qarashda qulay ko'rinsa ham, ko'plab ishlab chiquvchilar va tizim administratorlari uchun kutilmagan jarayonlar, paket menejeri bilan versiya nomuvofiqligi va xavfsizlik tahdidlarini keltirib chiqarmoqda.
Fon daemoni qanday ishlaydi?
Codex CLI ishga tushirilganda codex app-server --managed-daemon buyrug'i orqali alohida sessiyada, TTYsiz, fon jarayoni yaratiladi. Bu jarayon PID 1 ga reparent qilinadi va foydalanuvchi oynasi yopilgandan keyin ham faol bo'lib qoladi. Daemon ~/.codex/packages/app-server-daemon/releases/ katalogiga 374 MB hajmdagi paketni nusxalab, shu nusxadan ishga tushadi, shuning uchun CLI versiyasi bilan backend versiyasi orasida aloqasizlik yuzaga keladi.
codex features disable daemon_auto_start
codex app-server daemon stop
pkill -f 'app-server daemon pid-update-loop' # not stopped by `daemon stop`
rm -rf ~/.codex/packages/app-server-daemon
Avtomatik yangilanish mexanizmi
Yaratilgan daemon o'z ichiga codex app-server daemon pid-update-loop nomli yangilash tsiklini oladi. Bu tsikl birinchi ishga tushgandan 5 daqiqada bir marta, keyin har bir soatda yangilanishni tekshiradi, yangi relizni yuklab oladi va backendni qayta ishga tushiradi. Yangilanish jarayoni faol turnlarni 60 soniyadan ortiq vaqt davomida to'xtatib, #40969 da belgilanganidek, foydalanuvchi tajribasini buzadi.
Muammo: paket menejeri bilan mos kelmasligi
Daemon o'zini npm, brew yoki pacman kabi paket menejerlari orqali o'rnatilgan CLI bilan bog'lamaydi. Natijada, paket menejeri yangilanishi daemonni yangilamaydi, lekin daemon o'zini mustaqil ravishda yangilashga harakat qiladi. Bu holat #41188 va #46468 da muhokama qilingan bo'lib, versiya nomuvofiqligi va jarayonlar orasida “orphaned” holatga olib keladi.
Atrof-muhit o'zgaruvchilari va proksi muammolari
Daemon birinchi sessiya boshlanganda atrof-muhit o'zgaruvchilarini (masalan HTTPS_PROXY) o'zida saqlab qoladi. Keyingi sessiyalar boshqa proksi sozlamalari bilan ishga tushsa ham, daemon eski proksidan foydalanadi. Bu #42457 da tasvirlangan muammo bo'lib, tarmoq yo'nalishlari va xavfsizlik siyosatlari bilan mos kelmasligini ko'rsatadi.
Foydalanuvchi tajribasiga ta'siri
CLI foydalanuvchilari, ayniqsa Windows 10 LTSC va WSL2 muhitida, daemon avtomatik ishga tushishi sababli interaktiv sessiyani boshlashda kutilmagan bloklanish bilan duch kelishadi. #48050 da Arch Linux paketidan --no-daemon bayrog'i bilan ishga tushirish zaruriyati qayd etilgan. Windows foydalanuvchilari esa #48195 da bildirilganidek, daemon yo'qolgan holda CLI ishlamay qoladi.
Hozirgi ishga tushirish usullari va ularning cheklovlari
- Avtomatik ishga tushirish (default) — foydalanuvchi hech qanday bayroq kiritmasa daemon ishga tushadi, lekin bu holat foydalanuvchi nazorati ostida emas.
- --no-daemon bayrog'i — daemonni o‘chirib, CLI bir sessiyali rejimda ishlaydi; lekin har bir yangi sessiyada bu bayroqni qo‘lda kiritish kerak.
- daemon_auto_start = false konfiguratsiya faylida (
config.toml) o‘rnatish — bu usul doimiy o‘zgartirishni talab qiladi, lekin bir marta sozlangandan keyin barcha sessiyalar uchun amal qiladi.
Taqqoslash: boshqa CLI vositalaridagi daemon yondashuvi
Ko‘plab CLI vositalari, masalan docker yoki kubectl, daemonni foydalanuvchi aniq buyruq orqali ishga tushiradi (docker daemon kabi). Bu yondashuv foydalanuvchiga jarayonni nazorat qilish imkonini beradi va avtomatik yangilanishni alohida konfiguratsiya orqali boshqaradi. Codex CLI ning hozirgi avtomatik yondashuvi, bu standartdan farq qilib, foydalanuvchi xabardor bo‘lishini talab qilmaydi, bu esa noaniqlik va xavfsizlik riskini oshiradi.
Ochiq savollar va taklif etilgan yechimlar
Jamoa a’zolari bir necha taklifni ilgari surishdi:
- Daemonni opt‑in qilish – standartda o‘chirilgan holda, foydalanuvchi aniq ruxsat berganida faollashadi (#48195).
- Oxirgi mijoz uzilganida daemonni avtomatik to‘xtatish – resurslarni bo‘shatish va kutilmagan jarayonlarni oldini olish.
- Paket menejeri orqali o‘rnatilgan CLI versiyasini ishlatish – daemon o‘zini yangilash o‘rniga, tizimda mavjud bo‘lgan binarni chaqirishi kerak.
- Yangi atama
daemon_auto_startni konfiguratsiya faylida standart false qiymati bilan belgilash.
Bu takliflar, ayniqsa xavfsizlik siyosatlari va korporativ muhitlarda, daemonning kutilmagan ravishda tarmoqqa chiqishini oldini olishga yordam beradi.
Xulosa va kelajak yo‘nalishlari
Codex CLI ning hozirgi versiyasida daemon avtomatik ishga tushishi, paket menejeri bilan versiya nomuvofiqligi, atrof‑muhtojlik o‘zgaruvchilari va avtomatik yangilanish jarayonlari birgalikda foydalanuvchi tajribasini pasaytiradi. Jamoa tomonidan taklif qilingan opt‑in modeli, daemonni to‘g‘ri boshqarish mexanizmi va paket menejeri bilan integratsiya qilish, bu muammolarni hal qilish yo‘nalishida asosiy qadam bo‘lishi mumkin. Kelgusida OpenAI bu takliflarni amalga oshirsa, Codex CLI yanada barqaror, xavfsiz va foydalanuvchi nazorati ostida bo‘lgan vosita sifatida rivojlanadi.
Asl manba: github.com