Releases: HeyRenan/showreel
Releases · HeyRenan/showreel
Release list
showreel v1.1.6 — shot.mjs entry guard + parse tests
Fixed
shot.mjsranmain()on import. Alone among the scripts it had no entry-point guard, so importing it (to reuseparse, or from a test) executed the CLI against the importer's argv. Wrappedmain()in the standardimport.meta.urlguard; the CLI entry is unchanged.
Tests
- Exported
parsefromshot/compose; added argument-parsing tests forshot,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
Found by intensive testing (functional + visual).
Fixed
prove --circlealways 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 --drywas 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-videoreportinput 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
Internal
- De-duplicated
ancestorBoxes— the crop-snapping ancestor walk was copy-pasted byte-for-byte inprove.mjsanddemo.mjs(same pattern as the v1.1.1textNeighborscleanup). Moved to a singleBrowser.ancestorBoxesmethod, keepinglib/autoplace.mjspure. No behavior change (verified by realdemo+proverenders; 536 tests green).
Full diff: v1.1.3...v1.1.4
showreel v1.1.3 — fix build-log timestamp order
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 after10:42:08 awaiting deploy approval(log read 06 → 07 → 08 → 05 → 09). The failure now stamps10:42:09, success10: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
Fixed
showcase.mp4deploy arc was broken. The v1.1.0 re-render dropped the?gate=failquery param, so the first#deployclick 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=failparam 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
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 inprove.mjsanddemo.mjs) into a singleBrowser.textNeighborsmethod, keepinglib/autoplace.mjspure. - Replaced a silent
statSynctry/catch inprove.mjswith a namedoutputByteSizehelper, 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
Fixed
progressno 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
progressgeometry + lane choice extracted to a pure, unit-testedprogressRailGeometry(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) andassets/progress.gifso 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
Fixed
- Spotlight notes legible on the dimmed field: a
notepaired withspotlightchose its pill colour from the bright page underneath — but the spotlight dim is apointer-events:noneoverlay 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
NOTEBGtoken; 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
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.