3.0 リリースの検証¶
このガイドは v3.0.0 を対象とします。公開が完了し、記載されたすべてのファイルが揃ってから検証してください。外向きアクセス制御と登録済みエージェントの Landlock 選択により Rust API が変更されます。外向きアクセス制御の移行説明を確認してください。
以下の手順で、信頼するリポジトリの v3.0.0 タグから公開コミットを取得してください。未検証のダウンロード済みソース記録から、期待するコミットを取得しないでください。Gitea は完全な履歴、GitHub は OSS のみを抽出した履歴を保持するため、コミット ID は異なります。署名とパッケージの来歴は公開コミットに対応します。
アーカイブの選択¶
| プラットフォーム | ターゲット | 拡張子 |
|---|---|---|
| Linux x86_64 | x86_64-unknown-linux-gnu |
.tar.gz |
| Linux ARM64 | aarch64-unknown-linux-gnu |
.tar.gz |
| macOS ARM64 | aarch64-apple-darwin |
.tar.gz |
| Windows x86_64 | x86_64-pc-windows-msvc |
.zip |
例:symbi-v3.0.0-x86_64-unknown-linux-gnu.tar.gz。Intel Mac 向けのビルド済みアーカイブはありません。ソースからインストールしてください。macOS や Windows のバイナリは Landlock による隔離を提供しません。
保護された実行ジャーナルと、それに依存する実行経路には、現在 Unix が必要です。Windows バイナリは移植可能な CLI 機能を提供しますが、保護されたスケジュール実行、永続的なチャット受付、管理された改善は、未対応の操作を拒否します。Windows でコンパイルが成功しても、同等の隔離が保証されるわけではありません。
展開前の検証¶
以下のコマンドには Bash、GitHub CLI、Cosign 3.1+ が必要です。空のディレクトリで実行し、ARCHIVE を対象プラットフォームのファイル名に設定してください。.sig、.pem、署名付きチェックサム一覧、release-source.json もダウンロードします。
set -euo pipefail
RELEASE_SHA=$(gh api repos/ThirdKeyAI/Symbiont/commits/v3.0.0 --jq .sha)
[[ "$RELEASE_SHA" =~ ^[0-9a-f]{40}$ ]] || exit 1
ARCHIVE=symbi-v3.0.0-x86_64-unknown-linux-gnu.tar.gz
gh release download v3.0.0 --repo ThirdKeyAI/Symbiont \
--pattern "$ARCHIVE" --pattern "$ARCHIVE.sig" --pattern "$ARCHIVE.pem" \
--pattern 'checksums.txt*' --pattern release-source.json
このリリースでは署名と証明書を別々に提供します。透明性ログの証拠を保持したバンドルを作成し、期待するワークフローの ID と正確なソースコミットを検証します。
cosign bundle create --artifact checksums.txt \
--signature checksums.txt.sig --certificate checksums.txt.pem \
--out checksums.sigstore.json
cosign verify-blob --bundle checksums.sigstore.json \
--certificate-identity 'https://github.com/ThirdKeyAI/Symbiont/.github/workflows/release-binaries.yml@refs/tags/v3.0.0' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--certificate-github-workflow-sha "$RELEASE_SHA" \
checksums.txt
検証を通すために透明性ログの確認を省略したり、許可する ID を広げたりしないでください。続いてアーカイブとソース情報のチェックサムを確認します。
awk -v archive="$ARCHIVE" '$2 == archive || $2 == "release-source.json"' \
checksums.txt > selected-checksums.txt
test "$(wc -l < selected-checksums.txt)" -eq 2
# Linux:
sha256sum --check selected-checksums.txt
# macOS alternative:
# shasum -a 256 --check selected-checksums.txt
cat release-source.json
ソース情報にはタグ v3.0.0 とコミット $RELEASE_SHA が必要です。検証が成功してから展開・実行してください。アーカイブの署名を個別に検証するには、同じバンドル作成・検証コマンドを "$ARCHIVE"、"$ARCHIVE.sig"、"$ARCHIVE.pem" に対して実行します。Windows では Git Bash または同等の検証ツールを使用し、その後 ZIP を展開できます。
リポジトリのインストーラーは、展開前に HTTPS のリリース一覧に記載された SHA-256 を sha256sum または shasum で検証します。最新版を ~/.symbi/bin にインストールしますが、独立した Sigstore ID 検証は行いません。インストール先のルートを変える場合は bash プロセスに SYMBI_INSTALL_DIR を設定してください。バージョンを固定する場合は手動でダウンロードします。
コンテナーとクレート¶
バージョン付きイメージは ghcr.io/thirdkeyai/symbi:3.0.0 と ghcr.io/thirdkeyai/symbi-a2ui:3.0.0 です。デプロイ前に両方を検証してください。
cosign verify ghcr.io/thirdkeyai/symbi:3.0.0 \
--certificate-identity 'https://github.com/ThirdKeyAI/Symbiont/.github/workflows/docker-build.yml@refs/tags/v3.0.0' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--certificate-github-workflow-sha "$RELEASE_SHA"
取り下げられていない正確な crate バージョンとアーカイブのチェックサムを確認してください。新しいパッケージの .cargo_vcs_info.json は公開リリースのコミットを示し、変更のないパッケージは以前の来歴を保持します。
| Crates | Version |
|---|---|
symbi, symbi-dsl, symbi-runtime, repl-core, repl-cli, repl-lsp, symbi-shell |
3.0.0 |
repl-proto, symbi-session, symbi-sandbox-guest, symbi-sandbox-supervisor |
2.0.1 |
symbi-approval-relay |
0.1.1 |
symbi-channel-adapter |
0.1.6 |
symbi-invis-strip |
0.3.0 |
テストとその限界はリリース検証結果を参照してください。既存環境を更新する前に移行ガイドを確認してください(どちらも英語)。