Repository navigation
feat(client): anchor companion bubbles to the displayed bust - #1183
Conversation
Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 20 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
⛔ Files ignored due to path filters (17)
📒 Files selected for processing (16)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Preserve the companion anchor and upstream bilingual release entries. Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
|
Real DSH partial visual qualification for #1177 at 37154da (2026-10-08): Chinese, 1559 × 865, two actual QA PersonaBots with native model channel_send replies. Dark stack, expanded reading, light idle and released-fall screenshots below; timed actual browser screenshot video retains capture intervals, without audio or performance claims. Matched base/branch pairs, reversing grab, resize, keyboard/reduced-motion and fallback eye checks remain pending. Browser control timed out on the original DSH page and again after a fresh task-owned page; this does not establish a product crash. Four browser message-listener errors were observed and retained; attribution remains unproven. No DOM presentation mutation or mocked Host used. anchor-release.mp4 |
|
Matched real DSH idle comparisons for #1177 (2026-10-08): original parent 8951533 → final head 1ed6dcb. Same isolated Profile, Ada/Grace identities and history, paused walking, Chinese, explicit 1559 × 865 viewport. Before images have no projected connectors; after images identify each displaced status card with its actual bust anchor. No historical messages replayed after either restart. Original follow-system theme and viewport restored; DSH test tabs closed. These pairs qualify idle light/dark only: reversing/held grab, resize, keyboard/reduced-motion and fallback eye checks remain open. Quiet-idle behavior requested later is separately implemented in PR #1180, not mixed into this independent anchor comparison.
|
Recalculate placement with the clamped character in the same update, avoiding the observed one-frame origin left at its old horizontal position. Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve independent release entries and qualify the resize correction against the current Client. Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Keep actual before/after DSH recordings and qualified geometry observations reviewable without authenticated attachment upload. Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Record latest-main runtime, native avatar fallback and tool-cover scenes with exact restoration and bounded geometry sampling. Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1177 Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269








