← Commit history

Publish 0.18.3

Colby Knox ·6e7b9c4085 ·2mo ago ·parent e986f8e
3 files changed +20−9
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "hero-studio",   "title": "Hero Studio",   "type": "app",-  "version": "0.18.2",+  "version": "0.18.3",   "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. Adom-org pages get the house wordmark and palette automatically; every other owner brings their own accent and background colors, with placement fixed for all. The floating app window is the vitrine: 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, vitrine, type match) and a Generate that unlocks only fully confirmed. Includes vitrine 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.18.2",+  "version": "0.18.3",   "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. Adom-org pages get the house wordmark and palette automatically; every other owner brings their own accent and background colors, with placement fixed for all. The floating app window is the vitrine: 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, vitrine, type match) and a Generate that unlocks only fully confirmed. Includes vitrine 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/js/wizard.js+18−7
@@ -203,23 +203,34 @@ const WIZ_STEPS = [   {     id: 'finishing', title: 'Finishing',     hint: 'The small marks in the corners.',-    summary: () => ['pill', 'logo', 'slug', 'author'].filter(k => state.overlay[k]).join(' + ') || 'clean',+    summary: () => ['pill', 'slug', 'logo'].filter(k => state.overlay[k] && (k !== 'logo' || (state.vitrine && state.vitrine.full))).join(' + ') || 'clean',     custom: (host) => {       const wrap = document.createElement('div');       wrap.className = 'wiz-finish';+      // Only marks that actually BAKE into this pose get a card: the author+      // line is a homepage overlay (never in the PNG), and the wordmark+      // stamp exists only over full-hero imports. Dead buttons teach+      // distrust (Colby, dogfood round 3).       const items = [-        ['pill',   'Type pill (top right)'],-        ['author', 'Author line'],-        ['slug',   'Wiki address (bottom right)'],-        ['logo',   'Adom wordmark stamp (full imports)'],+        ['pill', 'Type pill (top right)', 'Bakes into the corner'],+        ['slug', 'Wiki address (bottom right)', 'Bakes into the corner; the homepage also shows a live one'],       ];-      items.forEach(([k, lab]) => {+      if (state.vitrine && state.vitrine.full && wp().owner === 'adom') {+        items.push(['logo', 'Adom wordmark stamp', 'Bakes the standard mark over your import']);+      }+      items.forEach(([k, lab, subOn]) => {         const c = document.createElement('div');         c.className = 'card wide' + (state.overlay[k] ? ' on' : '');-        c.innerHTML = '<div class="card-label">' + lab + '</div><div class="card-sub">' + (state.overlay[k] ? 'Shown' : 'Hidden') + '</div>';+        c.innerHTML = '<div class="card-label"></div><div class="card-sub"></div>';+        c.querySelector('.card-label').textContent = lab;+        c.querySelector('.card-sub').textContent = state.overlay[k] ? subOn : 'Hidden';         c.addEventListener('click', () => wizSend({ overlay: { [k]: !state.overlay[k] } }));         wrap.appendChild(c);       });+      const note = document.createElement('div');+      note.className = 'wiz-legend';+      note.textContent = 'The author line and live stats come from the homepage, not your PNG: flip "Homepage preview" on the Review step to see them.';+      wrap.appendChild(note);       host.appendChild(wrap);     },   },