Rename user-visible identity to voculinux with one-time legacy import #18

Closed
opened 2026-11-05 17:00:33 +00:00 by xavierk · 1 comment
Owner

Parent

Spec: Voculinux — Void Linux (glibc) Wayland/niri port of Vocalinux

What to build

The fork takes its own name everywhere a user can see it: binaries, desktop identity, configuration/data/cache directories, D-Bus namespace, input-method engine identity, tray icons, system resource prefixes, the backend-override environment name, and the user-agent string all become voculinux, with no compatibility alias for the old D-Bus name. The internal Python module name stays vocalinux and is documented as a retained internal name. On first run, a legacy Vocalinux configuration, custom dictionary, and portal restore token are copied once into the new locations; after that the new configuration always wins, with no merging and no write-back.

Acceptance criteria

  • A fresh run presents only voculinux identity: command names, desktop entry, autostart, tray, and D-Bus activation all work under the new name, and the old D-Bus name is not claimed.
  • Configuration, history, logs, and the single-instance lock live under the new application directories; the internal Python module still imports under its retained name and the test suite passes.
  • First run with a legacy configuration present imports configuration, dictionary, and restore token exactly once and logs it; a second run imports nothing.
  • First run with an existing new configuration never imports, merges, or writes to the legacy location; first run with no legacy configuration starts from defaults.
  • Models are not migrated and re-resolve through the pinned-checksum download path.
  • An offline naming-sweep test proves no old-name strings remain on user-visible surfaces outside the allowlist (retained module name, upstream URLs, historical changelog).

Blocked by

## Parent [Spec: Voculinux — Void Linux (glibc) Wayland/niri port of Vocalinux](https://git.bongbetic.com/xavierk/voculinux/issues/16) ## What to build The fork takes its own name everywhere a user can see it: binaries, desktop identity, configuration/data/cache directories, D-Bus namespace, input-method engine identity, tray icons, system resource prefixes, the backend-override environment name, and the user-agent string all become voculinux, with no compatibility alias for the old D-Bus name. The internal Python module name stays vocalinux and is documented as a retained internal name. On first run, a legacy Vocalinux configuration, custom dictionary, and portal restore token are copied once into the new locations; after that the new configuration always wins, with no merging and no write-back. ## Acceptance criteria - [ ] A fresh run presents only voculinux identity: command names, desktop entry, autostart, tray, and D-Bus activation all work under the new name, and the old D-Bus name is not claimed. - [ ] Configuration, history, logs, and the single-instance lock live under the new application directories; the internal Python module still imports under its retained name and the test suite passes. - [ ] First run with a legacy configuration present imports configuration, dictionary, and restore token exactly once and logs it; a second run imports nothing. - [ ] First run with an existing new configuration never imports, merges, or writes to the legacy location; first run with no legacy configuration starts from defaults. - [ ] Models are not migrated and re-resolve through the pinned-checksum download path. - [ ] An offline naming-sweep test proves no old-name strings remain on user-visible surfaces outside the allowlist (retained module name, upstream URLs, historical changelog). ## Blocked by - [Prefactor: centralise user-visible app identity](https://git.bongbetic.com/xavierk/voculinux/issues/17)
xavierk added the ready-for-agent label 2026-11-05 17:00:33 +00:00
Author
Owner

Merged in integration/spec16 1dd3986383 pushed to fork/integration/spec16 (https://github.com/soubarnak/vocalinux/tree/integration/spec16), review PASS, gates flake8 E9,F63,F7,F82 + black --check + isort --check + mypy src/ clean, pytest 37 passed, npm jest 11 suites/92 tests + lint 0 errors + tsc clean + build OK

Merged in integration/spec16 1dd398638312a3b6e27793d856662e60df73f252 pushed to fork/integration/spec16 (https://github.com/soubarnak/vocalinux/tree/integration/spec16), review PASS, gates flake8 E9,F63,F7,F82 + black --check + isort --check + mypy src/ clean, pytest 37 passed, npm jest 11 suites/92 tests + lint 0 errors + tsc clean + build OK
Sign in to join this conversation.