Hero Studio
Public Made by Adomby adom
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 P
pup render path: let Generate use the host browser when the container cannot run Chrome
Follow-up to #6. As of 0.10.1, hero-studio doctor names what a light container is missing and pose refuses to open the gate until the renderer works. That solves the diagnosis; the remediation still requires installing a browser runtime (puppeteer-core, Chrome, and its OS libraries) into a container that was deliberately built without one.
There is a structural alternative for containers where that is off the table: render through pup. Generate is fundamentally "open the studio's ?render=1 view and screenshot #hero", and pup drives Chrome on the host machine, which does not care what is in the container. Drew's report in #6 noted exactly this asymmetry: pup worked throughout while the in-container renderer had nothing to run on.
Sketch: when the server-side renderer is unavailable and Adom Desktop answers, Generate falls back to a pup render: browser_open_window on a hidden or dedicated render session pointed at the render view, size the viewport for a 2000x1250 capture, browser_screenshot, hand the bytes back to the server for the downscale and provenance stamp (python3+PIL stays a container-side requirement, which is a far smaller ask than Chrome).
To verify before building:
- exact element capture at 2000x1250 through the host browser (viewport control, device pixel ratio, font rendering parity with the headless render)
- whether browser_screenshot can return an element clip or only the viewport
- how the PNG bytes travel back into the container (file path vs base64 over the adom-desktop CLI)
- provenance semantics: the stamp should record
renderer: pupso a host-rendered hero is distinguishable
Not scheduled; this is the "no browser in the container, ever" escape hatch, and doctor + remediation covers the known cases today.