Consoleとは
Console は loopkeep の Web コントロールプレーンです。アカウント、ペアリング済みの デバイス、そして外部のイベントで自分のマシンの workflow をトリガーする GitHub・Slack 接続を管理します。ここは意図的に、あなたの作業が行く場所ではありません — Console が 知ることをできるだけ少なくするように、アーキテクチャが作られています。
イベントがマシンに届く仕組み
GitHub / Slack ──webhook──▶ Console ──wake signal──▶ your daemon ──API fetch──▶ run
あなたの daemon は Console への外向き WebSocket 接続を 1 本だけ保ちます — マシンに 受信ポートはありません。GitHub や Slack のイベントが届くと、Console はその署名を 検証し、wake signal だけを転送します。どの installation か、どのリポジトリか、 どんな種類のイベントか。payload も中身もありません。
daemon はそのあと本当のデータ — issue の本文、Slack のスレッド — を、自分の認証情報で ソース API から直接取得し、イベントが実際に存在するときだけ run を発火します。この 帰結ははっきり述べる価値があります。侵害された Console でさえ run を偽造できません。 でっち上げた wake signal は、ソースに対する daemon の検証に通らないからです。
signal は store-and-forward されます。マシンがオフラインなら再接続時に配信され、 集約が溜まった分の暴走を防ぎます。
デバイス
lk login またはデスクトップアプリの サインイン でペアリングします
(Console とペアリングする を参照)。各デバイスは専用のトークンと
署名鍵を持ち、Console の デバイス に一覧され、個別に revoke できます — 紛失・盗難
したノートPCの復旧経路です。
GitHub
Console の 接続 ページから、loopkeep の GitHub App を自分のアカウントか
組織にインストールします。するとリポジトリのイベント(issue、pull request、…)が
wake signal として流れます。workflow はリポジトリに暗黙で bind します。origin
リモートがあるリポジトリを指す workspace は、設定なしでそのリポジトリのイベントを
受け取ります。複数のリポジトリを購読するには、明示的に名前を指定します:
on:
issues:
repos: ["org/other-repo"]
Slack
Console の Add to Slack で Slack workspace を接続します — 共有アプリが 1 つ、 作ったり貼ったりするトークンはありません。すると workflow はメンションと DM で トリガーできます:
on:
slack:
events: [app_mention]
channels: ["#ops"]
from_not: ["*bot*"] # 既定のガード: bot の返信で再発火しない
メッセージ本文はあなたの daemon が Slack API から取得します。wake signal に載って 運ばれることはありません。
保証すること
- 中身はマシンに残る。 wake signal はメタデータです。あなたのコード、ファイル、 prompt、run の出力について、何もアップロードされません。
- ランタイムは決してゲートされない。 サインアウト中、オフライン、Console が落ちて いても — ローカルのトリガー、run、受信箱、デスクトップアプリはいつまでも動き続けます。 リモートの kill switch は、設計上ありません。
- revocation は本物。 デバイスを revoke すると、その Console アクセスとコネクタの 認証情報が切れます。
この先の予定
予定は順に、Console への読み取り専用のイベント同期(メタデータと要約だけ — 中身は マシンに残る)、デバイス署名の verdict によるリモート承認、そしてポケットから承認する ための iOS アプリです。これらが揃うにつれて docs も増えていきます。