icon-registry: add an assetStatus value for shipped house-style art #160
Labels
No labels
build-dist
priority
P1
priority
P2
priority
P3
priority
P4
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Toilville/toilville-design#160
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
ReservedToken.assetStatusinudg/icon-registry/src/types.tsis typed"openmoji" | "pending-pua". Neither value describes house-style art that has actually shipped. So the registry can't mark the delivered icons as shipped: the first 25 house-style icons, and the 20spel.dim.*icons from #12.Ask
assetStatusvalue for shipped house-style art, and move the delivered icons to it.registry.ts(around L262). The shipped artwork now fixes the clustering.Split out of #12 when it closed. The details are in ville's 2026-08-25 delivery comment there.
Decided: add
spelwork-pua, and land the whole thing as one change.spelwork-puabecause the other two values name a source —openmojiis an external library,pending-puais a reserved slot with no art.spelwork-puais the completed form ofpending-pua. The code already uses that word in both places it matters: the credit line is "SPELWork Icon Registry by Toilville LLC", andgetComplianceReportalready sorts these intospelworkTokens. Toilville owns them; SPELWork is the source, and the field records the source.The count
45 of the 46 tokens have delivered artwork, one SVG per token, none spare. The only token without art is
spel.tribunal.pragmatic. That is where the 25 in the ask comes from — 20 seed plus 6 stage headers, minus that one.Changing the type is not enough on its own
resolve.tsL46 reads:isPlaceholderGlyph(L79) matches any four-character hex string. The four seed PUA tokens store their glyph as the string"E901", so they stay placeholders after the status moves. The stage and dimension tokens store the character itself and flip correctly. Move the icons without touching this and the registry contradicts itself — marked shipped, still resolving as missing.Drop the second clause and trust
assetStatus. The heuristic only existed because the field could not say "we drew it"; once it can, the guess is redundant, and it is wrong on its own terms —/^[E0-9A-F]{4}$/ialso matches"FACE"or"1234". It has one caller, andreserveFutureTokensetsisPlaceholderdirectly, so removing it costs nothing.What lands together
types.tsL22 — the third value.registry.ts— move the 45 delivered tokens; rewrite the L262 comment, since the family is now drawn to those 20 labels.resolve.ts— trustassetStatus, deleteisPlaceholderGlyph.spel.tribunal.pragmatic→pending-pua. It is the one token with no art, and it currently claimsopenmojiwhile reusing⚖️fromspel.tribunal.frame-invariant.registry.test.tsL78 and L87,resolve.test.tsL29-33,artifact.pyL61-95 (it hand-copies the whole table), andREADME.mdL60.resolve.test.tsusesspel.guiseas its pending example. That token becomes shipped, so the test needs a new subject — which is what item 4 provides.Deferred
defaultGlyphholds two encodings: the seed stores"E901"as a string, the generated tokens store the character.types.tsL13 documents both. Normalising that touches every reader of the field, and item 3 removes the need for it here. Separate issue.@peterswimm implemented in PR #163 (fix/icon-registry-spelwork-pua-160).