Document the ghost-glyph issue in docs/KNOWN-ISSUES.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 00:53:43 +02:00
parent 87ff0e1b77
commit d6a69e78ef

45
docs/KNOWN-ISSUES.md Normal file
View File

@@ -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å.