The pet feature was three loosely coupled subsystems that no core flow depended on: the Petdex catalog page, the pet install/preference store, and the pet-state socket. All three are removed. The only cross-boundary touch point was a try/catch-wrapped observer that mapped chat-run events to pet animations. Removing it leaves the /chat-run event contract unchanged: no event name, field name, field type, or emission timing changed. Removing petdexPublicRoutes also closes the unauthenticated outbound proxy at /api/hermes/petdex/asset, which shrinks the SSRF surface.
Chat Chain Change Fragments
Add one Markdown fragment per PR when a change touches the Chat session chain,
Agent Bridge, compression, or Group Chat runtime paths documented in
docs/cli-chat-sessions.md.
Do not append new rows to docs/cli-chat-sessions.md. Keeping one fragment per
PR avoids merge conflicts when multiple branches change the chat chain at the
same time.
Use this shape:
---
date: YYYY-MM-DD
pr: 1234
feature: Short feature name
impact: One-sentence behavior impact
---
Optional extra notes.
If the PR number is not known yet, use pr: pending while the branch is local,
then update that same fragment after the PR is opened.