feat(artifact): vendor wireframe-kit, make artifact HTML reproducible + drift-gated #35
No reviewers
Labels
No labels
priority
P1
priority
P2
priority
P3
priority
P4
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Toilville/toilville-design!35
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/artifact-html-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
artifact.py loaded its wireframe-kit chrome (wireframe-kit.css + the
flutter/swift/cli/wordpress/wf-helpers JS) from a hardcoded external path
(/Users/peterswimm/code/archives/...) that no longer exists — so a rebuild
silently embedded '// not found' placeholders. The 6 assets are recovered from
committed boards (byte-identical across products) and vendored in
udg/generators/archive/; _load_archive now reads in-repo and RAISES on a miss
instead of the silent fallback. docs.py shares this dependency, so its 13
block-catalog.svg (already broken with placeholders on main) are regenerated too.
Reproducibility: render_artifact gains an injected-intents param. Single
'just artifact ' still hydrates core.intents LIVE; the new
'build --all' and 'check --all' read a committed snapshot fixture
(udg/generators/fixtures/artifact_intents.json) — no DB, deterministic in CI.
Refresh the snapshot deliberately with 'just artifact-snapshot'.
Fixture is empty by design, not by connectivity: core.intents only carries a
'udg' server_ref (15 generator CLI intents); no product board maps to it (none
set meta.mcp_server), so every product queries its own name and matches nothing
— the committed boards already rendered 'No rituals yet'. Verified against the
live DB via the toilville-forge SSH hop.
Wired into all three gate points: just build/check, the udg-artifact-drift
pre-commit hook, and the CI udg-dist-check workflow. Regenerated 13 boards now
carry the border/text/success tokens that landed on main (were stale). baseline/
is a pre-existing dist orphan (not in sync-manifest) — left untouched.