Repository navigation
Move dead characters' locks through their estates (stage 6b) - #47
Merged
Merged
Conversation
Pin TLibs 2.6.0 and probe its estate API. The estate planner works on the lock pass's scan and adds kind=estate entries with their deathId to the same numbered journal; a planner failure leaves the 6a entries only and never holds the guard. An estate-only pass archives just the files it journals. Replay skips estate entries whose estate no longer applies. Each estate is reported from the state after the pass, and Thievery registers as the "thievery" estate participant, settling at restart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
….6.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One failing report no longer drops the rest, and a report no estate service received is logged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage 6b: a dead character's locks pass through their estate at the next restart.
The estate planner works on the same scan as the 6a lock pass and adds its entries to the same numbered journal, marked
kind: estatewith theirdeathId(6a entries are now markedkind: migrate). For every decided estate whose guard holds, PRIVATE and PUBLIC containers and entities and doors go to the property recipient, GUILD and FACTION ones to the guild-locks recipient. Waiting or frozen parts are not planned; lock state andaccessMapare kept. The planner runs in its owntry, so a failure (or TLibs older than 2.6.0) leaves the pass with its 6a entries and locks still reach FULL.CHARACTERare estate-planned, so a markerless file the 6a planner claims moves next boot. A container next to one the 6a planner gives the same testator waits too, with every container joined to it, so double-chest halves move together.skipped.locksfor containers and displays,doors) and every moved path (from all journals) only when nothing of the testator's is left in a part with a character recipient; AT_RESTART when something is; RETRY on planner failure. Thievery registers as thethieveryestate participant once locks are loaded; at runtimesettle()answers from that boot's report (DONE still holds for a later revision whose new character parts held nothing at boot) orAT_RESTART, and RETRY when the decision's guard fails. Each estate is reported on its own, so one failing report does not drop the rest./thievery locks setownerrefuses a dead or missing character by UUID.tools/thievery_rollback.py --estate-onlyrestores estate entries only and keeps the 6a markers; an older jar that completes an estate journal dropskind/deathId, after which only a full rollback undoes those entries.Pins TLibs 2.6.0 (not yet released, so CI will 404 until it is). Gate:
tfmc-mvn -o -B clean verify, 1004 tests, 100% instruction/line/branch/method/class coverage; Python tool tests 8/8.Docs: TF-Minecraft/Docs#217
🤖 Generated with Claude Code