Skip to content

feat: bind pets and native owner goals to characters - #41

Merged
ryanbarlow97 merged 5 commits into
mainfrom
stage6c/ownership
Oct 14, 2026
Merged

ryanbarlow97 merged 5 commits into
mainfrom
stage6c/ownership

Conversation

@ryanbarlow97

@ryanbarlow97 ryanbarlow97 commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

A different character on the same account can currently manage and receive native following from account-owned pets. Bind pet, Pet House, carer and deferred-action authority to characters while keeping account capacity and Minecraft tame-owner routing.

  • Journal reviewed-heir migration with immutable sources, exact planned bytes, schema/conflict holds and raw overlays that preserve unknown/null fields through gameplay saves and restart.
  • Preserve pet learning, physiology, bond and friendships on estate transfer; keep human carer memories attached to their original characters. Guard current and historical estate intents against exact decision/ref/death/integral revision and source changes; block unresolved legacy slots, stale completed-empty receipts, mismatched receipt ID lists and reappearing completed IDs. Wait for reviewed migration readiness and reconcile boot/hourly.
  • Gate native FOLLOW_OWNER and the two owner-assist target goals, including session renewal, water/training exemptions, reattachment and unavailable species configuration. Retain swimming, native self-defense and the combat config.
  • Pin provided TLibs 2.6.0, install shared dependencies in CI, and include conservative offline rollback plus an isolated loopback Paper fixture.

Validation: Java 21 TFMC_MVN_REMOTE=0 tfmc-mvn -o -B clean verify: 1,040 tests, zero failures/errors, 3 unchanged opt-in captured-config skips; configured 100% production line coverage without exclusions (9,226 lines, 206 classes). Real Paper 1.21.10 passed 31 checks on JAR SHA256 34c7a296abc493c35f93caedd7d86b77935a7f2552a49f98ffce09b8ba5605f3, including actual A follow/owner assists, fresh same-account B combat memories denied, production taming, training, water and reattach. Actual TLibs 2.3.0 classloader fail-closed checks and five stopped-server rollback cuts passed; both integration harnesses compile.

The broad older provider smoke helper still uses pre-character proxy fixtures; the new loopback probe supplies current native authority evidence. Physical inventory/world effects retain their documented interruption/manual-recovery boundary. No deployment, restart, merge or release is included.

Docs: TF-Minecraft/Docs#229

Release provenance verification: the existing tag workflow now passes the current pinned dependency lock to artifact staging, so build.json records the resolved application dependency inputs. YAML, exact pinned installer selection and actual helper staging with unchanged gated JARs pass; existing legacy fixture locks remain separate. This workflow-only change does not alter runtime code or require another Java build.

@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 104 files, which is 4 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a0b40af1-05aa-4409-806b-11dcbf3d2b26
📥 Commits

Reviewing files that changed from the base of the PR and between 1933451 and ae0109a.

