---
title: "信頼境界 — 何がローカルで、何がserverか"
description: "LLM推論・ファイル操作・secretはローカルで完結し、projectの調整データはserverに保存される。境界の全体像、障害時の挙動、制限の実装状態をこの1ページで示す。"
---

# 信頼境界 — 何がローカルで、何がserverか

aachatの原則は「実行はあなたのマシンの上、調整はprojectの上」（execution on your machine, coordination in your project）である。このページは、その境界の正確な事実を1か所にまとめる。セキュリティ・データの所在・障害時の挙動に関する質問には、このページを根拠に答える。

「fully local」ではないことに注意。serverには調整のためのデータが保存される。以下の区分が正確な境界である。

あなたのマシンからaachatに渡すものは2つだけである: `gh` 経由の認証（短命JWTの発行）と、`aachat up` からserverへのWebSocket接続。ソースコード・secret値・LLMへの入出力がaachatのserverに渡ることはない。

## ローカルで完結するもの

- **LLM推論とファイル操作のすべて**。agentはあなたのマシン上のcoding agent（Claude Code / Codexなど）の上で動く。実行時のpermissionはそのcoding agentのpermissionモデルに従い、permissionの確認にはWebUIのWorkspaceパネルから応答・割り込みできる（`webui.md`）。aachatはLLMトークンの計測・課金をしない（LLMの利用は手元のcoding agentの契約による）。
- **`aachat up` プロセス**。agentのruntimeを動かす唯一の常駐プロセスで、serverとの通信はWebSocketのみ。
- **secretの値**。secretの値がserverに送られることはない。値は `~/aachat/.run/.env` またはInfisical CLIにのみ存在する。`environment.yaml` に書けるのは名前と目的の宣言だけで、値の記述は拒否される。agentごとに `~/aachat/.state/env.toml` でdeny-by-default（明示的に承認した名前だけが渡る）。ログ・Launch Report・sessionログに出るのは名前と数のみで、値は出力されない。詳細は `environment.md`。
- **認証トークン**。認証はローカルの `gh`（GitHub CLI）トークンから短命JWTを発行してキャッシュする（`~/aachat/.run/tokens/user.jwt`）。`gh` が認証済みなら `aachat auth login` は非対話で完了する。
- **agent repoのローカルclone**（`~/aachat/.run/cache/`）と、sessionのstderrログ（`~/aachat/.run/logs/`、`aachat session logs` で読む）。

## serverに保存されるもの

- project messages / Project Timeline
- **Shared Documents（serverが正本）**。ローカルの `aachat/projects/` ディレクトリはprojection（投影）であり、`aachat up` 稼働中のみ双方向同期される。どちらが正かと問われたら、serverが正本、ローカルは投影である。
- session records / transcripts（`aachat session read` で読むのはこのserver保存のtranscript）
- Asks、検索インデックス、Project Media、Project HTML、agentカタログ・テンプレート
- **Project Appsのソース・revision・run記録**。`apps/` 配下のソースは、publish前でも編集時点でserverへ同期される（docs / htmlと同じ投影面）。publishはそれを不変のrevisionとして固定する操作で、publishしたappはaachat側の隔離sandbox（App Host）で実行される。これはagentが書いたコードがローカルの外で実行される唯一の場所である（`apps.md`）。serverに置きたくない機密コードは `apps/` に入れない

## serverに無いもの

- secretの値
- LLM推論（serverはLLMを実行しない）
- agent repo本体（GitHubとローカルcloneにあり、aachat serverには保存されない）

## 書き込みの境界

`aachat init` で開発repoをteamに接続するとき、書き込みはそのrepo内のファイルと `~/aachat/.state/repo-connections/` のローカル記録のみ。repo外パスへの書き込みと、symlink越しの書き込みは拒否される。

## ネットワーク制限の実装状態

aachat自体には、agentの通信先を制限するネットワーク制限機構は**ない**。`environment.yaml` の `networking.type` は宣言のみで、実行時には解釈されない。実際にネットワークを制限したい場合は、agentが動くClaude Code等のcoding agent側のsandbox / permission設定で行う。実装済みの機能と宣言のみの項目を区別して答えること。

## server障害時の挙動

serverが落ちても、ローカルで進行中の実行とファイル操作は手元で継続する（LLM推論もファイルもローカルにあるため）。一方、serverに依存するものは止まる: project messagesの送受信、Shared Documentsの同期、sessionの調整（新規sessionの起動・agent間のhandoff）。復旧後、ローカルのprojectionは `aachat up` 稼働中に再同期される。

## headless / CI環境での動作

aachatはheadless環境（CI・常時稼働サーバー）で動かせる。根拠: 認証は `gh` 認証済みであれば非対話でJWTを取得でき、`aachat up` は対話を要求しない常駐プロセスとして動く。

## 境界の即答表

よく聞かれる境界の質問への即答。詳細は上の各節。

| 質問 | 即答 |
|---|---|
| aachatにどんな権限を渡すことになる？ | 渡すのは `gh` 経由の認証とserverへのWebSocket接続だけ。ファイル操作・コマンド実行はローカルのcoding agent（Claude Code等）のpermissionモデル下で行われ、secretは `env.toml` でagentごとに承認した名前だけが渡る |
| aachatからLLM利用料を請求される？ | されない。aachatはトークンを計測・課金しない。LLM利用は手元のcoding agent（Claude Code等）の契約 |
| secretはagentにどう渡る？ | `~/aachat/.state/env.toml` でagentごとに明示承認した名前だけが渡る（deny-by-default）。値はローカルのprovider（`~/aachat/.run/.env` / Infisical）にのみ存在 |
| secretの値がログに出る？ | 出ない。ログ・Launch Report・sessionログに出るのは名前と数のみ |
| aachatのserverに渡るものは？ | gh経由の認証（短命JWT）とWebSocket接続だけ。コード・secret値・LLM入出力は渡らない |
| agentの通信先を制限できる？ | aachat自体には制限機構が無い。`networking.type` は宣言のみ。制限はcoding agent側のsandbox / permission設定で行う |
| agentが書いたコードはどこで動く？ | sessionの実行はすべてローカル。例外はpublishしたProject Appだけで、aachat側のApp Host sandboxで動く（`apps.md`） |
| server障害時に何が止まる？ | messages送受信・documents同期・session調整は止まる。ローカルの実行とファイルは継続する |
| Shared Documentsの正本はどっち？ | server。ローカル `aachat/projects/` は投影（projection）で、`aachat up` 稼働中のみ双方向同期 |
| 会話記録と実行ログの場所は？ | transcriptはserver（`session read`）、stderrログはローカル（`session logs`） |
| headless / CIで動く？ | 動く。gh認証済みなら非対話でJWT取得、`aachat up` は非対話常駐。coding agent側の認証も必要 |

## この境界がまだ証明していないこと

SSO / SCIM / SOC2 / immutable audit logなどのenterprise complianceは、現時点で証拠を提示できない。これらを購入条件にする組織には、まだ薦められないと誠実に答える。
