DeltaDBの紹介:AIエージェント時代のバージョン管理

DeltaDBはスナップショットから操作ストリームへバージョン管理をシフトします

Zedは、離散的なコミットの制約を超えてソフトウェア開発を前進させるためにDeltaDBを構築しています。特定の時点でコードのスナップショットを取得するGitとは異なり、DeltaDBは作業ツリー上で実行されたすべての細かい「deltas」の連続ストリームを記録します。このアプローチにより、システムはすべての変更に安定した ID を付与でき、開発者はコードの進化の任意の瞬間の正確な状態を参照できるようになります。

このアーキテクチャの転換は、AI支援コーディングの時代に特化して設計されています。操作をリアルタイムで記録することで、コード変更を駆動する会話が編集と並列に保存され、意図(会話)が実装(コード)から乖離することを防ぎます。

会話を第一級の真実情報源として統合する

DeltaDBは、人間とAIエージェント間の会話をソフトウェアの主要な情報源として扱います。参照が揮発的な行番号ではなく特定のdeltasに固定されているため、コードが進化し続けても歴史的コンテキストが残ります。

この統合の主な機能は次のとおりです:

  • 双方向ナビゲーション: 開発者は過去の会話中の行から現在のコード状態へジャンプでき、逆に特定の行を生成した会話とその後の編集を追跡できます。
  • エージェントコンテキスト: AIエージェントはdeltasの全履歴にアクセスし、コード片の背後にある「なぜ」を、過去に触れたエージェントや人間をレビューすることで理解できます。
  • リアルタイムコラボレーション: 複数の人間とエージェントが、コンフリクトフリーなレプリケート作業ツリーを用いて、異なるマシン上で同じファイルを同時に編集できます。これらの作業ツリーはディスク上の実ファイルとして残り、外部ターミナルツールでも利用可能です。

Pull Request の「儀式」的側面を排除する

議論とコードを単一の場所に統合することで、DeltaDBは従来のプルリクエストやレビュー・スレッドの必要性をなくすことを目指します。現在のGitベースのワークフローでは、PRは作業がすでにコミット・プッシュされた後に議論をコードに再結合する手段として機能しています。DeltaDBはエージェントとの会話だけが唯一必要な対話になるよう設計されており、チームメンバーはライブの作業中に参加し、エージェントとやり取りし、リアルタイムで変更に注釈を付けられます。

このモデルの下では、Git と Continuous Integration(CI)は本来の強みである自動チェックの実行や、エコシステム全体への最終的な接続管理に専念し、コラボレーションの主要な場としての役割は縮小されます。

コミュニティの視点と技術的批判

DeltaDB の発表は、開発者の間で「中間」コードの価値やプロフェッショナルなソフトウェアエンジニアリングの本質について大きな議論を呼び起こしました。

「混沌とした中間部」の価値

多くの開発者は、コミット間の作業は試行錯誤の「混沌としたスープ」であり、保存すべきではないと主張します。批判者は、コミットはなぜ変更が行われたかというキュレーションされたストーリーであるのに対し、すべての操作のストリームはどのように起こったかの記録に過ぎないと指摘します。

"コミット間で書くコードは私の考えです。コードを書いて削除し、また書くことで考えます。コミットで出荷されるコードは他者が理解できるように書かれています… 私の考えがシリアライズされ、バージョン管理され、公開されるのは望みません。"

監視とノイズへの懸念

一部の貢献者は、すべてのキー入力を捕捉することが開発者監視のレベルを高める可能性を懸念しています。別の意見では、結果として残る履歴は「ジャンク」— 行き止まりやミス — が多く、将来の保守者に負担をかけると指摘しています。

"すべての変更とエージェントメッセージを保存すると、あのジャンクが残り続けます。"

既存システムとの比較

技術的な反論として、同様の機能は既存ツールで実現可能だという指摘が出ました:

  • Git の最適化: 一部のユーザーは、頻繁な自動コミットに git merge --no-ff--first-parent を組み合わせることで、細かい履歴とクリーンなトップレベルコミットのバランスを取れると述べました。
  • エンタープライズの前例: Google の Piper/CitC システムは、何年も高粒度の履歴を運用していることが指摘されました。
  • 代替コンテキスト: 一部の開発者は、チャットログのデータベースで意図をコード化するよりも、ソースファイル横にライブ Markdown ドキュメントを置く「コンテキスト階層」を好むと述べました。

AI 固有の有用性

逆に、非エンジニア向けツールを構築する開発者は、厳格なコミット衛生を守らない人々にとって、英語の議論の永続的なチェーンがソフトウェア構築に必要な「思考の連鎖」を表す唯一の方法であると主張しています。

Sources