Skip to content

fix(desktop): support Petdex v2 sprites and directional pet actions - #2982

Merged
bobleer merged 1 commit into
GCWing:mainfrom
guantw:fix/pet-v2-compatibility
Sep 12, 2026
Merged

fix(desktop): support Petdex v2 sprites and directional pet actions#2982
bobleer merged 1 commit into
GCWing:mainfrom
guantw:fix/pet-v2-compatibility

Conversation

@guantw

@guantw guantw commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Fix Petdex v2 companions being rendered as nine-row sheets and directional run animations being mapped to hover and undirected dragging.

  • Carry sprite versions through package import, listing, saved selections, and control-host responses. Preserve legacy selections and resolve missing version metadata from installed packages.
  • Render v1/v2 atlas geometry and per-row frame counts, report unsupported or invalid sheets, and restore idle animation after pointer-look activity ends.
  • Select left/right running from drag direction, jump when a new request becomes active, and wave on completion or drag release. Keep Windows dragging active until pointer release or cancellation.
  • Add compatibility, renderer, lifecycle, and drag regression tests using synthetic fixtures.

Type and Areas

Type: Bug fix / UI interaction fix

Areas: Desktop/Tauri, shared configuration contracts, Web UI

Motivation / Impact

Existing v1 pets continue to work, while v2 sheets use all eleven rows without incorrect cropping. Pointer look no longer indefinitely masks idle animation. Directional running follows movement, and request-start and completion reactions have distinct triggers.

Verification

  • pnpm --dir src/web-ui exec vitest run src/flow_chat/components/AgentCompanionPet.test.tsx src/app/components/AgentCompanionDesktopPet/AgentCompanionDesktopPet.test.tsx src/infrastructure/config/services/AgentCompanionDragService.test.ts src/infrastructure/config/services/agentCompanionPetSprite.test.ts src/infrastructure/config/services/AgentCompanionPetCompatibility.test.ts — 32 tests passed.
  • pnpm run check:web — passed.
  • pnpm run motion:audit — completed; reviewed the motion inventory.
  • pnpm run i18n:audit — passed.
  • pnpm run fmt:rs and git diff --check — passed.

Reviewer Notes

AI-assisted; lightly tested overall. Automated coverage includes legacy metadata round trips, v1/v2 rendering, reduced-motion handling, idle restoration, directional dragging, release/cancellation, and duplicate activity notifications.

The focused desktop Rust package tests were added but have not been executed separately. Final interaction behavior has not been visually verified across platforms. Remote workspace, remote control, Peer Device Mode, and Detached Dispatch were not exercised; no new remote protocol or commands are introduced. No before/after recording is attached.

No pet artwork, imported packages, or temporary artifacts are included.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

Preserve sprite versions through package import and saved selections, render
v1 and v2 atlases with their frame counts, and bound v2 pointer look playback.

Use directional running during dragging, jump on new requests, and wave on
completion or release. Keep Windows drag state active until pointer release
and cover legacy metadata, rendering, and interaction transitions with tests.
@bobleer
bobleer merged commit a319d9a into GCWing:main Sep 12, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants