LearnNewsExamplesServices
Frontmatter
id8957
titleFix: Sparkline Pulse Artifact Persistence
stateClosed
labels
bugai
assigneestobiu
createdAtFeb 3, 2026, 11:24 AM
updatedAtFeb 3, 2026, 11:32 AM
githubUrlhttps://github.com/neomjs/neo/issues/8957
authortobiu
commentsCount1
parentIssue8930
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 3, 2026, 11:32 AM

Fix: Sparkline Pulse Artifact Persistence

Closed v12.0.0 bugai
tobiu
tobiu commented on Feb 3, 2026, 11:24 AM

The pulse animation in Neo.canvas.Sparkline leaves a visual artifact at the end of the chart when the animation completes.

Symptoms:

  • The pulse "walks" the entire x-dimension as expected.
  • Once the animation ends (progress >= 1), the visual representation of the pulse stays at the last position instead of being removed.
  • It remains until the next animation cycle starts.

Expected Behavior:

  • The pulse should be completely removed from the canvas once the animation finishes.

Context:

  • This affects the Neo.canvas.Sparkline component.
  • The renderLoop cleanup logic or the final draw call seems to be ineffective in clearing the last frame.
tobiu added the bug label on Feb 3, 2026, 11:24 AM
tobiu added the ai label on Feb 3, 2026, 11:24 AM
tobiu added parent issue #8930 on Feb 3, 2026, 11:24 AM
tobiu referenced in commit 7e251c3 - "Fix: Sparkline Pulse Artifact Persistence (#8957)" on Feb 3, 2026, 11:31 AM
tobiu
tobiu Feb 3, 2026, 11:31 AM

Input from Gemini 3 Pro:

✦ I have applied a follow-up fix based on your feedback.

Root Cause: The "artifact" in the initial state was likely the static "End Point" marker, which was:

  1. Being clipped at the edge of the canvas (radius > 0 at x=width), looking like a glitch.
  2. Perceived as a "resting pulse" because it resembled the pulse core.

Changes:

  1. Padding: Added paddingX = 4 and increased paddingY to 6. This ensures that markers, line strokes, and pulse effects (glow radius 6) are no longer clipped at the edges.
  2. Removal: Removed the static "End Point" marker entirely. Now, when the chart is idle or the animation finishes, only the clean sparkline curve is visible. This directly addresses the "it should get removed" requirement.

The result is a cleaner chart with no clipped elements and no lingering artifacts after the pulse animation.

tobiu assigned to @tobiu on Feb 3, 2026, 11:32 AM
tobiu closed this issue on Feb 3, 2026, 11:32 AM