Skip to content

fix: redesign golden retriever art + inline pet card for VSCode terminal#12

Merged
nanami-he merged 1 commit into
nanami-he:mainfrom
Lwhieldon:lee-feature-branch
Apr 29, 2026
Merged

fix: redesign golden retriever art + inline pet card for VSCode terminal#12
nanami-he merged 1 commit into
nanami-he:mainfrom
Lwhieldon:lee-feature-branch

Conversation

@Lwhieldon
Copy link
Copy Markdown
Contributor

@Lwhieldon Lwhieldon commented Apr 29, 2026

Closes #10

Summary

  • Redesign golden retriever ASCII art — the previous art read as a dinosaur due to \~~ spikes and an isolated U | line. Replaced with a front-facing friendly dog face using 6-style brow+eye, {/(_0_)\} snout framing, and " " " quote-mark paws. All 8 animation frames updated (idle, wag ×2, blink, jump, lick out/back, spin).
  • Fix pet_pet to render inline art — in environments where the shell statusline hook is not running (VSCode integrated terminal, any non-interactive shell), /pet pet previously returned bare text with no visual. pet_pet now returns a full renderPetCard() response wrapped in a code fence, matching the existing behaviour of pet_show.
  • Fix build-art.ts Windows path bugnew URL(".").pathname on Windows produces /C:/... (leading slash), causing readFileSync to fail with ENOENT. Switched to fileURLToPath() from node's url module, consistent with the fix already applied in cli/find-package-root.ts.

Changed files

File Change
server/art.ts New golden retriever frames (8 total)
server/index.ts pet_pet returns renderPetCard instead of bare text
scripts/build-art.ts fileURLToPath fix for Windows path resolution
statusline/pet-status.sh Recompiled art output

Test plan

  • /pet pet shows a boxed art card inline in Claude Code conversation (not just text)
  • /pet show still works unchanged
  • Golden retriever art looks like a dog, not a dinosaur
  • bun run build:art completes without errors on Windows
  • All 8 animation frames pass width validation (12 chars each)

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings April 29, 2026 16:10
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refreshes the golden retriever visuals across the server-rendered card and the generated statusline art, and improves /pet pet output in terminals that don’t run the statusline hook (e.g., VSCode integrated terminal). It also fixes a Windows path-resolution issue in the art build script.

Changes:

  • Redesign golden retriever ASCII art (all 8 frames) in the single source of truth (server/art.ts) and regenerate the shell statusline output.
  • Update pet_pet to return a full rendered pet card (code-fenced) instead of a bare text reaction.
  • Fix scripts/build-art.ts Windows path handling by switching to fileURLToPath().

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
server/art.ts Replaces the golden retriever’s 8 animation frames with the redesigned front-facing dog art.
server/index.ts Changes pet_pet to return a code-fenced renderPetCard() output (inline visual card).
scripts/build-art.ts Uses fileURLToPath(new URL(".", import.meta.url)) to resolve the script directory correctly on Windows.
statusline/pet-status.sh Regenerated golden retriever frames in the generated ART block (including tongue accent injection).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread statusline/pet-status.sh
Comment on lines +690 to +691
6) L1=" . \" . "; L2=" /|6 6|\\ "; L3="{/(~~~)\\} "; L4=" \" \" \" " ;;
7) L1=" . \" . "; L2=" /|6 6|\\ "; L3=" {/(_0_)\\} "; L4=" \" \" \" " ;;
Comment thread statusline/pet-status.sh
7) L1=" ~~/ ~\\_ "; L2=" (~~ • ) "; L3=" | ${TG}U${C} "; L4=" ~(__)__/~ " ;;
0) L1=" . \" . "; L2=" /|6 6|\\ "; L3="{/(_0_)\\} "; L4=" \" \" \" " ;;
1) L1=" . \" . "; L2=" /|6 6|\\ "; L3="{/(_0_)\\} "; L4=" \" \" \"~ " ;;
2) L1=" . \" . "; L2=" /|- -|\\ "; L3="{/(_0_)\\} "; L4=" \" \" \" " ;;
@nanami-he nanami-he merged commit 7fbecdb into nanami-he:main Apr 29, 2026
4 of 5 checks passed
@nanami-he
Copy link
Copy Markdown
Owner

merged — three good fixes in one tight PR, thank you.

