diff --git a/docs/KNOWN-ISSUES.md b/docs/KNOWN-ISSUES.md new file mode 100644 index 0000000..eb7e16f --- /dev/null +++ b/docs/KNOWN-ISSUES.md @@ -0,0 +1,45 @@ +# Kända problem + +## Spöktecken i vissa terminaler vid fönsterflytt + +**Status:** öppen — behöver reproduktionsinfo från värdterminalen. + +**Symptom:** när ett fönster (t.ex. TUI-FM) dras runt kan enstaka ikoner +och bokstäver "fastna" på skärmen — ofta från vänsterspalten i TUI-FM — +tills en annan ruta dras över dem. + +**Analys hittills:** + +- Kompositorn är verifierat korrekt: headless-frames (daemon-läget) är + pixelperfekta efter godtyckliga drag — varje rad exakt rätt bredd, + inga dubbletter (`tests/integration.py` + manuella tmux-tester). +- I tmux (strikt referensterminal) uppstår inga spöken, varken under + eller efter drag. +- Rotorsaksklass: terminalen/fonten och `unicode-width` är oense om + glyfbredder (typiskt emoji med tvetydig East-Asian-Width, t.ex. ⭐ ➕), + eller terminalens hantering av delvis överskrivna breda glyfer. + +**Åtgärdade delar (som inte räckt fullt ut enligt rapport):** + +1. Full omritning vid drag-släpp/stängning/snap (`needs_full_redraw`). +2. `SafeBackend`: explicit markörpositionering (`ESC[y;xH`) för varje + cell som skrivs — breddoenighet kan inte längre ackumuleras inom en + rad. +3. Skade-expansion för breda glyfer: när ett brett tecken ersätts av + ett smalt skrivs högercellen över explicit (ratatui-diffen ser den + inte eftersom båda buffertarna har space där). + +**För att komma vidare behövs:** + +- Terminalemulator + version (Konsole? Kitty? Alacritty? ...) och font. +- `echo $TERM` i terminalen där felet syns. +- En PNG-skärmbild via TUI-WM:s inbyggda `alt+p` när spöket syns + (visar kompositorns bild) **plus** en riktig skärmdump av terminalen + (visar vad terminalen faktiskt ritar) — skiljer de sig är felet + bekräftat terminal-sidigt. +- Test i en annan terminal (t.ex. kitty eller wezterm) för jämförelse. + +**Möjliga nästa steg:** rendera om hela raden (inte bara cellen) när en +rad innehåller tecken med tvetydig bredd; alternativt heltäckande +frame-omskrivning med synkroniserade uppdateringar (DEC 2026) som i +klient-läget, där problemet inte kan uppstå.