SnapTray Release Notes

SnapTray 1.0.41

March 26, 2026 ยท View on GitHub

What's Changed

  • docs: restructure and migrate developer docs
  • docs(developer): add repo and site links
  • docs(readme): link to local documentation
  • fix(annotations): prevent marker stroke gaps
  • refactor(region): isolate selector render state without changing UX
  • test(region): tighten selector regression access around reveal and replay
  • test(region): route selector probe coverage through a single access layer
  • perf(region): keep selector hover responsive without changing interaction rules
  • fix(dpi): preserve fractional-DPR thumbnail edges in region lists
  • refactor(capture): deduplicate logical-region crop outside the GUI flow
  • refactor(capture): collapse unannotated selector crops inside gui workflows
  • fix(dpi): eliminate fractional-DPR seams in multi-region image assembly
  • fix(region): remove Windows fractional-DPR hover artifacts
  • perf(region): localize pencil and marker preview repaints
  • perf(marker): avoid full preview raster rebuild on every point
  • perf(region): shrink pencil and marker preview dirty rects to the tail
  • perf(freehand): preserve fractional input for pencil and marker strokes
  • perf(region): localize selected-annotation repaints on high-DPI overlays
  • perf(freehand): stabilize high-DPI stroke sampling without changing tools
  • refactor(tools): converge shared annotation repaint routing across hosts
  • perf(region): remove host repaints for detached cursor chrome
  • perf(region): cut full-screen overlay work from selection drag
  • perf(region): route drag-selection visuals off the full-screen host
  • perf(emoji): cache glyph rendering so scaling stays smooth across hosts
  • perf(region): replace selection interior blits with a dimming-hole overlay
  • fix(region): keep magnifier tracking live during drag capture
  • perf(region): replace full-screen selection masks with strip overlays
  • perf(region): avoid double-syncing selection preview overlays on pointer move
  • test(region): align trace-probe hover expectation with overlay-based repainting
  • perf(region): disable drag-frame polling on overlay-driven selection drags
  • fix(region): stop re-raising selection overlays on every drag sync
  • fix(region): snap selection borders to physical pixels on fractional DPI
  • fix(region): revert strip dimming seams and restore selection chrome thickness
  • fix(region): over-invalidate cleared window highlights before selection begins
  • fix(region): force one host repaint when selection takes over from detection
  • perf(region): move Windows capture rendering off the full-screen input host
  • fix(windows): stabilize detached capture transitions
  • perf(region): localize detached capture window repaints on Windows
  • fix(region): restore detached floating UI after completed-selection drags
  • fix(region): pad detached chrome dirty rect for size widget ghosting
  • fix(ui): keep size readouts aligned with platform display units
  • feat(tray): show hotkeys in tray tooltip
  • chore: remove openspec in gitignore
  • fix: adjust copyright to 2026
  • fix(cmake): keep configure output focused on actionable warnings
  • feat(canvas): add copy to clipboard support
  • feat(canvas): hide surfaces during capture
  • fix(screen-canvas): keep copy-export capture stable without native overlay handles
  • feat(region-capture): make beaver the default cursor companion
  • refactor(settings): remove legacy showMagnifier key, use cursorCompanionStyle as single source of truth
  • fix: keep cursor companion aligned during fast region capture movement
  • test: keep region selector regression coverage aligned with input and reveal fixes
  • test: tolerate real cursor landing offsets in region selector cursor tests
  • fix(canvas): avoid double hide/restore cycle during copy-export capture
  • test(region): remove unstable cursor polling tests
  • docs: clarify that GIF/WebP exports are silent, audio is MP4-only

Full Changelog: https://github.com/victorfu/snap-tray/compare/v1.0.39...v1.0.41