Repository navigation
Releases
v1.0.9 — the icon's gradient on the border and the button
The border and the primary button now carry the colour of the plugin's own logo mark.
- The comet uses the icon's four gradient stops: #ec4899 → #8b5cf6 → #4d6bfe → #22d3ee, and its glow leans to the violet stop.
- The send button paints the same gradient.
- The previous black came from DSH's --dsw-alias-brand-primary, which is the black/white contrast token (bluish-1000 in light, bluish-50 in dark), not the logo blue.
Update: Plugins → Add plugin → Tarball, pick the attached file, then restart DSH.
v1.0.7 — comet border, dismiss on outside click
The floating card now has the chosen comet border and gets out of the way.
- Border: one SVG rounded rectangle with a single lit dash travelling the edge (stroke-dashoffset). No static outline and no header divider — the card keeps only its elevation shadow.
- The panel gained an inner clipping layer so the comet's glow can spill past the card edge.
- Dismissal: the side chat closes when you point at anything outside it (another conversation, a plugin page, the composer), press Esc, or navigate; it no longer stays pinned over the app.
- The comet stops when prefers-reduced-motion is set.
Update: Plugins → Add plugin → Tarball, pick the attached file, then restart DSH.
v1.0.6 — follow-ups actually work
Two defects made every follow-up fail while claiming the model only reasoned:
- The stored assistant turn had no source/replay metadata. The runtime's per-adapter replay filter reads message.source.replayState, so the second request threw before dispatch — the model never saw the follow-up.
- The host read finish.kind, but the stream protocol carries finish.reason. Adapter failures were therefore swallowed and re-labelled EMPTY_RESPONSE, hiding the real error.
Now replies are assembled with BlockAssembler and stored via createAssistantMessage with reasoning blocks and replayState (same as the agent loop), finish reasons come from assembler.finish, a refused reasoning level is retried once without it, and a JSONL diagnostic is written on failure.
Update: Plugins → Add plugin → Tarball, pick the attached file, then restart DSH.
v1.0.3 — native chrome
The side conversation now looks like part of DSH instead of a floating card.
- Full-height right sheet on the app background with the same 0.5px divider as the right column; no dropshadow, no rounded floating card.
- Quote, question bubble, composer, send button, hover and focus states all use DSH theme tokens (light and dark follow the app).
- Slide-in panel and animated thinking dots; both respect prefers-reduced-motion.
- A Retry action on failures, plus a localized "model only reasoned" message (the host now also asks for the cheapest reasoning effort and retries once with a larger budget).
Existing installs: update from this release or reinstall from GitHub. Restart DSH after updating so the new client bundle loads.
v1.0.2 — sparkles icon
UI polish:
- The selection chip no longer uses an emoji: it renders the Lucide sparkles glyph inline, colored with the DSH brand token.
- The plugin icon is now a matching brand tile with the same white sparkles, so the Plugins page and the chip share one visual language.
- Sparkles glyph: Lucide (ISC License).
Full Changelog: v1.0.1...v1.0.2
v1.0.1 — fix: empty answers, locale, inline Markdown
Fixes three issues found in real use:
- Empty answers on follow-ups. Thinking tokens share the output budget with the answer. Explanations now ask for the model's lowest reasoning level (off when available), use a 2048-token budget, and retry once with double budget if the first attempt produced only reasoning. Partial answers are kept instead of being discarded.
- Duplicated error rows. A failed turn no longer renders its error twice (turn row + global row).
- UI language. The panel now follows the language DSH applies to the page instead of the OS locale, so a Chinese app gets Chinese copy.
- Inline Markdown. Answers render bold and instead of showing the raw markers. Headings and lists stay literal.
Full Changelog: v1.0.0...v1.0.1
v1.0.0 — Quick Explain
First public release.
- Select 1–1200 characters in any chat message → a
💡 Explainchip appears next to the selection. - A temporary side conversation explains the fragment using the surrounding paragraph as context; follow-ups stay in the panel.
- Nothing is written to the main session: no events, no messages, no context change.
- Model calls go through DSH's own LLM service with your configured default model.
- Side chats live in host memory only and are dropped on close (or after 30 minutes idle).
- English and Chinese UI, light and dark themes via DSH theme tokens.
Install: DSH Desktop → Plugins → Add plugin → GitHub JujiuYey/dsh-quick-explain, or attach the tarball below.