Skip to content

v0.4.6 — Slash Command Palette i18n

Choose a tag to compare

@LogneBudo LogneBudo released this 24 May 21:33
· 38 commits to master since this release

Released: 2026-04-13 · Published to: npm llmxray@0.4.6 · Docker djovaneli/llmxray:0.4.6 · (GitHub Release backfilled 2026-05-24)

The slash command dropdown was rendering hard-coded English everywhere — descriptions, category labels, and runtime notification messages. The memory category had no label mapping at all (showed as raw memory text in the badge). v0.4.6 fixes all of it.

What shipped

  • SlashCommand.descriptionKey field — vue-i18n key resolved by UI surfaces. The literal description is kept as English fallback for /help output and tests.
  • SlashCommandContext.t function — bound to vue-i18n's t from the consuming component. Command execute() callbacks use ctx.t(key, args) to produce localized notifications.
  • 50+ notification strings translated for en / fr / sr (sr-Cyrl auto-mirrored). ar / zh fall back to en.
  • Memory category label added (dashboard.slashCommands.memory) — was missing from the dropdown's categoryLabel map entirely.
  • getCommandsByCategory(t?) — now accepts optional t for localized labels; falls back to English when called without one (e.g. tests).

Gotchas hit during this work

  • vue-i18n parses <word> as inline HTML — the original help text used <number>, <fact>, etc. as placeholder syntax. Build refused to compile messages containing <…> with "Detected HTML in '…' message". Switched to […] notation across all locales. Lesson: never use angle brackets in vue-i18n message strings.
  • Test mock t had to do interpolation — the registry tests call toContain('I like Vue') on notification text. The naive mock that returned key as-is broke that. Fixed by appending Object.values(args) to the key.

Install

```
npm install -g llmxray@0.4.6

or

docker pull djovaneli/llmxray:0.4.6
```