7.3 KiB
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 нет.
254f3e29 откачен отдельным 3f6a1363. Ошибочный промежуточный патч отдельного approval-треда не устанавливался и удалён из checkout. Финальный коммит eee69fc5 сохраняет исходный root_id либо ID нового сообщения пользователя в адресе доставки. Первый ответ Balda создаёт тред на этом сообщении; продолжение остаётся в нём. Session ID и public address key лички сохраняются. Подтверждение идёт в тот же тред, его ответ проверяется штатным обработчиком по root_id и raw user ID владельца. Обработчик standalone «1», новые поля DB и поиск единственного pending-вопроса не возвращены.
Проверки: full GOMAXPROCS=2 go test -race -p 2 ./..., golangci-lint, architecture audit — pass. Проверено пакетов: 142. Сквозной тест использует реальные ingress/reply adapters, permission/questions services, SQLite и локальный Mattermost HTTP fixture: обычный ответ и вопрос доставлены в один root пользовательского сообщения; меню одно; чужой ответ отвергнут; выбор владельца принят и сохранён; следующий вопрос в том же треде разрешается отдельно, два одновременно pending-вопроса отклоняются как неоднозначные. Табличная проверка DM/group подтверждает root дальнейших replies и стабильность session identity.
Это не внешняя приёмка нового сообщения через реальный Mattermost после restart: тестовые сообщения в production чат не посылались. Live websocket, health и native SSH roundtrip из реального контейнера установленным ключом проверены после restart; их проверка не объявляется доказательством отображения нового треда в UI.
Развёрнут eee69fc5702197c67f0cd4de91b4cfea15dfaf1b, build metadata vcs.modified=false. Контейнер перезапущен 2026-10-19T08:05:42.795540715Z. Host binary и /proc/1/exe SHA256 совпадают: 5fe6e36607f70998984eaefd962f5b2d964162d9e7debabd9032449dcb9d1471. Health/login: 200. Config, Compose и ACP bridge не менялись. SSH/Workspace Manager не переустанавливались. Состояние и прежний binary сохранены в /Users/admin/.local/share/balda-workspace/backups/dm-thread-20261019T080529Z.
Коммиты локальные по прямому решению пользователя; push не выполнялся. Evidence: ~/.local/share/balda-workspace/candidate/dm-threads/.
Два upstream PR — 2026-10-19 08:51 UTC
Открыты независимые PR к baldaworks/balda:main: #77 — единичное меню подтверждения и #78 — ответы в тредах лички. Первоначально у каждого был один коммит от свежей публичной базы e0edbe58; после review в #78 добавлен второй коммит (см. ниже); checks race/lint/architecture прошли отдельно. Оператор подтвердил успешный прогон развёрнутой Balda в Mattermost.
Production остаётся на eee69fc5: этот этап готовил PR и не обновлял работающий binary. PR тредов дополнительно закрывает повтор старого ответа с сохранением точности времени; эта дополнительная защита проверена в PR-ветке и в production на этом этапе не устанавливалась. Подробности и CI-снимок: personal/projects/balda/upstream-prs-2026-10-19.
Исправление clock domain #78 — 2026-10-19 09:34 UTC
PR #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.