[RFC] Ecosystem primitives: plugin discoverability, an optional identity seam, and a path to account-anchored sync #2276
Replies: 3 comments
中文版 / Chinese version太长不看 —— 按成本从低到高的三个请求:(1) 一个极小的 动机插件生态正在爆发——社区货架已收录 1800+ 插件(见 Blue-Whale 目录帖 #1728),本周还上线了一个商店插件(#2256)。论文动机一节把 harness 定位为自演化系统:在持续服务请求的同时生成并部署对自身组件的修改。但当前的部署半径只有一台机器上的一个进程。多设备用户(每台机器插件集不同)无法跨机器组合,生态也没有发现、信任、身份的公共底座。时空组合性不应止步于进程边界。 我们正在搭三个过渡层——个人跨设备声明层同步(shared + 每机 profile patch overlay;纯官方 请求 1 —— 插件识别的
|
|
Follow-up on Ask 1, with new evidence from the codebase: the So Ask 1 shrinks to: bless one more key in the namespace you already own — e.g. |
验证层视角:支持三个 ask,补两点信任机制建议以 DSH 插件验证工具(dsh-plugin-verify,manifest 静态校验 + 运行时行为验证)维护者的身份支持这个方向。RFC 的信任分层(尤其"排除 popularity"和"扫描≠安全"两条铁律)方向完全正确,补两点机制建议: 1. ask #1(dsh 字段):建议 schema 单一来源,避免生态里出现多套互不兼容的 目前生态里已有不同项目各自在定义"插件如何声明自己"的字段/规范,如果不先定一份权威 schema, 2. verified tier:建议把"运行时行为验证"作为可选晋级证据 现在的 verified 定义(发布者实名 + 仓库-npm 对应 + 构建溯源核验)覆盖了身份与来源维度,很好。但按你的铁律 3"扫描通过 ≠ 安全",静态维度之外的行为维度目前是空的——而 dsh 插件是 Cordis 动态插件,行为(注册服务、监听事件、patch 调用)才是实际风险面。建议 verified 晋级流程接受第三方运行时行为验证报告作为可选证据字段( 3. compose:security 声明是好的起点,运行时行为验证可延伸覆盖 super-fast 的 对接意愿:如果 verified 晋级流程接受第三方运行时验证报告作为证据之一,dsh-plugin-verify 可以按你 entry schema 的字段约定输出报告(verifiedBy / verifiedAt / reportUrl / 判定明细),作为插件或 compose 条目的可选证据提交。索引的信任判定权始终在你的维护者手里,我们只做中立的数据来源。 |
Uh oh!
There was an error while loading. Please reload this page.
TL;DR — Three asks, ordered by cost. (1) A tiny
package.jsonconvention so the world's dsh plugins become machine-discoverable; (2) an optionalIdentityservice seam beside the existing anonymous-user-id (untouched); (3) longer-term: OIDC device flow on the platform side, so settings/plugin sync can anchor to official accounts. We are building the interim layers in the open and will happily donate schemas/data/governance when official equivalents land.Motivation
The plugin ecosystem is exploding — community shelves already list 1,800+ plugins (see the Blue-Whale catalog thread, #1728) and a store plugin shipped this week (#2256). The paper's motivation section frames the harness as self-evolving: it generates and deploys modifications to its own components while serving requests. But the deployment radius is currently one process on one machine. Users with several devices — different plugin sets per machine — have no way to compose across machines, and the ecosystem has no shared substrate for discovery, trust, or identity. Spatiotemporal composability shouldn't stop at the process boundary.
We are building three interim layers — personal cross-device sync of the declarative layer (shared + per-machine profile patch overlays; plain
--patch/user-layer mechanics, nothing invented), a federated discovery/trust index, and a "compose" sharing unit (patch + preset + briefing + plugin refs — arguably the native shareable capability unit in a patch-layered harness). Each layer is designed with an explicit official-takeover point. Three things only upstream can do cheaply:Ask 1 —
package.jsonconvention for plugin identification (near-zero cost)There is currently no marker distinguishing a dsh plugin package on npm from any other package (we checked the monorepo for a keyword/field convention and found none — please correct us if we missed it). A one-line spec unlocks ecosystem-wide crawling/indexing for every registry effort:
{ "dsh": { "plugin": true }, // or: "keywords": ["dsh-plugin"] // optional, enables richer indexing: "dsh": { "plugin": { "services": ["..."], "inject": ["..."] } } }We'll adopt whatever shape you bless, retroactively PR it to known community plugins, and encode it in our index's CI.
Ask 2 — an optional
Identityservice seam (anonymous layer untouched)@deepseek-ai/dsh-anonymous-user-idis deliberately anonymous — "No cross-home identity" is listed as a known limitation, and the UUID already reaches DeepSeek asx-deepseek-harness-user-id. We are not asking to change it. We're asking for a core-blessed seam: anIdentityservice interface that third-party providers can implement (API-key-derived today,deepseek-oidctomorrow), so consumers (sync plugins, publisher tooling) depend on the interface and providers hot-swap underneath — the exact provider-substitution story Cordis already tells everywhere else. If the seam exists, the eventual official account system inherits every consumer for free.Ask 3 — longer-term: OIDC device flow + a home for ecosystem governance
When the platform team is ready: a device-code OAuth flow on the open platform would let harness installs bind to official accounts, upgrading the anonymous UUID server-side without breaking its privacy contract. Separately, our index repo is structured so its governance can be transferred wholesale to the org — the ClawHub incidents this spring (341+ malicious skills, ranking manipulation, registry saturation; scanning demonstrably not sufficient) argue for getting trust primitives right early, and for publisher-anchored rather than popularity-anchored trust. dsh plugins run with npm postinstall + Host-realm privileges, so the stakes are strictly higher.
What we've already built (interim, takeover-ready)
official/verified/community/unreviewed), popularity explicitly excluded from trust computation, CI validation, federation-ready for the existing community shelves: https://github.com/jiangxingfan1-coder/dsh-hub-index (browse: https://jiangxingfan1-coder.github.io/dsh-hub-index/)!!jsusage, waterfall listeners, subagent spawning): schema. First exhibit: a 9-plugin two-phase scheduling family with 19 rounds of controlled experiments behind it.ctx.effectfor clean disposal, secrets never in the sync plane, and an official-cloudSyncBackendslot mirroring thecredentials/credentials-localsplit).Happy to donate any of it, or reshape to whatever the team prefers. The interim road exists to be replaced by the official one.
All reactions