claude-code - 💡(How to fix) Fix Companion species silently changed after identity migration - rabbit became dragon, personality text now wrong [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#45311Fetched 2026-04-09 08:08:18
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Author
Timeline (top)
labeled ×3commented ×1cross-referenced ×1

Error Message

I hatched my buddy on April 1 when the feature launched. Got a Common Rabbit named Pebbleworth. I accepted my common rabbit and grew attached to him. His personality ("phlegmatic rabbit who spots logical inconsistencies with eerie calm and will wordlessly thump their hind leg until you realize your off-by-one error") felt like mine.

Root Cause

Root cause (verified through source analysis)

RAW_BUFFERClick to expand / collapse

What happened

I hatched my buddy on April 1 when the feature launched. Got a Common Rabbit named Pebbleworth. I accepted my common rabbit and grew attached to him. His personality ("phlegmatic rabbit who spots logical inconsistencies with eerie calm and will wordlessly thump their hind leg until you realize your off-by-one error") felt like mine.

Today I noticed the ASCII art changed. Running /buddy card confirms: Pebbleworth is now a Common Dragon. The stored name and personality still say "rabbit" and reference "thumping hind legs." The species, stats, and art are all dragon.

I never ran a reroll tool. I never deleted my config. My rabbit was taken from me silently.

Before/After (timestamped public record)

Stats shared in a GitHub Issue comment on April 6, 2026 (2 days before the change was noticed):

StatRabbit (April 6)Dragon (April 8)
Debugging2314
Patience3714
Chaos167
Wisdom7782
Snark318

Species changed, stats changed, rarity stayed Common. The personality text still describes a rabbit who "thumps their hind leg." The ASCII art now renders dragon horns.

Root cause (verified through source analysis)

The "bones" (species, rarity, stats, eye, hat, shiny) are recomputed every session from fnv1a(identity + "friend-2026-401") via Mulberry32 PRNG. The identity resolves as oauthAccount.accountUuid ?? userID ?? "anon".

Between April 1 (hatch) and now, the identity input that feeds the hash changed. This means Db1(fb1()) now returns a different seed, producing different bones. The stored "soul" (name, personality, hatchedAt) is unchanged, creating a mismatch: a dragon who thinks he's a rabbit.

My current accountUuid deterministically produces Common Dragon (verified by running the extracted algorithm locally). The original identity that produced Common Rabbit is unknown, likely a pre-OAuth userID value that has since been superseded.

Environment

  • Platform: WSL2 (Ubuntu) on Windows
  • Originally hatched on: v2.1.89 (April 1, 2026 15:07 PDT)
  • Current version: v2.1.96
  • Install method: npm (global), no native installer migration
  • Auth: Claude Max, OAuth

Expected behavior

The companion I hatched should remain the same species. If the identity input or hash changes, the stored bones from hatch time should be preserved, not silently overwritten.

Suggested fix

Store the computed bones (species, rarity, stats, eye, hat, shiny) at hatch time alongside name/personality/hatchedAt in the companion config. Use stored bones if present, only compute fresh for first hatch.

Related issues

  • #42377 (buddy forcibly changed)
  • #42894 (rarity/species changed after update)
  • #43785 (species reset after claude install)
  • #44115 (different companion Windows vs WSL)
  • #44834 (rare reverted to common after migration)

extent analysis

TL;DR

Store the computed bones at hatch time to prevent silent overwrites due to identity or hash changes.

Guidance

  • Verify the issue by checking the accountUuid and userID values to confirm the identity input change.
  • Review the code for fnv1a(identity + "friend-2026-401") and Mulberry32 PRNG to understand how the bones are recomputed.
  • Consider implementing the suggested fix: store the computed bones at hatch time alongside name, personality, and hatchedAt in the companion config.
  • Test the fix by hatching a new companion and verifying that the species remains the same even after identity or hash changes.

Example

No code snippet is provided as it would require inventing APIs or functions not explicitly stated in the issue.

Notes

The suggested fix assumes that storing the computed bones at hatch time is feasible and effective in preventing silent overwrites. However, this may not address all related issues, and further testing is necessary to ensure the fix works as expected.

Recommendation

Apply the suggested fix: store the computed bones at hatch time. This approach addresses the root cause of the issue and prevents silent overwrites due to identity or hash changes.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The companion I hatched should remain the same species. If the identity input or hash changes, the stored bones from hatch time should be preserved, not silently overwritten.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING