View on GitHub

cat-plugin-player

cat-plugin-player

ADR 0017: Favoritesの手動順と一度だけのプラグイン名順ソート

状態: 承認済み

経緯

Favoritesに「last played 降順ソート」を実装して検証した結果、ユーザーはそのUXが自分のニーズにマッチしないと判断した。呼び出すたびに配置が変わる一覧より、自分で順番を決め、その配置を維持する一覧を求めたため、今回の仕様を選んだ。

最初はVSCodeのAlt+上下キーのような操作を検討した。その後、ハンバーガーメニューで並べ替えモードを有効にし、行末の上下ボタンで動かす案を選んだ。規模を縮小するため、行クリックによる並べ替え対象選択とAlt+上下キーは採用しない。ユーザーが以下の仕様を承認し、ADRへの記録と実装を指示した。

決定

保存と影響

既存のindex.toml内の項目順を手動順として利用する。初回導入時は現在のFavorites表示順を引き継ぎ、名前順への自動移行はしない。Historyだけの項目が途中にあっても、上下移動は隣のFavoriteと入れ替える。名前順ソートもFavoritesが占める位置だけを変更する。

順序の保存は既存のatomic_writeを使い、失敗時はメモリ内の順序も戻してエラーを表示する。保存state、ID、名前、演奏パターン、History登録時刻は並べ替えで変更しない。History表示は物理的な項目順から独立して登録時刻でソートするため、自動記録時に項目を先頭へ移す必要はなくなる。

採らない案

検証

永続化・保存失敗時の復元、Historyだけの項目を挟んだ上下移動、安定した名前順ソート、再保存・自動記録での手動順維持、HistoryからのFavorite追加を回帰テストで確認する。UIではモードによるボタン表示、端の無効化、絞り込み時の無効化と、上下操作が音色読み込みを呼ばないことを確認する。