iterate-plugin 3.3.0 → 3.3.1

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/README.md CHANGED
@@ -286,6 +286,56 @@ All runtime state lives under `.iterate/` at the project root (can be excluded v
286
286
 
287
287
  ---
288
288
 
289
+ ## 🔐 Permissions, dependencies & compatibility
290
+
291
+ ### Node.js / DSH compatibility
292
+
293
+ - **Node.js**: `>=20` (`package.json` `engines.node`).
294
+ - **DSH**: declares `dsh.compatibility.dshReleases` — `compatible` for the official
295
+ `0.1.2-alpha.4`, `0.1.2-alpha.5`, and `0.1.2-rc.1` releases. The plugin is built
296
+ against `@deepseek-ai/dsh-tools` / `@deepseek-ai/dsh-util-values` `0.1.2-rc.1`
297
+ and uses only public contracts (tool registration, client slots + theme, bundle patch).
298
+
299
+ ### Runtime permissions (conservative disclosure)
300
+
301
+ The plugin runs with the **same process capabilities as the DSH host** and touches the
302
+ following capabilities; elevated capability means a DSH Profile install stays
303
+ `user-reviewed`/guarded rather than auto-approved:
304
+
305
+ - **Files** — reads and writes project-local state under `<projectRoot>/.iterate/`
306
+ (decision log, checkpoint, transcript, fix backups/registry, quality gate,
307
+ experience bank, defense events). `iterate_fix` / `iterate_triage` also apply
308
+ in-place edits to the user's source files (path-traversal protected to the
309
+ resolved project root, backups taken before every fix, rollback on failure).
310
+ The client half persists triage verdicts to `localStorage`.
311
+ - **Commands** — the plugin registers model-facing tools; any shell execution that
312
+ the model performs (build / test / `git`) is run by the **host**, not by this
313
+ plugin. The client "command buttons" only copy paste-able instruction text; they
314
+ do not spawn processes.
315
+ - **Credentials** — this plugin does **not** read or transmit credentials at
316
+ runtime. The sibling **iterate-skill / iterate-harness** components may read git
317
+ credentials / GitHub tokens when the user runs their own Git/API operations; those
318
+ are separate packages and are never loaded by this plugin.
319
+ - **Network** — no network access at runtime (everything is local to the project).
320
+
321
+ ### Dependencies
322
+
323
+ Runtime dependencies: `@deepseek-ai/cordis`, `@deepseek-ai/dsh-tools`,
324
+ `@deepseek-ai/dsh-util-values`, `js-yaml` — all pinned exact versions. No
325
+ install-time lifecycle scripts (`preinstall`/`install`/`postinstall`/`prepare`);
326
+ only `prepublishOnly` (build) runs on publish.
327
+
328
+ ### Failure bounds
329
+
330
+ - All writes are atomic (temp + rename) and confined under `.iterate/`; a crash
331
+ mid-write cannot corrupt the checkpoint/transcript.
332
+ - Persistence failures surface as structured `{ ok: false, error }` results instead
333
+ of silent success.
334
+ - Fix edits are applied to backups first and rolled back on validation failure.
335
+ - The UI degrades gracefully when a slot/service is unavailable.
336
+
337
+ ---
338
+
289
339
  ## 🎨 Design
290
340
 
291
341
  The plugin follows dsh's "everything-is-a-plugin" architecture:
package/README.zh-CN.md CHANGED
@@ -285,6 +285,49 @@ validation:
285
285
 
286
286
  ---
287
287
 
