dsh-skill-picker 0.5.19 → 0.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-skill-picker",
3
3
  "description": "DSH Web GUI skill picker: a button beside the composer opens a searchable list of installed skills; picking one inserts the official `/skill-name` gesture into the input box, so the skill loads with your message (WorkBuddy-style skill invocation for DeepSeek Harness).",
4
- "version": "0.5.19",
4
+ "version": "0.5.20",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -276,8 +276,11 @@ export function wrapSkillSource(source, hooks = {}) {
276
276
  if (cached !== undefined) {
277
277
  noteDiag({ mode: 'runtime', servedFromCache: true, sessionId: cacheKey, query })
278
278
  refreshCache(cacheKey, original.candidates, this, projection, options)
279
- if (query === '') return cached
280
279
  try {
280
+ // Rank even for an empty query: that is what puts the pinned skills
281
+ // on top, exactly like the ⚡ panel. Returning the official list
282
+ // untouched here made the two lists disagree — the menu looked
283
+ // alphabetical while the panel led with 置顶.
281
284
  return rank(cached, query)
282
285
  } catch {
283
286
  return cached
@@ -292,7 +295,7 @@ export function wrapSkillSource(source, hooks = {}) {
292
295
  itemCache.set(cacheKey, everything.slice())
293
296
  noteDiag({ mode: 'runtime', servedFromCache: false, sessionId: cacheKey, primed: true, count: everything.length })
294
297
  }
295
- if (query === '' || !Array.isArray(everything)) return everything
298
+ if (!Array.isArray(everything)) return everything
296
299
  try {
297
300
  return rank(everything, query)
298
301
  } catch {