Skip to content

feat(browser-actions): annotate step for instructional recordings - #2551

Merged
chubes4 merged 1 commit into
mainfrom
fix/issue-2548-wp-codebox
Oct 2, 2026
Merged

chubes4 merged 1 commit into
mainfrom
fix/issue-2548-wp-codebox

Conversation

@chubes4

@chubes4 chubes4 commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

Fixes #2548.

New annotate step kind that renders into an isolated overlay: its own shadow root, pointer-events: none, top z-index, re-anchored on scroll and resize. It doesn't need the evaluate grant.

  • Shapes:
    • highlight (ring / box / underline)
    • spotlight (dims the viewport except the target's padded box)
    • arrow (SVG, placed by direction, with an optional draw stroke animation)
    • label (anchored to a target)
    • caption (position: top|center|bottom)
  • Every annotation takes optional id, durationMs (auto-clear), and animate (draw|fade|none). clear: [ids] | true removes them.
  • Run-level theming via annotation-theme-json=<object|@file>: accentColor, textColor, background, fontFamily, fontSize, strokeWidth, radius. Neutral defaults, no per-step theme.
  • position is one shared field typed "top"|"center"|"bottom". scroll (feat(browser-actions): visible pointer, human-paced motion and smooth scroll step #2550) still accepts only top/bottom, and caption accepts all three. The issue's from was renamed to direction to avoid colliding with drag.from.
  • README documents it.

Tests

npm run build clean.

  • browser-annotations.browser.test.ts 2/2: shape/clear validation, plus an overlay that doesn't intercept clicks, follows scrolling and clears by id
  • test:browser-video-capture 4/4
  • presentation validation 2/2 and browser 1/1
  • browser-preview-routing 16/16

Follow-ups (not blocking)

  • The browser test doesn't yet assert the theme argument, the SVG arrow geometry, or the spotlight cutout box.
  • The run theme is held in module state set per run (setBrowserAnnotationTheme). Threading it through the step executor would be cleaner for concurrent sessions.

Drafted by Homeboy cooks (cook-detached-fa0ce1e3, cook-detached-282c847a, cook-detached-ea28c3dd). Gates passed, but publication stalled (promotion_operation: operation_in_progress). With Chris's authorization, the annotation changes were applied onto current main (after #2549 and #2550), re-verified, and published outside Homeboy.

AI-assisted: drafted by an OpenCode agent, reviewed and finalized by Extra Chill Bot.

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.

browser-actions: annotation step for instructional recordings (highlight, spotlight, arrow, label/caption, clear)

1 participant