← Commit history

Publish 0.21.5

Colby Knox ·f7fc2feda1 ·22d ago ·parent abb7661
5 files changed +10−3
SKILL.md+2−1
@@ -574,7 +574,8 @@ view POSTs no state, reaches networkidle2, and that a renderer's error line is reported instead of Node's version footer (hero-studio#57). The render view (`?render=1`) is a read-only consumer of the state it loaded: it never posts state and opens no event stream, so Generate and compose are unaffected by-whichever studio tabs are open.+whichever studio tabs are open. It never runs the review tour either: the tour's spotlight on an unticked+title used to bake a teal ring into attested and compose renders.  ## Brand doctrine (what makes a hero look like the family) 
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "hero-studio",   "title": "Hero Studio",   "type": "app",-  "version": "0.21.4",+  "version": "0.21.5",   "description": "The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Every hero wears its PAGE OWNER's brand guide (<owner>/brand): colors, type, logo and background themes, Adom's included; an unresolved guide holds unbranded rather than borrowing Adom's look. Placement is fixed for all. The floating app window is the showcase: it auto-loads a real screenshot from the package's wiki page (screenshots/, docs/), takes a manual import, or a full-hero import (the human-ratified re-stamp path for existing heroes). The pose gate opens in verification mode: per-item checklist (title, subtitle, showcase, type match) and a Generate that unlocks only fully confirmed. Includes showcase bleeds, brand tile themes, gradient angles, pixel-faithful wiki marquee and index-card previews, and a component-hero mode with a photo/raytrace/phong fallback ladder.",   "license": "MIT",   "tags": [
page.json+1−1
@@ -2,7 +2,7 @@   "slug": "hero-studio",   "title": "Hero Studio",   "type": "app",-  "version": "0.21.4",+  "version": "0.21.5",   "description": "The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Every hero wears its PAGE OWNER's brand guide (<owner>/brand): colors, type, logo and background themes, Adom's included; an unresolved guide holds unbranded rather than borrowing Adom's look. Placement is fixed for all. The floating app window is the showcase: it auto-loads a real screenshot from the package's wiki page (screenshots/, docs/), takes a manual import, or a full-hero import (the human-ratified re-stamp path for existing heroes). The pose gate opens in verification mode: per-item checklist (title, subtitle, showcase, type match) and a Generate that unlocks only fully confirmed. Includes showcase bleeds, brand tile themes, gradient angles, pixel-faithful wiki marquee and index-card previews, and a component-hero mode with a photo/raytrace/phong fallback ladder.",   "license": "MIT",   "tags": [
public/hero.css+3
@@ -766,6 +766,9 @@ body[data-mode=component] .mode-app { display:none; } /* the fence is studio chrome: it must never bake into the exported PNG */ body[data-render] .sim-fenced { outline:none !important; } +/* the review-tour spotlight is studio chrome too: never in the PNG */+body[data-render] .tour-glow { outline:none !important; box-shadow:none !important; }+  /* render mode: ?render=1 strips all chrome for the server-side PNG shot */ body[data-render] header, body[data-render] #panel, body[data-render] #contexts,
public/js/app.js+3
@@ -891,6 +891,9 @@ function clearTourGlow() { } function showTourStep() {   clearTourGlow();+  // the render view is what Generate and compose screenshot: a spotlight+  // there bakes a ring around the title into the exported PNG+  if (RENDER_VIEW) return;   // the walkthrough is classic-only: in wizard mode the review step owns   // spotlighting, and two rings on the stage read as one ring too many   if (document.body.classList.contains('wizard')) { $('tourpop').style.display = 'none'; return; }