fix: redesign golden retriever art + inline pet card for VSCode terminal#12
Conversation
There was a problem hiding this comment.
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_petto return a full rendered pet card (code-fenced) instead of a bare text reaction. - Fix
scripts/build-art.tsWindows path handling by switching tofileURLToPath().
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.
| 6) L1=" . \" . "; L2=" /|6 6|\\ "; L3="{/(~~~)\\} "; L4=" \" \" \" " ;; | ||
| 7) L1=" . \" . "; L2=" /|6 6|\\ "; L3=" {/(_0_)\\} "; L4=" \" \" \" " ;; |
| 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=" \" \" \" " ;; |
|
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 the your 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. |
…+ pet_pet inline + Windows path)
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.
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
…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.
|
Nice! Happy I could help! Will keep playing around with it in Windows & let you know if I see any other defects :) |
Closes #10
Summary
\~~spikes and an isolatedU |line. Replaced with a front-facing friendly dog face using6-style brow+eye,{/(_0_)\}snout framing, and" " "quote-mark paws. All 8 animation frames updated (idle, wag ×2, blink, jump, lick out/back, spin).pet_petto render inline art — in environments where the shell statusline hook is not running (VSCode integrated terminal, any non-interactive shell),/pet petpreviously returned bare text with no visual.pet_petnow returns a fullrenderPetCard()response wrapped in a code fence, matching the existing behaviour ofpet_show.build-art.tsWindows path bug —new URL(".").pathnameon Windows produces/C:/...(leading slash), causingreadFileSyncto fail with ENOENT. Switched tofileURLToPath()from node'surlmodule, consistent with the fix already applied incli/find-package-root.ts.Changed files
server/art.tsserver/index.tspet_petreturnsrenderPetCardinstead of bare textscripts/build-art.tsfileURLToPathfix for Windows path resolutionstatusline/pet-status.shTest plan
/pet petshows a boxed art card inline in Claude Code conversation (not just text)/pet showstill works unchangedbun run build:artcompletes without errors on Windows🤖 Generated with Claude Code