Skip to content

gpget v0.3.0

Choose a tag to compare

@yager yager released this 11 Sep 09:25
· 10 commits to main since this release

ハイライト

macOS のメニューバーに常駐インジケーターができました。 mode=auto での
転送中、これまでの「通知バナーの連打」に代わって、メニューバーの表示で進捗が
分かるようになります。あわせて正式なアプリアイコンも用意しました。
転送エンジン側にも安定性向上が入っています。

新機能

macOS: メニューバーインジケーター

  • 待機中: 小さいアイコンを表示
  • 転送中: アイコンの代わりに件数を2段(上=完了・下=総数)で表示。
    ホバーで gpget — … のツールチップ
  • クリックでメニュー: Sync Now / Open Destination / Show Log /
    About gpget / Quit gpget
  • 通知バナーは完了・失敗・接続エラーのときだけ。転送中の差し替え通知
    (これまでの「10件ごとに書き換え」)は廃止しました

Quit gpget について: LaunchAgent は KeepAlive 付きで常駐しているため、
単純にプロセスを終えるだけでは launchd が即座に再起動してしまいます。
そこで「今のログインセッションだけ止める」処理(gpget autostart pause)を
新設し、メニューの Quit はこれを呼びます。plist・.app・ログには一切触れず、
次回ログインで自動的に元に戻ります。今すぐ再開したい場合は
gpget autostart resume で再インストール無しに復帰できます。
自動起動そのものをやめたい場合は、従来どおり gpget autostart uninstall です。

macOS: 正式なアプリアイコン

Finder・About パネル・通知バナーで使われる、正式なアプリアイコンを追加しました。
これまでは未設定で、汎用のアイコンが表示されていました。メニューバーの
白黒テンプレートアイコンとは別物です。

直したこと(転送エンジン)

  • 転送が無応答のまま止まった場合、15 秒で見切って Range 再開するように
    (GPGET_IDLE_TIMEOUT / GPGET_MAX_RESUMES で調整可)
  • 効果のなかった keep-alive ピンガーを撤去(GoPro は HTTP keep-alive 非対応で、
    むしろ別接続として競合していました)
  • GPGET_TIMING 環境変数で、転送 1 本ごとの所要時間を診断ログに出力可能に

検証状況

macOS(Apple Silicon)は実機で検証しました。 メニューバーインジケーターは
ホバー・クリック・⌘ドラッグでの並べ替えを含め、実機で動作確認済みです。

転送エンジンの停止対策は決定論テストでは機構を確認済みですが、実運用での
発生頻度・効果は未実証です。

Windows・Linux は今回 UI 面の変更はありません(メニューバー相当の
トレイアイコンは両 OS とも未着手です)。転送エンジンの修正は共通コードなので
反映されていますが、自動起動自体は前バージョンから引き続き実機未検証です。

アップデートするときにやること

バイナリを入れ替えれば、次にカメラを繋いだタイミングで agent が自分の
.app を自動的に作り直します(self-heal)。すぐにメニューバーインジケーターを
使いたい場合は、手動で入れ替えてください:

gpget autostart install

設定・保存済みファイルへの影響はありません。

注意

バージョンが 0.x の間は、コマンドの形や設定ファイルの項目が変わることがあります。