AIエージェント協業アプリTucanoに、チームWikiをGitリポジトリに接続して文書を定期的に取り込み、保存した変更を再び送る機能が追加された。サーバーやクラウドで利用するチームは、個人のObsidianの保管庫のように、リポジトリに集めた文書をWikiの基準にできる。

1. リポジトリをWikiの基準の文書として接続

Wikiの所有者や管理者は、Wiki設定のフォルダメニューでリポジトリのアドレスを入力して接続を始める。Tucanoは、このWikiがリポジトリにアクセスするための専用認証キーを作成し、アプリのシークレットストアに保存する。

ユーザーは生成された公開キーをリポジトリホストのデプロイキー設定に登録する。デプロイキーは、アプリにそのリポジトリへのアクセス権を与える鍵だ。読み取り専用か、読み書きの両方を許可するかを選び、接続をテストすればよい。テストではリポジトリに接続して別のクローンを作り、ページとPDF、DOCXファイルの数を数える。接続後はクローンがアプリデータ内のWikiフォルダとなり、既存のフォルダはバックアップとして残る。

すでにページがあるWikiでは、リポジトリの内容に置き換えるか、既存の文書を統合できる。統合時に同名で内容が異なるページは、Tucano側の版であることを示す接尾辞を名前に付けて別の文書として保存し、最初の招待を受けた人のために保留されたページは保留の状態を維持する。

2. 変更を取り込み、リポジトリに送る仕組み

リリースの説明によると、Tucanoは起動時と2分ごとにリポジトリの変更を取り込み、Wikiに記事を書くキュレーターの作業前にも再確認する。Wikiでページを保存すると、数秒後に変更履歴をリポジトリに記録するコミットと、その記録をリモートリポジトリに送るプッシュを試みる。つまり、リポジトリでの修正はWikiに入り、Wikiで編集したページはリモートリポジトリに反映される。

両側で同じ文書が変更された場合は、リポジトリの版を元の場所に残し、Tucanoの版は名前を変えた別の文書としてコミットする。2つの編集版を並べて残す方式で、競合が発生した通知もWikiの管理画面に表示される。

3. 公開範囲と権限エラーへの対応

最初の招待を受けた人のために保留されたページと個人の会話から取り込んだ出典は、リポジトリに送らない。Tucano独自のファイルであるíndice.md、registro.mdと、50MBを超えるファイルもコミットの対象外だ。Wikiフォルダをリポジトリに接続しても、これらの項目はリポジトリに送る変更に含まれない。

書き込み権限のないキーは最初のプッシュ時に検出され、その場合はWikiが読み取り専用になり、キュレーターを含め誰も書き込めなくなる。送信できなかった内容はWikiフォルダに残る。

リポジトリの書き込み権限を有効にした後は、書き込みを再試行する機能で確認できる。ネットワークやキーのエラーは最終同期時刻とともに設定画面に表示され、同期の再試行と即時実行の機能も提供される。

4. インストールと接続前に確認したい運用負担

MacやLinuxでは、以下の公式コマンドで最新リリースをインストールし、アプリを開ける。Wiki同期機能を使うコンピューターにはGitもインストールされている必要がある。

curl -fsSL https://github.com/eduwxyz/tucano/releases/latest/download/install.sh | sh

接続には、SSHというリモート接続方式の認証キーを使う。キーは所有者だけが読み書きできる一時ファイルに入れて使用し、接続したサーバーの身元を記憶するアプリ独自のホスト記録で接続先を確認する。

リポジトリを基準にすると、既存の文書をWikiでも活用しながら、両側の修正をやり取りできる。その代わり、チームはリポジトリの権限と共有する文書の範囲を併せて管理する必要がある。接続前に既存のページを統合するか決め、デプロイキーの書き込み許可を確認することも運用準備に含まれる。

Tucano 0.2.20はWikiをGitリポジトリとともに管理できるようにするが、チームは編集権限とリポジトリに送る文書の範囲を先に決める必要がある。