Pet: qualify the /pet habitat in a real terminal and accept the shared owner across TUI + desktop
- Dominant language
- Rust
- Stars
- 41k
- Forks
- 3.6k
- Avg merge
- 13h 59m
- Merged PRs (30d)
- 299
Description
0.9.13 ships `/pet` (#6154, from #6110 plus the prepared shared-owner/Kitty patch). What it ships on is test evidence and the prepared-archive receipts; these acceptance items were explicitly not done and stay open here (split out of #6109 so the umbrella can track the cross-surface owner work):
1. **Real-terminal visual qualification** of the Kitty pixel habitat: docked→full transitions, continuous motion, resize, Escape image cleanup, a fallback (braille) terminal, tmux/SSH behaviour, reduced motion. Measure delivered frame timing, CPU, RSS, bandwidth and input latency in the terminal; the only numbers today are the raster microbenchmark (17.09 ms mean / 19.55 ms p95, ~150 KB/frame, excludes transport) and a 30 Hz simulation. 60 fps is a target, not a measured result. Computer Use access to Ghostty/Terminal was denied in the preparing session; do not relabel browser or native screenshots as terminal proof.
2. **Shared-owner acceptance**: open the TUI habitat and the desktop/browser view on one live session, compare identity/tick/digest at a retained frame, interact from either side, close and reopen the TUI, confirm continued ownership, one producer, one audio lease, durable appearance. Exercise owner restart, a competing owner, source change, storage failure.
3. **Engine metadata attachment beyond the TUI**: only the TUI producer forwards accepted Engine metadata today; app-server does not (#6139, #6152).
4. **Founder direction "Codewhale by default"** for the appearance: not interpreted in 0.9.13 (the eight prepared presets are unchanged). Decide what the default look is and make it the default.
5. **Completion outcome fidelity**: the pet projection keeps only a derived `failed`; carry the typed `completed|interrupted|failed` terminal status and receipt identity through the metadata projection so a cancelled turn never gets a success gesture (see the animation packet in `artifacts/pet-review-20260912/CORE-PET-GPUI-CONTRACT.md`).
Contract and evidence: `pet/SHARED.md`, `pet/QA.md`, `docs/design/DOT_WHALE_PET.md`, `artifacts/pet-review-20260912/{PREPARED-PET-HANDOFF,RUST-PET-MODE-TAKEOVER,CORE-PET-GPUI-CONTRACT}.md`.
Contributor guide
Research direction
Read pet/SHARED.md and pet/QA.md first, then review docs/design/DOT_WHALE_PET.md and the three referenced files under artifacts/pet-review-20260912/. Start by mapping the listed acceptance items to the TUI, desktop/browser, and app-server surfaces. Done means real-terminal evidence covers the stated scenarios and the shared-owner, metadata, default appearance, and completion-status requirements are resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, cli, desktop, performance, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100