Repository navigation
Releases
v0.1.2 — stylesheet can no longer be lost; README leads in Chinese
0.1.2 — the panel can no longer lose its stylesheet, and the README leads in Chinese
Fixed: the panel could come back stripped of all styling — default grey buttons, default checkboxes, default font — while still rendering every row correctly.
The stylesheet was injected exactly once, from the plugin's apply(). But document.head is not ours to keep: the shell injects its own <style>/<script> rows into it at boot, a plugin can be disabled and re-enabled, and hot-reload disposes effects in an order we do not control. Any of those can drop our <style> — and since apply() never runs a second time, the panel kept rendering the markup with no CSS behind it, permanently.
Every render of the panel, the thought strip and the floating pill now calls an idempotent ensureStyles() that re-appends the stylesheet when it is missing. There is no longer a reachable state where the panel is mounted without its styles.
The README now leads in Chinese. README.md is the Chinese documentation and README.en.md is the English one. The plugin market fetches README.md from the repository root by a hardcoded path, so Chinese is now the text shown on the storefront card and detail page, with English one click away at the top of the file.
Install
dsh plugin install https://github.com/huangxp12/dsh-recent-sessions/releases/download/v0.1.2/dsh-recent-sessions-0.1.2.tgzOr through the plugin marketplace by repository URL.
Full changelog: CHANGELOG.md
v0.1.1 — floating pill fix
0.1.1 — the floating pill can no longer land in the top-left corner
Fixed
-
The floating Recent Sessions pill could appear pinned to the window's top-left corner, clipped, for the first moments after a cold start — and then settle by itself.
Cause: the pill was rendered inside the shell's overlay layer, so
position: fixedresolved against the nearest containing block rather than the viewport. While the shell was still laying itself out (column-width animation, viewport not settled), an ancestor could briefly become that containing block.Fix: the pill is now rendered through a React portal onto
document.body, and its position is set inline. With no intermediate container between the pill and the viewport, that race is gone by construction. Visual styling still comes from the.dsh-recent-pillclass, so nothing about its appearance changes. Ifreact-domis unavailable the pill simply falls back to rendering in place — it is an optional entry point and never affects the panel itself.
Install
dsh plugin install https://github.com/huangxp12/dsh-recent-sessions/releases/download/v0.1.1/dsh-recent-sessions-0.1.1.tgzOr through the plugin marketplace by repository URL.
Full changelog: CHANGELOG.md
v0.1.0 - first public release
Changelog
0.1.0 — first public release
- Recent sessions panel (global panel, not tied to any session): every session across every workspace, newest first, including sessions the sidebar is currently hiding (collapsed workspaces, unregistered directories).
- Each row carries its workspace as a clickable filter chip, a status dot, pin state, and a second line with that session's last human prompt (hover for the last assistant reply preview, read from the host
turnOutlineprojection). - Time grouping (Today / Yesterday / This week / Earlier) and two sort orders: most recent, or least recently touched (time buckets flip too). Filters: only unfinished / include blank / include subagent sessions; archived hidden by default. View state is remembered locally.
- Find it again: full-text search over message content (host index) plus instant local title/path filtering; per-row actions to open the session, reveal its workspace folder in the file manager, and copy the path.
- Deferred thoughts: jot a line on any row (stored locally, never sent). When you reopen that session a one-line strip appears above the composer — insert it into the draft (official, undoable editor insertion), silence it until something new arrives, or discard it.
- Open the panel in its own same-origin window.
- Zero writes to your conversations: the host half is an empty
apply; notes, thoughts and view state live inlocalStorageonly.