{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"max-null-dsh-memory","slug":"max-null-dsh-memory","rank":1074,"url":"https://github.com/Max-Null/dsh-memory","name":"Max-Null/dsh-memory","category":"memory","description":{"zh":"跨会话明文记忆：确定性 BM25 关键词召回（无向量嵌入），memory_save/list/search/confirm/forget 五个工具 + 人工确认闸门，global/project 两层 JSON 存储（project 随 git 分享）。","en":"Cross-session plaintext memory: deterministic BM25 keyword recall (no embeddings), memory_save/list/search/confirm/forget tools behind a human-confirm gate, and global + project-scoped JSON stores that follow your git repo."},"stars":1,"starsCheckedAt":"2026-08-21","repository":{"owner":"Max-Null","repo":"dsh-memory","requestedRef":null,"subpath":""},"npm":"@max-null/dsh-memory","downloads":1467,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add @max-null/dsh-memory","tarball":null,"added":"2026-08-16","page":"https://awesome-dsh-plugin.com/p/Max-Null/dsh-memory/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"max-null-dsh-memory","slug":"max-null-dsh-memory","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:31:23.878Z","scanStatus":"static-complete","verdict":"caution","score":95,"commit":"9f0e5291a315ae9fba5fa3dbfaf395e05604dc85","commitDate":"2026-08-22T04:42:43+08:00","artifactDigest":"sha256:016b440e9940feb24ff93e2cff2cf095fea0d28ee947abdcb6f9948bf027c81b","downloadUrl":"https://github.com/Max-Null/dsh-memory/archive/9f0e5291a315ae9fba5fa3dbfaf395e05604dc85.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add @max-null/dsh-memory","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"@max-null/dsh-memory","packageVersion":"0.5.0","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale"],"platform":"web"},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-storage","@deepseek-ai/dsh-storage-domain","@deepseek-ai/dsh-storage-json","@deepseek-ai/dsh-system-prompt","@deepseek-ai/dsh-tools","@deepseek-ai/dsh-typert-protocol"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"@max-null/dsh-memory","manifestName":"@max-null/dsh-memory","nameMatch":true,"npm":{"name":"@max-null/dsh-memory","latestVersion":"0.4.1","publishedAt":"2026-08-20T18:38:00.458Z","createdAt":"2026-08-15T07:31:55.453Z","versionCount":9,"maintainers":1,"repository":"git+https://github.com/Max-Null/dsh-memory.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"differs"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"memory","name":"@max-null/dsh-memory","path":"cordis.patch.yml","disabled":false}],"overrides":[{"id":"storage","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-storage","keys":[],"path":"cordis.yml"},{"id":"system-prompt","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-system-prompt","keys":[],"path":"cordis.yml"},{"id":"tools","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tools","keys":[],"path":"cordis.yml"},{"id":"memory","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@max-null/dsh-memory","keys":[],"path":"cordis.yml"}],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","environment","filesystem","host-bundle","mcp","network","subprocess"],"outboundHosts":[{"host":"dsh.internal","count":1}],"findings":[{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"cordis.yml","line":9,"evidence":"override: id=system-prompt name=@deepseek-ai/dsh-system-prompt","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 系统提示词（system-prompt）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"df01b7325b28a60f8557de03"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"cordis.yml","line":12,"evidence":"override: id=tools name=@deepseek-ai/dsh-tools","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 tools；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"0642ca60a23bc67852c03929"}],"counts":{"critical":0,"high":0,"medium":2,"low":0},"rawCounts":{"critical":0,"high":0,"medium":2,"low":0},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":20,"bytesScanned":220342,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"markdown":4,"source":10,"cordis":2,"data":2,"manifest":1,"test-example-docs":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:31:23.878Z","commit":"9f0e5291a315ae9fba5fa3dbfaf395e05604dc85","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T13:17:17.502Z","commit":"0d6913275894c7b28575b703608cb4296c2f5463","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:34:56.227Z","commit":"0d6913275894c7b28575b703608cb4296c2f5463","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:03:51.144Z","commit":"0d6913275894c7b28575b703608cb4296c2f5463","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"commit-change","from":"0d6913275894c7b28575b703608cb4296c2f5463","to":"9f0e5291a315ae9fba5fa3dbfaf395e05604dc85","commit":"9f0e5291a315ae9fba5fa3dbfaf395e05604dc85","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:31:23.878Z"},{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"0d6913275894c7b28575b703608cb4296c2f5463","policyVersion":"HT-DSH-0.2.2","at":"2026-08-21T13:17:17.502Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"0d6913275894c7b28575b703608cb4296c2f5463","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:34:56.227Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"0d6913275894c7b28575b703608cb4296c2f5463","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T11:03:51.144Z"}]}