Found on the acceptance machine (Void, niri, DMS). A previous upstream Vocalinux install left ~/.local/share/applications/vocalinux.desktop (Name=Vocalinux, same subtitle and a similar icon) pointing at a ~/.local/bin/vocalinux-gui wrapper whose venv no longer existed. The launcher showed both 'Vocalinux' and 'Voculinux'. Picking the stale one failed silently and looked like Voculinux not launching. Proposal: the one-time legacy import (legacy_import.py) detects a user-level vocalinux.desktop / vocalinux-gui whose target is missing, logs it, and shows a one-time notification telling the user which file to remove. It must not delete the user's files automatically. The README migration notes should say the same.
Found on the acceptance machine (Void, niri, DMS). A previous upstream Vocalinux install left ~/.local/share/applications/vocalinux.desktop (Name=Vocalinux, same subtitle and a similar icon) pointing at a ~/.local/bin/vocalinux-gui wrapper whose venv no longer existed. The launcher showed both 'Vocalinux' and 'Voculinux'. Picking the stale one failed silently and looked like Voculinux not launching. Proposal: the one-time legacy import (legacy_import.py) detects a user-level vocalinux.desktop / vocalinux-gui whose target is missing, logs it, and shows a one-time notification telling the user which file to remove. It must not delete the user's files automatically. The README migration notes should say the same.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found on the acceptance machine (Void, niri, DMS). A previous upstream Vocalinux install left ~/.local/share/applications/vocalinux.desktop (Name=Vocalinux, same subtitle and a similar icon) pointing at a ~/.local/bin/vocalinux-gui wrapper whose venv no longer existed. The launcher showed both 'Vocalinux' and 'Voculinux'. Picking the stale one failed silently and looked like Voculinux not launching. Proposal: the one-time legacy import (legacy_import.py) detects a user-level vocalinux.desktop / vocalinux-gui whose target is missing, logs it, and shows a one-time notification telling the user which file to remove. It must not delete the user's files automatically. The README migration notes should say the same.