Repository navigation
chore(pet): reconcile the contour port with the shared terminal renderer - #6807
Conversation
The terminal pet's Braille cells were the old 980-dot particle world, while the desktop app paints the v2 contour character. Port that character's Director, rig, props and Braille rasterizer into crates/tui/src/tui/whale_v2 and feed it the same owner truth the desktop reads (EngineOwnerProjection): presence, activity kind, observed span onsets, parallel agent count, completed-turn id. The live view thread now takes its cells from one Director on one clock; the Kitty pixel image and the label still come from the particle frame. Unknown presence and a disconnected producer read as Offline (asleep), never Idle. Listening, Stuck and the failure beat are not ported (the owner emits none of them) and were removed rather than left as dead code. The vendored animation tables live beside the module; the desktop app copy stays the reference. Evidence: a scratch crate built from this module alone passes its 2 tests (owner truth changes the frame; disconnected equals Offline) and renders a recognizable reading whale at 32x16. The full codewhale-tui lib test build was killed (SIGKILL) in this sandbox, so the integrated test run and a live terminal check are still owed. cargo check -p codewhale-tui --lib passes with warnings denied. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gi912QbkMmcL35mcKHcE1m
Preserve original founder-requested PR #6807 authored commit9fc255d4 as ancestry while keeping current main23e9119 source byte-identical. Its contour Director, rig, props and rasterization already have a newer shared implementation in the vendored terminal kit, introduced by 425528f and integrated by5e2e59e8. The explicit Braille pet view uses that existing Stage/WhalePet route; props and both data tables match the original port byte-for-byte. Deliberately supersede the draft's unconditional live-worker override. It would replace particle cells while retaining particle colors/Kitty images and a separately advanced Director. Preserve current explicit whale/Braille/particles/pixels choices, ownership and reduced motion. This reconciliation does not change defaults, establish desktop-default parity, or claim the old override shipped. No second copied core lands. Verification: complete resulting-tree equality with current main; immutable source comparison and actual routing review; three exact props/data blob comparisons; no changed product source, tests or code comments. Prior test evidence remains scoped to its original source. Fresh exact-head light CI is required before merge; skipped native jobs are not new execution. Main23 hosted native qualification remains pending separately. Original authored history/source branch preserved; no publication, branch cleanup, canonical checkout or index mutation. Refs #6807 Signed-off-by: CodeWhale Bot <bot@codewhale.net>
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request. Check if the Files changed in this pull request are included in default exclusions.
No-Issue: founder-requested pet parity work; this PR now reconciles its authored history with the shared terminal renderer.
Final integration scope
This PR preserves original commit
9fc255d43cdb40beec9c32745e84572a2bf515d5as ancestry and leaves the complete source tree identical to main23e9119caf9d61da15eb37b89ca6f7195ec3ac8d(tree4eb1020f429559a6b8f00d5533569710e9ae27ee). Current reviewed head:a2f53077781f1008cdb20d936e10fdf409063c48.The contour core already exists in the shared terminal kit, introduced by 425528ff and integrated into the native pet surface by 5e2e59e8. The original props and both authoring-data files are byte-identical; the current Director, rig and rasterizer contain the corresponding logic with additional validation and color support.
/petalready reaches this contour implementation through its explicit Braille view and the existing Stage.The old unconditional Watch worker override is deliberately superseded, not shipped. It would combine contour cells with particle colors and Kitty images and add a separately advanced Director. The current
whale,braille,particlesandpixelschoices, ownership and reduced-motion behavior remain intact. This reconciliation changes no default and does not establish desktop/terminal default parity. It preserves history without installing a duplicate contour core.Verification
Complete tree equality with current main; immutable source comparison; three exact props/data comparisons; actual
PetMode/WhalePetand full/live routing reviewed. Fresh exact-head checks are required before merge. Light-change native jobs may skip execution; they are not new native test proof. Main's Runtime change and hosted qualification remain tracked separately. The historical proposal below is retained as authored context, not a claim that its full patch or former acceptance result is current. No release publication is claimed.Original proposal and evidence
Requested by Hunter · project thread
No-Issue: parity change requested directly by the owner, no tracking issue exists.
Before: the terminal pet's Braille cells came from the old 980-dot particle world, so it looked nothing like the whale in the desktop app.
After: the Watch/habitat tank draws the same v2 contour whale the desktop app paints, driven by the same owner truth (presence, activity kind, span onsets, parallel agents, completed turn).
What it does: ports the v2 Director, rig, props and Braille rasterizer into
crates/tui/src/tui/whale_v2and has the pet view thread take its cells from one Director on one clock.How:
live.rskeeps the particle frame for the label and the Kitty pixel image, and replaces only the cells withWhale::cells.EngineOwnerProjectionmaps to Director inputs inwhale_v2/mod.rs. Unknown presence or a disconnected producer reads as Offline (asleep). Listening, Stuck and the failure beat are not ported because the owner never emits them.Known limits (also in the module doc): the Kitty pixel image still draws particles; no cove; vendored tables copied from
codewhale-app/vendor/whale-character-v2, so the app copy stays the reference until both share a crate.Evidence:
cargo check -p codewhale-tui --libpasses with warnings denied; dead-code budget 258/258. A scratch crate built from the module alone passes 2 tests and renders a recognizable reading whale at 32x16. The fullcodewhale-tuilib test build was SIGKILLed in the cloud sandbox, so the integrated test run and a live terminal check have not been done. No conformance vectors from the app'stests.rswere ported.🤖 Generated with Claude Code
https://claude.ai/code/session_01Gi912QbkMmcL35mcKHcE1m