Skip to content

snipIT v0.1.1 — capture-flow correctness release

Latest

Choose a tag to compare

@aksOps aksOps released this 26 Apr 05:23
v0.1.1
7ca91eb

snipIT v0.1.1 — capture-flow correctness release

Capture-flow correctness release. No schema, workflow, or security changes from v0.1.0.

Fixed

  • Capture flow — exclude SnipIT's own widget / preview / tray windows from the capture target so they aren't baked into the frame (RAN-15). The v0.1.0 release notes listed this fix prematurely; the change actually ships in v0.1.1 (see RAN-68).

    • Adds Test-IsSelfWindowHandle / Resolve-WindowCaptureTarget pure helpers in the Core region (cross-platform unit-tested).
    • Maintains a $script:SelfWindowHandles registry; registers the console, hotkey form, floating widget, and preview window when they are created.
    • Adds IsWindowVisible / ShowWindow PInvoke + Hide-/Show-OwnSnipITWindowsForCapture helpers that hide every visible SnipIT-owned hwnd before CopyFromScreen and restore them via SW_SHOWNA after the snapshot. Wraps the snapshot in try/finally so a thrown exception still restores chrome.
    • Wires the helpers into Show-SmartOverlay, Invoke-FullScreenCapture, and Invoke-WindowCapture. Window capture now consults Resolve-WindowCaptureTarget and falls back to a full virtual-desktop capture (with chrome hidden) when the foreground window is SnipIT.
  • Full-screen and window capture — route Invoke-FullScreenCapture and Invoke-WindowCapture through Invoke-CaptureLoop with a per-iteration capture factory, so the preview owns / disposes each bitmap and the chrome-hide runs every snapshot. Fixes the use-after-dispose blank/crash on iteration 2+ of the same capture session (RAN-14).

Security

No security-relevant fixes in v0.1.1. The OSS-CLI security stack landed in .github/workflows/security.yml (v0.1.0) is the gating channel for all future fixes; advisories will appear here under each release where they apply, alongside a GHSA link.

Documentation correction

The v0.1.0 GitHub Release body and signed tag annotation incorrectly listed the capture-flow exclusion as shipped under v0.1.0. The underlying commit (bc216cc) existed on the maintainer's local main but was never pushed before the v0.1.0 tag was cut. The v0.1.0 git tag annotation and Release body are immutable per OSPS evidence policy and have not been edited; the CHANGELOG.md [v0.1.0] entry now carries a Correction (2026-04-26) callout pointing readers at this release. v0.1.1 is the authoritative ship of the RAN-15 fix.

Tests

pwsh ./Test-SnipIT.ps1111 / 111 pass (15 RAN-15 capture-target unit tests + 7 RAN-14 capture-loop contract tests + 6 new structural call-site guards + the rest of the suite).

Provenance

  • Signed git tag (SSH, ed25519): v0.1.1
  • Tag points at merge commit 7ca91eb
  • Auto-merged via PR #9, tracked under RAN-68.

Full diff

v0.1.0...v0.1.1