Devotd Github
新着開発ツール

dicklesworthstone/frankensonos — 別家の再生開始の遮断

frankensonos の 2026 年 11 月 2 日付コミット 221f88ac は、検索で曲を選んで再生する際に指定された household が現在の household と異なる場合に再生を拒否するよう検索・再生経路を修正した。

リポジトリ情報dicklesworthstone/frankensonos ↗

frankensonos の 2026 年 11 月 2 日付コミット 221f88ac は、検索で曲を選んで再生する際に指定された household が現在の household と異なる場合に再生を拒否するよう検索・再生経路を修正した。

GitHub の説明: Memory-safe Rust controller for your own Sonos speakers on your own LAN — reliable SSDP/UPnP-SOAP/GENA interoperability (S1 + S2), a Spotify-library classical DJ, and a CLI + HTTP API + MCP server so AI agents can run the house, including off-LAN over Tailscale.

スター
★ 89
フォーク
6
言語
Rust
ライセンス
NOASSERTION
原文を見る ↗GitHub で見る ↗

dicklesworthstone/frankensonos は Rust で書かれたメモリ安全な Sonos スピーカー制御器である。同じ LAN 上の自社スピーカーを SSDP/UPnP-SOAP/GENA で扱い、CLI・HTTP API・MCP サーバを併せて提供し、AI エージェントが自宅を操作できるようにしている。2026 年 11 月 2 日のコミット 221f88ac は、検索で曲を選んで即座に再生する経路に household(世帯)条件を 1 つ追加した。

household はこのコードではスピーカーのゾーングループ(zone group)構造に従って分かれる単位である。再生リクエストが household id をまったく含まない場合と、含んでいるが現在の household と異なる場合とを区別して検査する。存在しない household id は元々拒否されていたが、今回は存在しても異なる household id も同じ方法で拒否し、NotReady エラーとして返す。同じ箇所にはスピーカー再生世代(generation)がずれた場合の検査も残っており、その場合でも再生は開始されない。結果として、検索で得た曲が、いま再生中の 집とは別の家のスピーカーから鳴ることはない。

実装は crates/fsonos-api の検索・再生の表面ファイルとシミュレーションテストファイルの 2 箇所だけで 28 行(+19/-9)しか変更されていない。テスト側では GetZoneGroupState で読み取ったゾーングループ構造を位置情報の照会より先に反映し、household 分離を基準に再生経路を検査する。ただしコミットメッセージは製品テストを実行しなかったと述べている。実際のスピーカーと複数の household が混在する住宅での動作はこのコミットでは確認されていないため、複数 household 環境で使用するにはハードウェア検証がさらに必要である。

新着

cromford-ai/cromford 2026.11.03 — ステータス投稿のトークン制限とリトライ

オープンソースのソフトウェアファクトリ Cromford の 2026.11.03 コミットは、GitHub へのコミットステータス投稿を App インストールトークンに制限し、セカンダリーレート制限では一度だけリトライし、失敗原因をトークン種別と GitHub のメッセージとして記録するように変更した。