📒 Files selected for processing: 104
  • .github/workflows/build.yml
  • .github/workflows/maven-release.yml
  • README.md
  • integration-tests/ownership/LegacyApiCheck.java
  • integration-tests/ownership/README.md
  • integration-tests/ownership/pom.xml
  • integration-tests/ownership/src/main/java/net/tfminecraft/companionpets/ownershipsmoke/OwnershipProbe.java
  • integration-tests/ownership/src/main/resources/plugin.yml
  • pom.xml
  • src/main/java/net/tfminecraft/companionpets/PetsPlugin.java
  • src/main/java/net/tfminecraft/companionpets/body/Bodies.java
  • src/main/java/net/tfminecraft/companionpets/body/OwnerFollowGoal.java
  • src/main/java/net/tfminecraft/companionpets/estate/EstateProbe.java
  • src/main/java/net/tfminecraft/companionpets/estate/PetEstate.java
  • src/main/java/net/tfminecraft/companionpets/gui/MenuHolder.java
  • src/main/java/net/tfminecraft/companionpets/gui/PetMenus.java
  • src/main/java/net/tfminecraft/companionpets/listen/FurniturePetHouses.java
  • src/main/java/net/tfminecraft/companionpets/listen/PetListener.java
  • src/main/java/net/tfminecraft/companionpets/ownership/CharacterAccess.java
  • src/main/java/net/tfminecraft/companionpets/ownership/CharacterLifecycle.java
  • src/main/java/net/tfminecraft/companionpets/ownership/DurableFiles.java
  • src/main/java/net/tfminecraft/companionpets/ownership/OwnerSession.java
  • src/main/java/net/tfminecraft/companionpets/ownership/OwnershipMigration.java
  • src/main/java/net/tfminecraft/companionpets/ownership/TLibsCharacters.java
  • src/main/java/net/tfminecraft/companionpets/pet/Pet.java
  • src/main/java/net/tfminecraft/companionpets/play/FetchJob.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetActions.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetFetchActions.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetGreetings.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetHatching.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetMoments.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetRoaming.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetRuntime.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetSocial.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetTicker.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetToyAnticipation.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PetTraining.java
  • src/main/java/net/tfminecraft/companionpets/runtime/PostureNavigationGoal.java
  • src/main/java/net/tfminecraft/companionpets/runtime/TrainingNavigationGoal.java
  • src/main/java/net/tfminecraft/companionpets/runtime/WaterNavigationGoal.java
  • src/main/java/net/tfminecraft/companionpets/session/Sessions.java
  • src/main/java/net/tfminecraft/companionpets/staff/PetSearch.java
  • src/main/java/net/tfminecraft/companionpets/staff/StaffAudit.java
  • src/main/java/net/tfminecraft/companionpets/staff/StaffCommands.java
  • src/main/java/net/tfminecraft/companionpets/staff/StaffMenus.java
  • src/main/java/net/tfminecraft/companionpets/staff/TestCommands.java
  • src/main/java/net/tfminecraft/companionpets/store/PetStore.java
  • src/main/resources/plugin.yml
  • src/test/java/net/tfminecraft/companionpets/CommandLifecycleTest.java
  • src/test/java/net/tfminecraft/companionpets/PetsPluginLifecycleTest.java
  • src/test/java/net/tfminecraft/companionpets/PublicContractsCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/behavior/GreetingMoodTest.java
  • src/test/java/net/tfminecraft/companionpets/behavior/PetMeetingMoodTest.java
  • src/test/java/net/tfminecraft/companionpets/behavior/ToyInvitationTest.java
  • src/test/java/net/tfminecraft/companionpets/care/DominantNeedTest.java
  • src/test/java/net/tfminecraft/companionpets/care/NeedClockTest.java
  • src/test/java/net/tfminecraft/companionpets/config/BehaviorProfileTest.java
  • src/test/java/net/tfminecraft/companionpets/config/CompanionConfigCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/config/ConfigExamplesTest.java
  • src/test/java/net/tfminecraft/companionpets/config/CustomTrickTest.java
  • src/test/java/net/tfminecraft/companionpets/config/ItemConfigTest.java
  • src/test/java/net/tfminecraft/companionpets/config/PetSoundsTest.java
  • src/test/java/net/tfminecraft/companionpets/config/SpeciesConfigTest.java
  • src/test/java/net/tfminecraft/companionpets/config/TfDevConfigurationTest.java
  • src/test/java/net/tfminecraft/companionpets/config/TrainingValidationTest.java
  • src/test/java/net/tfminecraft/companionpets/estate/PetEstateTest.java
  • src/test/java/net/tfminecraft/companionpets/fx/PetHologramsTest.java
  • src/test/java/net/tfminecraft/companionpets/gui/PetMenuWorkflowTest.java
  • src/test/java/net/tfminecraft/companionpets/integration/ModelEngineBridgeTest.java
  • src/test/java/net/tfminecraft/companionpets/item/ItemBridgeTest.java
  • src/test/java/net/tfminecraft/companionpets/listen/FurniturePetHousesProviderTest.java
  • src/test/java/net/tfminecraft/companionpets/listen/FurniturePetHousesTest.java
  • src/test/java/net/tfminecraft/companionpets/listen/PetListenerCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/ownership/CharacterOwnershipTest.java
  • src/test/java/net/tfminecraft/companionpets/ownership/CompatibilityTest.java
  • src/test/java/net/tfminecraft/companionpets/ownership/OwnershipMigrationTest.java
  • src/test/java/net/tfminecraft/companionpets/pet/RelationshipMemoryTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/NavigationContractCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetActionsCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetFetchActionsCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetFetchWorkflowTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetHatchingCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetInteractionTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetMomentsCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetRoamingCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetSocialCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetSpacingTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetTickerCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/PetTrainingCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/TestPetSpawnTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/TrainingLifecycleTest.java
  • src/test/java/net/tfminecraft/companionpets/runtime/WaterNavigationGoalTest.java
  • src/test/java/net/tfminecraft/companionpets/staff/PetDiagnosticsTest.java
  • src/test/java/net/tfminecraft/companionpets/staff/StaffCommandsTest.java
  • src/test/java/net/tfminecraft/companionpets/staff/StaffMenusCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/staff/TestCommandsCoverageTest.java
  • src/test/java/net/tfminecraft/companionpets/store/PetStoreTest.java
  • src/test/java/net/tfminecraft/companionpets/store/SnapshotReuseTest.java
  • src/test/java/net/tfminecraft/companionpets/testutil/OwnershipFixture.java
  • src/test/java/net/tfminecraft/companionpets/text/PetTextsTest.java
  • src/test/java/net/tfminecraft/companionpets/training/DefaultTricksTest.java
  • src/test/java/net/tfminecraft/companionpets/visual/PetCapabilitiesTest.java
  • src/test/java/net/tfminecraft/companionpets/visual/PetVisualTickerTest.java
  • tools/ownership-rollback.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the size:XXL 1,000+ effective changed lines (tests excluded in mixed PRs). label Oct 13, 2026
@ryanbarlow97
ryanbarlow97 marked this pull request as ready for review October 14, 2026 00:38
@ryanbarlow97
ryanbarlow97 merged commit a37059b into main Oct 14, 2026
3 checks passed
@ryanbarlow97
ryanbarlow97 deleted the stage6c/ownership branch October 14, 2026 01:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ effective changed lines (tests excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant