Files
rangerhq-buddy/CHANGELOG.md
T
ranger c7d49b383a chore: release v0.1.2 — wink tuning entry
Documents the wink-probability tune-down (f661eab) as a proper
patch release. No code behaviour change in this commit — purely
version metadata, changelog, and user-facing about-page history.

CHANGES
- buddy.php: Version header + BUDDY_VERSION constant 0.1.1 → 0.1.2
- CHANGELOG.md: new [0.1.2] entry above [0.1.1], explains the
  tuning rationale + what's intentionally unchanged (wink visuals,
  trigger threshold mood >= 75)
- inc/about.php: version-history card leads with v0.1.2 (latest
  badge), v0.1.1 demoted to second slot

Why a patch release: the wink fires far less often now than it
did in v0.1.1. From a user's point of view that IS a behaviour
change worth a version. Following SemVer: PATCH bump because the
public API and feature set are unchanged; only the tuning of an
existing behaviour was adjusted.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 07:20:25 +01:00

104 lines
5.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.2] — 2026-05-26
### Tuned — Wink probability lowered from 30% to 5%
The wink Easter-egg added in v0.1.1 fired at 30% per page render
when Buddy's mood was ≥ 75. Default mood is 80, so most admin
visits hit the gate and ~30% of those flipped to wink. Stacked
across the main admin page + dashboard widget visible on the same
screen, Buddy ended up looking like he had one eye closed all the
time — "stuck" rather than "playful".
Dropped to 5%. Same wink visuals when it fires; just rare enough
to feel magical instead of constant. Refresh ~20 times when mood
is high and you'll catch one.
### Changed
- **`inc/state.php`**: `buddy_mood_label()` probability gate
`mt_rand( 1, 100 ) <= 30` changed to `<= 5`. Docstring updated
to reflect new ~5% rate.
- **Plugin version bumped**: header + `BUDDY_VERSION` constant
0.1.1 → 0.1.2.
- **About page** version-history card leads with v0.1.2; v0.1.1
demoted.
### Not changed
- Wink visuals (`inc/sprite.php`) — same closed-eye arc, smirk,
rosy cheeks when it fires. Just rarer.
- All other behavior identical to v0.1.1.
---
## [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.