diff --git a/personal/projects/balda/balda.md b/personal/projects/balda/balda.md index 368d016d..08946500 100755 --- a/personal/projects/balda/balda.md +++ b/personal/projects/balda/balda.md @@ -18,12 +18,16 @@ | [baldaworks/balda](https://github.com/baldaworks/balda) | Upstream бота; fork — [mallexxx/balda](https://github.com/mallexxx/balda) | | [PR #8 — Mattermost](https://github.com/baldaworks/balda/pull/8) | **MERGED**, 2026-09-29 | | [PR #12 — webhook routing](https://github.com/baldaworks/balda/pull/12) | **MERGED**, 2026-10-03 | -| [PR #52 — durable ingress/question recovery](https://github.com/baldaworks/balda/pull/52) | **OPEN**, HEAD `085a0d43`; **11/11 CI SUCCESS**, не draft, mergeable, ещё не merged | +| [PR #52 — durable ingress/question recovery](https://github.com/baldaworks/balda/pull/52) | **OPEN**, HEAD `085a0d43`; **11/11 CI SUCCESS**, **CHANGES_REQUESTED / merge BLOCKED**, ещё не merged | Checkout кандидата PR #52: `/private/tmp/execution-broker-balda-upstream`, ветка `codex/ingress-outbox-v2`. Локальные проверки и self-review завершены. CI включает восемь required jobs и три native-launch jobs (Ubuntu/macOS/Windows). Зелёный CI не означает, что кандидат установлен: production image остаётся `balda-balda`, его точный ID указан в runbook. PR #52 добавляет durable admission и автономное восстановление SQL-сохранённого ответа без повторного Telegram update, затем независимую очистку controls. Включены retention, opt-in NATS budgets и regression tests. Операционные ограничения и миграции SQLite 63 / PostgreSQL 28 описаны в карточке Broker. +## Открытое ревью PR #52 + +[Review metalagman](https://github.com/baldaworks/balda/pull/52#pullrequestreview-5519740284) нашёл блокирующее нарушение FIFO одной сессии между slash-command/chat/question actor targets. Ошибка подтверждена отдельным race probe на неизменённом HEAD: второй запрос публикуется, пока первый заблокирован. Существующие CI checks этого сценария не покрывали. Нужны исправление session scope и regression; reviewer также запросил доступную ссылку на acceptance в shared Beads. История локальной `balda-7w4` не заменяет такую запись. + ## Конфигурация и владение Действующий конфиг: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`. Dev-конфиг в `~/Developer/balda` — отдельный файл. Provider — `codex_acp`, reasoning `medium`; Obsidian MCP — `type: http`, `http://host.docker.internal:3101/mcp`. diff --git a/personal/projects/balda/execution-broker.md b/personal/projects/balda/execution-broker.md index 150e48ed..62b0856b 100644 --- a/personal/projects/balda/execution-broker.md +++ b/personal/projects/balda/execution-broker.md @@ -4,7 +4,13 @@ ## Текущий статус -**Broker ещё не полностью реализован и не прошёл production-приёмку нового кандидата.** Локальные проверки rc.26 завершены; работающий контур использует прежние образы. Открытый [PR #52](https://github.com/baldaworks/balda/pull/52) относится к **Balda**: все **11/11 GitHub checks SUCCESS**, PR открыт и не draft, mergeable, ещё не merged. Одобрение независимого reviewer отсутствует. +**Broker ещё не полностью реализован и не прошёл production-приёмку нового кандидата.** Локальные проверки rc.26 завершены; работающий контур использует прежние образы. Открытый [PR #52](https://github.com/baldaworks/balda/pull/52) относится к **Balda**: все **11/11 GitHub checks SUCCESS**, PR открыт и не draft; конфликтов нет, но **CHANGES_REQUESTED / merge BLOCKED**, ещё не merged. + +## Открытый блокер Balda PR #52 + +[Внешнее ревью metalagman](https://github.com/baldaworks/balda/pull/52#pullrequestreview-5519740284), 2026-10-14 14:41:30 UTC, запросило изменения. **FIFO в рамках одной сессии нарушается между разными actor targets:** после ошибки публикации `command:session-1` outbox всё равно публикует следующий `session:session-1`, потому что блокирует по `Envelope.To`, а не общему session scope. Поведение независимо воспроизведено на HEAD `085a0d43`: одноразовый race overlay probe получил `[first second]` вместо `[first]`. Исходники и ветка этим probe не менялись. + +Нужно исправление session-scoped FIFO с fallback для команд без session и regression для смешанных targets. Reviewer также запросил ссылку на Story/plan/acceptance в shared Beads; локальная `balda-7w4` такой ссылкой не является. Оба пункта остаются открытыми. Зелёные существующие 11 CI checks не покрывали новый FIFO repro; кандидат Balda сейчас не принят к merge. ## Репозитории и действующие образы @@ -53,7 +59,7 @@ Durable admission сохраняет команду до receipt, background pub Ответ и два recovery-маркера сохраняются одной SQL-операцией. Worker восстанавливает continuation без нового inbound, после receipt отдельно сохраняет cleanup controls. Ошибка cleanup не переотправляет continuation, положительный Telegram Selected следует durable admission. Late delivery binding и повтор завершённой очистки проверены. Regression использует реальный pinned webhook/runtime, production control publisher, один HTTP update и десять failure/restart случаев для callback/text; второго bot/callback после reopen нет. -SQLite migration **63** / PostgreSQL migration **28** требуют согласованного backup. Исторические answered-записи не переигрываются автоматически. Гарантия начинается с SQL settlement; webhook HTTP 200 означает transport intake. Сохраняются границы: один publisher на state DB, outbox pending lifetime до 24 часов, terminal dedupe семь дней. PR ещё не merged; его исправления не объявляются развёрнутыми. +SQLite migration **63** / PostgreSQL migration **28** требуют согласованного backup. Исторические answered-записи не переигрываются автоматически. Гарантия начинается с SQL settlement; webhook HTTP 200 означает transport intake. Сохраняются границы: один publisher на state DB, outbox pending lifetime до 24 часов, terminal dedupe семь дней. PR ещё не merged и заблокирован review; его исправления не объявляются развёрнутыми. Прежняя Balda `codex/production-readiness` / `223b85ad` — отклонённый прототип, оставленный для истории. Источником текущей реализации является PR #52. PR [#8](https://github.com/baldaworks/balda/pull/8) merged 2026-09-29, PR [#12](https://github.com/baldaworks/balda/pull/12) merged 2026-10-03. @@ -63,8 +69,8 @@ SQLite migration **63** / PostgreSQL migration **28** требуют согла - [[personal/projects/balda/balda|Balda: обзор и актуальные PR]] - `state/production-readiness-20261014/review-followup.json` — текущий Balda diff, self-review, проверки, PR/CI и история пересмотренных выводов. - `state/production-readiness-20261014/local-checks.json` — исторический прогон Broker rc.26. Его результаты по старому Balda prototype не заменяют текущий review-followup. -- `state/production-readiness-20261014/balda-v5-reviewed-files.json` — хэши 58 проверенных файлов; полные логи лежат рядом. -- Beads `balda-7w4` закрыта в явно локальной временной базе. Это не shared upstream issue и не независимый PR review. +- `state/production-readiness-20261014/balda-v5-reviewed-files.json` — хэши 58 проверенных файлов; полные логи лежат рядом. `balda-review-fifo-probe.log` фиксирует новый независимо воспроизведённый блокер. +- Beads `balda-7w4` была закрыта после прежнего локального прогона в явно временной базе; после этого upstream reviewer нашёл FIFO blocker. Это не shared upstream acceptance record. Актуальный запрос на его привязку и дефект ведутся в review PR #52. - [[personal/plans/balda-callee-prism-plan|Архив прежнего плана]], [[personal/projects/archive/balda-reference-before-2026-10-14|архив прежней карточки и шаблонов]]. ### История приёмки действующих версий diff --git a/personal/projects/balda/setup.md b/personal/projects/balda/setup.md index e2a3b8cf..0f864097 100755 --- a/personal/projects/balda/setup.md +++ b/personal/projects/balda/setup.md @@ -22,10 +22,12 @@ Config bind-mounted в `/workspace/.config/balda` read-only для контей ## Проверенная ветка и PR -[PR #52](https://github.com/baldaworks/balda/pull/52): `codex/ingress-outbox-v2`, HEAD `085a0d43`, **OPEN**, не draft, mergeable; все **11/11 CI checks SUCCESS**, включая native Ubuntu/macOS/Windows. PR ещё не merged и не развёрнут. +[PR #52](https://github.com/baldaworks/balda/pull/52): `codex/ingress-outbox-v2`, HEAD `085a0d43`, **OPEN**, не draft; все **11/11 CI checks SUCCESS**, включая native Ubuntu/macOS/Windows. Конфликтов нет, но review — **CHANGES_REQUESTED**, merge — **BLOCKED**. PR ещё не merged и не развёрнут. Локальные race/integration/lint/security/migration/E2E проверки и self-review 58 файлов завершены. Исправление сохраняет SQL handoff ответа и восстанавливает continuation после рестарта без второго webhook update; controls durably допускаются после continuation. SQLite migration 63 / PostgreSQL migration 28 требуют backup; исторические answered-записи автоматически не переигрываются. Подробности и границы — в карточке Broker выше. +Новый [review blocker](https://github.com/baldaworks/balda/pull/52#pullrequestreview-5519740284): outbox нарушает FIFO одной сессии между разными actor targets; отдельный race probe на этом HEAD воспроизвёл переупорядочивание. Исправление и ссылка на shared Beads acceptance ещё требуются. Подробности и лог — в карточке Broker. + PR #8 и #12 уже merged. Старые ссылки на открытые #8/#12, Kraken, Валеру и Zulip относятся к архивам. ## Изменения и перезапуск diff --git a/personal/projects/personal-os/personal-os-status-2026-10.md b/personal/projects/personal-os/personal-os-status-2026-10.md index 48ccb4a8..b49693d7 100755 --- a/personal/projects/personal-os/personal-os-status-2026-10.md +++ b/personal/projects/personal-os/personal-os-status-2026-10.md @@ -49,7 +49,7 @@ confidence: 1 - **Чат-транспорт:** Mattermost (сервер на Kraken: `mattermost` + `mm-postgres`). Zulip выводится из эксплуатации ([[personal/plans/zulip-decommission]]). Discord не используется с 2026-05-11. - **Hermes:** профиль `hermes-whale` (Кит) на Mac, Mattermost/Telegram. Профиль Eagle существует, кроны на паузе. -- **Balda / Execution Broker** (сверено 2026-10-14): текущий контур на Mac, Mattermost и Codex ACP; старый Kraken-стек демонтирован. Live coding flow на прежних образах прошёл с артефактами, публикацией результата и cleanup. Новый Broker rc.26 проверен локально, но согласованное обновление и production-приёмка кандидата не выполнены; универсальная подготовка стеков, caches и inputs между запусками остаются в плане. Balda [PR #52](https://github.com/baldaworks/balda/pull/52) открыт, 11/11 CI SUCCESS, ещё не merged/deployed. Подробности и ограничения: [[personal/projects/balda/execution-broker]], конфигурация: [[personal/projects/balda/setup]]. +- **Balda / Execution Broker** (сверено 2026-10-14): текущий контур на Mac, Mattermost и Codex ACP; старый Kraken-стек демонтирован. Live coding flow на прежних образах прошёл с артефактами, публикацией результата и cleanup. Новый Broker rc.26 проверен локально, но согласованное обновление и production-приёмка кандидата не выполнены; универсальная подготовка стеков, caches и inputs между запусками остаются в плане. Balda [PR #52](https://github.com/baldaworks/balda/pull/52) открыт, 11/11 CI SUCCESS, но CHANGES_REQUESTED / merge BLOCKED: воспроизведено нарушение FIFO одной сессии между ingress actor targets; acceptance в shared Beads ещё не привязан. Не merged/deployed. Подробности и ограничения: [[personal/projects/balda/execution-broker]], конфигурация: [[personal/projects/balda/setup]]. - **Virfield** (сверено 2026-10-14): Tart + SSH nodes, новая hardening-версия исправляет Lume migration и lifecycle defects; текущий кандидат ещё не live принят ([[personal/projects/virfield]]). - **Obsidian vault** `~/obsidian/` — жив, синхронизация через git/NAS + Syncthing; MCP — `mcpvault`.