Skip to content

npm-installable, self-diagnosing, useful with zero setup (v0.11.0) - #21

Merged
happyren merged 1 commit into
masterfrom
feat/npm-ready
Aug 15, 2026
Merged

happyren merged 1 commit into
masterfrom
feat/npm-ready

Conversation

@happyren

Copy link
Copy Markdown
Owner

Four things that stood between a reader and a working plugin.

Installable from npm

The install section opened with "the first add will fail" — four paragraphs of pnpm workarounds. Now:

npx -p @deepseek-ai/dsh dsh plugin --profile web add dsh-agent-messaging

Package metadata, public publishConfig, trimmed file list; tarball verified at 170 kB with nothing extra in it. The git-dependency path is kept in a collapsed section for anyone who wants it.

Zero setup

A session used to be useful to its peers only after a model remembered to call peer_card. Models don't do reliable setup. Where a card was never published, the workspace is now read for the honest part of one — the directory the session works in, and the headline of that directory's AGENTS.md or README.md — and shown as inferred from the workspace, not declared.

No derived alias, deliberately. An alias is an address; two sessions in one directory would derive the same one and make every send to it ambiguous. A folded display name is unique by construction, so a guessed alias is worse than none.

A doctor

$ npx dsh-agent-messaging doctor
OK    node                v24.13.1
OK    build               host and browser bundles present
OK    state-root          /Users/you/.dsh/agent-messaging (writable)
WARN  presence            0 live hosts, 0 stale records
OK    accounting          recording; run `npx dsh-agent-messaging report` …

One line per check, the remedy inside the line that reports the problem, non-zero exit on anything blocking, --json for machines. Written to be run by an agent debugging its own install as much as by a person.

A skill, not just tools

Tools say what is possible; the new peer-coordination skill says what is wise — claim before editing shared code, verify what you did not produce, record what was settled, and stop replying when an exchange is over. Every rule in it came out of a measured run rather than a style guide, including the one that cut traffic 65%. Registered against the optional skills service, so a profile without that subsystem still gets the tools.

A machine-readable manifest

dsh-plugin.json describes the tools, capabilities, config and commands, so catalogs don't hand-write it. tests/manifest.test.ts fails when it drifts from the source.

Contributions open

Closing this repo to pull requests was the wrong call — it suppressed exactly the outside evidence the project runs on. The auto-close workflow is gone, and CONTRIBUTING now says what is most useful: a run where coordination cost more than it caught.


380 tests. Publishing to npm is the one step left, and it is the maintainer's to run.

…ro setup (v0.11.0)

The install path opened with "the first `add` will fail". Four paragraphs of
pnpm workarounds stood between a reader and a working plugin, and a session
was useful to its peers only after a model remembered to call peer_card.
Both are fixed here.

**Installable from npm.** Package metadata, a public publishConfig, a
trimmed file list, and a tarball verified at 170 kB with nothing extra.
`dsh plugin add dsh-agent-messaging` replaces the git-dependency two-step,
which is kept in a collapsed section for people who want it.

**Zero setup.** A session is now informative before it declares anything:
where a card was never published, the workspace is read for the honest part
of one — the directory the session works in, and what the humans wrote about
that directory in AGENTS.md or README.md. Marked `inferred from the
workspace, not declared`, because a reader has to be able to tell an
inference from a statement, and peer_card becomes an upgrade rather than a
prerequisite.

Deliberately no derived alias. An alias is an address; two sessions in one
directory would derive the same one and make every send to it ambiguous. A
folded display name is unique by construction, so a guessed alias would be
worse than none.

**A doctor.** `npx dsh-agent-messaging doctor` checks node, the build, the
state root, presence records, socket permissions, and the harness packages —
one line per check, remedy included in the line that reports the problem,
non-zero exit on anything blocking. Written to be run by an agent debugging
its own install as much as by a person.

**A skill, not just tools.** The tools say what is possible; the new
`peer-coordination` skill says what is wise — claim before editing shared
code, verify what you did not produce, record what was settled, and stop
replying when an exchange is over. Every rule in it came out of a measured
run, including the one that cut traffic 65%. Optional service, so a profile
without the skill subsystem still gets the tools.

**A machine-readable manifest.** dsh-plugin.json describes the tools,
capabilities, config and commands for the catalogs that would otherwise
hand-write it, and tests/manifest.test.ts fails when it drifts from the
source.

**Contributions open.** Closing this repository to pull requests was the
wrong call: it suppressed exactly the outside evidence the project runs on.
The auto-close workflow is gone and CONTRIBUTING says what is most useful —
a run where coordination cost more than it caught.

380 tests.
@happyren
happyren merged commit 10b50e2 into master Aug 15, 2026
@happyren
happyren deleted the feat/npm-ready branch August 15, 2026 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant