You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move the existing shared shimmer text treatment into EMCN, with the same CSS animation and reduced-motion behavior.
Use it in activity status, agent streaming chrome, and the thinking loader while retaining each caller's typography and layout.
Keep the existing static thinking-loader label unchanged and update the relevant component mocks.
Validation
Focused EMCN and app tests: 44 passed on the refreshed head.
EMCN and app TypeScript checks passed.
Biome and git diff checks passed on changed files.
The local design diff checker reported no introduced confirmed findings or coverage failures against current staging (d8e7e923a2).
Matched source-derived captures in light and dark, at 16px and 20px root size, with ordinary and reduced motion. All eight cases matched before and after computed geometry and shimmer styling. Staging subsequently changed the active label wording in both base and head; the captures remain a comparison of the shimmer treatment. Review artifacts are stored outside this product PR.
Change. The app-local ShimmerText moves into EMCN. Activity status and agent-stream imports point to the shared export, while ThinkingLoader uses that same component for its active label. The loader's nonshimmer static label stays separate. The gradient, 2.2s timing, text geometry, dark treatment, and reduced-motion fallback are preserved.
Source-exact ThinkingLoader excerpts (other consumers switch their ShimmerText import from the app module to @sim/emcn):
Images. Each image is a labeled isolated render of the real before/after product compositions using compiled product CSS. Before is left; After is right. It covers ThinkingLoader, ActivityStatus, and agent-stream thinking. The earlier follow-up commits add tests. The staging merge preserves the shared shimmer renderer and CSS; staging also changed the active label wording to “Thinking” in both base and head. These captures document the shimmer treatment and geometry, while their text may show the earlier wording.
Mode
Light 16px
Dark 16px
Light 20px
Dark 20px
Normal motion
Reduced motion
Staging conflict resolution · cbbb28d930
Staging edited a JSDoc sentence in the app-local shimmer-text.tsx that this PR removes. The resolution keeps the deletion and the EMCN export; no second implementation remains. The Thinking wording change came from staging and is present on both sides of the current comparison. Focused app and EMCN tests (44), both type checks, and the local design diff check pass with no new findings.
Review follow-up · de0a95ee5e: The latest commit replaces a test mock that loaded the real EMCN module with explicit mocked exports. It changes no product component, CSS, or visual state shown above.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation
d8e7e923a2).