Files
rangerhq-buddy/CHANGELOG.md
T
ranger 8c38d38a3a feat: add winking expression (v0.1.1)
Buddy now has a fourth mood tone — wink — with one eye closed, an
asymmetric smirk, and rosier cheeks. Renders as a small variant
inside the existing inline-SVG sprite (still zero image files, no
new assets). When overall mood is >= 75, there's a 30% chance on
each page render that the wink replaces the standard happy face —
gives the pet a touch of unpredictable personality.

Why this commit exists: v0.1.0 had three tones (happy / neutral /
sad). Adding wink is the smallest possible demo that the SVG
expression engine is properly extensible — every future mood,
state, accessory or species can land via the same pattern. ~20
lines of PHP, ~2 lines of CSS, no bundle weight, no dependencies.

CHANGES
- inc/sprite.php: wink added to allowed-tones list. Left eye
  renders as a closed-eye arc instead of the open circle. Mouth
  shifts to an asymmetric smirk. Cheek opacity 0.55 → 0.75 for
  extra cheekiness.
- inc/state.php: buddy_mood_label() returns wink ~30% of the time
  when mood >= 75.
- assets/css/buddy.css: new .buddy-widget__mood--wink and
  .buddy-main__mood--wink rules — warm amber pill.
- About-page version-history leads with v0.1.1; v0.1.0 demoted.

VERSION
- buddy.php header 0.1.0 → 0.1.1
- BUDDY_VERSION constant 0.1.0 → 0.1.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 10:36:51 +01:00

4.5 KiB

Changelog

All notable changes to Buddy are documented here. Format: Keep a Changelog 1.1.0 — versioning: SemVer.


[Unreleased]


[0.1.1] — 2026-05-25

Added — Wink expression 😉

Buddy now has a fourth mood tone: wink — one eye closed, an asymmetric smirk, and rosier cheeks. Rendered as a small variant inside the existing inline-SVG sprite (still zero image files, no new assets). When Buddy's overall mood is ≥ 75, there's a ~30% chance on each page render that the wink replaces the standard happy face. Refresh a few times when Buddy is content and you'll catch it.

Why this commit exists: the v0.1.0 sprite had three tones (happy / neutral / sad). Adding wink was the smallest possible demo that the SVG expression engine is properly extensible — every future mood/state/species can be added the same way. ~20 lines of PHP, ~2 lines of CSS, no bundle weight, no dependencies.

Changed

  • inc/sprite.php: added wink to the allowed-tones list. Left eye renders as a closed-eye curve (a small downward arc) instead of the open circle. Right eye stays normal. Mouth shifts to an asymmetric smirk curve. Cheek opacity bumped from 0.55 to 0.75 for extra cheekiness.
  • inc/state.php: buddy_mood_label() now has a 30% chance of returning the wink tone when the overall mood score is ≥ 75.
  • assets/css/buddy.css: new .buddy-widget__mood--wink and .buddy-main__mood--wink rules — warm amber pill matching the cheeky vibe.
  • About page version-history card leads with v0.1.1; v0.1.0 demoted to the previous entry.
  • Plugin version bumped: header + BUDDY_VERSION constant 0.1.0 → 0.1.1.

[0.1.0] — 2026-05-25

Buddy is born. First release of a new standalone WordPress plugin extracted-and-rebuilt from the tamagotchi feature that once lived inside A-WP-Notes v1.1.5 (now gracefully retired). Buddy stands on its own as a focused, charming companion plugin for the WordPress dashboard.

Added — Phase A complete (pet exists)

  • Dashboard widget at WP Admin → Dashboard showing the SVG character, the pet's name, a mood label ("Thriving" / "Content" / "Okay" / "Hungry" / "Distressed"), and four stat bars (Hunger / Happiness / Health / Energy).
  • Dedicated admin page at WP Admin → Buddy → My Buddy showing the same data in a larger format with the pet's age and a placeholder note describing what's coming next.
  • About page at WP Admin → Buddy → About with the side-by-side intro pattern, "What Buddy does" / "Who Buddy is for" / "Version history" cards, and a link to this CHANGELOG.md.
  • Settings page at WP Admin → Buddy → Settings with a name-rename form and the Updates panel.
  • Per-user state storage via user_meta (key: buddy_state). Each WP admin gets their own Buddy with its own name, species, and stats.
  • SVG sprite renderer with three mood tones (happy / neutral / sad) and three sizes (sm / md / lg). Pure inline SVG with CSS keyframe animations (bobbing motion + periodic blinking). No GIFs, no sprite sheets, no image files for the character.
  • Self-hosted update checker wired up to the Gitea repo from commit 1. Polls /api/v1/repos/ranger/a-buddy/releases/latest with a /tags?limit=1 fallback. 12h success cache, 1h negative cache. UI surface lives on the Settings page.
  • Custom admin-menu icon (dashicons-pets, a paw print) reinforcing the pet identity.

Architecture (locked from day one)

  • Single-word brand name Buddy — no "WP" prefix, no marketplace trademark hurdle.
  • Public GPL v2+ Gitea repo at ranger/a-buddy on git.davidtkeane.com.
  • All persistent notice dismissals to use user_meta + AJAX pattern (port from Logbook when first notice appears).
  • CSS-only animations, all assets local — bundle stays small.
  • Single H1 per admin page, no nested toggle boxes, no duplicate sections — Tier-1 discipline carried forward from Logbook.

Not in this release (planned)

  • Phase B — Feed / Play / Clean / Sleep interactions with cooldown timers.
  • Phase C — WP-cron stat decay, "Buddy is hungry" dismissible admin notices.
  • Phase D — Multiple species (dog, dragon, sprite), per-species personality phrases.
  • Phase E — Site-health integration: pet stats react to wp_get_site_health() results, outdated plugins drain health, published posts feed hunger, cleared spam boosts happiness.
  • Phase F — Pro tier with custom skins, multi-pet farm, social visits.