Files
SubMiner/backlog/tasks/task-20.2 - Add-renderer-to-main-IPC-contract-for-measured-overlay-content-bounds.md

2.0 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies, parent_task_id, priority, ordinal
id title status assignee created_date updated_date labels dependencies parent_task_id priority ordinal
TASK-20.2 Add renderer-to-main IPC contract for measured overlay content bounds Done
2026-02-12 08:47 2026-02-18 04:11
TASK-20 medium 45000

Description

Add renderer-to-main IPC for content measurement reporting, so main process can size each overlay window from post-layout DOM bounds.

Acceptance Criteria

  • #1 Preload exposes a typed API for reporting overlay content bounds with layer metadata.
  • #2 Main-process IPC handler validates payload shape/range and stores latest measurement per layer.
  • #3 Renderer emits measurement updates on subtitle, mode, style, and render-metric changes with throttling/debounce.
  • #4 No crashes or unbounded logging when measurements are missing/empty/invalid; fallback behavior is explicit.

Implementation Notes

Added a typed OverlayContentMeasurement IPC contract exposed in preload and Electron API typings. Implemented a main-process measurement store with strict payload validation and rate-limited warning logs for invalid reports. Added renderer-side debounced measurement reporting that emits updates on subtitle content/mode/style/render-metric and resize changes, explicitly sending contentRect: null when no measured content exists to signal fallback behavior.

Added unit coverage for measurement validation and store behavior.

Closed per user request to delete parent task and subtasks.

Final Summary

Implemented renderer-to-main measurement reporting for overlay content bounds with per-layer metadata. Main now validates and stores latest measurements per layer safely, renderer emits debounced updates on relevant state changes, and invalid/missing payload handling is explicit and non-spammy.