Skip to content

feat!: @refkit/dsh-plugin 0.3.0 — refkit core 0.10, durations, HDRIs, poster and album-art cards - #4

Merged
MyPrototypeWhat merged 3 commits into
mainfrom
feat/refkit-0.10
Oct 22, 2026
Merged

MyPrototypeWhat merged 3 commits into
mainfrom
feat/refkit-0.10

Conversation

@MyPrototypeWhat

Copy link
Copy Markdown
Contributor

Adapts the plugin to refkit core 0.10, which shipped on 2026-10-22, and releases it as 0.3.0.

What users get

  • 24 sources. Poly Haven HDRIs are now their own source, polyhaven-hdri; the tool description has always promised HDRIs.
  • Durations. Audio and video clips carry a length when their source reports it: openverse-audio, freesound, jamendo, pexels-video and pixabay-video. The card shows it as an m:ss badge, and the model sees it in the text result.
  • A better card.
    • Video tiles show the poster with a ▶ overlay, never the video file.
    • Audio tiles show the album art when there is one, with ♪ as the fallback.
    • Flickr and pixabay-video tiles keep their aspect ratio. refkit no longer reports a rendition size as the original, so the tile falls back to the preview's size.
  • Wording. User-facing copy says "source ids" instead of "provider ids", because dsh already uses "provider" for LLM providers.

Breaking

The full list is in CHANGELOG.md, which is new in this release.

  • The PROVIDER_IDS export is now SOURCE_IDS. RETIRED_SOURCE_IDS is newly exported.
  • In the tool output, the tile key provider is now source. Cards saved in 0.2.0 conversations still render: narrowTile reads either key for one release.
  • The explain meta follows core: sources[].sourceId, appliedBySource and ignoredBySource.
  • The plugin requires @refkit/core ^0.10.0, with every provider at its new minor.

Under the hood

  • Core 0.10's naming. The plugin reads meta.sources, sourceId and onSourceError. It detects the "unknown source" case with isSourceSelectionError(err) && err.code === 'no-matching-source'. The old check matched the error message, and core's new message silently broke it.
  • Tile schema. The tool output schema and RefTile are now held equal at compile time. A key-set check fails the build when an optional key is missing from the schema.
  • Packaging. npm pack still lists 56 files, and the client bundle still requires only the shell's seed modules.

Testing

  • Unit tests. 145 tests became 171.
    • Every behaviour change was written test-first and seen failing.
    • The two changes that typecheck cannot catch were checked by mutation: the selection-miss detection and the explain keys.
  • Gate. typecheck, lint, test, build, the client bundle check and the host smoke all pass, and lib/ is fresh.
  • Live acceptance in a dsh 0.1.7-rc.2 web profile:
    • A card saved in 0.2.0 still renders with its source chips.
    • An Internet Archive video search shows 12 posters, each with ▶. No .mp4 appears in the markup.
    • A polyhaven-hdri search returns 12 HDRIs with their 4:3 thumbnails.
    • Not verified live: audio durations and album art. The only keyless audio source, Openverse, was unreachable from the test machine's network, and the keyed audio sources had no keys. Card tests cover both: the layering is pinned so the art cannot be hidden by a lost class, and so is the duration badge. refkit verified the duration data against Openverse live when it shipped.
  • Two independent reviews, a design review in refkit and a release review here, found no Critical or Important issues. All seven minor findings are fixed.

Known, outside this repo

polyhaven-hdri ranking is effectively alphabetical: "sunset HDRI" leads with Aarfontein…, because refkit's polyhaven provider caps results before core reranks them. Every unscoped image search also downloads the full HDRI and texture asset lists. Both are refkit follow-ups.

…rations, HDRIs

- deps: @refkit/core ^0.10.0; artic, brave, gutendex, met, pexels, pixabay,
  poetrydb, polyhaven, rijksmuseum, smithsonian, unsplash ^0.5.0; europeana,
  flickr, freesound, internet-archive, jamendo, openverse, wikimedia-commons
  ^0.6.0; nailbook ^0.3.0
- new source polyhaven-hdri (Poly Haven HDRIs); 24 sources
- core D4 names: meta.sources / sourceId, onSourceError, ref.source.id; the
  selection miss is detected with isSourceSelectionError and code
  'no-matching-source' instead of matching core's message
- tile: `provider` -> `source` (narrowTile still reads 0.2.0's `provider`),
  new durationSec, width/height fall back to the preview rendition
- card: video poster under a play mark (never the video file), audio album
  art over the note glyph, m:ss duration badge; render names the duration
- PROVIDER_IDS -> SOURCE_IDS, RETIRED_IDS -> RETIRED_SOURCE_IDS (both now
  exported); "provider ids" copy -> "source ids"
… accurate CHANGELOG and READMEs, source wording
@MyPrototypeWhat
MyPrototypeWhat merged commit f9f2482 into main Oct 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant