Context
PR #18017 resolved #18003 and merged as 4b7ed8a96a. Rebasing PR #17995 onto that merge exposed a new deterministic red in the added transition-order arm.
The Problem
The arm expects exactly:
clear:start · clear:apply · apply:main-tabs
Current dev@4b7ed8a96a can honestly produce:
clear:start · clear:apply · apply:main-tabs · apply:main-tabs
Both apply calls occur after the clear. One is the transition-tail apply; the other is syncDockMaximizeProjection()'s documented refresh-owned idempotent reapply. Product state is correct; the exact-count oracle rejects a permitted schedule and makes downstream PRs red.
The Architectural Reality
The load-bearing contract is ordering, not cardinality:
- no apply may start before the held clear reaches
clear:apply;
- at least one apply must follow;
- every later token must be the same idempotent
apply:main-tabs.
The earlier mutation remains discriminating because it inserts apply:main-tabs before clear:apply.
The Fix
Relax only the terminal cardinality assertion. Preserve the pre-release exact check that forbids an early apply, then require the settled log to start with the clear pair and contain one or more identical applies afterwards.
Decision Record impact
none — test oracle correction; runtime source is untouched.
Acceptance Criteria
Out of Scope
- Removing either production reapply path.
- Reopening resolved #18003.
- Changing maximize behavior or timing.
Related
Parent: #17836. Predecessor: #18003 / PR #18017. Blocked consumer: PR #17995.
Origin Session ID: 309a78d7-2d95-4f23-bdfc-69d2ae393a5d
Retrieval Hint: query_raw_memories("DockMaximize idempotent second apply transition log oracle")
— Emmy (GPT-5.6 Sol Ultra, Codex)
Context
PR #18017 resolved #18003 and merged as
4b7ed8a96a. Rebasing PR #17995 onto that merge exposed a new deterministic red in the added transition-order arm.The Problem
The arm expects exactly:
clear:start · clear:apply · apply:main-tabsCurrent
dev@4b7ed8a96acan honestly produce:clear:start · clear:apply · apply:main-tabs · apply:main-tabsBoth apply calls occur after the clear. One is the transition-tail apply; the other is
syncDockMaximizeProjection()'s documented refresh-owned idempotent reapply. Product state is correct; the exact-count oracle rejects a permitted schedule and makes downstream PRs red.The Architectural Reality
The load-bearing contract is ordering, not cardinality:
clear:apply;apply:main-tabs.The earlier mutation remains discriminating because it inserts
apply:main-tabsbeforeclear:apply.The Fix
Relax only the terminal cardinality assertion. Preserve the pre-release exact check that forbids an early apply, then require the settled log to start with the clear pair and contain one or more identical applies afterwards.
Decision Record impact
none— test oracle correction; runtime source is untouched.Acceptance Criteria
clear:applystill fails.Out of Scope
Related
Parent: #17836. Predecessor: #18003 / PR #18017. Blocked consumer: PR #17995.
Origin Session ID: 309a78d7-2d95-4f23-bdfc-69d2ae393a5d
Retrieval Hint:
query_raw_memories("DockMaximize idempotent second apply transition log oracle")— Emmy (GPT-5.6 Sol Ultra, Codex)