the golden retriever redesign is the right call: it not only solves "looks like a dinosaur" but also moves Bonnie into the project's 10-pet front-facing convention (matches owl, lion, cat, panda, etc), so the visual register is now consistent across neighbors. the 6 6 eyes plus {/(_0_)\} snout frame reads as friendly dog at first glance — better than what i could've drawn.

the pet_petrenderPetCard change is the more substantive fix actually — VSCode integrated terminal users now see the full visual instead of bare text, which was a quiet quality issue i hadn't caught.

your fileURLToPath fix in build-art.ts is identical to what i had in #7, so i closed #7 in favor of this PR. credit on that converges to you.

added you to CONTRIBUTORS.md under Code. and you closed #2 + #10 + landed first PR all in 24h since opening #2 — that's a real arc.

next time you're poking at it, #8 (reactions-pool packaging bug — affects every npx user) is open if you want a substantial-but-bounded one to look at. zero pressure.

nanami-he added a commit that referenced this pull request Apr 29, 2026
nanami-he added a commit that referenced this pull request Apr 29, 2026
PR #11 (Mateus PowerShell) shipped pet-art.json with the OLD golden
retriever frames because his branch baseline pre-dated PR #12
(Lwhieldon's redesign). Now that both are in main, regenerating
build-art.ts brings pet-art.json in sync with the new front-facing
Bonnie design — without this commit the PowerShell statusline would
render dinosaur-era Golden while bash renders the new one.
nanami-he added a commit that referenced this pull request Apr 29, 2026
PRD lagged 1 patch version. Today's reality:

- Header: 0.4.3 -> 0.4.4
- Phase 1 items 21-22 added: second external PR + Lwhieldon upgraded to
  contributor (PR #11 + #12); Issue #8 packaging fix (the silent fallback
  bug that affected every npx user since launch)
- NEW G0 (high priority, top of "宣传 + 推广" section): multi-channel
  distribution architecture. Triggered by the npm registry outage we
  hit during v0.4.4 publish. Sets out the 3-channel target (npm +
  Claude Code Plugin + MCP Server Registry), the dist/-in-git decision,
  and the task list to land it before the next release cycle.
- 教训 +3: install path can't depend on build tools (Issue #8); npm is
  a single point of failure for distribution; merge != regenerated, must
  rebuild after PR merge to keep generated files in sync
- 决策记录: new 2026-04-29 second entry covering the multi-channel
  awakening + npm-as-SPOF realization
- Footer: v3.8 -> v3.9
nanami-he added a commit that referenced this pull request Apr 29, 2026
…ctor (#13)

Lands G0 multi-channel distribution from PRD-v3.md plus polish.

- `.claude-plugin/plugin.json`: switch to `node + dist/server.js` so Claude Code plugin install no longer requires bun
- `.gitignore`: drop `dist/`; the bundled artifacts are now visible to plugin / git-clone install paths (first commit of dist/ is ~35K lines, expected)
- New `cli/plugin-manifest.test.ts` pins the manifest to `node + dist/server.js`
- New `.githooks/pre-commit` rebuilds dist/ + statusline assets when source files are staged; pure doc commits skip it. `package.json` `prepare` script wires it up automatically on `bun install`
- `scripts/build-reactions.ts` now hermetic by default — only writes `dist/`. New `sync:reactions` script + `--sync-runtime` flag for the dev runtime path. New regression test
- `cli/doctor.ts` Windows polish: 7 Unix-only `tryExec` calls replaced with native equivalents (cmd.exe, PowerShell, WT_SESSION/ConEmuANSI). Status script picks `.ps1` on Windows. New regression test
- Golden retriever statusline frame mapping fixed in both `.sh` and `.ps1` (off-by-one after PR #12's redesign)
- README badge: hardcoded `npm-0.4.0` → dynamic `npm/v/petsonality`. Drop redundant marketing sentence

Tests: 311 → 317.

Known follow-up (non-blocking): `dist/reactions-pool.json` is non-deterministic across builds (random sampling order). Will land a deterministic build in a follow-up.

Real Windows + Claude plugin install smoke testing pending real-host verification post-merge.
@Lwhieldon
Copy link
Copy Markdown
Contributor Author

Nice! Happy I could help! Will keep playing around with it in Windows & let you know if I see any other defects :)

@Lwhieldon Lwhieldon deleted the lee-feature-branch branch April 29, 2026 22:30
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.

[BUG] /pet commands do not show up in terminal (Windows)

3 participants