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

74 lines
4.5 KiB
Markdown

# Changelog
All notable changes to **Buddy** are documented here.
Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versioning: [SemVer](https://semver.org/).
---
## [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.