セッションとメモリ
q がワークスペース実行間で保存、圧縮、学習、復元するものを理解します。
永続セッション
各ワークスペースは .q/sessions/ の下に複数の UUID ベースのセッションを保存できます。Studio はルートセッションとワークスペース位置を登録し、異なるリポジトリのルートを一つの一覧に表示します。リポジトリを追加し、既存のルートを選ぶか新しいセッションを作成できます。非アクティブなルートを削除すると委任ツリー全体が消えますが、Workspace Memory の永続アーカイブは保持されます。
一つのプロセスが選択中のセッションを所有します。別の q プロセスは同じワークスペースの異なるセッションを開けますが、セッションロックはリポジトリファイルの編集を直列化しません。
会話とコンテキスト
q は表示される会話全文とモデルへ送る圧縮コンテキストを別々に保存します。コンテキストメタデータがあれば、ユーザーに見える記録を保ちながらモデル入力を短くできます。
主要なセッションレコードは次の場所です。
.q/sessions/<uuid>/session.json
セッション v2 は Chat Completions と Responses に共通のメッセージ形式を使います。既存の v1 Chat Completions セッションは読み込み時に変換され、次の保存で新形式になります。該当する場合の Responses 再生状態も保存します。旧ファイルの loop_mode 値は読み込めますが、次の保存では省略されます。
委任の復元
委任された各子呼び出しのブックマークを delegations.json に、子セッションを delegates/<invocation-id>/ に保存します。子もさらに委任できます。再起動後は最も深い子から復元し、保存済みの結果を親の呼び出しへ返します。
Studio はこれらのレコードをツリーとして表示します。子を選ぶと専用の会話が開きます。完了した子を削除すると、その子とすべての子孫が消えますが、親の会話にある完了済みツール交換は残ります。実行中、blocked、unknown の子はこの操作では削除できません。
結果が記録されていない通常のツール呼び出しは unknown としてエージェントに返し、自動再実行しません。中断された外部 ACP の子も内部ターンを再開できないため unknown を返します。
Workspace Memory
Workspace Memory は永続メッセージ、ツール活動、失敗、ライフサイクルイベント、検索インデックスを保存します。すべての過去を一つのチャットコンテキストに載せずに検索できます。
大きなツール結果は不変の Loom アーティファクトになります。プロンプトには上限付きの参照情報が届き、モデルは後から必要な部分だけ確認できます。
学習
成功したターンの後、Thinker は確立したワークフロー、永続的なプロジェクト事実、再利用可能な解決方法、将来の作業に影響する根拠ある発見を proposition として抽出できます。
Librarian は proposition を作成、統合、破棄するか判断します。/learn off は収集とキュー処理を止めますが、すでにキューにあるデータは削除しません。
実行ごとのビルド、テスト、フォーマット、監査の結果は永続的なプロジェクト事実ではなくタスク履歴に残します。