From 6139b2ca98570b96a5262989edcf6cbbcf413bb0 Mon Sep 17 00:00:00 2001 From: h Date: Wed, 2 Sep 2026 01:33:58 +0200 Subject: [PATCH] chore: no personal addresses or nicks in the repo - machines by MagicDNS name, vibegram identity only from env --- .env.example | 8 +++++--- beaver_agent/hands/__init__.py | 8 ++++---- beaver_agent/hands/vibegram.py | 4 ++-- docker-compose.yml | 3 +++ t3code.toml | 5 ++--- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.env.example b/.env.example index ab84c2f..806bea0 100644 --- a/.env.example +++ b/.env.example @@ -74,6 +74,8 @@ MSOS_MCP= # На каждой машине: `t3 auth session issue --token-only --ttl 365d --label beaver` T3_MAC_TOKEN= T3_DELL_TOKEN= +# tailnet-адрес самого dell: контейнер t3code-mcp иначе резолвит `dell` в 127.0.1.1 +T3_DELL_ADDR= # Токен gateway со scope `api` (admin → Tokens) - им t3code-mcp шлёт события в /hooks/t3code T3CODE_MCP_GATEWAY_TOKEN= # Ветка/тег t3code-mcp, из которого собирается образ @@ -100,12 +102,12 @@ HA_TOKEN= # Хаб и токен агента: один раз `vibegram join --nick <ник> --no-hooks` # из клона репы комнаты на любой машине, токен - в ~/.vibegram/config.json -VIBEGRAM_HUB=https://vibegram.example.com +VIBEGRAM_HUB= VIBEGRAM_TOKEN= -VIBEGRAM_NICK=beaver-test +VIBEGRAM_NICK= # Репа комнаты (GitHub org/repo) - сервис vibegram-repo держит клон в томе # `vibegram`, gateway видит его в /vibegram/ только на чтение -VIBEGRAM_REPO=org/room +VIBEGRAM_REPO= # Токен GitHub с доступом к репе (приватная); пусто - публичная VIBEGRAM_REPO_TOKEN= diff --git a/beaver_agent/hands/__init__.py b/beaver_agent/hands/__init__.py index 1dd9848..197673b 100644 --- a/beaver_agent/hands/__init__.py +++ b/beaver_agent/hands/__init__.py @@ -74,16 +74,16 @@ HA = ( ha = McpServer.python_tool(name="ha", tools=[HA.ha]) if HA else None ha_exposed = (ExposedMcp(name="ha"),) if HA else () -VIBEGRAM_REPO = Path("/vibegram") / env("VIBEGRAM_REPO", "x/room").split("/")[-1] +VIBEGRAM_REPO = Path("/vibegram") / env("VIBEGRAM_REPO", "org/room").split("/")[-1] VIBEGRAM = ( Vibegram( - hub=env("VIBEGRAM_HUB", "https://vibegram.example.com"), + hub=os.environ["VIBEGRAM_HUB"], token=os.environ["VIBEGRAM_TOKEN"], - nick=env("VIBEGRAM_NICK", "beaver-test"), + nick=os.environ["VIBEGRAM_NICK"], repo=VIBEGRAM_REPO if VIBEGRAM_REPO.exists() else None, tz=TZ, ) - if env("VIBEGRAM_TOKEN") + if env("VIBEGRAM_TOKEN") and env("VIBEGRAM_HUB") and env("VIBEGRAM_NICK") else None ) """Комната агентов: диспетчер сидит в ней сам; клон репы комнаты - том `vibegram`.""" diff --git a/beaver_agent/hands/vibegram.py b/beaver_agent/hands/vibegram.py index 9c6ae73..8ef1e33 100644 --- a/beaver_agent/hands/vibegram.py +++ b/beaver_agent/hands/vibegram.py @@ -1,8 +1,8 @@ """вайбграм - комната агентов на хабе, как python_tool. -Хаб - https://vibegram.example.com, протокол - REST с bearer-токеном агента +Хаб - `VIBEGRAM_HUB`, протокол - REST с bearer-токеном агента (выдан при `vibegram join`, лежит в env gateway и в контекст модели не -попадает). Диспетчер сидит в комнате сам (D1: внутренний контур с соседями), +попадает). Диспетчер сидит в комнате сам (внутренний контур с соседями), но через перечислимые действия: прочитать новое, написать, кто в комнате, что занято, план, claim/release, карточка. Один и тот же клиент кормит крон-проверку (`pending`) и тулзу (`vibegram`). diff --git a/docker-compose.yml b/docker-compose.yml index b0dff6b..37e63d9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -102,6 +102,9 @@ services: # события тредов (завершён / упал / спрашивает) → инжект в мастер (§4.5) T3CODE_MCP_HOOK_URL: http://gateway:62990/hooks/t3code T3CODE_MCP_STATE: /data/t3code-mcp.json + extra_hosts: + # контейнер резолвит имя своего хоста в 127.0.1.1 - даём tailnet-адрес явно + - "dell:${T3_DELL_ADDR:?T3_DELL_ADDR=tailnet ip of dell}" volumes: - ./t3code.toml:/config/t3code.toml:ro - t3code-state:/data diff --git a/t3code.toml b/t3code.toml index c689fef..dcffd96 100644 --- a/t3code.toml +++ b/t3code.toml @@ -1,6 +1,5 @@ -# t3code-mcp (§5): машины с T3 Code и allowlist проектов на каждой. -# Токены - только в .env (T3_MAC_TOKEN, T3_DELL_TOKEN), сюда не писать. -# projects - fnmatch по названию проекта и по его workspace root; "*" - всё (решение h, 2026-08-29). +# Машины с T3 Code и allowlist проектов на каждой. Токены - в .env (T3_*_TOKEN). +# Имена - MagicDNS tailnet'а; `dell` для контейнера прописан через T3_DELL_ADDR. [machines.mac] url = "http://mac:3773"