npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@clawsjoy/dsh-session-persistence-tolerant

v0.2.1

Published

Listing tolerance and fault surfacing for the DSH jsonl session backend: a corrupt or headerless session log stops disappearing silently.

Downloads

553

Readme

@clawsjoy/dsh-session-persistence-tolerant

A listing-tolerance decorator over DSH's official jsonl session backend (@deepseek-ai/dsh-session-persistence-jsonl).

The problem

DSH's session listing reads only each artifact's first frame:

  • a frame it cannot decode is rethrown — one damaged log fails the whole listing (and on the boot path, WorkspaceRegistry lists during plugin init, so a failed listing is a failed plugin-tree load);
  • a first frame that is not a session header is silently skipped — the conversation leaves the sidebar with no error, no log line, no counter.

Both are invisible in practice: the only symptom is "a conversation is missing".

What this plugin does

It extends JsonlSessionPersistence and overrides the listing path only. Create / append / load / repair / the service key / the config schema all stay the official implementation, so upstream changes to those paths arrive for free.

  • On a successful listing, it diffs the listing against a tolerant scan of the root and reports every artifact that was skipped silently.
  • When the listing throws, it salvages every listable session instead of returning nothing.
  • Faults surface two ways: listFaults() on the service instance, and an append-only JSONL sink (deduped per fault set) so a vanished conversation leaves a trace even when nobody asks.

The scan reads the session id and cwd from the artifact, and only assumes <root>/<project>/<session>/session.jsonl[.zstd] plus "first decompressed line is the header" — so a change to the directory-naming scheme does not break it.

Install

Published on npm as @clawsjoy/dsh-session-persistence-tolerant (MIT, no runtime dependencies):

dsh plugin --profile web add @clawsjoy/dsh-session-persistence-tolerant

Installing straight from this repository works too, so nothing here depends on a registry release:

dsh plugin --profile web add github:ClawsJoy/dsh-plugins#path:packages/session-persistence-tolerant

Swap the official row for this one in ~/.dsh/profiles/web/cordis.patch.yml (the row is disabled, never modified):

- id: session-persistence-jsonl
  disabled: true
- insert:
    - id: session-persistence-tolerant
      name: '@clawsjoy/dsh-session-persistence-tolerant'
      config:
        root: !!js dshHomePath('sessions')

The config is the official backend's schema, unchanged.

Environment

| Variable | Effect | |---|---| | DSH_SESSION_LIST_FAULT_SINK | Overrides the fault sink path (default $DSH_HOME/logs/dsh-session-list-faults.jsonl). | | DSH_SESSION_LIST_TOLERANT=off | Restores the official behaviour exactly — the production negative control. |

Verification

pnpm test

The suite includes the negative control: the same artifact tree that makes the official listing shape throw is the tree this plugin lists and reports.

License

MIT