CodeNomad/docs/help/tr/mobile.md
Pascal André 4b163382bc
feat(remote-control): serve web previews to paired devices (#1131)
Remote Control blocked `/previews/*`, so a phone or browser paired through
the tunnel had no web preview at all: the entry was hidden and the agent's
dev server stayed out of reach. Previews now work there, behind a host
setting that is on by default.

A preview's sandboxed document sends neither the device cookie nor a usable
`Origin`, so the Remote Control gate admits a live `/previews/<token>/…`
capability on its token alone, as local listeners already do, while the
host's Web previews switch is on. The ingress, which refused every
WebSocket, now admits preview upgrades only: `admitRemoteUpgrade()` parses
the target exactly as the preview proxy does and the manager hands the
socket to the application's path-preview upgrade handler, never to the
shared upgrade event (so `/previews/<token>/../../sidecars/…` cannot reach
another handler). Every other upgrade still gets 404.

The switch lives in Settings → Remote Access → Remote Control. Only the
host can change it (`PUT /api/remote-control/previews`); the registry
stores only the opt-out. Turning it off refuses later preview requests,
including the Referer-based root-relative asset fallback, and closes live
preview WebSockets; remote `/api/meta` then reports `previewsUnavailable`,
which hides Open web preview on paired devices.

Exposing previews through a public tunnel makes their address a bearer
credential, so path-proxied preview responses now carry
`Content-Security-Policy: sandbox` with the iframe's own flags (one shared
constant, `previews/sandbox.ts`) and `Referrer-Policy: same-origin`, on
every content type. A preview document opened outside its iframe stays an
opaque origin instead of running with CodeNomad's origin and device cookie,
and the capability path stays out of Referer headers to other sites. Such a
standalone document then behaves like the preview iframe: its root-relative
resources rely on the runtime bridge's path rewriting, without the Referer
fallback. The per-token preview.localhost host keeps its own origin and
headers.

Help (Remote Control, mobile and client overview pages, all ten locales),
dev-docs/REMOTE_CONTROL.md, architecture.md and UI_SHELL.md describe the
behavior; the switch label and caption are translated in all locales.

Validation: a Remote Control surface test drives the real application
through the ingress: a preview page and an `Origin: null` form post work
without a device cookie and carry the sandbox and referrer headers, unknown
tokens and non-preview or dot-segment upgrades get 404, a preview WebSocket
upgrades, a paired device cannot change the switch, and turning it off
closes the live WebSocket, refuses the preview and its Referer asset
fallback, and flags the metadata.
Registry, metadata and proxy tests cover persistence of the opt-out, the
flag and the headers per entry point; browser tests cover the switch and
the conversation header with previews on and off.
2026-10-24 20:25:25 +02:00

5.7 KiB
Raw Permalink Blame History

Mobil ve PWA

Ana bilgisayarda çalışmayı sürdürmek için telefon veya tabletin tarayıcı arayüzünü kullanın. PWA kurmak projelerin, kimlik bilgilerinin veya ajan yürütmesinin yerini değil, arayüzün açılış biçimini değiştirir.

Bir telefon veya tabletten bağlanın

  1. Ana bilgisayarda Ayarlar → Uzak Erişim → Uzaktan Kontrol öğesini açın, ardından Uzaktan Kontrolü başlat öğesini seçin.
  2. Eşleştirme QR kodunu mobil cihazınızla tarayın ve bağlantıyı kullanmaya devam etmek istediğiniz tarayıcıda açın.
  3. Alternatif olarak, doğrudan erişim'yi yapılandırın, ana bilgisayarın ulaşılabilir güvenilir HTTPS URL'sini açın ve sunucu parolasıyla oturum açın.

Uzaktan Kontrol, cihaz eşleştirmeyi gerektirir; doğrudan bağlantılar yönlendirme, ulaşılabilir bir dinleyici ve kimlik doğrulama gerektirir. İş istasyonunuza ulaşmak için telefonda localhost'yi kullanmayın. Site verilerini kaybetmek veya tarayıcı profillerini değiştirmek, yeniden oturum açmayı veya eşleştirmeyi gerektirebilir; bkz. Uzaktan Kontrol.

PWA kurun

  1. Kurulumu destekleyen bir tarayıcıda güvenilir HTTPS üzerinden çalışan CodeNomad URL'sini açın.
  2. Chrome/Edge ve benzeri tarayıcılarda, adres çubuğu yükleme işlemini veya sunulduğunda tarayıcının Install CodeNomad işlemini kullanın. iPhone/iPad Safari'de Share → Add to Home Screen öğesini kullanın; tam ifade işletim sistemine/tarayıcıya bağlıdır.
  3. Yeni başlatıcıyı açın ve tarayıcı depolama alanı ayrıysa orada oturum açmayı veya eşleştirmeyi tamamlayın.

