By Roxチーム
Rox v2026.5.0 リリース
Rox v2026.5.0 をリリースしました!🛡️
今回のアップデートは、新機能の追加というよりも 「より安全に・より速く・より透明に」 をテーマに、Roxを支えるサプライチェーンとランタイム基盤を一段引き上げるリリースとなっています。直近で世間を騒がせている npm worm や GitHub Actions の侵害事例を踏まえ、Roxを採用してくださっている運用者の方にも自信を持ってお勧めできる土台を整えました。
バージョン情報
| コンポーネント | バージョン |
|---|---|
| Rox (Project) | 2026.5.0 |
| Hono Rox (Backend) | 1.6.0 |
| Waku Rox (Frontend) | 1.6.0 |
| Shared | 1.6.0 |
主な変更点
1. 🛡️ サプライチェーン強化 Phase 1 + 2
CI/CDとリリース成果物の両面で、サプライチェーン攻撃に対する防御を多層化しました。
CI/CDハードニング (Phase 1)
- GitHub Actions の commit SHA 固定:
actions/checkoutやoven-sh/setup-bunをはじめ、ワークフローで利用するすべてのActionをタグではなくcommit SHAでピン留め。タグの書き換えによる「気付かないうちに別物に差し替わる」攻撃を遮断しています。 - Bun / Node のバージョン固定:
latestを撤廃し、Bun 1.3.14・Node 24 (LTS) に明示固定。 bun install --frozen-lockfileの徹底: lockfileに無い依存が忍び込めないようCI全体で強制。GITHUB_TOKENを最小権限に: 既定をcontents: readに絞り、release/tag jobのみ書き込み権限をopt-in。- Dependency Review job の追加: PRごとに新規依存を走査し、high severity を検出した時点でブロック。
- Dependabot の有効化: GitHub Actions(pinned SHA追従)と npm(root / backend / frontend / shared)を週次で更新。
リリース出自の証明 (Phase 2)
- SBOM (SPDX-JSON) の自動添付: リリースごとに
rox-<version>.spdx.jsonを自動生成し、GitHub Releaseに添付。 - Build Provenance Attestation: Sigstore (GitHub OIDC, keyless) でビルド出自を署名し、改ざんがないこと・Roxのリポジトリから作られたことを暗号学的に証明。
リリース成果物が「正しい場所から」「正しい手順で」作られたことを、利用者側でも次のコマンドで検証できます。
gh attestation verify rox-2026.5.0.spdx.json --repo Love-Rox/rox
2. 🐰 better-sqlite3 から bun:sqlite へ全面移行
長らくバックエンドのSQLiteドライバとして利用してきた C++ ネイティブモジュールの better-sqlite3 を、Bun組み込みの bun:sqlite に置き換えました。
- CIから Node.js セットアップを撤廃: これまではSQLiteテストのために
actions/setup-nodeを別途追加していましたが、不要に。 - ネイティブビルド依存を削減:
python/build-essentialなどのビルド前提や、pre-built binary・post-install scriptといったサプライチェーン上の攻撃面を縮小。 - テストランナーも統一: SQLite関連のテストを
vitestからbun:testに移行し、28テストすべて通過。これでバックエンド側のテストランナーはBunネイティブに統一されました。 - データベースファイルは完全互換: SQLiteファイルフォーマット自体は変わらないため、既存のDBをそのままご利用いただけます。
依存からも better-sqlite3 / @types/better-sqlite3 / vitest が消え、よりスリムでBunに最適化された構成になりました。
3. ⛩️ Waku 1.0.0-beta.0 への追従
フロントエンド基盤のWakuを ^1.0.0-alpha.6 から ^1.0.0-beta.0 へ更新しました。あわせて以下のような周辺ライブラリも bun update で一括追従しています。
- Vite: 8.0.7 → 8.0.12
- React: 19.2.4 → 19.2.6
- React Aria Components: 1.16.0 → 1.17.0
- Tailwind CSS: 4.2.2 → 4.3.0
- Storybook: 10.3.4 → 10.3.6
- Hono: 4.12.12 → 4.12.18
- Zod: 4.3.6 → 4.4.3
- BullMQ: 5.73.0 → 5.76.8
破壊的変更を含む TypeScript 6 系や Lingui 6 系などは、個別PRで段階的に対応する方針として今回は据え置きにしています。
4. 🤖 開発フローの整備とドキュメント刷新
開発者がより迷わず・より安全に貢献できるように、フローまわりも整えました。
- Issue駆動開発の統合: リリースフロー(dev→main、auto-tag、sync-dev)や git workflow を
github-workflow.mdに一本化。重複していた.claude/rules/git-workflow.mdは削除しました。 - PRマージ時のIssue自動クローズ:
Closes #N/Fixes #N/Resolves #Nを含むPRがdevにマージされると、対応Issueに自動でコメント付きクローズが入るワークフロー (close-issues.yml) を追加。
5. 🐛 その他の改善
- CodeRabbit からの細かなレビュー指摘を取り込み、リリース直前のコード品質をさらに底上げ。
- ドキュメント関連ワークフローで
BUN_VERSION環境変数を統一し、Bunバージョン管理の二重管理を解消。
アップデート方法
git pull origin main
bun install --frozen-lockfile
依存ロックの整合性を確かめるため、ローカルでも --frozen-lockfile を推奨します。
🔍 リリース成果物を検証してみる
今回のリリースから、ダウンロードしたSBOMファイルに対して、Sigstoreベースの検証が可能になりました。
# リリースページから SBOM を取得
gh release download v2026.5.0 -R Love-Rox/rox -p 'rox-2026.5.0.spdx.json'
# 出自を検証
gh attestation verify rox-2026.5.0.spdx.json --repo Love-Rox/rox
成功すれば、このSBOMが Love-Rox/rox の該当commitから、GitHub Actions経由で確かに作られた ことが暗号学的に保証されます。
これからのRox
今回のリリースで、Roxは「動く」だけでなく「運用に持ち込める」プロダクトとしての地力を一段積み上げました。次のサイクルでは、この強化された基盤の上で、再びユーザー体験まわりの新機能に焦点を戻していきます。
ご質問・フィードバックは GitHub Issues までお気軽にどうぞ。
愛がロックする。Rox。 🚀