A typed theme is unreachable when an untyped theme shares its name

The need

After the spec 0047 migration, every theme in is untyped ( empty). Adding a typed theme with the same keyword makes the typed one unreachable.

Reproduction

added article theme "editorial" set as the default article theme (it was the first) avatar user blueprint user clay user cutpaper user editorial user emberlight user linocut user lowpoly user mascot user neon user pixel user popart user tattoo user

article (default: editorial)

  • editorial user keyword: editorial type:
    cover-1.png

The same prompt text registered under a distinct keyword (, , ) worked first time and returned a native 1408x768.

So resolution appears to prefer the untyped entry, and cannot display the typed one either.

Why it matters

It makes the house theme names effectively unusable for typed themes. Our documented cover styles are named , , and so on; if those names are occupied by untyped entries, a correct typed replacement cannot be reached without renaming the style away from what the house style guide calls it.

Expected

Either the type disambiguates cleanly on both and , or refuses a keyword that already exists and says why. Silently accepting the add and then resolving to the other one is the worst of the three.

If the 0047 migration is meant to have assigned types and did not, then this and the default-claiming behaviour raised separately are both downstream of the same gap.

Environment

keryx v0.9.0.