Repository navigation
Run the pet estate pass once ownership is ready after a restart - #46
Conversation
The hourly estate pass first runs on tick 1, before reviewed heirs are
ready, so after every restart it answered RETRY ("Reviewed pet ownership
and persistence are not ready") over estates it had already settled, and
pets waited up to an hour for the next pass.
The pass now skips quietly until ownership is ready (a persistence
conflict is still reported as blocked), and the heir wait runs it once
as soon as ownership becomes ready.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Summary
Merge Risk: ⚪ Minimal · up to
|
Dev test (TFMCDev01, 2026-10-22)Jar Dev has 7 decided estates. Their
|
|
Sol (gpt-6.1-sol) review: VERDICT: APPROVE, no correctness findings. @coderabbitai review |
✅ Action performedReview finished.
|
Why
PetEstate.startschedules the hourly estate pass to first run on tick 1. On a normal start, reviewed heirs (legacyHeirsReady) are not ready yet, andPetsPlugin's heir wait only migrates ownership a moment later.So after every restart, the first pass answered RETRY ("Reviewed pet ownership and persistence are not ready") for every decided estate:
Seen on Main after the 10-22 06:10 restart: RETRY at 06:10:46 and DONE at 07:11 for all 13 decided estates. Dev shows the same: RETRY at 08:04:46 for all 7.
What changes
PetEstate.reconcilenow skips quietly while ownership is not ready, so it no longer reports RETRY. A persistence conflict is still reported as BLOCKED.PetsPluginrunsreconcile()a single time, right after it cancels itself. An exception there therefore cannot re-run the migration loop.settle()is unchanged. Direct calls from RPCharacters still answer RETRY while ownership is not ready, and RPCharacters' own hourly retry still records it if ownership never becomes ready.Tests
hourlyPassWaitsSilentlyForReadinessButStillReportsAPersistenceConflictchecks three cases: no report while not ready, DONE once ready, and BLOCKED on a conflict even while not ready.lateReviewedHeirsMigrateBeforeAuthorityAndKeepExistingLoadedPetsnow checks two things: the tick-1 pass does not query decided estates while heirs are pending, and the heir wait runs the pass once they are ready.mvn verifylocally: 1057 tests pass and coverage is clean for the changed classes. The Windows run uses a local-only directory-fsync workaround that is not committed; it is the same issue that makes about 237 tests fail onmainunder Windows. That workaround also excludesancestorDirectorySyncFailure….Draft: not for merge or release yet.
🤖 Generated with Claude Code