dsh-permission-rules 0.7.8 → 0.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -515,6 +515,24 @@ All notable changes to dsh-permission-rules are recorded here, newest first.
515
515
  - Rename the four translated READMEs to `README-<lang>.md`. npm selects the package-page readme as the first markdown file matching its `{README,README.*}` glob (`@npmcli/package-json`, publish path), and that glob order puts `README.<lang>.md` ahead of `README.md` — so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively.
516
516
  - Pin the `@deepseek-ai/dsh-*` dev/test dependencies to the published `0.1.5-rc.2` line and record `0.1.5-rc.2` in `dshWorkshop.compatibility.dshVersions`; the monthly Compat workflow now runs against `0.1.5-rc.2`. The peer range `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0` is unchanged, so no supported host line is dropped.
517
517
 
518
+ ## [Unreleased]
519
+
520
+ ## v0.7.10 - 2026-10-04
521
+
522
+ ### Fixed
523
+
524
+ - Every `0.2` PRERELEASE is now classified as an unmarked-audit host, so the audit gate fires BEFORE the first append on the `0.2.1-alpha.1` line the host pins moved to. `Session.append` on that line reads only `opts[0].sourceEventSeqs` and `opts[0].surfaceOp` and freezes the envelope to `{ type, seq, time, data, ...surfaceMetadata }`, so — exactly like the alpha.5 surface — it has no code path that could stamp `ignorable`; `isUnmarkedHostVersion()` returned false for it, which classified the line as possibly-marker-aware and let the append probe write one unmarked audit row into the session log before any degradation could be detected (each unmarked row is what makes a session unresumable on stricter builds). The classifier now marks `0.2.x-alpha.*`/`0.2.x-rc.*` unsafe alongside the `0.1` rc/alpha lines; a STABLE `0.2.x` release and every `0.3`+ prerelease stay classified as possibly-marker-aware and are still settled by the append probe, so a restored marker surface is adopted without a new plugin release. Caught by `test/audit-support.spec.ts` against the real installed peer; the version table there gains the `0.2` prerelease rows and `0.2.0`/`0.2.1`/`0.3.0-alpha.1` non-matches.
525
+
526
+ ### Changed
527
+
528
+ - Host pins move to `0.2.1-alpha.1`; re-verified against that host line. Every `@deepseek-ai/dsh-*` dev/test dependency now pins `0.2.1-alpha.1`, the `dshWorkshop.compatibility.dshVersions` timeline appends `0.2.1-alpha.1`, and the compatibility baseline in every README records the `dsh-v0.2.1-alpha.1` host. The declared host ranges (`engines.dsh` and the `peerDependencies` union) gain the `|| >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0` clauses: the previous upper bound was `<0.2.0`, which under semver rejects every 0.2.x host, so the probe host itself was not installable. Nothing was narrowed — the `0.1.x` clauses are unchanged, in place and in order.
529
+
530
+ ## v0.7.9 - 2026-09-25
531
+
532
+ ### Changed
533
+
534
+ - Host pins move to `0.1.7-rc.2`; re-verified against that host line. Every `@deepseek-ai/dsh-*` dev/test dependency now pins `0.1.7-rc.2`, the `dshWorkshop.compatibility.dshVersions` timeline appends `0.1.7-rc.2`, and the compatibility baseline in every README records the `dsh-v0.1.7-rc.2` host. The declared host ranges (`engines.dsh` and the `peerDependencies` union) are deliberately **unchanged** — they already admit `0.1.7-rc.2`, and a range is what the manifest accepts, not what has been tested.
535
+
518
536
  ## [0.6.13] - 2026-09-09
519
537
 
520
538
  ### Changed
