Skip to content

Releases: HeyRenan/showreel

showreel v1.1.6 — shot.mjs entry guard + parse tests

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 18:07

Fixed

  • shot.mjs ran main() on import. Alone among the scripts it had no entry-point guard, so importing it (to reuse parse, or from a test) executed the CLI against the importer's argv. Wrapped main() in the standard import.meta.url guard; the CLI entry is unchanged.

Tests

  • Exported parse from shot/compose; added argument-parsing tests for shot, compose, tape (the CLI parsers with no dedicated coverage). The shot bug surfaced because the new test imported it. 547 tests.

Full diff: v1.1.5...v1.1.6

showreel v1.1.5 — fix prove --circle & rec --dry

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 17:43

Found by intensive testing (functional + visual).

Fixed

  • prove --circle always failed vcheck. Dominance was judged against the bare target rect, but the circle marker is drawn padded out beyond it, so most of its green ring read "outside" (~0.37 vs the 0.6 floor) — a correct ring exited non-zero. Now judged against the ellipse's own box.
  • rec --dry was unusable as documented. It required an output path (writes nothing), was preempted by the safeguard audit, and only checked a subset of selector keys (rect/circle/spotlight/glow/… were skipped → false PASS). Now runs with no output, reports [MISS] across all selector keys, exits non-zero on any miss.

Changed

  • compose/compose-video report input not found: <path> instead of a raw ENOENT/ffmpeg leak.

Tests

  • Unit + render-real regression tests for both. 541 tests.

Full diff: v1.1.4...v1.1.5

showreel v1.1.4 — de-dup ancestorBoxes

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 17:10

Internal

  • De-duplicated ancestorBoxes — the crop-snapping ancestor walk was copy-pasted byte-for-byte in prove.mjs and demo.mjs (same pattern as the v1.1.1 textNeighbors cleanup). Moved to a single Browser.ancestorBoxes method, keeping lib/autoplace.mjs pure. No behavior change (verified by real demo + prove renders; 536 tests green).

Full diff: v1.1.3...v1.1.4

showreel v1.1.3 — fix build-log timestamp order

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 16:44

Fixed

  • Demo build log was out of chronological order. On a failed gate the demo appended "deploy gate FAILED" stamped 10:42:05 — a duplicate of the static "scanned image · 10:42:05" line, landing after 10:42:08 awaiting deploy approval (log read 06 → 07 → 08 → 05 → 09). The failure now stamps 10:42:09, success 10:42:11; log is monotonic, no duplicate timestamps. Re-rendered the showcase.

Full diff: v1.1.2...v1.1.3

showreel v1.1.2 — fix broken showcase deploy arc

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 15:39

Fixed

  • showcase.mp4 deploy arc was broken. The v1.1.0 re-render dropped the ?gate=fail query param, so the first #deploy click shipped instead of failing the gate — the whole blocked → auto-rollback → fixed → shipped story then played over an already-"Deployed" console (orphaned rollback note, "gate blocked" over a live stage, no red fail state). Re-rendered with the gate armed; verified on real frames (red blocked button + ticking rollback, then green live + 100% rollout).

Added

  • assets-src/build-showcase.sh — reproducible showcase render that bakes in the required ?gate=fail param and the --width 1280 (1280×720) framing, so the reel can't be regenerated wrong again.

Full diff: v1.1.1...v1.1.2

showreel v1.1.1 — internal polish

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 15:23

Quality polish — no behavior change (536 tests green; verified by real demo + prove renders).

Internal

  • De-duplicated textNeighbors (the autoplace text-obstacle scan was copy-pasted byte-for-byte in prove.mjs and demo.mjs) into a single Browser.textNeighbors method, keeping lib/autoplace.mjs pure.
  • Replaced a silent statSync try/catch in prove.mjs with a named outputByteSize helper, so a missing/unreadable output reads as 0 by intent.

Full diff: v1.1.0...v1.1.1

showreel v1.1.0 — progress rail reads on every host

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 15:06

Fixed

  • progress no longer reads as broken. The rail anchored to the host's bottom edge, so on a content-flush node (a pipeline stage whose last child is a status chip) it painted on top of that chip and flashed by — in the showcase and the README gif it looked like nothing happened. The rail now picks a lane: inside a host with bottom padding (the premium card look), or a clean under lane just beneath a content-flush host, so the chip is never covered.

Changed

  • progress geometry + lane choice extracted to a pure, unit-tested progressRailGeometry (measure → compute → draw). An under-lane rail also reveals a clipping host's overflow for its lifetime, then restores it.

Assets

  • Re-rendered assets/showcase.mp4 (1280×720) and assets/progress.gif so the rollout actually reads. The renders also pick up the v1.0.1 spotlight-note fix.

Full diff: v1.0.1...v1.1.0

showreel v1.0.1 — spotlight notes legible on the dimmed field

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 14:23

Fixed

  • Spotlight notes legible on the dimmed field: a note paired with spotlight chose its pill colour from the bright page underneath — but the spotlight dim is a pointer-events:none overlay the colour probe (elementFromPoint) can't see, so on a light page the note resolved a glaring white box on a dark scene (same grammar, different placement, different look). The note now judges the effective surface — page luminance composited with the spotlight dim — and resolves a dark, high-contrast pill wherever it lands.

Internal

  • Dropped the dead NOTEBG token; the note surface is resolved per-placement.
  • Added a render-real regression test that drives the full pipeline and asserts the spotlight note pill on rasterized frames. 531 tests.

Full diff: v1.0.0...v1.0.1

showreel v1.0.0 — the capture motor

Choose a tag to compare

@HeyRenan HeyRenan released this 24 Jun 19:57

First stable release. Annotated screenshots, isolated demos, flow GIFs/MP4, terminal recordings, before/after composites — driven by CSS selectors and JSON steps. Modular recorder, offline render, cinematic camera, 226 tests. See CHANGELOG.md.