Reconciliation: выполнение плана через Executor + commit/rollback #8

Open
opened 2026-06-15 13:22:34 +02:00 by yorunikakeru · 0 comments
Owner

Реализовать reconciliation loop внутри Planner актора: шаги → Executor, результат → commit или rollback.

Протокол

Planner строит Plan
  ↓
Отправляет шаги по одному: mpsc → Executor
  ↓
  ├── ok → следующий шаг
  └── err → откат шагов 0..N в обратном порядке (Undo)
  ↓
Успех → StoreMsg::Commit
Ошибка → StoreMsg::Rollback

Гарантия

Частичное применение невозможно. Undo для каждого Action определён на этапе построения Plan (issue #5).

Важно

  • Новый Plan может прийти пока предыдущий ещё выполняется: отменить текущее выполнение, откатить применённые шаги, начать новый Plan
  • Executor отвечает через oneshot::Sender — ждать ответа перед следующим шагом

Acceptance

  • Тест: Plan из 3 шагов, шаг 2 падает → Executor получает Undo для шага 1 и 0
  • Тест: успешный Plan → Store получает Commit
  • Тест: новый Plan прерывает текущий → предыдущий откатывается
Реализовать reconciliation loop внутри Planner актора: шаги → Executor, результат → commit или rollback. ## Протокол ``` Planner строит Plan ↓ Отправляет шаги по одному: mpsc → Executor ↓ ├── ok → следующий шаг └── err → откат шагов 0..N в обратном порядке (Undo) ↓ Успех → StoreMsg::Commit Ошибка → StoreMsg::Rollback ``` ## Гарантия Частичное применение невозможно. Undo для каждого Action определён на этапе построения Plan (issue #5). ## Важно - Новый Plan может прийти пока предыдущий ещё выполняется: отменить текущее выполнение, откатить применённые шаги, начать новый Plan - Executor отвечает через `oneshot::Sender` — ждать ответа перед следующим шагом ## Acceptance - Тест: Plan из 3 шагов, шаг 2 падает → Executor получает Undo для шага 1 и 0 - Тест: успешный Plan → Store получает Commit - Тест: новый Plan прерывает текущий → предыдущий откатывается
Sign in to join this conversation.
No labels
core
ffi
haskell
rust
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
FrogOS/Planner#8
No description provided.