package/README-es.md CHANGED
@@ -36,7 +36,7 @@ Este plugin forma parte de la [familia de plugins DSH](https://github.com/PerryL
36
36
 
37
37
  | Surface | Status |
38
38
  |---|---|
39
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (adaptado el 2026-09-22, cadena completa de gates): la configuración del plugin es el contrato de settings en vivo — cada campo se declara `.volatile()`, el Loader entrega a `apply` una referencia viva por campo, y una edición guardada se confirma en las referencias en ejecución SIN remontar el plugin, con los valores fuera de rango rechazados por el esquema antes de escribir nada. Un host cuyo Schemastery sea anterior a `volatile()` (antes de 3.18.3) sigue montando y ejecutando este plugin — los campos simplemente quedan como valores ordinarios y el formulario de configuración en vivo no está disponible — porque el marcador se aplica mediante una sonda de capacidad, no se da por supuesto. `Session.append` en esta línea todavía no puede estampar el marcador `ignorable` (su tercer argumento es el paquete surface-intent, y el campo del sobre solo sobrevive para la lectura de logs almacenados), así que toda la línea `0.1.7-alpha` se preverifica como no marcada y la auditoría del registro de sesión queda desactivada por defecto; las líneas anteriores `0.1.5-rc.2` (adaptada el 2026-09-09) y `0.1.3-alpha` mantienen la misma firma de append surface-only. Las migraciones de log de esas líneas rechazan eventos de plugin sin clasificar incluso marcados: aplica `strip` a las filas de auditoría v1 antes de que un host `0.1.3-alpha` abra el log y a las v2 antes de que un host `0.1.5-alpha` lo migre (los logs v3 nativos solo necesitan `repair`). |
39
+ | Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (adaptado el 2026-09-22, cadena completa de gates): la configuración del plugin es el contrato de settings en vivo — cada campo se declara `.volatile()`, el Loader entrega a `apply` una referencia viva por campo, y una edición guardada se confirma en las referencias en ejecución SIN remontar el plugin, con los valores fuera de rango rechazados por el esquema antes de escribir nada. Un host cuyo Schemastery sea anterior a `volatile()` (antes de 3.18.3) sigue montando y ejecutando este plugin — los campos simplemente quedan como valores ordinarios y el formulario de configuración en vivo no está disponible — porque el marcador se aplica mediante una sonda de capacidad, no se da por supuesto. `Session.append` en esta línea todavía no puede estampar el marcador `ignorable` (su tercer argumento es el paquete surface-intent, y el campo del sobre solo sobrevive para la lectura de logs almacenados), así que toda la línea `0.2-alpha` se preverifica como no marcada y la auditoría del registro de sesión queda desactivada por defecto — `append` solo lee `sourceEventSeqs`/`surfaceOp` y congela el sobre, de modo que no tiene ninguna ruta de código capaz de estampar el marcador; las líneas anteriores `0.1.7-alpha` (adaptada el 2026-09-22), `0.1.5-rc.2` (adaptada el 2026-09-09) y `0.1.3-alpha` mantienen la misma firma de append surface-only, y cada versión preliminar `0.2` se clasifica con ellas (una versión ESTABLE `0.2.x` queda a cargo de la sonda de append, así que una superficie de marcado restaurada se adopta sin una nueva publicación de este plugin). Las migraciones de log de esas líneas rechazan eventos de plugin sin clasificar incluso marcados: aplica `strip` a las filas de auditoría v1 antes de que un host `0.1.3-alpha` abra el log y a las v2 antes de que un host `0.1.5-alpha` lo migre (los logs v3 nativos solo necesitan `repair`). |
40
40
  | Node | `^22.19.0 || >=24.0.0` |
41
41
  | Platforms | Todas (host + cliente web de settings) |
42
42
  | Model | Cualquiera (las razones deny/ask se muestran a través de los resultados de herramienta) |
package/README-hi.md CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  | Surface | Status |
38
38
  |---|---|
39
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (2026-09-22 को अनुकूलित, पूर्ण gates शृंखला): इसका प्लगइन कॉन्फ़िग ही नया live settings अनुबंध है — हर फ़ील्ड `.volatile()` घोषित है, Loader `apply` को प्रति-फ़ील्ड एक live संदर्भ देता है, और सहेजा गया संपादन चल रहे संदर्भों में सीधे लिखा जाता है, **प्लगइन दोबारा माउंट नहीं होता**, तथा सीमा-बाहर मान लिखने से पहले ही schema द्वारा अस्वीकार कर दिया जाता है। जिस host का Schemastery `volatile()` से पुराना है (3.18.3 से पहले) वह भी इस प्लगइन को माउंट और चलाता है — फ़ील्ड साधारण मान रह जाते हैं और live कॉन्फ़िग फ़ॉर्म उपलब्ध नहीं होता — क्योंकि यह मार्कर क्षमता-जाँच (capability probe) से लगाया जाता है, मान लेकर नहीं। इस पंक्ति का `Session.append` अभी भी `ignorable` मार्कर स्टैम्प नहीं कर सकता (उसका तीसरा आर्ग्युमेंट surface-intent बैग है, और लिफ़ाफ़ा फ़ील्ड केवल संग्रहीत-लॉग पठन के लिए बचता है), इसलिए पूरी `0.1.7-alpha` पंक्ति पहले append से पहले ही अनमार्क्ड के रूप में पूर्व-जाँची जाती है और सत्र-लॉग ऑडिट डिफ़ॉल्ट रूप से बंद रहता है; पुरानी `0.1.5-rc.2` (2026-09-09 को अनुकूलित) और `0.1.3-alpha` पंक्तियाँ वही surface-only append हस्ताक्षर रखती हैं। उन पंक्तियों का लॉग प्रवासन चिह्नित अन-क्लासिफ़ाइड प्लगइन घटनाओं को भी अस्वीकारता है: `0.1.3-alpha` host के लॉग खोलने से पहले v1 ऑडिट पंक्तियाँ और `0.1.5-alpha` host के प्रवासन से पहले v2 पंक्तियाँ `strip` करें (v3 मूल लॉग के लिए केवल `repair` चाहिए)। |
39
+ | Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (2026-09-22 को अनुकूलित, पूर्ण gates शृंखला): इसका प्लगइन कॉन्फ़िग ही नया live settings अनुबंध है — हर फ़ील्ड `.volatile()` घोषित है, Loader `apply` को प्रति-फ़ील्ड एक live संदर्भ देता है, और सहेजा गया संपादन चल रहे संदर्भों में सीधे लिखा जाता है, **प्लगइन दोबारा माउंट नहीं होता**, तथा सीमा-बाहर मान लिखने से पहले ही schema द्वारा अस्वीकार कर दिया जाता है। जिस host का Schemastery `volatile()` से पुराना है (3.18.3 से पहले) वह भी इस प्लगइन को माउंट और चलाता है — फ़ील्ड साधारण मान रह जाते हैं और live कॉन्फ़िग फ़ॉर्म उपलब्ध नहीं होता — क्योंकि यह मार्कर क्षमता-जाँच (capability probe) से लगाया जाता है, मान लेकर नहीं। इस पंक्ति का `Session.append` अभी भी `ignorable` मार्कर स्टैम्प नहीं कर सकता (उसका तीसरा आर्ग्युमेंट surface-intent बैग है, और लिफ़ाफ़ा फ़ील्ड केवल संग्रहीत-लॉग पठन के लिए बचता है), इसलिए पूरी `0.2-alpha` पंक्ति पहले append से पहले ही अनमार्क्ड के रूप में पूर्व-जाँची जाती है और सत्र-लॉग ऑडिट डिफ़ॉल्ट रूप से बंद रहता है — `append` केवल `sourceEventSeqs`/`surfaceOp` पढ़ता है और लिफ़ाफ़े को freeze कर देता है, इसलिए उसमें मार्कर स्टैम्प करने वाला कोई कोड पथ ही नहीं है; पुरानी `0.1.7-alpha` (2026-09-22 को अनुकूलित), `0.1.5-rc.2` (2026-09-09 को अनुकूलित) और `0.1.3-alpha` पंक्तियाँ वही surface-only append हस्ताक्षर रखती हैं, और हर `0.2` प्री-रिलीज़ उन्हीं के साथ वर्गीकृत होता है (`0.2.x` का **स्थिर** रिलीज़ append probe पर छोड़ा गया है, ताकि बहाल हुई मार्कर सतह इस प्लगइन के नए रिलीज़ के बिना ही अपनाई जा सके)। उन पंक्तियों का लॉग प्रवासन चिह्नित अन-क्लासिफ़ाइड प्लगइन घटनाओं को भी अस्वीकारता है: `0.1.3-alpha` host के लॉग खोलने से पहले v1 ऑडिट पंक्तियाँ और `0.1.5-alpha` host के प्रवासन से पहले v2 पंक्तियाँ `strip` करें (v3 मूल लॉग के लिए केवल `repair` चाहिए)। |
40
40
  | Node | `^22.19.0 || >=24.0.0` |
41
41
  | Platforms | सभी (host + वेब settings क्लाइंट) |
42
42
  | Model | कोई भी (deny/ask कारण टूल परिणामों के माध्यम से दिखते हैं) |
package/README-pt.md CHANGED
@@ -36,7 +36,7 @@ Este plugin faz parte da [família de plugins DSH](https://github.com/PerryLink)
36
36
 
37
37
  | Surface | Status |
38
38
  |---|---|
39
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (adaptado em 2026-09-22, cadeia completa de gates): a configuração do plugin é o contrato de settings ao vivo — cada campo é declarado `.volatile()`, o Loader entrega a `apply` uma referência viva por campo, e uma edição salva é confirmada nas referências em execução SEM remontar o plugin, com valores fora da faixa recusados pelo schema antes de qualquer escrita. Um host cujo Schemastery seja anterior a `volatile()` (antes de 3.18.3) ainda monta e executa este plugin — os campos apenas permanecem valores comuns e o formulário de configuração ao vivo fica indisponível — porque o marcador é aplicado por sondagem de capacidade, não por suposição. O `Session.append` nesta linha ainda não consegue estampar o marcador `ignorable` (seu terceiro argumento é o pacote surface-intent, e o campo do envelope só sobrevive para a leitura de logs armazenados), então toda a linha `0.1.7-alpha` é pré-verificada como não marcada e a auditoria do log de sessão fica desativada por padrão; as linhas anteriores `0.1.5-rc.2` (adaptada em 2026-09-09) e `0.1.3-alpha` mantêm a mesma assinatura de append surface-only. As migrações de log dessas linhas recusam eventos de plugin não classificados mesmo marcados: aplique `strip` nas linhas de auditoria v1 antes de um host `0.1.3-alpha` abrir o log e nas v2 antes de um host `0.1.5-alpha` migrá-lo (logs v3 nativos só precisam de `repair`). |
39
+ | Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (adaptado em 2026-09-22, cadeia completa de gates): a configuração do plugin é o contrato de settings ao vivo — cada campo é declarado `.volatile()`, o Loader entrega a `apply` uma referência viva por campo, e uma edição salva é confirmada nas referências em execução SEM remontar o plugin, com valores fora da faixa recusados pelo schema antes de qualquer escrita. Um host cujo Schemastery seja anterior a `volatile()` (antes de 3.18.3) ainda monta e executa este plugin — os campos apenas permanecem valores comuns e o formulário de configuração ao vivo fica indisponível — porque o marcador é aplicado por sondagem de capacidade, não por suposição. O `Session.append` nesta linha ainda não consegue estampar o marcador `ignorable` (seu terceiro argumento é o pacote surface-intent, e o campo do envelope só sobrevive para a leitura de logs armazenados), então toda a linha `0.2-alpha` é pré-verificada como não marcada e a auditoria do log de sessão fica desativada por padrão — o `append` lê apenas `sourceEventSeqs`/`surfaceOp` e congela o envelope, portanto não há caminho de código capaz de estampar o marcador; as linhas anteriores `0.1.7-alpha` (adaptada em 2026-09-22), `0.1.5-rc.2` (adaptada em 2026-09-09) e `0.1.3-alpha` mantêm a mesma assinatura de append surface-only, e toda versão pré-lançamento `0.2` é classificada junto delas (uma versão ESTÁVEL `0.2.x` fica a cargo da sondagem de append, então uma superfície de marcação restaurada é adotada sem um novo lançamento deste plugin). As migrações de log dessas linhas recusam eventos de plugin não classificados mesmo marcados: aplique `strip` nas linhas de auditoria v1 antes de um host `0.1.3-alpha` abrir o log e nas v2 antes de um host `0.1.5-alpha` migrá-lo (logs v3 nativos só precisam de `repair`). |
40
40
  | Node | `^22.19.0 || >=24.0.0` |
41
41
  | Platforms | Todas (host + cliente web de settings) |
42
42
  | Model | Qualquer (razões deny/ask aparecem pelos resultados de ferramenta) |
package/README-zh.md CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  | Surface | Status |
38
38
  |---|---|
39
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1`(2026-09-22 已适配,完整门禁链):其插件配置即新的 live settings 契约——每个字段都以 `.volatile()` 声明,Loader 向 `apply` 逐个交付活引用,保存的编辑直接写入运行中的引用、**不重挂插件**,越界值在写入前即被 schema 拒绝。Schemastery 早于 `volatile()`(3.18.3 之前)的宿主仍能挂载并运行本插件——字段退化为普通值、live 配置表单不可用——因为该标记是**能力探测**而非假定存在。本线的 `Session.append` 仍无法盖章 `ignorable` 标记(第三参数是 surface-intent 包,信封字段仅用于存量日志读取),故整条 `0.1.7-alpha` 线在首次追加前即被预检为未盖章,会话日志审计默认停用;更早的 `0.1.5-rc.2`(2026-09-09 已适配)与 `0.1.3-alpha` 线同样沿用 surface-only 追加签名。这些线的日志迁移连已标记的未分类插件事件也拒绝:在 `0.1.3-alpha` 宿主打开日志前 `strip` 掉 v1 审计行,在 `0.1.5-alpha` 宿主迁移前 `strip` 掉 v2 审计行(v3 原生日志只需 `repair`)。 |
39
+ | Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1`(2026-09-22 已适配,完整门禁链):其插件配置即新的 live settings 契约——每个字段都以 `.volatile()` 声明,Loader 向 `apply` 逐个交付活引用,保存的编辑直接写入运行中的引用、**不重挂插件**,越界值在写入前即被 schema 拒绝。Schemastery 早于 `volatile()`(3.18.3 之前)的宿主仍能挂载并运行本插件——字段退化为普通值、live 配置表单不可用——因为该标记是**能力探测**而非假定存在。本线的 `Session.append` 仍无法盖章 `ignorable` 标记(第三参数是 surface-intent 包,信封字段仅用于存量日志读取),故整条 `0.2-alpha` 线在首次追加前即被预检为未盖章,会话日志审计默认停用——其 `append` 只读取 `sourceEventSeqs`/`surfaceOp` 并冻结信封,没有任何可盖章标记的代码路径;更早的 `0.1.7-alpha`(2026-09-22 已适配)、`0.1.5-rc.2`(2026-09-09 已适配)与 `0.1.3-alpha` 线同样沿用 surface-only 追加签名,且每个 `0.2` 预发布版都与它们同类(`0.2.x` 的**稳定版**交由追加探测判定,因此恢复盖章能力无需本插件再发版)。这些线的日志迁移连已标记的未分类插件事件也拒绝:在 `0.1.3-alpha` 宿主打开日志前 `strip` 掉 v1 审计行,在 `0.1.5-alpha` 宿主迁移前 `strip` 掉 v2 审计行(v3 原生日志只需 `repair`)。 |
40
40
  | Node | `^22.19.0 || >=24.0.0` |
41
41
  | Platforms | 全部(host + Web 设置客户端) |
42
42
  | Model | 任意(deny/ask 原因经工具结果呈现) |
package/README.md CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  | Surface | Status |
40
40
  |---|---|
41
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (adapted 2026-09-22, full gate chain): its plugin config is the live settings contract — every field is declared `.volatile()`, the Loader hands `apply` a live reference per field, and a saved edit is committed into the running references WITHOUT remounting the plugin, with out-of-range values refused by the schema before anything is written. A host whose Schemastery predates `volatile()` (before 3.18.3) still mounts and runs this plugin — the fields simply stay ordinary values and the live config form is unavailable — because the marker is applied through a capability probe rather than assumed. `Session.append` on this line still cannot stamp the `ignorable` marker (its third argument is the surface-intent bag, and the envelope field survives for stored-log reads only), so the whole `0.1.7-alpha` line is pre-checked as unmarked and session-log audit stays disabled by default; the earlier `0.1.5-rc.2` (adapted 2026-09-09) and `0.1.3-alpha` lines keep the same surface-only append signature. Those lines' log migrations refuse unclassified plugin events even when marked, so `strip` v1 audit rows before a `0.1.3-alpha` host opens the log and v2 audit rows before a `0.1.5-alpha` host migrates it (native v3 logs only need `repair`). |
41
+ | Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (adapted 2026-09-22, full gate chain): its plugin config is the live settings contract — every field is declared `.volatile()`, the Loader hands `apply` a live reference per field, and a saved edit is committed into the running references WITHOUT remounting the plugin, with out-of-range values refused by the schema before anything is written. A host whose Schemastery predates `volatile()` (before 3.18.3) still mounts and runs this plugin — the fields simply stay ordinary values and the live config form is unavailable — because the marker is applied through a capability probe rather than assumed. `Session.append` on this line still cannot stamp the `ignorable` marker (its third argument is the surface-intent bag, and the envelope field survives for stored-log reads only), so the whole `0.2-alpha` line is pre-checked as unmarked and session-log audit stays disabled by default — `append` reads only `sourceEventSeqs`/`surfaceOp` and freezes the envelope, so it has no code path that could stamp the marker; the earlier `0.1.7-alpha` (adapted 2026-09-22), `0.1.5-rc.2` (adapted 2026-09-09) and `0.1.3-alpha` lines keep the same surface-only append signature, and every `0.2` prerelease is classified with them (a STABLE `0.2.x` release is left to the append probe, so a restored marker surface is adopted without a new plugin release). Those lines' log migrations refuse unclassified plugin events even when marked, so `strip` v1 audit rows before a `0.1.3-alpha` host opens the log and v2 audit rows before a `0.1.5-alpha` host migrates it (native v3 logs only need `repair`). |
42
42
  | Node | `^22.19.0 || >=24.0.0` |
43
43
  | Platforms | All (host + web settings client) |
44
44
  | Model | Any (deny/ask reasons surface through tool results) |
package/lib/index.js CHANGED
@@ -4744,18 +4744,33 @@ async function apply(ctx, config) {
4744
4744
  * every alpha build in minor 2 and later (`0.1.2-alpha` through
4745
4745
  * `0.1.5-alpha` and any later line: the marker surface was reintroduced
4746
4746
  * for stored-log reads, never for `Session.append`).
4747
+ * - Every PRERELEASE of the `0.2` line is treated as unmarked as well
4748
+ * (verified on the published `0.2.1-alpha.1` package, the line the host
4749
+ * pins moved to): its `append(type, data, ...opts)` reads ONLY
4750
+ * `opts[0].sourceEventSeqs` and `opts[0].surfaceOp` and freezes the
4751
+ * envelope to `{ type, seq, time, data, ...surfaceMetadata }`, so like the
4752
+ * alpha.5 surface it has no code path that can stamp `ignorable` at all.
4753
+ * Classifying it as possibly-marker-aware is what let the first decision
4754
+ * land an unmarked row (this repo's suite caught it on the real installed
4755
+ * peer). The rest of the line follows `0.1`: `0.2.x-alpha.*` and
4756
+ * `0.2.x-rc.*` are marked unsafe, while a `0.2.0`/`0.2.1` STABLE release
4757
+ * and every `0.3`+ prerelease stay classified as possibly-marker-aware and
4758
+ * are settled by the append probe, so a restored marker surface is adopted
4759
+ * without a new release here.
4747
4760
  * Non-matching (later stable or unresolvable) versions are treated as
4748
4761
  * possibly-marker-aware and verified by the append probe.
4749
4762
  * @param version - the installed peer version string.
4750
4763
  * @returns true for the known-unsafe rc.1–rc.7 lines of `0.1.0` and
4751
- * `0.1.1`, every rc build in minor 2 and later, and every alpha build in
4752
- * minor 2 and later (`0.1.2-alpha` through `0.1.5-alpha`).
4764
+ * `0.1.1`, every rc and alpha build in minor 2 and later (`0.1.2-alpha`
4765
+ * through `0.1.5-alpha`), and every `0.2` prerelease (the
4766
+ * `0.2.1-alpha.1` line the host pins moved to).
4753
4767
  */
4754
4768
  function isUnmarkedHostVersion(version) {
4755
4769
  const v = version.trim();
4756
4770
  const rc = /^0\.1\.([0-9]+)-rc\.(\d+)$/.exec(v);
4757
4771
  if (rc !== null) return Number(rc[1]) >= 2 || Number(rc[2]) <= 7;
4758
- return /^0\.1\.(?:[2-9]|[1-9]\d)-alpha[.-]\d+$/.test(v);
4772
+ if (/^0\.1\.(?:[2-9]|[1-9]\d)-alpha[.-]\d+$/.test(v)) return true;
4773
+ return /^0\.2\.[0-9]+-(?:alpha|rc)[.-]\d+$/.test(v);
4759
4774
  }
4760
4775
  /**
4761
4776
  * Identity candidates for the `agents` match dimension, derived from the
@@ -23,7 +23,10 @@
23
23
  * predates the marker (the `0.1.0-rc.6` line) or keeps the later
24
24
  * surface-only signature (the `0.1.2-rc`, `0.1.3-alpha` and `0.1.5-alpha`
25
25
  * lines — verified on the published `0.1.5-alpha.1` package, whose envelope
26
- * field survives for stored-log reads only) silently DROP the options bag:
26
+ * field survives for stored-log reads only — and every `0.2` prerelease,
27
+ * verified on the published `0.2.1-alpha.1` package, whose `append` reads
28
+ * only `sourceEventSeqs`/`surfaceOp` and freezes the envelope) silently
29
+ * DROP the options bag:
27
30
  * the event then lands UNMARKED and makes the session unresumable on hosts
28
31
  * with required-on-read semantics (`SessionFormatUnsupportedError`).
29
32
  * The runtime detects this at first use (peer version pre-check plus a
@@ -128,7 +131,8 @@ export interface AuditNetworkBlock {
128
131
  * exists only on host builds that expose the `ignorable` envelope-marker
129
132
  * surface (post-rc.6 `@deepseek-ai/dsh-session`); an rc.6 host — and, since
130
133
  * the alpha.5 surface, every `0.1.2-rc`, `0.1.3-alpha` and `0.1.5-alpha`
131
- * build — accepts the call but silently drops the third argument: the event
134
+ * build, plus every `0.2` prerelease — accepts the call but silently drops
135
+ * the third argument: the event
132
136
  * is appended WITHOUT the marker, which is exactly what breaks later resume
133
137
  * on stricter hosts. The runtime treats the marker as optional-but-probed:
134
138
  * see {@link isMarkedAuditEvent}.
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
@@ -601,12 +601,26 @@ export declare function apply(ctx: Context, config: LiveConfig): Promise<void>;
601
601
  * every alpha build in minor 2 and later (`0.1.2-alpha` through
602
602
  * `0.1.5-alpha` and any later line: the marker surface was reintroduced
603
603
  * for stored-log reads, never for `Session.append`).
604
+ * - Every PRERELEASE of the `0.2` line is treated as unmarked as well
605
+ * (verified on the published `0.2.1-alpha.1` package, the line the host
606
+ * pins moved to): its `append(type, data, ...opts)` reads ONLY
607
+ * `opts[0].sourceEventSeqs` and `opts[0].surfaceOp` and freezes the
608
+ * envelope to `{ type, seq, time, data, ...surfaceMetadata }`, so like the
609
+ * alpha.5 surface it has no code path that can stamp `ignorable` at all.
610
+ * Classifying it as possibly-marker-aware is what let the first decision
611
+ * land an unmarked row (this repo's suite caught it on the real installed
612
+ * peer). The rest of the line follows `0.1`: `0.2.x-alpha.*` and
613
+ * `0.2.x-rc.*` are marked unsafe, while a `0.2.0`/`0.2.1` STABLE release
614
+ * and every `0.3`+ prerelease stay classified as possibly-marker-aware and
615
+ * are settled by the append probe, so a restored marker surface is adopted
616
+ * without a new release here.
604
617
  * Non-matching (later stable or unresolvable) versions are treated as
605
618
  * possibly-marker-aware and verified by the append probe.
606
619
  * @param version - the installed peer version string.
607
620
  * @returns true for the known-unsafe rc.1–rc.7 lines of `0.1.0` and
608
- * `0.1.1`, every rc build in minor 2 and later, and every alpha build in
609
- * minor 2 and later (`0.1.2-alpha` through `0.1.5-alpha`).
621
+ * `0.1.1`, every rc and alpha build in minor 2 and later (`0.1.2-alpha`
622
+ * through `0.1.5-alpha`), and every `0.2` prerelease (the
623
+ * `0.2.1-alpha.1` line the host pins moved to).
610
624
  */
611
625
  export declare function isUnmarkedHostVersion(version: string): boolean;
612
626
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-permission-rules",
3
- "version": "0.7.8",
3
+ "version": "0.7.10",
4
4
  "description": "Declarative Claude Code-style permission rules plus a Codex-style process-level network policy for DeepSeek Harness: ordered allow/deny/ask rules with tool-name, argument (glob/regex), workspace-path, and network-target (domain/ip/port/scheme) matching on the tools/pre-execute waterfall, a built-in local HTTP/CONNECT proxy governing shell subprocess traffic, three network modes mapped onto the official sandbox presets, full session-log audit, HMR rule reload, and a settings page with a rule editor, block counters, and recent interception lists.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -77,7 +77,8 @@
77
77
  "network:outbound"
78
78
  ],
79
79
  "compatibility": {
80
- "dshVersions": ["0.1.2-rc.1","0.1.5-rc.2","0.1.7-alpha.2","0.1.7-rc.1"]
80
+ "dshVersions": ["0.1.2-rc.1","0.1.5-rc.2","0.1.7-alpha.2","0.1.7-rc.1", "0.1.7-rc.2",
81
+ "0.2.1-alpha.1"]
81
82
  },
82
83
  "capability": {
83
84
  "id": "rules",
@@ -116,22 +117,22 @@
116
117
  },
117
118
  "engines": {
118
119
  "node": "^22.19.0 || >=24.0.0",
119
- "dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0"
120
+ "dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0"
120
121
  },
121
122
  "peerDependencies": {
122
- "@deepseek-ai/cordis": "^4.0.4",
123
- "@deepseek-ai/dsh-agent": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
124
- "@deepseek-ai/dsh-commands": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
125
- "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
126
- "@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
127
- "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
128
- "@deepseek-ai/dsh-typert-protocol": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
129
- "@deepseek-ai/schemastery": "^3.18.2",
123
+ "@deepseek-ai/cordis": "^4.0.5-alpha.1",
124
+ "@deepseek-ai/dsh-agent": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
125
+ "@deepseek-ai/dsh-commands": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
126
+ "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
127
+ "@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
128
+ "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
129
+ "@deepseek-ai/dsh-typert-protocol": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
130
+ "@deepseek-ai/schemastery": "^3.18.5-alpha.1",
130
131
  "react": "^18.2.0",
131
- "@deepseek-ai/dsh-client-connection": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
132
- "@deepseek-ai/dsh-client-locale": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
133
- "@deepseek-ai/dsh-client-ui-settings": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
134
- "@deepseek-ai/dsh-client-web": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0"
132
+ "@deepseek-ai/dsh-client-connection": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
133
+ "@deepseek-ai/dsh-client-locale": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
134
+ "@deepseek-ai/dsh-client-ui-settings": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
135
+ "@deepseek-ai/dsh-client-web": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0"
135
136
  },
136
137
  "peerDependenciesMeta": {
137
138
  "@deepseek-ai/dsh-client-connection": {
@@ -156,28 +157,28 @@
156
157
  "zod": "^4.4.3"
157
158
  },
158
159
  "devDependencies": {
159
- "@deepseek-ai/dsh-attachment": "0.1.7-rc.1",
160
- "@deepseek-ai/cordis": "^4.0.4",
161
- "@deepseek-ai/cordis-plugin-include": "^1.0.7",
162
- "@deepseek-ai/cordis-plugin-loader": "^1.0.4",
163
- "@deepseek-ai/dsh-agent": "0.1.7-rc.1",
164
- "@deepseek-ai/dsh-brand": "0.1.7-rc.1",
165
- "@deepseek-ai/dsh-client-connection": "0.1.7-rc.1",
166
- "@deepseek-ai/dsh-client-locale": "0.1.7-rc.1",
167
- "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.1",
168
- "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.1",
169
- "@deepseek-ai/dsh-client-web": "0.1.7-rc.1",
170
- "@deepseek-ai/dsh-commands": "0.1.7-rc.1",
171
- "@deepseek-ai/dsh-invariants": "0.1.7-rc.1",
172
- "@deepseek-ai/dsh-llm": "0.1.7-rc.1",
173
- "@deepseek-ai/dsh-session": "0.1.7-rc.1",
174
- "@deepseek-ai/dsh-session-projection": "0.1.7-rc.1",
175
- "@deepseek-ai/dsh-subagent": "0.1.7-rc.1",
176
- "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.1",
177
- "@deepseek-ai/dsh-tools": "0.1.7-rc.1",
178
- "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.1",
179
- "@deepseek-ai/dsh-user-approval": "0.1.7-rc.1",
180
- "@deepseek-ai/schemastery": "^3.18.3",
160
+ "@deepseek-ai/dsh-attachment": "0.2.1-alpha.1",
161
+ "@deepseek-ai/cordis": "^4.0.5-alpha.1",
162
+ "@deepseek-ai/cordis-plugin-include": "^1.0.10-alpha.1",
163
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.6-alpha.1",
164
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
165
+ "@deepseek-ai/dsh-brand": "0.2.1-alpha.1",
166
+ "@deepseek-ai/dsh-client-connection": "0.2.1-alpha.1",
167
+ "@deepseek-ai/dsh-client-locale": "0.2.1-alpha.1",
168
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.1-alpha.1",
169
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.1",
170
+ "@deepseek-ai/dsh-client-web": "0.2.1-alpha.1",
171
+ "@deepseek-ai/dsh-commands": "0.2.1-alpha.1",
172
+ "@deepseek-ai/dsh-invariants": "0.2.0-rc.2",
173
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.1",
174
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
175
+ "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.1",
176
+ "@deepseek-ai/dsh-subagent": "0.2.1-alpha.1",
177
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.1",
178
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.1",
179
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.1",
180
+ "@deepseek-ai/dsh-user-approval": "0.2.1-alpha.1",
181
+ "@deepseek-ai/schemastery": "^3.18.5-alpha.1",
181
182
  "@eslint/js": "^10.0.1",
182
183
  "@types/node": "^22.19.0",
183
184
  "@vitest/coverage-v8": "^3.2.0",
package/src/events.ts CHANGED
@@ -23,7 +23,10 @@
23
23
  * predates the marker (the `0.1.0-rc.6` line) or keeps the later
24
24
  * surface-only signature (the `0.1.2-rc`, `0.1.3-alpha` and `0.1.5-alpha`
25
25
  * lines — verified on the published `0.1.5-alpha.1` package, whose envelope
26
- * field survives for stored-log reads only) silently DROP the options bag:
26
+ * field survives for stored-log reads only — and every `0.2` prerelease,
27
+ * verified on the published `0.2.1-alpha.1` package, whose `append` reads
28
+ * only `sourceEventSeqs`/`surfaceOp` and freezes the envelope) silently
29
+ * DROP the options bag:
27
30
  * the event then lands UNMARKED and makes the session unresumable on hosts
28
31
  * with required-on-read semantics (`SessionFormatUnsupportedError`).
29
32
  * The runtime detects this at first use (peer version pre-check plus a
@@ -135,7 +138,8 @@ export interface AuditNetworkBlock {
135
138
  * exists only on host builds that expose the `ignorable` envelope-marker
136
139
  * surface (post-rc.6 `@deepseek-ai/dsh-session`); an rc.6 host — and, since
137
140
  * the alpha.5 surface, every `0.1.2-rc`, `0.1.3-alpha` and `0.1.5-alpha`
138
- * build — accepts the call but silently drops the third argument: the event
141
+ * build, plus every `0.2` prerelease — accepts the call but silently drops
142
+ * the third argument: the event
139
143
  * is appended WITHOUT the marker, which is exactly what breaks later resume
140
144
  * on stricter hosts. The runtime treats the marker as optional-but-probed:
141
145
  * see {@link isMarkedAuditEvent}.
package/src/runtime.ts CHANGED
@@ -1721,18 +1721,38 @@ export async function apply(ctx: Context, config: LiveConfig): Promise<void> {
1721
1721
  * every alpha build in minor 2 and later (`0.1.2-alpha` through
1722
1722
  * `0.1.5-alpha` and any later line: the marker surface was reintroduced
1723
1723
  * for stored-log reads, never for `Session.append`).
1724
+ * - Every PRERELEASE of the `0.2` line is treated as unmarked as well
1725
+ * (verified on the published `0.2.1-alpha.1` package, the line the host
1726
+ * pins moved to): its `append(type, data, ...opts)` reads ONLY
1727
+ * `opts[0].sourceEventSeqs` and `opts[0].surfaceOp` and freezes the
1728
+ * envelope to `{ type, seq, time, data, ...surfaceMetadata }`, so like the
1729
+ * alpha.5 surface it has no code path that can stamp `ignorable` at all.
1730
+ * Classifying it as possibly-marker-aware is what let the first decision
1731
+ * land an unmarked row (this repo's suite caught it on the real installed
1732
+ * peer). The rest of the line follows `0.1`: `0.2.x-alpha.*` and
1733
+ * `0.2.x-rc.*` are marked unsafe, while a `0.2.0`/`0.2.1` STABLE release
1734
+ * and every `0.3`+ prerelease stay classified as possibly-marker-aware and
1735
+ * are settled by the append probe, so a restored marker surface is adopted
1736
+ * without a new release here.
1724
1737
  * Non-matching (later stable or unresolvable) versions are treated as
1725
1738
  * possibly-marker-aware and verified by the append probe.
1726
1739
  * @param version - the installed peer version string.
1727
1740
  * @returns true for the known-unsafe rc.1–rc.7 lines of `0.1.0` and
1728
- * `0.1.1`, every rc build in minor 2 and later, and every alpha build in
1729
- * minor 2 and later (`0.1.2-alpha` through `0.1.5-alpha`).
1741
+ * `0.1.1`, every rc and alpha build in minor 2 and later (`0.1.2-alpha`
1742
+ * through `0.1.5-alpha`), and every `0.2` prerelease (the
1743
+ * `0.2.1-alpha.1` line the host pins moved to).
1730
1744
  */
1731
1745
  export function isUnmarkedHostVersion(version: string): boolean {
1732
1746
  const v = version.trim()
1733
1747
  const rc = /^0\.1\.([0-9]+)-rc\.(\d+)$/.exec(v)
1734
1748
  if (rc !== null) return Number(rc[1]) >= 2 || Number(rc[2]) <= 7
1735
- return /^0\.1\.(?:[2-9]|[1-9]\d)-alpha[.-]\d+$/.test(v)
1749
+ if (/^0\.1\.(?:[2-9]|[1-9]\d)-alpha[.-]\d+$/.test(v)) return true
1750
+ // The 0.2 line: `append` reads only `sourceEventSeqs`/`surfaceOp` and freezes
1751
+ // the envelope, so no prerelease of it can stamp `ignorable` either. The
1752
+ // STABLE `0.2.x` release stays out of this branch deliberately — it is
1753
+ // settled by the append probe, so a restored marker surface is adopted
1754
+ // without a new release here.
1755
+ return /^0\.2\.[0-9]+-(?:alpha|rc)[.-]\d+$/.test(v)
1736
1756
  }
1737
1757
 
1738
1758
  /**