更新情報 v0.1.2

今日は SWING の新しいバージョンが 2 つも出たんだって。v0.1.1 と v0.1.2 の変わったところを、まとめて見ていくね。
10/8 に、SWING の v0.1.1 と v0.1.2 が続けて出ました。この記事では、2 つのバージョンで変わったところをまとめます。
新しいバージョンを待っている間も、前のバージョンが見えなくなる不具合の修正(v0.1.1)
SWING は、フォローしているサイトの新しいバージョンを見つけても、すぐに取り込むとは限りません。更新の間隔の設定(min_update_interval)などで、しばらく待つことがあります。
これまでは、新しいバージョンを取り込むまでの間、前のバージョンを保存して配っていても、サイトの一覧では「未保存」と出ていました。ゲートウェイのリンクも消えていて、ダッシュボードから前のバージョンを開けなくなっていました。v0.1.1 からは、保存の状態を次の 3 つに分けて表示します。
- 保存済み: 最新のバージョンを保存している
- 更新待ち: 最新のバージョンはまだだが、同じサイトの前のバージョンを保存している
- 未保存: どのバージョンも保存していない
「更新待ち」のサイトには、保存している前のバージョンの大きさ・日時・ゲートウェイのリンクが出ます。サイト画面で保存済みのサイトだけに絞るチェックボックスは、「保存の状態」をすべて・保存済み・更新待ち・未保存から選ぶ絞り込みに変わりました。コマンドの swing sites では、[update pending] の印と、保存しているバージョンの行が出ます。


待ってる間も、前のバージョンはちゃんと手元にあるんだね。「未保存」って出てたら、びっくりしちゃうもん。
ダッシュボードに「ゆれ子のSWING日記」へのリンクを表示(v0.1.1)
ダッシュボードのサイドナビの下(ミラーセット名とバージョンの下)に、この「ゆれ子のSWING日記」へのリンクが入りました。スマホのような狭い画面では、ページのいちばん下に出ます。
デスクトップ画面のリンク集で、更新待ちのサイトをわかりやすく表示する修正(v0.1.2)
デスクトップ画面のリンク集にも、更新待ちのサイトの扱いが入りました。更新待ちのサイトは、日付・タイトル・更新メモを新しいバージョンのもので表示します。新しいバージョンはまだ手元に無くて開けないので、タイトルはリンクになりません。保存している前のバージョンは、[本家] の横に出る [キャッシュ] のリンクから開けます。
![デスクトップ画面のリンク集で、更新待ちの BOB ZINE 電子版のタイトルがリンクにならず、横に [本家] と [キャッシュ] が並んでいる様子](../../posts/release-0.1.2/desktop-cache-link_hu_a17c01c14e292f9f.webp)
ミラーしたサイトを手元の IPFS ゲートウェイで開く際のセキュリティ設定を強化(v0.1.2)
ミラーしたほかの人のサイトは、http://<CID>.ipfs.localhost:8080/ のような、自分のマシンのアドレスで開きます。ブラウザはこれを自分のマシンのページとして扱うので、普通のサイトより少し制限がゆるくなるところがあります。
そこで v0.1.2 では、SWING が設定する Kubo のゲートウェイで、次の 2 つを塞ぎました。
- ページの JavaScript やフォームから、同じマシンのほかのポートや LAN へ
http://で送ること。外へ送るときはhttps://・wss://だけを通します。画像や iframe の読み込みは、これまでどおり使えます http://127.0.0.1:8080/ipfs/<CID>/のようなパス形式の URL。パス形式では、開いたすべてのサイトが同じオリジンになり、ダッシュボードとも同じホストになってしまうためです。これからは、サブドメイン形式(<CID>.ipfs.localhost)のアドレスで開きます
サイトを公開する側でも、JavaScript で外部の API を使っているなら、https:// か wss:// で呼ぶようにしておくと安心です。

知らないサイトから急に話しかけられたらびっくりしちゃうもんね……。
サイトの公開情報を Nostr のノートでも発信できる機能を追加(v0.1.2)
サイトを公開するときに、更新のお知らせを Nostr のふつうの投稿(kind 1)としても出せるようになりました。SWING のサイトイベントは、SWING に対応していない Nostr クライアントではほとんど目に入りません。投稿として発信しておけば、SWING を知らないフォロワーにも更新が届きます。
コマンドなら、--url と一緒に --note を付けます。
swing publish --site example.jp --url https://example.jp/ --title "わたしのサイト" -m "ブログに記事を追加" --note ./public
投稿の本文は、タイトル・URL・更新メモを順に並べたものになります。上の例なら「わたしのサイト https://example.jp/ ブログに記事を追加」です。投稿には公開したサイトを指すタグが付くので、対応したクライアントはサイトと結び付けて表示できます。
ダッシュボードの公開画面では、更新メモの欄の下にある「サイトイベントに加えて更新情報をノート(kind 1)として投稿する」にチェックを入れます。URL を入れると選べるようになり、チェックしたかどうかはブラウザが覚えておいてくれます。

投稿は、サイトの公開がうまくいった後に送ります。投稿だけが失敗したときは、公開は成功のままで、警告が出ます。署名アプリを使っているときは、サイトイベントとは別にもう 1 回承認を求められます。v0.1.2 より前につないだ署名アプリで、投稿を自動で許可させたいときは、署名アプリの設定で許可するか、つなぎ直してください。

公開したよ、ってみんなに言えるのはうれしいね。わたしも、次に日記を書いたらお知らせしてみようかな。
更新のしかた
更新のしかたは、インストール方法によって違います。インストーラーやスクリプトはもう一度実行すれば上書きされ、Homebrew なら brew upgrade の後に swing service install で新しいバージョンに切り替わります。くわしくは 導入の手引き を見てください。