Refs #1177 · Spec #1135 · Agent claim · Task
codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269Why the change
Window Companion bubbles stay connected to the displayed bust as it tilts and stretches while displaced cards remain upright and clearly identify their originating Bot.
Special things to note
Change outline
Real DSH messages and projected anchors — 1559 × 865, Chinese
Captured at implementation
37154dab, retained unchanged in main-sync head1ed6dcbd. Actualchannel_sendreplies from two QA PersonaBots; paused autonomous walking keeps the interaction target stable. These are after states, not matched before/after comparisons. Published capture record.The release recording contains 14 actual browser screenshots with recorded elapsed intervals, showing fall → land → rest; it does not capture a held/reversing grab, provide audio or measure performance. Read-only DOM observations retain each connector path and upright card-container transform.
anchor-release.mp4
Matched idle comparisons — both themes
Before: original parent
89515335; after: final head1ed6dcbd. Same isolated Profile, Ada/Grace identities and history, paused autonomous walking, Chinese and explicit 1559 × 865 viewport. The same two nearby busts displace their status cards; the after state preserves the connection to each originating bust. Small subpixel position differences remain after resizing. No historical message cards replayed after either restart. Theme and viewport overrides were restored and task-owned DSH tabs closed. Quiet-idle presentation is independently implemented in PR #1180 and is not part of this anchor-only comparison.Resize correction — real DSH recording
A real drag/re-grab and resize recording at
1ed6dcbdexposed a transient 588.694px mismatch between the clamped bust and its connector. The mounted regression now checks both positions before another frame; correctionf9fad41aupdates them together. Buildc946a749integrates main8940165f; evidence-only head5c16fab9retains the same implementation.Both captures use the same isolated Profile, Ada/Grace identities, Chinese, dark theme and 1559×865 → 600×700 → 1559×865 interaction. Main integration adds onboarding content in the center chat, so these are not fully matched screen comparisons. Settled screenshots do not show the transient defect. An independent QA observer sampled displayed head/connector geometry every50ms: after correction, all101 narrow samples were within0.012px; maximum across1,200 samples was0.710px. This is a sampled geometry check, not a performance measurement or proof about unsampled frames.
Continuous silent recordings: Before · After. The after video contains rest/drag/fall/land, 11trusted pointer events and actual focused-character keyboard movement. These are repository-hosted downloadable WebM files; no inline GitHub video-player claim is made. Capture details and limitations. Console showed no JavaScript error; the existing form-field id/name issue remains.
Focused reading and settled reduced-motion release
Real DSH c946a74 (evidence head5c16fab9), Chinese/dark1559×865. Three new native Bot replies were independently checked against canonical messages. Native pause buttons stopped autonomous walking; normal public character focus entered reading as three cards arrived, before capture latency consumed their lifetime. Subsequent actual hover retained Ada's two upright cards. This setup does not qualify mouse hover on a roaming character.
The real Bot Settings menu selected reduced motion; after native drag/release, all22post-release samples place both companions at bottom865. Cards have expired by then, so that scene is not reduced-motion message-reading acceptance. Sampled connector error is0px in this stationary/settled workload (80msobserver), not a frame-cost measurement, first-release-frame timing or guarantee about unsampled motion. Continuous silent WebM · Sanitized qualification · Setup, failures and limits. Remux only, no invented replies/events or card/store injection. Two earlier attempts are excluded and retained privately: moving-target hover timeout; then cards expired during tool latency. Console shows no JavaScript error.
Earlier evidence-only commits1d1cb1aa/e282b906 passed their own CI37844661877. Runtime d1dde91 now integrates main04da6093 and formal pixel-avatar0.6.0; its full CI37845666688 passed. Mandatory Standards/Spec re-review found0 new code defects.
Integrated-main image fallback and native tool cover — both themes
Real DSH d1dde91, Chinese1559×865. Grace uses the PNG saved by its own native avatar editor, switched through the owning avatar API; a new canonical DM exercises the image box-top anchor. Ada sends a new canonical explanation and enters a real pending ask_user_question; its Activity tool symbol uses the preserved head-region anchor. Walking is paused through native controls, and normal public character focus retains each real card before capture latency consumes TTL. These are after-state qualification scenes, not new matched baseline comparisons.
Continuous image fallback WebM · Continuous tool-cover WebM · Sanitized qualification. Official MCP captures, silent/remux-only; native drag/release is visible. Every connector-bearing sample in five stationary/post-release phases has0px origin error (25samples each at80ms); this is not first-frame/held/reversal or performance evidence. Both QA questions created during setup/capture were answered through the native Chat form, with actual canonical Bot continuations. Grace's original absent avatar/appearance/seed fields were restored and checked; console has0JSerrors; all owned pages/browser closed. Existing quiet-idle presentation belongs to independent PR1180.
This media-only head 3361996 retains the tested runtime code. Its own full CI37847542872 passed, including repository tests, build and generated-output checks; this result is distinct from d1's runtime CI.
Validation and remaining runtime review
Focused regressions cover displayed matrices/interruption, cover/fallback, Avatar replacement/disposal, offset overlay/resize, hidden-frame suspension and card bounds. After integrating main04da6093 into d1dde91, Client143files/1,029tests, typecheck, lint/source policy, format, bilingual ledgers and build passed. Full repository CI37845666688 passed at that exact runtime commit. Mandatory Standards and Spec reviews against that pinned main found0new code findings; remaining acceptance gaps are explicit above. Historical CI/captures remain attributed to their own commits. No local Windows full-suite pass is claimed; the earlier Host-cleanup failure also reproduced on clean main.
Runtime review path: build the branch and start an isolated DSH with
scripts/dev-instance.mjs; select two pixel Bots as companions and send real DMs. Capture matched main/branch states while idle, dragging right then reversing left, holding, releasing, walking and expanding the message stack. Check the connector at viewport edges, resize and crowd the two companions, then verify held/reversal, moving hover/grace, background and reduced-motion message reading. Image/tool-cover after states are now recorded above. Repeat in light/dark and capture a short drag/tilt/stack recording before promoting this PR. Related #1173 remains an independent PR rather than a functional dependency.