dev-flow-deepseek 0.7.1 → 0.7.2

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
@@ -11,14 +11,14 @@ macOS arm64 Core executable。
11
11
 
12
12
  | 项目 | 当前支持 |
13
13
  | --- | --- |
14
- | Package | `dev-flow-deepseek@0.7.1` |
15
- | Bundled Core | `0.6.0` |
14
+ | Package | `dev-flow-deepseek@0.7.2` |
15
+ | Bundled Core | `0.6.1` |
16
16
  | Platform | macOS arm64 |
17
17
  | Node.js | `>=24` |
18
18
  | DSH | `>=0.1.0-rc.6` |
19
- | Release | [deepseek-v0.7.1](https://github.com/Innocent-children/dev-flow/releases/tag/deepseek-v0.7.1) |
19
+ | Release | [deepseek-v0.7.2](https://github.com/Innocent-children/dev-flow/releases/tag/deepseek-v0.7.2) |
20
20
 
21
- `0.7.1` 的 normal release 已通过 registry package 安装、显式触发、Core handshake、
21
+ `0.7.2` 的 normal release 已通过 registry package 安装、显式触发、Core handshake、
22
22
  restart/resume、`DONE`、remove、uninstall、retained reopen 和 repository-unchanged 门禁。上表
23
23
  记录已验证的精确公开版本;下面的安装命令使用 npm `latest` dist-tag 获取当前最新稳定 package。
24
24
 
@@ -27,7 +27,7 @@ restart/resume、`DONE`、remove、uninstall、retained reopen 和 repository-un
27
27
  DSH 是前置 Host。`create-dev-flow` 独立发布后,用户只需指定真实 Profile,默认使用 `web`:
28
28
 
29
29
  ```bash
30
- npx create-dev-flow@latest
30
+ npx @imotong/create-dev-flow@latest
31
31
  ```
32
32
 
33
33
  当前公开稳定制品尚未包含该新 manager package。发布前或诊断恢复时继续使用以下 Host 原生命令;
@@ -136,7 +136,7 @@ DeepSeek Adapter 暴露与 Codex 相同的六工具 Core catalog;在 DSH 中
136
136
  | `dev_flow_open_task` | 为 Workspace Root 内显式声明的主/附加仓库创建一个 Task,或从任一参与仓库恢复同一 Task。 |
137
137
  | `dev_flow_get_task` | 读取持久化 Task;可附带 operation probe 获取 Recovery assessment。 |
138
138
  | `dev_flow_get_next_action` | 读取当前节点的权威 Action、验证预算、method steps 和全部合法 transition。 |
139
- | `dev_flow_apply_action` | 使用当前 revision、Action identity、repository binding 和 closed payload 应用一次 Core 声明的 transition;允许写入的 node result 提交精确 `changed_paths` 或 `no_file_changes`,artifact references 只作为证据。 |
139
+ | `dev_flow_apply_action` | 使用当前 revision、Action identity、repository binding 和 closed payload 应用一次 Core 声明的 transition;允许写入的 node result 提交精确 `changed_paths` 或 `no_file_changes`,artifact references 只作为证据。输入 Schema 是单个封闭对象,`action_kind` 与 `payload` 在 Host callable 中完整可见;精确分支由 Core 校验,失败时返回字段级 `error.details[]`、`error.guard` 与一次 `correct_current_action` 纠正许可。 |
140
140
  | `dev_flow_cancel_task` | 使用当前 revision 和明确 reason 取消一个非终态 Task。 |
141
141
 
142
142
  ## 数据与恢复
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-flow-deepseek",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "private": false,
5
5
  "description": "Explicit DeepSeek Harness adapter for the Dev Flow process graph.",
6
6
  "license": "Apache-2.0",
Binary file
@@ -239,8 +239,11 @@ and packaged template.
239
239
 
240
240
  1. Rebind the complete `fresh_action` and read its `action_kind`, `current_node`, `payload_contract`,
241
241
  `method_steps`, and all `available_transitions`.
242
- 2. Read the live `mcp__dev_flow__dev_flow_apply_action` `inputSchema`; under `allOf`, choose the `oneOf` payload
243
- branch whose `action_kind.const` matches the current action kind and source node.
242
+ 2. Read the live `mcp__dev_flow__dev_flow_apply_action` `inputSchema`. It is one closed object:
243
+ `action_kind` is a top-level `enum` of every action kind and `payload` is a closed object whose
244
+ `node_result` declares the union of every node result member. The schema does not narrow `payload`
245
+ by `action_kind`, so select the branch from `fresh_action.action_kind` plus
246
+ `fresh_action.payload_contract` and send only that branch's members.
244
247
  3. Open the corresponding marked template in `references/node-payloads.md`.
245
248
  4. Preserve the template's complete common envelope and `node_result` wrapper; replace only dynamic
246
249
  values with facts from the current Task, Action, user decision, repository work, and actual check.
@@ -304,10 +307,10 @@ apply_arguments = {
304
307
  that request inside an outer `payload` object. For an ordinary mutation, omit `recovery_apply` or
305
308
  send `recovery_apply=null`.
306
309
 
307
- If Core returns `INVALID_ARGUMENT`, treat it as a complete payload-contract rejection. Stop the
308
- current mutation, report the failing action/payload contract without private data, and do not delete
309
- fields, submit a second candidate payload for the same Action, automatically retry, or treat the
310
- result as transport uncertainty.
310
+ If Core returns `INVALID_ARGUMENT`, treat it as a complete payload-contract rejection, not transport
311
+ uncertainty. Use the bounded-correction section only when the complete result explicitly authorizes
312
+ `correct_current_action`; otherwise stop and report the failing contract without private data. Never
313
+ alter a field from source-code inspection or another guessed payload.
311
314
 
312
315
  ## Comprehension user interaction
313
316
 
@@ -425,6 +428,32 @@ uncertainty. Never convert or treat that domain error as missing or transport fa
425
428
  `retry_safe=false` and `action=none`, stop; do not call `mcp__dev_flow__dev_flow_get_next_action` or
426
429
  `mcp__dev_flow__dev_flow_apply_action`.
427
430
 
431
+ ## Bounded correction of the current action
432
+
433
+ A complete structured domain error may carry field-level detail. `error.details[]` names the exact
434
+ failing member as `path`, a closed `rule`, and a fixed non-sensitive `message`. A refused transition
435
+ may instead carry `error.guard` with the Core `guard_id` and the same failure shape.
436
+
437
+ Submit exactly one corrected payload for the same Action only when every condition holds:
438
+
439
+ 1. the original result is a complete structured Core domain error;
440
+ 2. `recovery.action` is `correct_current_action`;
441
+ 3. `recovery.retry_safe` is `true`;
442
+ 4. Task revision, action ID, process identity, source cursor, and repository binding are unchanged;
443
+ 5. the corrected request uses a new `request_id`;
444
+ 6. only members listed in `recovery.allowed_paths` change;
445
+ 7. the corrected value follows directly from the returned `rule`, with no source-code guessing;
446
+ 8. every other payload byte keeps the same meaning.
447
+
448
+ Stop immediately when the second submission also fails. Do not submit a third candidate payload;
449
+ report only the exact `path`, `rule`, and that the bounded correction still failed. Never report
450
+ either submitted field value.
451
+
452
+ Never treat these as correctable: an uncertain mutation result, a possible store commit, a missing or
453
+ truncated response, a stale action identity, repository drift, an absent or inaccurate
454
+ `allowed_paths`, or `INTERNAL_ERROR`. Those keep `retry_safe=false` and require the
455
+ recovery-before-retry contract.
456
+
428
457
  ## Evidence and verification budget
429
458
 
430
459
  - Count verification commands exactly against Core's immutable budget.
@@ -434,6 +463,12 @@ uncertainty. Never convert or treat that domain error as missing or transport fa
434
463
  - Keep static inspection, simulated Core execution, user-performed evidence, and native automated
435
464
  evidence distinctly labelled.
436
465
  - Submit actual sources and outcomes. Never relabel failed, skipped, or unavailable work as passed.
466
+ - `source=automated` uses `command_count` 1 to 20 and may set `full_suite` when the budget allows it.
467
+ - `source=user`, `source=static`, and `source=host_observed` use `command_count=0` and
468
+ `full_suite=false`. Shell commands a person ran by hand belong in that check's `summary`; they
469
+ never consume the automatic command budget.
470
+ - A verification the user already completed belongs in `checks` with `source=user`. Remove it from
471
+ `manual_handoff_items`; that list keeps only work nobody has executed yet.
437
472
 
438
473
  ## Blocked and terminal behavior
439
474
 
@@ -12,9 +12,12 @@ Before every ordinary apply:
12
12
  `method_steps`, and every `available_transition`.
13
13
  2. Select only a transition returned by that Action. Never submit `destination`, `next_node`,
14
14
  `next_cursor`, resume node, guard result, or caller classification.
15
- 3. Select the matching `dev_flow_apply_action` `inputSchema` branch and use exactly the six common
16
- payload members: `transition_id`, `summary`, `reason`, `artifacts`, `method_evidence`, and
17
- `node_result`.
15
+ 3. The live `dev_flow_apply_action` `inputSchema` is one closed object. `action_kind` is a top-level
16
+ `enum` of every action kind and `payload.node_result` declares the union of every node result
17
+ member, so the schema does not narrow the payload by `action_kind`. Select the branch from the
18
+ fresh Action's `action_kind` and `payload_contract`, send only that branch's `node_result` members,
19
+ and use exactly the six common payload members: `transition_id`, `summary`, `reason`, `artifacts`,
20
+ `method_evidence`, and `node_result`.
18
21
  Set `reason=""` whenever the selected transition has `reason_required=false`; provide a nonempty
19
22
  reason only when the selected transition has `reason_required=true`.
20
23
  4. `required_evidence` and `artifacts` are different concepts. `repository_observation` is a Core evidence requirement, not an ArtifactReference role. When no real repository-relative process
@@ -36,8 +39,12 @@ Before every ordinary apply:
36
39
  evidence sets always come from the latest Task projection and are never guessed.
37
40
  9. Do not include repository facts, payload digests, raw command/output/environment data, or
38
41
  unknown members.
39
- 10. `INVALID_ARGUMENT` is a completed Core domain rejection: stop, report a payload-contract error,
40
- and do not probe with another payload or treat it as transport uncertainty.
42
+ 10. `INVALID_ARGUMENT` and `TRANSITION_NOT_ALLOWED` are completed Core domain rejections, never
43
+ transport uncertainty. When the result carries `error.details[]` or `error.guard`,
44
+ `recovery.action="correct_current_action"`, and `recovery.retry_safe=true`, submit exactly one
45
+ corrected payload for the same Action: change only the members in `recovery.allowed_paths`, derive
46
+ each corrected value from the returned closed `rule`, and use a new `request_id`. Stop after a
47
+ second failure and report the exact `path` and `rule`; never probe with a third candidate payload.
41
48
 
42
49
  <!-- node-payload-template:requirements:start -->
43
50
  ```json