Allow first review of equal constructor discriminators
This commit is contained in:
+16
-6
@@ -1155,6 +1155,15 @@ Persisted constructors are discriminator words only:
|
||||
* EventConstructor: Signal, Time, Change.
|
||||
* MessageConstructor: Asynchronous, Call, Reply, Create, Delete, Timer.
|
||||
|
||||
When a discriminator has no prior fact after explicit resets, both current sides
|
||||
are applicable and equal, and the proposed target discriminator is unchanged,
|
||||
KeepTarget, TakeSource or Candidate acknowledges only that discriminator.
|
||||
It MUST NOT copy a constructor payload, acknowledge unselected descendants or
|
||||
retire branch history. Descendant facets may be independently selected in the
|
||||
same review; their decisions retain their own scopes and final-value audits.
|
||||
Candidate records still MUST NOT change an unselected facet. Missing applicability
|
||||
on either side does not qualify as an equal discriminator acknowledgement.
|
||||
|
||||
A grouped constructor resolution uses a transient typed target record, then
|
||||
records the discriminator and each acknowledged descendant as separate facts.
|
||||
It MUST NOT persist a second whole constructor payload overlapping those leaves.
|
||||
@@ -1166,9 +1175,9 @@ MessageKind includes its discriminator and dependent TimerExpression. State.Kind
|
||||
is its own structural facet even though it changes the element's derived kind.
|
||||
Other dependent changes caused by preparation remain explicit impacts.
|
||||
|
||||
A constructor Keep requires an actual discriminator proposal or a discriminator
|
||||
change since its prior review. Repeating Keep on an already reviewed unequal pair
|
||||
MUST NOT acknowledge unrelated bound/default drift. A real target switch may
|
||||
A grouped constructor Keep requires an actual discriminator proposal or a
|
||||
discriminator change since its prior review. Repeating Keep on an already reviewed
|
||||
unequal pair MUST NOT acknowledge unrelated bound/default drift. A real target switch may
|
||||
reconsider a previously kept difference. When the target already has the proposed
|
||||
constructor, reconciliation MUST preserve target-only members rather than replace
|
||||
its whole list. Removed branch facts participate in agreement as NotApplicable;
|
||||
@@ -1240,9 +1249,10 @@ not arbitrary architectural neighborhoods, and does not copy them into every
|
||||
referrer's baseline. Its limits are 4096 objects per side and 32768 edges; exhaustion
|
||||
is a diagnostic. Successful review remains one undoable transaction. Replanning
|
||||
unchanged, already acknowledged leaf facts is a no-op only while their requests
|
||||
remain applicable. A completed constructor switch MUST be removed from subsequent
|
||||
requests; repeating it when no switch remains is rejected. After an artifact moves
|
||||
to another owner, metadata review through the old owner's trace is no longer
|
||||
remain applicable. A completed constructor switch or first acknowledgement of an
|
||||
equal discriminator MUST be removed from subsequent requests; repeating it when
|
||||
no switch remains is rejected. After an artifact moves to another owner,
|
||||
metadata review through the old owner's trace is no longer
|
||||
applicable and is rejected. An old plan becomes stale after an actual committed
|
||||
change.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user