Skip to content

docs(site): где раннер хранит данные (#736) - #737

Merged
zeegin merged 3 commits into
masterfrom
docs/736-storage-locations
Nov 14, 2026
Merged

zeegin merged 3 commits into
masterfrom
docs/736-storage-locations

Conversation

@zeegin

@zeegin zeegin commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

Closes #736

Порядок вливания: вместе с #735 или после него. Формулировка «AgentBaseDir в workPath» верна для живого агента только после #735.

Публичные документы и сайт приведены к тому, где раннер на самом деле хранит данные. Каждое утверждение сверено с кодом: src/support/machine.rs (state_dir_location, account-salt), src/platform/agent_keeper/{mod.rs,server.rs,client.rs}, src/platform/agent.rs (create_for, host_key_fallback_roots), src/use_cases/agent_session.rs (~692–704), src/platform/service_record.rs, src/domain/source_set.rs, src/config/loader.rs, src/use_cases/infobase_owner.rs.

Согласовано с #735: в выпуске 0.17.4 AgentBaseDir и текущий каталог живого агента переезжают в workPath. Поэтому PR не пишет, что они лежат в каталоге состояния. Строка запуска агента (/AgentBaseDir <workPath>/agent/base) оставлена прежней. Каталог состояния описан как место, где лежат запись и журнал сторожа, ключ хоста живого агента, bin/ и account-salt. V8_RUNNER_STATE_DIR не описывается: её судьбу решает #735.

Что изменилось

  • docs/CONFIGURATION.md
    • workPath/agent/: ключ хоста в workPath/agent/host-keys есть только у разового агента. Ключ живого агента, его запись и журнал сторожа лежат в каталоге состояния.
    • Ключ хоста: ключ живого агента лежит в agents/<ключ>/agent/host-keys/ в каталоге состояния, ключ разового — в workPath/agent/host-keys/.
    • Запасной каталог для ключа на пути не в ASCII: у живого агента это каталог состояния под %LOCALAPPDATA%, например при кириллическом имени пользователя Windows.
    • Добавлен состав каталога состояния: agents/<ключ>/agent/{record.json,agent.log,host-keys/}, bin/<версия>/, account-salt. Путь к agent.log называет отказ agent_start у agent hold, когда сторож вышел, не ответив, или не ответил вовремя. Каталог лежит в профиле пользователя, обычно на системном диске.
    • В дерево localPath добавлены managed/owner.json, standalone.log, ras.log и host-key автономного сервера.
  • docs/CAPABILITIES.md: та же правка строки про workPath/agent, с путями каталога состояния.
  • SKILL/SKILL.md: в строку про живого агента добавлено, где лежат запись и журнал сторожа (agent.log) и ключ хоста. Сказано и то, что при отказе сторожа команда работает с разовым агентом (reason: keeper_failed), а agent hold отказывает с agent_start и называет этот журнал.
  • docs/site/architecture.html
    • В таблице компонентов три строки: workPath, localPath и каталог состояния учётной записи.
    • В правиле замка различаются разовый и живой агенты.
    • Таблица «Сколько живёт»:
      • память о базе лежит в localPath;
      • живой агент переживает команду и закрывается через 15 минут простоя без держателя или по agent stop; запись и журнал сторожа и ключ хоста лежат на системном диске учётной записи; при отказе сторожа команда работает с разовым агентом (keeper_failed), а agent hold отказывает с agent_start;
      • разовый агент живёт до конца команды;
      • автономный сервер можно поднять командой standalone start, и тогда он живёт до standalone stop.
    • Выводы под таблицей исправлены.
  • docs/site/sources.html: в таблице и дереве памяти о базе указан localPath (корень .local/ # localPath).
  • docs/site/glossary.html: исправлена статья workPath, добавлена новая статья localPath.
  • docs/site/usecases.js: артефакт state теперь называется «память о базе в localPath».
  • docs/site/problems.html: память о базе лежит под localPath.
  • docs/site/project.html
    • После удаления workPath память о базе сохраняется, и push идёт по изменившемуся. Без памяти о базе (например, если стереть localPath/infobases/<база>) push отказывает с untracked_base и в error.next называет, как восстановить связь.
    • Исправлен комментарий к workPath в примере.
  • docs/site/variant-file.html: база задана как File=.local/db. В дереве каталогов показаны localPath и метка владельца .db.v8-runner.owners.json.
  • docs/site/scenarios.html: файловая база в «Подборе» — File=.local/db.
  • docs/site/diagrams.py и пересобранные схемы
    • На d-cluster-managed адрес Конфигуратора исправлен на Srvr=127.0.0.1:<regport>, как в src/platform/ragent.rs.
    • Подписи узлов на схемах d-standalone-managed и d-cluster-managed — localPath.
    • С подписи workPath на d-file убраны хеши.
  • Комментарии к workPath в примерах variant-cluster, variant-standalone, variant-containers и variant-publication.
  • Пересобран docs/site/search-index.json.

Пункт issue про architecture.html:289 («AgentBaseDir в workPath») сознательно оставлен как есть. После #735 он будет верен для обоих видов агента.

Проверки

  • python docs/site/diagrams.py && python docs/site/check_diagrams.py: 0 замечаний.
  • python docs/site/build_search_index.py: 44 страницы, 971 раздел.
  • python docs/site/check_target_content.py: OK, 4 теста.
  • python scripts/site_matrix.py: зелёный, 7 известных расхождений из site_matrix_known.txt.
  • python docs/site/test_cli_reference.py: 6 из 7 тестов проходят. Тест test_response_inventory_covers_target_classes_and_error_codes падает так же на чистом origin/master: в таблице ответов глоссария нет 9 кодов (agent_limit, live_agent_off, infobase_sessions и др.). Эта правка падение не вызывает и не исправляет.
  • Сборка и тесты Rust не запускались: Rust-код не менялся.

🤖 Generated with Claude Code

zeegin and others added 3 commits November 14, 2026 18:56
- память о базе (хеши, поколение, файл версий) описана в localPath/infobases/<база>/, а не в workPath: sources, architecture, glossary (новая статья localPath), problems, usecases.js, project
- project.html: после удаления workPath память цела и push идёт по изменившемуся; untracked_base — без памяти о базе
- CONFIGURATION/CAPABILITIES/SKILL и architecture: каталог состояния учётной записи ОС держит запись и журнал сторожа живого агента, ключ хоста, bin/ и account-salt; workPath/agent/host-keys — только у разового агента; запасной каталог ключа при не-ASCII каталоге состояния
- architecture «Сколько живёт»: живой агент переживает команду (15 минут простоя без держателя или agent stop), разовый — на время команды; автономный сервер может поднять standalone start
- дерево localPath в CONFIGURATION: managed/owner.json, журналы служб, host-key автономного сервера
- variant-file и scenarios: файловая база File=.local/db, дерево каталогов с localPath и меткой владельца; подписи схем служб стенда — localPath; комментарии workPath в примерах
- пересобраны схемы и search-index.json

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- agent_start: обычная команда при отказе сторожа работает с разовым агентом (keeper_failed), отказывает agent hold; журнал сторожа называется, когда сторож вышел или не ответил вовремя (architecture, SKILL, CONFIGURATION)
- схема кластера под управлением раннера: адрес Srvr=127.0.0.1:<regport>, как в ragent.rs; пересобраны схемы и search-index.json
- project.html: без памяти о базе push отказывает untracked_base и называет выход в error.next
- architecture: ключ хоста живого агента; строка автономного сервера
- CONFIGURATION: место ключа хоста живого агента

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- конфликты в CONFIGURATION, CAPABILITIES, SKILL решены по master (#739): живой агент в workPath/agent/live
- architecture.html: сторож и агент больше не в каталоге состояния учётной записи; журнал сторожа — workPath/agent/live/<ключ16>.log

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@zeegin zeegin mentioned this pull request Nov 14, 2026
@zeegin
zeegin added this pull request to the merge queue Nov 14, 2026
Merged via the queue into master with commit 04906fc Nov 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant