harden(runtime): close canonical entity object lifetime
Retain exact teardown receipts before terminal callbacks, preserve ordered re-entrant entity/object publication, publish committed facts across projection failures, and make direct disposal converge every canonical owner. Add a complete ownership ledger plus adversarial direct/graphical parity, callback, GUID reuse, reset, and resource-churn gates. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
84954c8b77
commit
119b7c1151
9 changed files with 992 additions and 95 deletions
|
|
@ -247,6 +247,18 @@ public sealed class RuntimeEntityDirectory
|
|||
record.AdvanceMovementAuthority();
|
||||
}
|
||||
|
||||
public void AdvanceMovementCommit(RuntimeEntityRecord record)
|
||||
{
|
||||
EnsureKnown(record);
|
||||
record.AdvanceMovementCommit();
|
||||
}
|
||||
|
||||
public void AdvanceParentCommit(RuntimeEntityRecord record)
|
||||
{
|
||||
EnsureKnown(record);
|
||||
record.AdvanceParentCommit();
|
||||
}
|
||||
|
||||
public void AdvanceObjDescAuthority(RuntimeEntityRecord record)
|
||||
{
|
||||
EnsureKnown(record);
|
||||
|
|
@ -293,8 +305,7 @@ public sealed class RuntimeEntityDirectory
|
|||
uint canonicalLandblockId)
|
||||
{
|
||||
EnsureKnown(record);
|
||||
record.FullCellId = fullCellId;
|
||||
record.CanonicalLandblockId = canonicalLandblockId;
|
||||
record.SetFullCell(fullCellId, canonicalLandblockId);
|
||||
}
|
||||
|
||||
public void SetFinalPhysicsState(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue