Skip to content

fix(companion): adopt flatter full speech mouth from Avatar 0.10.1 - #1254

Merged
DoodleBears merged 60 commits into
mainfrom
codex/1241-natural-mouth
Oct 10, 2026
Merged

DoodleBears merged 60 commits into
mainfrom
codex/1241-natural-mouth

Conversation

@DoodleBears

@DoodleBears DoodleBears commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Closes #1241 · Spec #1135 · Owner PR #14 · Agent claim · Task codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269

Why the change

Window Companions use a flatter full speech opening in place of the rejected circular O mouth while keeping the accepted half-open mouth and speaking rhythm.

Special things to note

Change outline

Current merge checkpoint

Head 1418c0ca incorporates prerequisite 43dae153, including current main8c2103de, without changing the accepted mouth consumption or speech rhythm. Both bilingual additive conflicts preserve the mouth and floor corrections; released history remains immutable. Local typecheck,13focused renderer/Companion regression tests and bilingual ledgers pass. Standards and Spec final integration reviews each find0defects. Complete CI38071342721 passes at1418c0ca. Final squash-history synchronization38571a9c restores the sole additive mouth entry without changing that tested tree: both have Git tree618217329cc4a7e997e6322d0fe5d4ef559e5354. Squashed main88ced4d1 is tree-identical to the tested prerequisite43dae153; only ancestry changes. The duplicate final-head run was pending at the Human-authorized merge9fc1f8d8; its results are not claimed passing.

avatarSvg(recipe, options)
  ordinary portraits → existing pixelAvatarSvg rendering
  companion surface
-   pixelFigure(recipe, yaw, options)
+   pixelFigure(recipe, yaw, { ...options, speechMouthVersion: 2 })
    each pre-rendered turn → same explicit version2 option

The public-interface regression compares all five saved/closed/half-open layers unchanged and the full opening changed, verifies ordinary portraits keep default rendering and confirms no recipe mutation. No sound, movement, timing, fallback or expression-tool changes. English/Chinese Release Ledgers record the visible correction.

Formal mouth before/after — actual DSH, Chinese/light/1559 × 865

Before source50b44535 uses formal Avatar0.8.0; after sourcea0096785 uses formal0.10.1 plus the Companion-only version2 option. Same isolated Profile, Bot, saved recipe and full reply text; the ordinary Chat retains earlier history between runs. Each has a newly committed native Bot reply, all four observed mouth states, no historical replay on fresh mount and no console errors.

Before: actual speaking sample After: actual speaking sample
Formal baseline speech in DSH Formal flatter mouth speech in DSH
Before: native dismissal restores expression After: native dismissal restores expression
Baseline expression after native close New version expression after native close

Continuous44.633s baseline · Continuous40.600s formal improvement · Allowlisted qualification · Capture attribution and limits.

Recipe, ordinary portrait and body hashes match. All five captured saved/closed/half-open layers match exactly; all five full-open layers change. Native dismissal restores saved mouth in the same document. Screenshots are unfrozen speaking samples, not phase-synchronized full-open frames; use the continuous video to judge transitions and the moving opening. Actual delivery timing and Chat history differ. Videos are silent official MCP screencasts, container-remuxed only. Owned browsers are closed; failed setup attempts are excluded. Human accepted the current effect after reviewing the formal after recording on2026-10-09.

To operate: run the isolated DSH launcher on this branch, pin the illustrated Bot, send a new real DM and inspect full versus half-open speech; close the card to check restoration. No TTS or expression-library changes.

Historical validation

Formal dependency/typecheck153files1093tests, lint/format/ledgers/build, source CI at a0096785 and latest full CI at2ef1106a pass. Independent Standards and Spec reviews find no implementation or media-provenance defects against pinned latest main d55d82f. GitHub renders all four embedded screenshots and exposes both video links. Human accepted the formal recording's full opening, half-open mouth and restored expression on2026-10-09.

Prerequisite integration at 659a1415 resolves the updated #1180 branch conflicts while retaining formal0.10.1, both Unreleased entries and Companion-only rendering. The accepted parent release handler is unchanged. Typecheck, all156Client files/1133tests plus the formal mouth renderer regression, lint/source policy, format/ledgers and production build pass. Independent Standards and Spec integration reviews against fixed latest main bcae2205 each report zero findings. Fresh CI37925588791 passes. Historical mouth recordings retain their source attribution and Human acceptance; the separate fast upward throw was accepted on parent source0eb841dd and preserved unchanged by this integration. Broader #1173 background/stale/fallback qualifications remain open.

Issue: #1173
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Observe the fixed stage for motion scheduling and retain character visibility for text/audio. Fast release, cancel and lost capture must settle at the floor without opening DM.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both bilingual Release Ledger additions without changing companion behavior.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both companion and AX diagnostic release entries.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both release ledgers and validate the integrated Client.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Include matched setting states, the first trusted drag recording and the separately captured output approved at its quiet volume.

Issue: #1173
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Refs: #1143

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Pointer and policy updates committed the character before the frame loop committed its bubble origin, leaving a stale tether on reduced-motion release. Present both together through the mounted view lifecycle. This correction was first produced under the existing #1177 task claim before discovering that PR #1183 had concurrently merged its preceding head.

Issue: #1248

Refs: #1177

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Keep the 737px failed first-release observation alongside the corrected 0px observation, real canonical replies, five screenshots and two continuous silent recordings. Capture source fbb2975 is tree-identical to dedicated follow-up 426167c; settled PNGs do not show the transient.

Issue: #1248

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve quiet playback, offscreen fall recovery and per-card reading alongside projected Avatar anchors and the current published rig.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Publish real integrated DSH screenshots, a continuous silent recording, separate observed audio and allowlisted geometry/source-start assertions. Deliberate viewport nonintersection remains distinct from background-tab and fast-gesture acceptance.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1241

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1241

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1241

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Delayed rendering previously discarded elapsed time twice, making a released companion appear suspended. Preserve elapsed time for bounded drop integration while retaining text and idle motion limits.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Exclude the time spent holding a companion before a delayed frame from flight integration; preserve upward inertia and include cancelled releases in the same clock boundary.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both QQ release entries and unreleased companion behavior, leaving published history unchanged.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve the formal 0.10.1 Companion-only mouth opt-in and integrate #1180 release timing fixes. Retain both Unreleased ledger entries and the existing package age exceptions.

Issue: #1241

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Separate click suppression from the active pointer so a late unpressed move cannot restore drag and suspend gravity.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both Unreleased ledgers; the immediate release boundary is unchanged. Client integration passes 156 files and 1133 tests.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Publish only agent-generated isolated QA state screenshots, a 9.866s native tool recording and allowlisted qualification. The supplied Human screenshot stays private and is excluded.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1241

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Use the existing physical point as a wrapper translation instead of changing layout offsets. Preserve geometry regressions. This candidate has no qualified before/after performance result yet.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both bilingual ledger entries and adapt mounted multi-companion geometry to the translated wrapper. All 157 Client files and 1141 tests pass; typecheck, lint, format and ledger checks pass.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Record native lift and exact floor return on source 774d9f6; preserve failed dark setup and remaining performance gates.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Capture matched real DSH floor and portalled menu states with identical pixels, plus a continuous native menu/theme recording. Keep dynamic and performance gates explicit.

Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve delayed-frame release timing, cleared pointer ownership and bounded interaction audio while presenting direct position and bubble origin together. The mounted regression fails on the old #1180 branch with a 300px stale tether and passes after integration.

Issue: #1173

Refs: #1248

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Issue: #1173

Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve both additive release ledgers and integrate current main without changing accepted companion motion.

Issue: #1173
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve formal Avatar 0.10.1 and the accepted Companion-only mouth artwork while integrating current main through the prerequisite.

Issue: #1241
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Record the direct-motion anchor fix under Unreleased and restore the original bilingual 1.2.0 entries.

Issue: #1173
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
Preserve formal Avatar 0.10.1 and the accepted Companion-only mouth artwork while integrating current main through the prerequisite.

Issue: #1241
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
@DoodleBears
DoodleBears changed the base branch from codex/1173-companion-babble-spring to main October 10, 2026 17:26
Preserve formal Avatar 0.10.1 and the accepted Companion-only mouth artwork while integrating current main through the prerequisite.

Issue: #1241
Agent-Task: codex/local/01a11734-bb09-7f01-9d45-adc0f5df6269
@DoodleBears
DoodleBears merged commit 9fc1f8d into main Oct 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Window Companion: adopt the flatter fully open speech mouth

1 participant