[2026-10-19] eagle: personal/projects/balda/mattermost-dm-threads-2026-10-19.md personal/projects/balda/setup.md personal/projects/balda/upstream-deploy-2026-10-19.md personal/projects/balda/upstream-prs-2026-10-19.md work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md work/projects/cpm-status-2026-10-15.md work/projects/cpm-web-extension-code-guide-2026-10-09.md
This commit is contained in:
1 parent
5c678e1521
commit
6e1e0b56c1
7 files changed
+61
-13
No files matched your search
@@ -1,5 +1,7 @@
|
||||
# Balda — треды ответов в личке Mattermost, 2026-10-19
|
||||
|
||||
Актуально: #77/#78 смержены; основной runtime обновлён на `138cc4a7`. [[personal/projects/balda/upstream-deploy-2026-10-19]]. Ранние статусы «не установлено» ниже исторические.
|
||||
|
||||
Текущее состояние: [[personal/projects/balda/setup]]. Сверено 2026-10-19 08:06 UTC.
|
||||
|
||||
Upstream `a908ee1a` возвращал DM/group locator до вычисления root_id сообщения. Поэтому обычные ответы отправлялись в корень лички. Настройки включения тредов в MattermostConfig нет.
|
||||
@@ -23,3 +25,9 @@ Production остаётся на `eee69fc5`: этот этап готовил PR
|
||||
## Исправление clock domain #78 — 2026-10-19 09:34 UTC
|
||||
|
||||
PR [#78](https://github.com/baldaworks/balda/pull/78), head `a693e4efcb94175777700d38d7cc83e7ecce971b`: время ответа сравнивается с серверным временем публикации вопроса Mattermost, сохранённым в question/outbox SQLite и PostgreSQL. Рассинхронизация часов, stale reply и recovery проверены; полный race, lint, architecture и diff --check прошли. В #78 два коммита; #77 не изменялся, production этим этапом не обновлялся. Точный CI-снимок и evidence: [[personal/projects/balda/upstream-prs-2026-10-19]].
|
||||
|
||||
## Upstream развёрнут — 2026-10-19 20:25 UTC+6 (Asia/Bishkek)
|
||||
|
||||
Основной `balda-mm-mac` работает на чистом upstream `138cc4a71d6889de30fe90e368f27f129fd8d792`; PR #77 и #78 смержены и входят в этот commit. Binary SHA256 `31c448af84428f83491d5fb8317549466f814f51c453de11fc8f6c9bd0836672`, `/proc/1/exe` совпадает; build metadata `vcs.modified=false`. Конфигурация, environment, mounts и выбранный Codex account сохранены. Миграция SQLite — 68, integrity/foreign keys — ok; все 49 sessions/metadata, 1952 events, 2 users/bindings и 28 questions из согласованного snapshot сохранены. Mattermost websocket подключён, health/login 200, `codex login status` успешен; SSH UID 1000 установленным ключом из Balda до зарегистрированного target прошёл. Тестовые сообщения в Mattermost и модельные запросы этим deployment не отправлялись.
|
||||
|
||||
Рабочий runtime больше не использует частные патчи `eee69fc5`. Исторический checkout сохранён без reset/rebase; новая сборка сделана отдельно. Предыдущие снимки ниже относятся к прежним этапам. Актуальные проверки, CI и откат: [[personal/projects/balda/upstream-deploy-2026-10-19]].
|
||||
@@ -1,14 +1,14 @@
|
||||
# Balda — актуальный локальный запуск
|
||||
|
||||
## Текущее состояние — сверено 2026-10-19 08:06 UTC
|
||||
## Текущее состояние — Balda сверена 2026-10-19 20:25 UTC+6 (Asia/Bishkek)
|
||||
|
||||
| Компонент | Проверенное состояние |
|
||||
| --- | --- |
|
||||
| SSH Manager | 0.3.2, `a86df58`, 8 MCP-инструментов, `127.0.0.1:17796` |
|
||||
| Workspace Manager | `0c82b8f`, четыре функции, native SMB3, `127.0.0.1:17795`; root только `developer`, recipient `balda` |
|
||||
| Balda | `eee69fc5`, `balda-mm-mac`, provider `pool`, permissions `ask`; старт `2026-10-19T08:05:42.795540715Z` |
|
||||
| Проверка установленного SSH-ключа | Реальный контейнер Balda, `registered`, `client_verified_at=2026-10-19T06:29:15.692883Z`; прежний key id сохранён |
|
||||
| Исходники / runtime | Все три checkout чистые; build metadata обоих исправленных binaries указывает на эти чистые commits; активные hashes/inode проверены |
|
||||
| Balda | `138cc4a7`, чистый upstream, `balda-mm-mac`, provider `pool`, permissions `ask`; старт `2026-10-19T14:21:56.807163574Z` |
|
||||
| Проверка установленного SSH-ключа | UID 1000 из обновлённой Balda, случайный маркер получен; принятый ключ и volume сохранены; 2026-10-19 20:25 UTC+6 (Asia/Bishkek) |
|
||||
| Исходники / runtime | Balda: чистый upstream `138cc4a7`, `vcs.modified=false`; активный `/proc/1/exe` совпадает со сборкой. SSH/Workspace commits прежние |
|
||||
|
||||
SSH Manager импортирует существующий Mac SSH alias из native config/Include и доверенных known_hosts, проверяя существующую аутентификацию; повторно присылать server key для такого хоста не требуется. Для клиента отдельно проверяется маршрут: без `via` сначала pinned no-auth handshake из настроенного `client_container`; при сетевом отказе выбирается единственный зарегистрированный relay. Неизвестный или неверный pin не вызывает fallback; при нескольких relay нужен явный `via`. Owner-form включает точную замену relay key line с ограниченным permitopen. Хардкода Kraken или mac-relay в выборе маршрута нет.
|
||||
|
||||
@@ -16,7 +16,7 @@ SSH Manager импортирует существующий Mac SSH alias из n
|
||||
|
||||
Inventory сейчас: `mac`, `mac-relay`, `kraken`. Kraken добавлен владельцем через Balda в сессии по ссылке ниже; маршрут исправлен самим менеджером на `mac-relay → kraken`, relay ограничен текущим endpoint. Новый target key при исправлении не устанавливался, прежняя identity и изоляция сохранены. Отдельный независимый SSH-вызов UID 1000 из Balda вернул ожидаемый маркер.
|
||||
|
||||
Треды Mattermost DM: `eee69fc5` сохраняет `root_id` пользовательского сообщения в адресе доставки; обычные ответы, progress и вопросы идут в его тред, дальнейшие replies сохраняют этот root. DM/group session IDs остаются прежними. Это поведение транспорта в коде; настройки переключения нет. Отдельный approval-тред не создаётся. `254f3e29` откачен коммитом `3f6a1363`: обработчик обычного числового ответа без треда и изменения хранилища удалены. Узкое сопоставление raw user ID для штатного threaded reply исправлено отдельно в `eee69fc5`. Исправление двойного меню `3e86b995` сохранено. `9018e7a3` исправляет transport routing; `c061e266` исправляет выбор pending-вопроса в общем root вместо уже отвеченного; неоднозначные параллельные pending-вопросы не подтверждаются. `eee69fc5` сохраняет прежнюю классификацию лички в архиве. Приёмка и ограничения: [[personal/projects/balda/mattermost-dm-threads-2026-10-19]].
|
||||
Треды Mattermost DM и единичное меню подтверждения теперь штатные upstream-исправления #77/#78. Root пользовательского сообщения сохраняется для обычных ответов, progress и вопросов, DM/group identity прежняя. Ответы сравниваются со временем публикации вопроса от Mattermost; provider timestamp хранится в question/outbox, локальные часы не используются. Отдельный approval-тред не создаётся. История реализации: [[personal/projects/balda/mattermost-dm-threads-2026-10-19]].
|
||||
|
||||
Balda: меню подтверждения рендерится один раз — permission layer передаёт готовую presentation, questions layer сохраняет structured options для ответа, но не дописывает второе меню. Regression проходит через permission review, session question delivery и decision resolution. Добавление host и установка ключа остаются двумя разными owner confirmations; дополнительные generic MCP approvals у Codex выключены, native изменения доступа подтверждаются владельцем.
|
||||
|
||||
@@ -30,6 +30,14 @@ Workspace: `workspace_folders`, `workspace_connect`, `workspace_disconnect`, `wo
|
||||
|
||||
Оставшийся исходный объём: полноценные удалённые Mac model runs с отдельными CLI credentials/OpenCode network решениями, полный модельный Prism lifecycle и реальные project Beads DB. Host Docker/socket/sudo authority не добавлялась: установленный target key по-прежнему ограничен принятой песочницей. Эти пункты не объявляются выполненными этим исправлением.
|
||||
|
||||
|
||||
## Upstream развёрнут — 2026-10-19 20:25 UTC+6 (Asia/Bishkek)
|
||||
|
||||
Основной `balda-mm-mac` работает на чистом upstream `138cc4a71d6889de30fe90e368f27f129fd8d792`; PR #77 и #78 смержены и входят в этот commit. Binary SHA256 `31c448af84428f83491d5fb8317549466f814f51c453de11fc8f6c9bd0836672`, `/proc/1/exe` совпадает; build metadata `vcs.modified=false`. Конфигурация, environment, mounts и выбранный Codex account сохранены. Миграция SQLite — 68, integrity/foreign keys — ok; все 49 sessions/metadata, 1952 events, 2 users/bindings и 28 questions из согласованного snapshot сохранены. Mattermost websocket подключён, health/login 200, `codex login status` успешен; SSH UID 1000 установленным ключом из Balda до зарегистрированного target прошёл. Тестовые сообщения в Mattermost и модельные запросы этим deployment не отправлялись.
|
||||
|
||||
Рабочий runtime больше не использует частные патчи `eee69fc5`. Исторический checkout сохранён без reset/rebase; новая сборка сделана отдельно. Предыдущие снимки ниже относятся к прежним этапам. Актуальные проверки, CI и откат: [[personal/projects/balda/upstream-deploy-2026-10-19]].
|
||||
|
||||
|
||||
## Текущие пути и эксплуатация — 2026-10-19
|
||||
|
||||
| Параметр | Значение |
|
||||
@@ -37,7 +45,7 @@ Workspace: `workspace_folders`, `workspace_connect`, `workspace_disconnect`, `wo
|
||||
| Compose | `/Users/admin/Docker/balda-mm-mac/docker-compose.yml` |
|
||||
| Активный config | `/Users/admin/.local/share/balda-workspace/candidate/config/config.yaml` |
|
||||
| Config mount | `/workspace/.config/balda`, read-only |
|
||||
| Запускаемый binary | `/workspace/.config/balda/bin/balda`; SHA256 `88dc7349c4eff1aae79daa95381d33e79c3bbb0097b95fde92834e4479392000` |
|
||||
| Запускаемый binary | `/workspace/.config/balda/bin/balda`; SHA256 `31c448af84428f83491d5fb8317549466f814f51c453de11fc8f6c9bd0836672` |
|
||||
| State / work | `/Users/admin/Docker/balda-mm-mac/state` и `/Users/admin/Docker/balda-mm-mac/work` |
|
||||
| Home / SSH volumes | `balda_balda-home` → `/home/node`; `balda-ssh-manager` → `/run/ssh-manager:ro` |
|
||||
| Инструкции Codex | Отдельный `runtime.providers.codex.system_instructions` не задан; [[personal/projects/balda/workspace-context]] |
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Balda — чистый upstream, 2026-10-19
|
||||
|
||||
Проверено 2026-10-19 20:25 UTC+6 (Asia/Bishkek). Основной инстанс — `balda-mm-mac`; Eagle этим обновлением не менялся. Каноническое состояние: [[personal/projects/balda/setup]].
|
||||
|
||||
Установлен [upstream `138cc4a7`](https://github.com/baldaworks/balda/commit/138cc4a71d6889de30fe90e368f27f129fd8d792) без локальных патчей. Входит merge [#77](https://github.com/baldaworks/balda/pull/77) `6f936dbb`, [#78](https://github.com/baldaworks/balda/pull/78) `a37f0577`, исправление номеров миграций #80 и session command runtime #81. Зависимость runtime/v2 — 2.7.0. Git checkout чистый, embedded `vcs.modified=false`; Linux ARM64 binary проверен `balda validate` на действующем config до остановки.
|
||||
|
||||
| Проверка | Результат |
|
||||
| --- | --- |
|
||||
| Binary и `/proc/1/exe` | SHA256 `31c448af84428f83491d5fb8317549466f814f51c453de11fc8f6c9bd0836672` совпадает |
|
||||
| Версия | `balda upstream-138cc4a7 (commit 138cc4a71d6889de30fe90e368f27f129fd8d792, built 2026-10-19T14:18:33Z)` |
|
||||
| StartedAt | `2026-10-19T14:21:56.807163574Z` |
|
||||
| Health / login | 200 / 200 из host HTTP-proxy |
|
||||
| Mattermost | websocket connected, новых error/fatal компонентов startup нет |
|
||||
| Codex | login status успешен, identity и bytes auth.json сохранены |
|
||||
| State | SQLite migration 68, quick_check/foreign_key_check — ok |
|
||||
| Сохранность | 49 runtime sessions, 49 metadata, 1952 events, 2 users, 2 bindings, 28 questions — ни одной утраченной исходной строки |
|
||||
| Обвязка | Compose/config/env, ACP bridge, grants и mounts сохранены; Manager binaries не переустанавливались |
|
||||
| SSH | UID 1000 из фактической Balda, установленный dedicated key, случайный marker — pass |
|
||||
|
||||
На точном upstream прошли `go test -race` для questions, channel/mattermost, handlersfx, state, session, commandfx и sessionturn — 7 пакетов. Это focused-прогон текущего upstream; прежний полный race на 142 пакетах относится к PR head, а не объявляется новым полным локальным прогоном `138cc4a7`. Снимок GitHub CI: jetstream-integration: success; sqlite-integration: success; projection-replay: success; architecture-lint: success; ingress-e2e: success; postgres-integration: success; test: in_progress; lint: success.
|
||||
|
||||
Backup до успешной установки: `/Users/admin/.local/share/balda-workspace/backups/upstream-20261019T142152Z`. Он содержит согласованную CoW-копию всего state после остановки, config со старым binary, Compose, Callee config и auth.json. Ранние защитные попытки автоматически откатились; исходные и промежуточные snapshots сохранены. После stop/start HTTP-proxy пересоздан, поскольку использует `network_mode: service:balda`; затем отдельно проверены host health/login. Существующие сессии не reset, ключи и approvals не перевыдавались.
|
||||
|
||||
Evidence: `~/.local/share/balda-workspace/candidate/upstream-deploy-20261019/`. Активный binary остаётся в `candidate/config/bin/balda`; изменение старого `/Users/admin/Developer/balda` само по себе не меняет deployment. Этот прежний checkout и его частная история сохранены; сборка upstream — отдельный clone точного commit. Beads `balda-tg67`.
|
||||
@@ -1,5 +1,7 @@
|
||||
# Balda — два upstream PR, 2026-10-19
|
||||
|
||||
Актуально: #77/#78 смержены; основной runtime обновлён на `138cc4a7`. [[personal/projects/balda/upstream-deploy-2026-10-19]]. Ранние статусы «не установлено» ниже исторические.
|
||||
|
||||
Обновлено 2026-10-19 09:34 UTC. Текущий runtime: [[personal/projects/balda/setup]]. Владелец подтвердил успешный прогон Balda в Mattermost до подготовки этих PR.
|
||||
|
||||
| Исправление | PR | Коммит | Локальные проверки |
|
||||
@@ -7,7 +9,7 @@
|
||||
| Двойное меню | [#77](https://github.com/baldaworks/balda/pull/77) | `623eecdb35ce2a6ac7054d9c8e6bbdceef64c4e6` | race: 142 пакета с тестами; lint, architecture: pass |
|
||||
| Треды DM | [#78](https://github.com/baldaworks/balda/pull/78) | `a693e4efcb94175777700d38d7cc83e7ecce971b` | race: 142 пакета с тестами; lint, architecture: pass |
|
||||
|
||||
Обе ветки независимо созданы от свежего официального `origin/main` `e0edbe589f71d86a2300dddafa92371f33f9593d` в отдельном checkout. Первоначально опубликованы два focused-коммита в feature branches `mallexxx/balda`; ветка fork main, исходный рабочий checkout и runtime не переключались. История `254f3e29`/отката и приватные deployment данные в PR не включены. Тест тредов освобождён от проверки меню, поэтому порядок merge не создаёт зависимости. Maintainer edits разрешены, оба PR открыты ready for review и прикреплены к задаче Codex.
|
||||
Обе ветки независимо созданы от свежего официального `origin/main` `e0edbe589f71d86a2300dddafa92371f33f9593d` в отдельном checkout. Первоначально опубликованы два focused-коммита в feature branches `mallexxx/balda`; ветка fork main, исходный рабочий checkout и runtime не переключались. История `254f3e29`/отката и приватные deployment данные в PR не включены. Тест тредов освобождён от проверки меню, поэтому порядок merge не создаёт зависимости. Maintainer edits разрешены, оба PR первоначально открыты ready for review; теперь оба смержены и прикреплены к задаче Codex.
|
||||
|
||||
Первый PR сохраняет готовую presentation permissions и structured options для проверки ответа. Второй сохраняет root_id пользовательского сообщения для DM/group delivery, прежние session identity и архивную область; исправляет raw requester ID; выбирает pending-вопрос вместо истории и отклоняет неоднозначные одновременные вопросы. Дополнительный regression поймал повторную авторизацию следующим вопросом: Mattermost помечает общий reply reference через generic `SharedReplyRef`, а resolver отклоняет ответы, отправленные до публикации текущего вопроса. После review сравниваются только серверные timestamps Mattermost (см. исправление review ниже); локальный CreatedAt не используется. Остальные reply references сохраняют прежнюю семантику.
|
||||
|
||||
@@ -35,3 +37,9 @@ PR [#78](https://github.com/baldaworks/balda/pull/78) обновлён допо
|
||||
CI #78, снимок 2026-10-19 09:34 UTC: native-launch (ubuntu-latest): IN_PROGRESS; lint: IN_PROGRESS; sqlite-integration: IN_PROGRESS; native-launch (macos-latest): IN_PROGRESS; native-launch (windows-latest): IN_PROGRESS; postgres-integration: IN_PROGRESS; test: IN_PROGRESS; projection-replay: IN_PROGRESS; architecture-lint: IN_PROGRESS; jetstream-integration: IN_PROGRESS; ingress-e2e: IN_PROGRESS.
|
||||
|
||||
Evidence: `~/.local/share/balda-workspace/candidate/upstream-prs-20261019/`. Beads: `balda-46az`.
|
||||
|
||||
## Upstream развёрнут — 2026-10-19 20:25 UTC+6 (Asia/Bishkek)
|
||||
|
||||
Основной `balda-mm-mac` работает на чистом upstream `138cc4a71d6889de30fe90e368f27f129fd8d792`; PR #77 и #78 смержены и входят в этот commit. Binary SHA256 `31c448af84428f83491d5fb8317549466f814f51c453de11fc8f6c9bd0836672`, `/proc/1/exe` совпадает; build metadata `vcs.modified=false`. Конфигурация, environment, mounts и выбранный Codex account сохранены. Миграция SQLite — 68, integrity/foreign keys — ok; все 49 sessions/metadata, 1952 events, 2 users/bindings и 28 questions из согласованного snapshot сохранены. Mattermost websocket подключён, health/login 200, `codex login status` успешен; SSH UID 1000 установленным ключом из Balda до зарегистрированного target прошёл. Тестовые сообщения в Mattermost и модельные запросы этим deployment не отправлялись.
|
||||
|
||||
Рабочий runtime больше не использует частные патчи `eee69fc5`. Исторический checkout сохранён без reset/rebase; новая сборка сделана отдельно. Предыдущие снимки ниже относятся к прежним этапам. Актуальные проверки, CI и откат: [[personal/projects/balda/upstream-deploy-2026-10-19]].
|
||||
Reference in new issue
Block a user