Layout/whitespace remediation (no redesign; LCARS persona intact):
- hero: styled-text reads used `field.text|default:field`, which HARD-ERRORS
in ninjatpl when the field is a bare string (resolveIdentifier errors on
reflect.String, and nodeFilteredVariable returns before the default filter
runs). The demo seed passes bare strings for eyebrow/headline/subheadline,
so the hero aborted on its first {% set %} and rendered nothing — a dead
band on the home page. Switch to `field|get:"text"|default:field` (the
global jutsu `get` filter tolerates non-maps), which resolves both the
{text,color} object and bare-string forms. Same defensive fix in navbar
logoText.
- hero split: guard the empty media frame so an image-less split hero drops to
a single column instead of leaving a blank muted panel.
- episode_console: empty cover rendered a full 1:1 square that ballooned to
~600px and, with align-items:stretch, stretched the text column to match,
leaving a large void beside the copy. Switch to align-items:start and render
a compact, capped, on-brand LCARS readout placeholder (.lcars-console-art)
when no cover ships.
- cta: band variant left a large empty region right of the button; use
justify-content:space-between and trim the oversized 4rem band padding to 3rem.
- manifest css: add .lcars-console-art (explicit CSS, semantic tokens) + cap
.lcars-img-empty height.
Mobile responsiveness audited from CSS/templates: all grids/rails collapse via
explicit @media rules in manifest css.input_css_append (not Tailwind JIT-scanned
theme classes); no horizontal overflow at 375-390px. Content is never gated by
IntersectionObserver (canvas IO drives only the decorative hero background;
.lcars-reveal is a load-time CSS animation with a reduced-motion opacity:1
fallback), so no reveal-hidden dead bands.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add the wasm/.bnp convention Makefile (build / verify / archive-check /
publish via ninja plugin build) for consistency with the theme fleet,
gitignore *.so and *.bnp artifacts, and refresh the stale
[compatibility] block_core constraint to the v0.15 era.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add wasmguest.Serve(Registration) boilerplate and bump block/core to v0.15.2
for the .so->wasm migration. Built + published as .bnp to the dev registry.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Keeps stray .playwright-mcp/ runs and one-off debug screenshots out of
the working tree so the repo stays clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Eight-task implementation plan covering: foundation CSS/palette/font
tokens, lcars_panel redesign (elbow + strip), lcars_rail compound
block, lcars_readout tile, outer page-frame refinement, sidebar code
field, plugin metadata + admin docs, and final verification with
version bump. Notes one spec deviation: LCARS palette ships as CSS
variables in style.css rather than presets.json entries (the CMS
ColorScheme struct is strict).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Locks the geometry, schemas, and architecture decisions from the
brainstorming session: redesigned lcars_panel (elbow/strip frames),
new lcars_rail compound block, new lcars_readout tile, plus bundled
font-token + palette + outer-frame refinements.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Update go directive and core dependency for plugin ABI alignment — Go plugins require an exact host/plugin Go runtime match.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
First-class pongo2 theme with 4 color presets (Federation, Red Alert,
Sickbay, Engineering), 3 custom blocks (header, sidebar, panel),
2 page templates, heading/text overrides, email wrapper, bundled
Antonio font, and full LCARS CSS with elbow brackets, pill buttons,
and rounded bars.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>