Skip to content

Remove the spotify terminal client - #4

Merged
and2049 merged 3 commits into
mainfrom
remove-tui
Sep 26, 2026
Merged

and2049 merged 3 commits into
mainfrom
remove-tui

Conversation

@and2049

@and2049 and2049 commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Summary

echo becomes the desktop app only.

  • Removal and packaging
    • Delete crates/spotify-tui and its dependencies (ratatui, crossterm, unicode-*).
    • Bare cargo run now starts echo-desktop.
    • The MSI, DMG, install.sh and install.ps1 ship only the desktop app.
  • Upgrade path for existing installs
    • Updaters in v0.6.7 and earlier reject an archive that's missing a binary they have installed.
    • To keep them working, the upgrade archive still includes a spotify stub (crates/spotify-stub) that only prints a notice.
    • The new updater replaces only echo-desktop.
    • At startup, echo deletes the leftover spotify and its ~/.local/bin link (only when the link points into the install).
    • The stub can be dropped once older versions are gone.
  • Docs
    • Rewrote README.md and README.zh.md: the shortcut list now follows the desktop keymap, and the missing commands are added.
    • Removed assets/echo-tui.png.
    • Updated release.md.
  • Core cleanup
    • Removed code only the TUI used: the :redraw and :thumbs commands, terminal clears, the library_thumbnails/keybindings config, the Browse tab, the half-block sampler, TUI-only state, intents and locale keys.
    • Reworded comments that referenced the TUI.

Testing

  • cargo fmt --check, cargo clippy --workspace --all-targets -D warnings, cargo test --workspace (322 core, 55 desktop) and cargo build --release --workspace pass on Linux.
  • The first commit also builds and tests on its own.
  • New unit tests cover the leftover binary and symlink cleanup.
  • The stub binary prints its notice and exits 1.

Not verified

  • Windows and macOS builds.
  • A publish workflow run.
  • A live install.sh/install.ps1 run.
  • A real update from v0.6.7 through the stub.

Follow-ups

  • The unused highlight_fg theme slot.
  • ArtistListSource::Followed.
  • Narrowing BrowseNode.
  • Old locale keys that nothing references.

echo is now the desktop app only. The spotify-tui crate goes, along with
the ratatui, crossterm and unicode dependencies, and bare `cargo run`
now starts echo-desktop.

Updaters in v0.6.7 and earlier replace every binary they find installed
and reject an archive that is missing one, so the upgrade archive still
carries a `spotify` stub (crates/spotify-stub) that only says the
terminal client was removed. The MSI and DMG no longer include it.

The updater now replaces only echo-desktop, and at startup deletes the
leftover `spotify` binary plus the ~/.local/bin link install.sh made for
it, when that link points into this install. install.sh and install.ps1
drop the terminal command and clean up the same leftovers.
Drop the terminal client section, `spotify upgrade`, custom keybindings
and the terminal troubleshooting entries. The shortcut list now follows
the desktop keymap, and the command list gains :clearhistory, :range,
:spotifylogin and :autoupdate, which were missing. Note the removal in
release.md.
With the terminal client gone, remove what only it used:
- the :redraw and :thumbs commands, the terminal-clear flag and
  ForceRedraw event, and the ANSI clears written after OAuth
- the library_thumbnails and keybindings config fields (old configs
  still load; the keys drop on the next save)
- the Browse library tab and TUI-only UI state fields
- the half-block cover sampler and terminal thumbnail sizes
- artist navigation wrappers only the TUI called
- locale strings only the TUI rendered

Comments that described behavior relative to the TUI are reworded for a
desktop-only codebase.
@and2049
and2049 merged commit 8bc77a3 into main Sep 26, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant