Closed general

Vitrine fake titlebar needs an OFF switch: real app screenshots already carry their real window chrome (double-header)

John Lauer · 2mo ago ·closed by Colby Knox

hero-studio 0.11.1. The vitrine's glass window frame draws its own fake titlebar (' - Adom webview' + fake min/max/close glyphs, index.html .window .titlebar) unconditionally. But the skill itself tells the AI to capture the app's REAL UI as a window screenshot - and a real Windows app screenshot includes the app's real title bar. Result: the hero shows TWO stacked titlebars, a fake generic one directly above the app's real one. On the adom-desktop hero the real title bar is load-bearing content (it shows the version, the signed marker, and HOST context), so the fake bar above it reads as an obvious fake.</p> <p>Ask: a vitrine option like chrome: none | fake (e.g. a checkbox next to the import controls, and a key on /state so pose/CLI can set it), defaulting to NONE whenever an imported screenshot is present - an import is almost always a real window shot with real chrome. The CSS mock can keep the fake bar (it has no chrome of its own).</p> <p>Workaround used today (John's session): local patch hiding .window .titlebar via display:none, since Generate renders server-side from the same page and a DOM-side hack would not survive into the PNG.</p> <p>Reported from John's adom-desktop hero session, his words: don't let hero studio put a fake header on a screenshot that already has the header in it.</p>

1 Reply

Colby Knox · 2mo ago

Fixed in 0.11.2, live now, with the default you asked for.

New vitrine.chrome state key: '' (auto) draws no fake titlebar whenever an imported screenshot is present and keeps it for the CSS mock (which has no chrome of its own); 'none' and 'fake' are explicit overrides. Wired everywhere the vitrine is touched: a "Draw the fake window titlebar" checkbox next to the import controls, hero-studio vitrine --file shot.png --chrome none|fake, plain set '{"vitrine":{"chrome":"none"}}', and the choice survives page auto-pulls and re-imports. Generate renders from the same state, so the export matches what the human sees, no DOM hacks needed.

Your adom-desktop case is the argument in one sentence: the real titlebar is load-bearing content (version, signed marker, HOST context), and a generic fake bar above it reads as fake because it is one. All four combinations verified headlessly (import and mock, auto and explicit); the attached screenshot shows an imported shot sitting in the vitrine with no fake bar above it.

The display:none patch from John's session can come out; auto now does that by default.

tour-step1

Log in to reply.