Menu ▾ ▴

#455 Remove the Carrier migration code in January 2027

open
nobody
5 days ago
6 days ago
Anonymous
No

Originally created by: kristofferR

3.1.0 renamed the app from Carrier to Chatpane, including the bundle identifier (io.github.kristofferr.carrier → app.chatpane.Chatpane), the binary (carrier → chatpane) and the repository (kristofferR/Carrier → kristofferR/Chatpane). To bring existing installs over, the app and its packaging carry code that only exists for that move. Two months after 3.1.0 (early January 2027), every active install should have updated, so remove it all.

After this, a Carrier install that never updated and then jumps straight to a newer version starts fresh: signed out, with default settings. That's the accepted trade-off.

Remove

  • [ ] src-tauri/src/identity.rs: the move of the old identifier's data folders, the stop of a running Carrier, the renaming of Carrier*.log to Chatpane*.log (rename_logs) and, on macOS, the merge of Carrier's preferences domain into Chatpane's (move_preferences, [#459]). Keep only IDENTIFIER. Also its call in debug_install::startup(), log_report() in setup, and take_moved(). Drop the NSUserDefaults feature of objc2-foundation in src-tauri/Cargo.toml with it; nothing else uses that binding.
  • [ ] src-tauri/src/windows/toast.rs: Carrier's identities in legacy_notifications_disabled() (notification opt-outs) and toast_history_app_ids() (clearing old toasts).
  • [ ] src-tauri/src/bundle_rename.rs and its call in run(): renaming Carrier.app to Chatpane.app on first launch.
  • [ ] src-tauri/src/autostart.rs: PREVIOUS_ENTRY_NAME, previous_entry_is_ours, migrate_previous_entry (Windows Run value, Linux Carrier.desktop), the macOS Carrier.plist agent fallback, and repoint_after_rename.
  • [ ] src-tauri/src/custom_css.rs / themes.rs: convert_legacy_css and upgrade_css_file (--carrier-*, .carrier-*, data-carrier-* in custom.css and user themes).
  • [ ] inject/src/messenger/lib/storage-migration.ts, its test, and its initFeature in inject/src/messenger/index.ts.
  • [ ] dist/settings.html: the carrier:settingsTab move.
  • [ ] inject/src/messenger/features/zoom.ts: LEGACY_ZOOM_KEY (carrier:zoom) and its one-time read and removal in initZoomLevel (since [#459] the page no longer writes it).
  • [ ] src-tauri/windows/installer-hooks.nsh and bundle.windows.nsis.installerHooks in tauri.conf.json: removing Carrier's install, uninstall entry and shortcuts.
  • [ ] tauri.conf.json: deb provides/conflicts/replaces and rpm provides/obsoletes of carrier.
  • [ ] packaging/aur/PKGBUILD.tpl: provides/conflicts/replaces=('carrier').
  • [ ] .github/workflows/release.yml: git rm Casks/carrier.rb and the cask_renames.json merge in the tap step (the entry already in the tap stays), and (Carrier|Chatpane)_ in the download-link rewrite.
  • [ ] scripts/debug/enroll.ts: the carrier cask/AUR checks, the Carrier settings-folder fallback, the carrier process check and the carrier.desktop / Carrier.desktop cleanup; docs/debug-installs.md: "Machines enrolled before the rename to Chatpane". Both debug machines were re-enrolled on 2026-11-09, so this item can go any time.
  • [ ] docs/user-agent-policy.md and packaging/testing/README.md: notes about past Carrier versions and the old test-lab names (carrier-store-tools, carrier-lab, snap.carrier). Reword them or drop them.
  • [ ] AGENTS.md: shorten the naming note to the rules below.
  • [ ] Finally, git grep -i carrier should only find the items below.

Keep for good

  • Never create a GitHub repository named Carrier. Carrier installs reach updates and the old links through GitHub's redirect from that name.
  • The carrier → chatpane entry in kristofferR/homebrew-tap's cask_renames.json.
  • The kristofferR/kristofferR.github.io redirect pages for old kristofferr.github.io/Carrier/* links.

Done outside the repo (2026-11-09)

  • AUR: merge request carrier → chatpane filed. Once Arch accepts it, carrier is gone and its users are pointed to chatpane.
  • Kris's debug machines run Chatpane: re-enrolled, Carrier leftovers removed, and the checkout, build caches and crq state renamed. Both crq autofix daemons had kristofferr/carrier hard-coded in CRQ_REPOS (systemd unit and launchd plist) and now watch kristofferr/chatpane.

Related

Tickets: #456
Tickets: #459

Discussion


Log in to post a comment.