diff --git a/docs/plans/2026-08-10-options-panel-campaign.md b/docs/plans/2026-08-10-options-panel-campaign.md index 5723474e..bc1899f0 100644 --- a/docs/plans/2026-08-10-options-panel-campaign.md +++ b/docs/plans/2026-08-10-options-panel-campaign.md @@ -423,6 +423,6 @@ before anything builds on them. | OP4 | — | | | | | OP5 | — | | | | | OP6 | — | | | | -| OP7 | CODE-COMPLETE | `09cb548a` → fixes in `7b60e71b` (shared commit, see its message) | combined-lens APPROVE-WITH-FIXES (`2026-08-11-op7-review.md`); all nine findings closed | live bot-vs-ACE run OWED (coordinator, script §OP7) | +| OP7 | CLOSED | `09cb548a` → fixes in `7b60e71b` (shared commit, see its message) | combined-lens APPROVE-WITH-FIXES (`2026-08-11-op7-review.md`); all nine findings closed | live bot-vs-ACE gate PASSED 2026-08-11 (coordinator; evidence in script §OP7) | | OP8 | — | | | | | OP9 | — | | | | diff --git a/docs/research/2026-08-11-campaign-op-test-script.md b/docs/research/2026-08-11-campaign-op-test-script.md index a5a48c9d..d8981521 100644 --- a/docs/research/2026-08-11-campaign-op-test-script.md +++ b/docs/research/2026-08-11-campaign-op-test-script.md @@ -291,3 +291,29 @@ persists the sends. - Any presentation-only (tier-3) option — `HeadlessConfigurationLoader` refuses to load a config that declares one; there is nothing to run. - The graphical Options panel's own Character tab — OP4. + +### OP7 gate result — PASSED (coordinator, 2026-08-11) + +Three live runs against local ACE (`127.0.0.1:9000`, `+Acdream`, +`lifecycle-smoke` policy, temporary seeder diagnostics since reverted): + +- **Run 1 (declared: IgnoreAllegianceRequests=true, ListenToTradeChat=true, + SalvageMultiple=true):** the seeder sent exactly two `SetSingleOption` + diffs (`IgnoreAllegianceRequests` false→true auto-save; + `SalvageMultiple` false→true batched) plus ONE `SaveOptions (0x01A1)` + flush; `ListenToTradeChat` was already true and sent nothing. After the + policy's own portal AND a genuine mid-run reconnect (fresh ACE + `PlayerDescription`), all three reported `already ..., no send` — + proving ACE accepted and persisted both wire paths within the session. +- **Run 3 (fresh process, SalvageMultiple flipped to false):** the fresh + seed echoed `SalvageMultiple=true` from run 1 — a value ONLY the run-1 + `0x01A1` blob could have carried (batched id, never `0x0005`), which is + the cross-process ACE-persistence proof. The flip sent one + `SetSingleOption` + one `SaveOptions` and nothing for the other two + ids; post-portal and post-reconnect re-diffs were silent. +- Both runs: no pre-LoginComplete sends observed, no ACE refusals, + graceful zero-code exits, `disposed` with converged runtime and zero + leases. Pre-existing noise unrelated to OP7, noted for the record: an + unmapped `[weenie-error] code=0x051D`, and the K4 resource envelope's + `handle-count` violation (the `k4-linux-30-session` Linux profile + evaluated on Windows).