Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/book/chapters/core-state-machines.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ flowchart TD
[`event_writeback.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/todos/event_writeback.py)、
[`local_state_write_correctness.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/runtime/local_state_write_correctness.py)、
[`authority_store.ts`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/coordination/authority_store.ts)、
[`coordination/executor.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/coordination/executor.py)
[`coordination/authority_core.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/coordination/authority_core.py)
和 [`settlement.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/turn_driver/settlement.py)。

所以正确流程是“读 basis -> 提案 -> 验证/guard -> guarded commit -> 事件或 receipt -> 回读”,而不是
Expand Down
2 changes: 1 addition & 1 deletion docs/book/en/chapters/core-state-machines.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ The matching source anchors are
[`event_writeback.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/todos/event_writeback.py),
[`local_state_write_correctness.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/runtime/local_state_write_correctness.py),
[`authority_store.ts`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/coordination/authority_store.ts),
[`coordination/executor.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/coordination/executor.py),
[`coordination/authority_core.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/coordination/authority_core.py),
and [`settlement.py`](https://github.com/huangruiteng/loopx/blob/main/loopx/control_plane/turn_driver/settlement.py).

The real pattern is “read basis -> propose -> validate/guard -> guarded commit -> event or receipt ->
Expand Down
21 changes: 10 additions & 11 deletions docs/concepts/interaction-pattern-catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2555,12 +2555,11 @@ keep "we never heard back" from becoming "nothing happened".
second time".
2. **Recover by readback, not by blind retry.** A re-sent operation returns the
original receipt rather than a second effect:
`tests/control_plane/test_coordination_recoverable_execution.py:693` asserts
`result == "already_applied"` with an identical `original_receipt`, and
`:694` that the head's `receipt_index` holds exactly one entry per operation
id. `tests/control_plane/test_coordination_provider_parity.py:222` makes
`operation_identity_reuse` a dimension every coordination provider must
answer the same way (expectation recorded at `:308`).
`tests/control_plane_ts/authority_store_conformance.ts:833` replays the same
`archive-completed` request and asserts the second call reports `replayed`
with an identical `original_receipt` and an unchanged authority (`:836`-`:839`),
while the same operation id carrying a changed intent is rejected with
`coordination_operation_identity_mismatch` (`:843`).
3. **Publish the material an authoritative record points at before, or under the
same identity as, that record.** A committed pointer with no backing content
is worse than no commit, because every later reader must guess. `#5007` is
Expand Down Expand Up @@ -2620,10 +2619,10 @@ flowchart TD

**Validation**

- `tests/control_plane/test_coordination_provider_parity.py` keeps
`operation_identity_reuse` honest across every provider arm, and
`tests/control_plane/test_coordination_recoverable_execution.py` pins the
replay-and-receipt path for leases and renewals.
- `tests/control_plane_ts/authority_store_conformance.ts` keeps operation
identity honest across every provider arm — the shared suite is registered
once per store — and pins the replay-and-receipt path together with the
lease-fenced write paths.
- `tests/cli_commands/test_source_session_lifetime.py` pins the negative twin:
one identity may not carry two different intents.
- `loopx/control_plane/coordination/local_authority_shadow_adapter.py` and
Expand Down Expand Up @@ -2915,7 +2914,7 @@ from a meta/controller poll that was only authorized to observe.
**Validation**

- `regression/external-evidence-observation-real-codex.py`
- `examples/benchmark-lifecycle-state-smoke.py`
- `deprecate/benchmark-legacy/examples/benchmark-lifecycle-state-smoke.py` (retired)
- `docs/state-interaction-model.md`

#### IP-015 Benchmark Lifecycle Countability
Expand Down
Loading