DiffDaily Deep & Concise - OSS変更の定点観測
トップに戻る

basecamp/once

https://github.com/basecamp/once

TUIダッシュボードのパニッククラッシュをnil安全ガードで修正

別ターミナルから `once teardown` を実行した際にTUIがパニックしてクラッシュするバグを修正しました。`scrollToSelection` 関数に `len(m.panels) == 0` の早期リターンガードを4行追加し、teardown後の空パネル状態でのインデックスアウトオブレンジを防ぎます。リグレッションテストも合わせて追加されています。

2026年04月13日 Claude Sonnet 4.6

Goプロダクションビルドからシンボル情報とデバッグ情報を除去

プロダクション向けGoビルドのLDFLAGSに `-s -w` フラグを追加し、バイナリからシンボルテーブルとDWARFデバッグ情報を除去するようになりました。バージョン埋め込みの `-X` フラグは維持されており、1行の変更でリリースバイナリとしての適切な構成が整います。

2026年04月03日 Claude Sonnet 4.6

TTY非接続時のプログレス表示をスキップする分岐を追加

CLIがTTYに接続されていない環境では、bubbletea によるインタラクティブなプログレス表示をスキップしてタスクを直接実行するよう変更されました。新設された `runWithProgress` 関数にTTY判定ロジックを集約し、`deploy`・`update` コマンドの呼び出しを一本化しています。

2026年04月03日 Claude Sonnet 4.6

環境変数でアニメーションを無効化できる `ONCE_REDUCED_MOTION` オプションを追加

`ONCE_REDUCED_MOTION=true` を指定することで、once の初回起動時に表示されるスターフィールド・ロゴアニメーションを抑制できるようになりました。`showLogo()` メソッドへの1行の条件追加という最小限の変更で実現されており、既存の挙動への影響はありません。合わせて `ONCE_INTERACTIVE` を含む環境変数が README にドキュメント化されました。

2026年04月02日 Claude Sonnet 4.6

CLIをホスト名ベースに刷新し、デプロイフラグを大幅拡充

`once` CLIのアプリケーション識別子を内部名からホスト名に統一し、`deploy`・`update` コマンドに環境変数・SMTP・CPU/メモリ・バックアップ等の設定フラグを集約した `settingsFlags` 構造体を導入。旧 `update`(自己更新)は `self-update` に改名され、新 `update <host>` はフラグで指定した項目のみを既存設定に差分適用する。

2026年04月01日 Claude Sonnet 4.6

環境変数でONCEの自動セルフアップデートを無効化できるようになった

環境変数 `ONCE_NO_SELF_UPDATE` を設定することで、ONCEの自動セルフアップデートを無効化できるようになりました。`internal/background/runner.go` の `checkSelfUpdate` 関数に5行を追加し、環境変数がセットされていれば後続のアップデート処理をすべてスキップするアーリーリターンを実装しています。

2026年03月31日 Claude Sonnet 4.6

プライベートDockerレジストリへの認証対応

OnceがプライベートDockerレジストリからのイメージプルに対応しました。`go-containerregistry`の`authn.DefaultKeychain`を利用してローカルのDockerクレデンシャルを自動解決することで、`ghcr.io`・GCR・ECRなどのプライベートレジストリからも追加設定なしでデプロイできるようになります。エラー時は匿名アクセスへ安全にフォールバックするため、既存のパブリックイメージデプロイへの影響はありません。

2026年03月27日 Claude Sonnet 4.6

環境変数でインタラクティブモードをスキップできる非対話型インストールオプションを追加

ONCEのインストーラーに `ONCE_INTERACTIVE=false` 環境変数のサポートが追加されました。TUIの起動をスキップする非対話型モードにより、CI/CDパイプラインやAnsibleなどの構成管理ツールからの自動インストールが公式にサポートされます。

2026年03月23日 Claude Sonnet 4.6

インストールスクリプトで `sudo` 実行時のコマンド解決エラーを修正

インストールスクリプトが `sudo` でバックグラウンドサービスをセットアップする際、`secure_path` によるPATH制限で `sudo: once: command not found` が発生していた問題を修正。`ONCE_BIN` 変数に `once` バイナリの絶対パスを保持させ、`sudo` 経由を含む全ての呼び出し箇所をPATH解決に依存しない形に統一しました。

2026年03月23日 Claude Sonnet 4.6

ターミナルカラー検出ロジックの簡素化とセンチネル処理の修正

ターミナルカラー検出のDA1センチネルマーカーが消費されないままターミナルに漏れ出す不具合を修正。チャネルベースの並行処理をbufio.Readerを用いた同期的なバッファ読み取りループに置き換え、sync.OnceFuncによる安全なリソース解放も導入することで、156行削除・99行追加の大幅な簡素化を実現しました。

2026年03月19日 Claude Sonnet 4.6

CLIログ設計のシンプル化とsudo実行時のファイル所有権問題の解消

CLIコマンドはstderrへ、TUI実行時のみファイルログへ切り替える設計に整理し、Cobraのライフサイクルフックと例外処理を削除。新設のfsutilパッケージで親ディレクトリ自動作成と所有権継承を集約し、sudo実行時にログ・バックアップファイルがrootオーナーで作成される問題を解消した。

2026年03月17日 Claude Sonnet 4.6

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