0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【リリースノート】claude-glm-actions-lab v1.1.0 - TUIモダン化とリポジトリ同期機能強化

Posted at

はじめに

本日、claude-glm-actions-lab のバージョン v1.1.0 をリリースしました!🎉

このアップデートは、リポジトリ同期ツールの大幅な機能強化とモダナイゼーションを実施したメジャーアップデートです。最大の変更点は、blessedベースの旧TUIから ReactとInkを使用したモダンなアーキテクチャへの移行です。

📊 変更統計

項目 数値
追加ファイル 45個
追加コード +5,224行
削除コード -256行
マージ済みPR 5件 (#19, #21, #23, #25, #27)

主な変更点

今回のリリースにおける主な変更点は以下の通りです。

  • sync-repo-tuiパッケージ: ReactとInkを使用したモダンなTUIツールとして完全に書き直し
  • PR自動コメントワークフロー: PRオープン時に自動的にコメントを投稿するGitHub Actionsを追加
  • エージェント同期スクリプト: Claude Codeエージェント設定の自動同期機能を追加
  • TUIのInk+React移行: ステートベースのモダンな設計に移行

技術的な詳細

新機能

1. sync-repo-tuiパッケージ

TypeScript製のTUIリポジトリ同期ツールが、ReactとInkを使用したモダンなアーキテクチャとして完全に書き直されました。

パッケージ情報:

{
  "name": "@sunwood-ai-labs/sync-repo-tui",
  "version": "1.0.0",
  "type": "module",
  "bin": {
    "sync-repo-tui": "./bin/sync-repo-tui"
  }
}

アーキテクチャ:

ステートベースのTUI設計により、Reactのステート管理を使用したモダンな設計になっています:

type AppState =
  | { type: 'loading' }
  | { type: 'envCheck'; hasEnv: boolean }
  | { type: 'githubCheck' }
  | { type: 'modeSelect' }
  | { type: 'repoConfirm'; mode: 'single' | 'org'; config: Config }
  | { type: 'repoInput'; mode: 'single' | 'org'; config: Config }
  | { type: 'orgRepoList'; config: Config; repos: string[] }
  | { type: 'syncOptions'; config: Config; repos: string[] }
  | { type: 'finalConfirm'; config: Config; repos: string[] }
  | { type: 'syncing'; config: Config; repos: string[] }
  | { type: 'done'; summary: any }
  | { type: 'error'; message: string };

モジュール構成:

モジュール ファイル 説明
CLI cli.ts コマンドラインエントリーポイント
Config config/ 設定管理
GitHub github/ GitHub API ラッパー
Sync sync/ 同期ロジック
TUI tui/ Ink+React製TUI画面
Utils utils/ ユーティリティ

2. PR自動コメントワークフロー

PRが作成されると自動的にコメントを投稿するGitHub Actionsワークフローを追加しました。

on:
  pull_request:
    types: [opened]

permissions:
  contents: read
  pull-requests: write

env:
  ENABLE_PR_AUTO_COMMENT: ${{ vars.ENABLE_PR_AUTO_COMMENT || 'true' }}
  TEMPLATE_SOURCE: ${{ vars.TEMPLATE_SOURCE || 'remote' }}
  TEMPLATE_URL: ${{ vars.TEMPLATE_URL || '...' }}

機能:

  • 自動トリガー: PRオープン時に自動実行
  • スイッチ機能: ENABLE_PR_AUTO_COMMENT 変数でオン/オフ制御
  • テンプレート選択: リモートURLまたはローカルファイルからテンプレートを読み込み
  • 権限設定: 必要最小限の権限のみ付与

3. エージェント同期スクリプト

Claude Codeエージェント設定の自動同期機能を追加しました。

スクリプト 説明
scripts/sync-agents.sh エージェント設定(.claude/agents/)を複数リポジトリに同期
scripts/sync-repo-tui.sh sync-repo-tuiバイナリのラッパー
scripts/install-sync-repo-tui.sh sync-repo-tuiのインストーラー

リファクタリング

TUIをInk+Reactに移行

移行前(blessed)→ 移行後(Ink+React)

変更点:

  1. すべてのモジュールをES Modulesに移行
  2. TypeScript設定の更新
    {
      "compilerOptions": {
        "module": "ES2022",
        "moduleResolution": "bundler",
        "jsx": "react",
        "jsxFactory": "React.createElement"
      }
    }
    
  3. 実行方法の変更
    • 移行前: Node.jsでコンパイル済みJSを実行
    • 移行後: tsx でTSXを直接実行

メリット:

項目 改善内容 メリット
コンポーネントベース ReactコンポーネントとしてUIを構築 再利用可能なUI部品
型安全性 TypeScript + Reactで型安全なUI開発 実行時エラーの削減
テスト容易性 React Testing Library等のテストツールが活用可能 品質の向上
エコシステム npmのReactエコシステムを活用 豊富なライブラリ

バグ修正

  • sync-repo.sh: 重複コードの削除、case文の論理エラーを修正
  • sync-repo-tui: 変数名の重複を修正、論理エラーを修正

クリーンアップ

削除されたファイル:

ファイル 理由
.github/scripts/create-pr.py 使用されていないPR作成スクリプト
.github/workflows/disabled/MINIMAL.yml 無効化されたワークフロー

まとめ

claude-glm-actions-lab v1.1.0 は、TUIモダン化とリポジトリ同期機能強化のための重要な一歩です。

項目 改善内容 メリット
React + Ink モダンなTUIアーキテクチャ コンポーネントベースのUI開発
ステート管理 Reactのステート管理を採用 シンプルで分かりやすい設計
PR自動コメント PRオープン時に自動応答 チームコラボレーションの強化
エージェント同期 Claude Codeエージェントの自動同期 複数リポジトリの管理が容易に

📚 参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?