Kurulum cihaz/tarayıcı ve origin bazındadır. Telefona Node, Git veya OpenCode kurmaz, arka uç başlatmaz veya native masaüstü entegrasyonu sağlamaz. Başlatıcıyı kaldırmak ana bilgisayardaki konuşmaları silmez; erişimi kaldırırken eşleştirilmiş cihazı ayrıca iptal edin.

Güvenli içerik ve sertifikalar

Uzaktan PWA kurulumu ve mikrofon erişimi tarayıcının tanıdığı güvenli bağlam gerektirir. Kullanılan ana bilgisayar adı/IP ile tam eşleşen güvenilir HTTPS sertifikası kullanın. Oluşturulan yerel sertifikaya istemci cihazı/tarayıcı açıkça güvenmelidir; uyarı sayfasını aşmak güvenilir kurulum değildir. Tarayıcının localhost istisnası başka bilgisayarın HTTP LAN adresine değil, o cihaza uygulanır.

Kurulum eksikse önce HTTPS güvenini ve tarayıcı desteğini doğrulayın, ardından sayfayı yerleşik QR/uygulama içi tarayıcı yerine tam tarayıcıda yeniden açın. Mikrofon arızaları için tarayıcı/işletim sistemi sitesi iznini ve Ses'yi inceleyin. Kurulumu düzeltmek için kimlik doğrulamayı veya TLS doğrulamayı kapatmayın.

Dokunmatik yerleşimlerle çalışın

Gezinmeyi ve araçları açmak için Sol panel ve Sağ panel kontrollerini kullanın. Dar düzenlerde paneller, masaüstü genişliğinde bir tuvali zorlamak yerine konuşmayı üst üste bindirir; bir yüzer panelin açılması diğerini kapatır. Konuşma başlığı eylemleri, alan sınırlı olduğunda taşma menüsüne taşınır.

İleti düzenleyicisi Ajan, Model ve Düşünme kontrollerini alt satırında tutar. Alan, ekran klavyesi dahil görünür konuşmaya göre boyutlanır; uzun taslaklar kaydırılabilir. Yalnızca dokunmatik cihazlarda gönderme ekran klavyesini yeniden açmaz; böylece yanıtı okuyabilirsiniz, devam etmek için ileti düzenleyicisine dokunun. Bir oturum çalışırken ileti düzenleyicisinin Diğer eylemler menüsü, normal gönderiminizin yapmadığı davranışı (Mesajı kuyruğa ekle veya Şimdi yönlendir) donanım klavyesi kısayolu gerektirmeden sunar. İstek açmak kayıtlı yükseklik veya taslağı değiştirmeden ileti düzenleyicisini geçici küçültür. İzin/soruları üstündeki istek panelinde, yanıt eylemlerinin bulunduğu sabit alt bölüm erişilebilir kalacak şekilde yanıtlayın. Bkz. Konuşmalar ve İzinler.

Yetenek ve bağlantı sınırları

Yetenek Mobil tarayıcı / PWA
Projeler, konuşmalar, dosyalar ve izinler Erişim kontrollerine bağlı olarak bağlı arka uç ana bilgisayarda çalışın. Cihaz ekleri telefondan yüklenir; proje referansları ana bilgisayarda çözümlenir.
Yerel masaüstü pencereleri, işletim sistemi menüleri ve ana makineye özgü otomasyon PWA kurulduğunda sağlanmaz.
Tarayıcı önizlemesi Yerel konuk tarayıcı yetenekleri kazanmaz; geri dönüş oluşturma tarayıcıyla sınırlı kalır.
SideCar içeriği ve WebSockets Bağlantı yoluna bağlıdır; Uzaktan Kontrol SideCar içerik proxy'sini engeller ve ana makine izin verdiği sürece web önizlemelerini WebSocket bağlantılarıyla birlikte sunar. Tüm kısıtlamalara bakın.
Mikrofon, pano, bildirimler ve yükleme istemi Tarayıcı/işletim sistemi desteğine, güvenli içeriğe ve kullanıcı izinlerine bağlıdır.
Çevrimdışı çalışma Çevrimdışı arka uç veya önbelleğe alınmış API geçmişi yok. Statik kullanıcı arayüzü varlıkları önbelleğe alınabilir ancak belgeler ve API yanıtları çevrimdışı bir çalışma alanı değildir.

Arka ucu erişilebilir tutun. Mobil işletim sisteminin askıya alması veya ağ değişimi olay akışını kesebilir; geri dönmek, garantili olay tekrarı olmadan yeniden bağlanıp güncel durumu getirir. Yeniden denemeden önce işlemin tamamlanıp tamamlanmadığını kontrol edin. PWA kapatmak bağımsız arka ucu durdurmaz; ana bilgisayardaki masaüstü uygulamasından ve arka uçtan çıkmak Uzaktan Kontrolü sonraki başlatmaya kadar kullanılamaz yapar.