← Commit history

Publish 0.8.1

Colby Knox ·28bddcafa5 ·2mo ago ·parent 44106f5
3 files changed +14−6
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "hero-studio",   "title": "Hero Studio",   "type": "app",-  "version": "0.8.0",+  "version": "0.8.1",   "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.8.0",+  "version": "0.8.1",   "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/index.html+12−4
@@ -849,8 +849,10 @@ function render() {     $('mqo-badges').innerHTML = '<span class="badge badge-' + d.type + '">' + d.type + '</span>' +       (d.score > 0 ? '<span class="ts-slide-score">' + TREND13 + ' ' + d.score + '</span>' : '') +       (d.stars > 0 ? '<span class="ts-slide-stars">' + STAR12 + ' ' + d.stars + '</span>' : '');-    $('mqo-title').textContent = d.title;-    $('mqo-brief').textContent = firstSentence(d.brief || p.brief || '', 120);+    // adom/wiki#80: hero tiles carry no overlay title/brief; the baked title+    // is the single title, so the preview shows badges + owner only+    $('mqo-title').textContent = '';+    $('mqo-brief').textContent = '';     $('mqo-owner').textContent = d.owner + '/' + d.slug;   }   $('chk-mqpreview').checked = !!state.marqueePreview;@@ -991,13 +993,19 @@ function relTime(iso) { function marqueeTile(p, isLive) {   const heroPart = isLive ? '<div class="clone-slot"></div>'     : '<div class="ts-hero-fallback"><span>' + p.title + '</span></div>';+  // DECIDED (Colby, 2026-07-26, adom/wiki#80): hero-bearing tiles get badges+  // and owner only; the baked title is the single title. Heroless fallback+  // tiles keep the text overlay, which is their only title.+  const textPart = isLive+    ? ''+    : '<h3 class="ts-slide-title">' + p.title + '</h3>' ++      (p.brief ? '<p class="ts-slide-brief">' + p.brief + '</p>' : '');   return '<a class="ts-slide mq-slide">' + heroPart +     '<div class="ts-slide-shade"></div><div class="ts-slide-info">' +     '<div class="ts-slide-badges"><span class="badge badge-' + p.type + '">' + p.type + '</span>' +     (p.score > 0 ? '<span class="ts-slide-score">' + TREND13 + ' ' + p.score + '</span>' : '') +     (p.stars > 0 ? '<span class="ts-slide-stars">' + STAR12 + ' ' + p.stars + '</span>' : '') +-    '</div><h3 class="ts-slide-title">' + p.title + '</h3>' +-    (p.brief ? '<p class="ts-slide-brief">' + p.brief + '</p>' : '') ++    '</div>' + textPart +     '<span class="ts-slide-owner">' + p.owner + '/' + p.slug + '</span></div></a>'; }