Repository navigation
Copy each account's old journal to its most-played character once - #3
Merged
Merged
Conversation
On an account's first session after this change, its journal from before characters had their own is copied into the journal of its most-played living character (else its most-played character), so that character knows those entries in character. Other characters start empty and keep seeing them out of character. The old file stays as reference and gets a seeded-to marker, so the copy happens once; a failed copy is retried at the next session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The character that receives an account's old data is chosen once and pinned in plugins/TLibs/legacy-recipients/<account>.txt, written atomically and never overwritten while readable. Codex and ConditionalEvents both use the pin, so they always pick the same character, and a retry after a failure goes to that character again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Reviewed by Astra (GPT-6-Astra) over rounds 5-7 (one-off seed, shared recipient pin, save and reset persistence); every finding fixed, round 7 left only a Docs wording fix, now applied. Merging with admin bypass. Not released or deployed. |
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.
The user's call: as a one-off, each account's most-played character should know everything the account discovered before journals were per character. Every other character still starts empty.
How it works.
players/<account>.ymlinto the journal of the account's most-played living character, or its most-played character if none is alive. The choice uses RPCharacters' playtime at that moment, so it is the most-played character whoever logs in first.seeded-to: <character>key so the copy never happens again. A failed copy is logged and retried at the next session.ConditionalEvents #3 gives the account's old once-only flags and cooldowns for per-character events to the same character. Without that, using a research thesis the character already learned would take the item and unlock nothing.
Tests. The seed lands on the most-played character whoever logs in first, happens only once, merges into a journal still waiting to save, waits when the roster is unknown, and retries after a failed write.
mvn clean verifypasses (33 tests, coverage gate).🤖 Generated with Claude Code