288
+ ## 🔐 权限、依赖与兼容性
289
+
290
+ ### Node.js / DSH 兼容范围
291
+
292
+ - **Node.js**:`>=20`(`package.json` 的 `engines.node`)。
293
+ - **DSH**:在 `dsh.compatibility.dshReleases` 中声明官方 `0.1.2-alpha.4`、
294
+ `0.1.2-alpha.5`、`0.1.2-rc.1` 三个版本为 `compatible`。插件基于
295
+ `@deepseek-ai/dsh-tools` / `@deepseek-ai/dsh-util-values` `0.1.2-rc.1` 构建,
296
+ 只使用公开契约(工具注册、客户端 slots + theme、bundle patch)。
297
+
298
+ ### 运行时权限(保守披露)
299
+
300
+ 插件与 DSH 宿主共享同一进程能力,涉及以下能力;具备高权限意味着 DSH Profile
301
+ 安装仍需 `user-reviewed`/守卫,不会自动放行:
302
+
303
+ - **文件(files)** — 读写 `<projectRoot>/.iterate/` 下的项目本地状态(决策日志、
304
+ 检查点、transcript、修复备份/注册表、质量门禁、经验银行、防御事件)。
305
+ `iterate_fix` / `iterate_triage` 还会就地修改用户源码(路径遍历防护限定在解析后
306
+ 的项目根目录内,每次修复前备份、失败回滚)。客户端侧把分诊判定持久化到 `localStorage`。
307
+ - **命令(commands)** — 插件只注册模型可调用工具;模型要执行的任何 shell 操作
308
+ (build / test / `git`)都由**宿主**执行,不是本插件。客户端"指挥按钮"只复制可粘贴
309
+ 的指令文本,不启动任何进程。
310
+ - **凭据(credentials)** — 本插件运行时**不**读取或传输凭据。同生态的
311
+ **iterate-skill / iterate-harness** 组件在用户自行执行 Git/API 操作时可能读取
312
+ git 凭据 / GitHub token;它们是独立包,本插件从不加载它们。
313
+ - **网络(network)** — 运行时无任何网络访问(全部本地)。
314
+
315
+ ### 依赖
316
+
317
+ 运行时依赖:`@deepseek-ai/cordis`、`@deepseek-ai/dsh-tools`、
318
+ `@deepseek-ai/dsh-util-values`、`js-yaml`——全部精确锁版。无安装期生命周期脚本
319
+ (`preinstall`/`install`/`postinstall`/`prepare`);仅 `prepublishOnly`(构建)在发布时运行。
320
+
321
+ ### 失败边界
322
+
323
+ - 所有写入都是原子的(临时文件 + rename),且限定在 `.iterate/` 下;写入中途崩溃
324
+ 不会损坏 checkpoint / transcript。
325
+ - 持久化失败以结构化 `{ ok: false, error }` 返回,而不是静默成功。
326
+ - 修复编辑先备份再应用,验证失败自动回滚。
327
+ - 某个 slot / 服务不可用时 UI 优雅降级。
328
+
329
+ ---
330
+
288
331
  ## 🎨 设计
289
332
 
290
333
  插件遵循 dsh "everything-is-a-plugin" 架构:
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "iterate-plugin",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "dsh plugin that turns the iterate skill into an autonomous closed-loop harness with quality command center and experience bank (v3.3). Features: plan -> parallel review xN -> atomic fixes -> validate -> loop -> auto-stop, plus dry-run pure-review mode, quality gate compute/persist, writable experience bank, defense events stream (record + bilingual labels), and native command buttons — with a live quality command center (F8/F9/F10 render real session data), §8 assign-fix instruction, and task_mode indicator wired end to end.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/jingzhao-l/iterate-plugin.git"
9
+ "url": "https://github.com/jingzhao-l/iterate-skill.git",
10
+ "directory": "harness/iterate-plugin"
10
11
  },
11
- "homepage": "https://github.com/jingzhao-l/iterate-plugin#readme",
12
+ "homepage": "https://github.com/jingzhao-l/iterate-skill/tree/main/harness/iterate-plugin",
12
13
  "bugs": {
13
- "url": "https://github.com/jingzhao-l/iterate-plugin/issues"
14
+ "url": "https://github.com/jingzhao-l/iterate-skill/issues"
14
15
  },
15
16
  "keywords": [
16
17
  "dsh-plugin",
@@ -26,6 +27,13 @@
26
27
  "bundle": {
27
28
  "patch": "./cordis.patch.yml"
28
29
  },
30
+ "compatibility": {
31
+ "dshReleases": {
32
+ "0.1.2-alpha.4": "compatible",
33
+ "0.1.2-alpha.5": "compatible",
34
+ "0.1.2-rc.1": "compatible"
35
+ }
36
+ },
29
37
  "client": {
30
38
  "platform": "web",
31
39
  "inject": [